Re: [PATCH] ARM: fix smp_processor_id() in preemptible warning in harden_branch_predictor()

From: Russell King - ARM Linux admin
Date: Thu Mar 25 2021 - 06:07:02 EST


On Thu, Mar 25, 2021 at 05:50:49PM +0800, Liu Xiang wrote:
> When CONFIG_HARDEN_BRANCH_PREDICTOR is selected and user aborts occur,
> there is a warning:
>
> BUG: using smp_processor_id() in preemptible [00000000] code: errnotest/577
> caller is __do_user_fault.constprop.4+0x24/0x88
> CPU: 1 PID: 577 Comm: errnotest Not tainted 4.14.188-rt87-fmsh-00004-g58055877a #1
> Hardware name: FMSH PSOC Platform
> [<8010d6d4>] (unwind_backtrace) from [<8010a228>] (show_stack+0x10/0x14)
> [<8010a228>] (show_stack) from [<80698f44>] (dump_stack+0x7c/0x98)
> [<80698f44>] (dump_stack) from [<803d17d0>] (check_preemption_disabled+0xc4/0xfc)
> [<803d17d0>] (check_preemption_disabled) from [<80110eb8>] (__do_user_fault.constprop.4+0x24/0x88)
> [<80110eb8>] (__do_user_fault.constprop.4) from [<801112e4>] (do_page_fault+0x2dc/0x310)
> [<801112e4>] (do_page_fault) from [<801012a8>] (do_DataAbort+0x38/0xb8)
> [<801012a8>] (do_DataAbort) from [<8010b03c>] (__dabt_usr+0x3c/0x40)
> Exception stack(0xb21d1fb0 to 0xb21d1ff8)
> 1fa0: fffffff4 00000000 00000054 fffffff4
> 1fc0: 00000000 00000000 7ed81cc8 7ed81ca0 0007a440 00000000 00000000 00000000
> 1fe0: 00000000 7ed81ca0 00010493 0001f330 20030010 ffffffff

This is not the right fix - preemption is supposed to be disabled before
this function is called. I'm not sure at the present time what the right
fix is supposed to be because I've forgotten most of the background
behind why this was placed where it is.

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!