On Tue, 25 Jun 2019 at 17:39, Catalin Marinas <catalin.mari...@arm.com> wrote:
>
> On Mon, Jun 24, 2019 at 12:06:18PM +0200, Ard Biesheuvel wrote:
> > On Mon, 24 Jun 2019 at 11:57, Will Deacon <w...@kernel.org> wrote:
> > > Thanks for having a look. It could be that we've fixed the issue Catalin 
> > > was
> > > running into in the past -- he was going to see if the problem persists 
> > > with
> > > mainline, since it was frequent enough that it was causing us to ignore 
> > > the
> > > results from our testing infrastructure when RANDOMIZE_BASE=y.
> >
> > I had no idea this was the case. I can look into it if we are still
> > seeing failures.
>
> I've seen the panic below with 5.2-rc1, defconfig + RANDOMIZE_BASE=y in
> a guest on TX2. It takes a few tries to trigger just with kaslr,
> enabling lots of other DEBUG_* options makes the failures more
> deterministic. I can't really say it's kaslr's fault here, only that I
> used to consistently get it in this configuration. For some reason, I
> can no longer reproduce it on arm64 for-next/core (or maybe it just
> takes more tries and my script doesn't catch this).
>
> The fault is in the ip_tables module, the __this_cpu_read in
> xt_write_recseq_begin() inlined in ipt_do_table(). The disassembled
> sequence in my build:
>
> 0000000000000188 <ipt_do_table>:
> ...
>      258:       d538d080        mrs     x0, tpidr_el1
>      25c:       aa1303f9        mov     x25, x19
>      260:       b8606b34        ldr     w20, [x25, x0]
>

This was fixed recently by

arm64/kernel: kaslr: reduce module randomization range to 2 GB

(and arm64/module: deal with ambiguity in PRELxx relocation ranges to
some extent)

Reply via email to