From: Catalin Marinas <catalin.marinas@arm.com>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
Florian Fainelli <f.fainelli@gmail.com>,
Linus Walleij <linus.walleij@linaro.org>,
Ard Biesheuvel <ardb@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
Stefan Wahren <wahrenst@gmx.net>,
Kees Cook <keescook@chromium.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 4/4] ARM: Implement PAN for LPAE by TTBR0 page table walks disablement
Date: Tue, 14 May 2024 16:03:22 +0100 [thread overview]
Message-ID: <ZkN9Oua5UIsxcH7v@arm.com> (raw)
In-Reply-To: <ZkNbL8PQk+Roj2Ee@shell.armlinux.org.uk>
On Tue, May 14, 2024 at 01:38:07PM +0100, Russell King wrote:
> On Tue, May 14, 2024 at 02:32:23PM +0200, Geert Uytterhoeven wrote:
> > On Tue, May 14, 2024 at 1:33 PM Russell King (Oracle)
> > <linux@armlinux.org.uk> wrote:
> > > On Tue, May 14, 2024 at 01:22:36PM +0200, Geert Uytterhoeven wrote:
> > > > On Tue, May 14, 2024 at 10:15 AM Russell King (Oracle)
> > > > <linux@armlinux.org.uk> wrote:
> > > > > On Mon, May 13, 2024 at 08:56:20PM -0700, Florian Fainelli wrote:
> > > > > > [ 11.299106] Freeing unused kernel image (initmem) memory: 79872K
> > > > > > [ 11.305720] Run /init as init process
> > > > > > [ 11.314070] Kernel panic - not syncing: Attempted to kill init!
> > > > > > exitcode=0x00000004
> > > > > > [ 11.321888] CPU: 0 PID: 1 Comm: init Not tainted 6.9.0-next-20240513 #32
> > > > > > [ 11.328709] Hardware name: BCM2711
> > > > > > [ 11.332169] Call trace:
> > > > > > [ 11.332179] unwind_backtrace from show_stack+0x10/0x14
> > > > > > [ 11.340087] show_stack from panic+0x20c/0x55c
> > > > > > [ 11.344615] panic from do_exit+0x6b0/0x1e74
> > > > > > [ 11.348972] do_exit from do_group_exit+0xcc/0x280
> > > > > > [ 11.353857] do_group_exit from get_signal+0xfb4/0x1340
> > > > > > [ 11.359182] get_signal from do_work_pending+0x2c0/0x7bc
> > > > > > [ 11.364590] do_work_pending from slow_work_pending+0xc/0x24
> > > > > > [ 11.370351] Exception stack(0xf082bfb0 to 0xf082bff8)
> > > > > > [ 11.375492] bfa0: b6bca568 00000000
> > > > > > 003fa0d6 aedf3d20
> > > > > > [ 11.383811] bfc0: aedf4a28 b6bca6f8 b6bca73c b6bca710 b6bca748 b6bca6f8
> > > > > > aedf4a28 b6bca6f8
> > > > > > [ 11.392127] bfe0: b6bca590 b6bca548 aeddae15 aedeb660 200f0030 ffffffff
> > > > > > [ 11.398954] ---[ end Kernel panic - not syncing: Attempted to kill init!
> > > > > > exitcode=0x00000004 ]---
> > > > >
> > > > > You could enable CONFiG_DEBUG_USER, and then pass "user_debug=24" to
> > > > > the kernel to get a report for the conditions that lead to SEGV/BUS
> > > > > signals being delivered to a userspace processd.
> > > >
> > > > That does not seem to make any difference for me, i.e. no report?
> > >
> > > Then it's not a SEGV/BUS (iow page fault.) Please try user_debug=31
> > > in that case. Thanks.
> >
> > Thanks, much better:
> >
> > init (1): undefined instruction: pc=b6f4feda
> > CPU: 1 PID: 1 Comm: init Not tainted
> > 6.9.0-shmobile-09158-g1218ffc3659e #1820
> > Hardware name: Generic R-Car Gen2 (Flattened Device Tree)
> > PC is at 0xb6f4feda
> > LR is at 0xb6f4ed31
> > pc : [<b6f4feda>] lr : [<b6f4ed31>] psr: 60000030
> > sp : be970630 ip : be970678 fp : b6f67978
> > r10: 00000000 r9 : 004d48ff r8 : be970844
> > r7 : be9707f8 r6 : b6f67978 r5 : be970850 r4 : be970844
> > r3 : b6f669b0 r2 : 003fb0d6 r1 : 00000000 r0 : be970650
> > Flags: nZCv IRQs on FIQs on Mode USER_32 ISA Thumb Segment user
> > Control: 30c5387d Table: 41f6cac0 DAC: 55555555
> > Code: bad PC value
>
> Well, that points to another issue... get_user() appears to be unable
> to access userspace. Userspace can, however, as we wouldn't get an
> undefined instruction abort unless it can successfully access the
> address.
>
> This points to something being very wrong with this implementation.
Yeah, it doesn't look great. Let's see if TLBIALLIS solves anything,
though not as an upstream solution as it's expensive, just to understand
the problem a bit better. So maybe revert the last patch from the
series, the first three seem inoffensive.
For the flush_tlb_all(), I think the mcr incantation is:
mov r0, #0
mcr p15, 0, r0, c8, c7, 0
Linus, if you attempt this in the uaccess_enable/disable macros, also
force the ISB to be always on just in case the TTBRC update does not
take place before the MCR.
--
Catalin
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-05-14 15:03 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-12 12:52 [PATCH v3 0/4] PAN for ARM32 using LPAE Linus Walleij
2024-03-12 12:52 ` [PATCH v3 1/4] ARM: Add TTBCR_* definitions to pgtable-3level-hwdef.h Linus Walleij
2024-03-12 12:52 ` [PATCH v3 2/4] ARM: Move asm statements accessing TTBCR into C functions Linus Walleij
2024-03-12 12:52 ` [PATCH v3 3/4] ARM: Reduce the number of #ifdef CONFIG_CPU_SW_DOMAIN_PAN Linus Walleij
2024-03-12 12:52 ` [PATCH v3 4/4] ARM: Implement PAN for LPAE by TTBR0 page table walks disablement Linus Walleij
2024-05-07 13:10 ` Geert Uytterhoeven
2024-05-13 19:23 ` Linus Walleij
2024-05-13 19:58 ` Geert Uytterhoeven
2024-05-13 20:29 ` Linus Walleij
2024-05-14 3:56 ` Florian Fainelli
2024-05-14 8:14 ` Russell King (Oracle)
2024-05-14 11:22 ` Geert Uytterhoeven
2024-05-14 11:33 ` Russell King (Oracle)
2024-05-14 12:32 ` Geert Uytterhoeven
2024-05-14 12:38 ` Russell King (Oracle)
2024-05-14 15:03 ` Catalin Marinas [this message]
2024-05-14 6:41 ` Geert Uytterhoeven
2024-05-14 7:46 ` Linus Walleij
2024-05-14 7:59 ` Ard Biesheuvel
2024-05-14 8:04 ` Geert Uytterhoeven
2024-05-14 8:25 ` Ard Biesheuvel
2024-05-14 9:22 ` Russell King (Oracle)
2024-05-14 11:40 ` Linus Walleij
2024-05-14 11:28 ` Geert Uytterhoeven
2024-05-14 16:06 ` Geert Uytterhoeven
2024-05-14 16:54 ` Florian Fainelli
2024-05-14 17:03 ` Russell King (Oracle)
2024-05-14 18:26 ` Florian Fainelli
2024-05-14 20:33 ` Linus Walleij
2024-05-14 20:34 ` Florian Fainelli
2024-05-15 8:36 ` Ard Biesheuvel
2024-05-15 8:45 ` Geert Uytterhoeven
2024-05-15 8:49 ` Ard Biesheuvel
2024-05-15 9:21 ` Geert Uytterhoeven
2024-05-15 9:39 ` Ard Biesheuvel
2024-05-15 11:58 ` Linus Walleij
2024-05-15 14:05 ` Geert Uytterhoeven
2024-05-15 8:48 ` Russell King (Oracle)
2024-05-15 8:53 ` Ard Biesheuvel
2024-05-15 12:27 ` Russell King (Oracle)
2024-05-15 15:41 ` Ard Biesheuvel
2024-05-15 16:18 ` Russell King (Oracle)
2024-05-15 16:36 ` Ard Biesheuvel
2024-05-15 21:51 ` Arnd Bergmann
2024-05-15 8:10 ` Geert Uytterhoeven
2024-05-14 7:37 ` Linus Walleij
2024-05-14 14:39 ` Catalin Marinas
2024-03-12 17:45 ` [PATCH v3 0/4] PAN for ARM32 using LPAE Florian Fainelli
2024-03-13 8:13 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZkN9Oua5UIsxcH7v@arm.com \
--to=catalin.marinas@arm.com \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=f.fainelli@gmail.com \
--cc=geert@linux-m68k.org \
--cc=keescook@chromium.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=wahrenst@gmx.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).