Re: [PATCH v4 07/10] microblaze: snapshot thread flags

From: Michal Simek
Date: Wed Aug 25 2021 - 05:03:28 EST




On 8/3/21 11:54 AM, Mark Rutland wrote:
> Some thread flags can be set remotely, and so even when IRQs are
> disabled, the flags can change under our feet. Generally this is
> unlikely to cause a problem in practice, but it is somewhat unsound, and
> KCSAN will legitimately warn that there is a data race.
>
> To avoid such issues, a snapshot of the flags has to be taken prior to
> using them. Some places already use READ_ONCE() for that, others do not.
>
> Convert them all to the new flag accessor helpers.
>
> Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
> Cc: Michal Simek <monstr@xxxxxxxxx>
> ---
> arch/microblaze/kernel/signal.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c
> index fc61eb0eb8dd..23e8a9336a29 100644
> --- a/arch/microblaze/kernel/signal.c
> +++ b/arch/microblaze/kernel/signal.c
> @@ -283,7 +283,7 @@ static void do_signal(struct pt_regs *regs, int in_syscall)
> #ifdef DEBUG_SIG
> pr_info("do signal: %p %d\n", regs, in_syscall);
> pr_info("do signal2: %lx %lx %ld [%lx]\n", regs->pc, regs->r1,
> - regs->r12, current_thread_info()->flags);
> + regs->r12, read_thread_flags());
> #endif
>
> if (get_signal(&ksig)) {
>

Tested-by: Michal Simek <michal.simek@xxxxxxxxxx>

Thanks,
Michal


--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs