On Sat, May 28, 2022 at 9:53 AM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > On Sat, May 28, 2022 at 7:48 AM Yegor Yefremov > <yegorslists@xxxxxxxxxxxxxx> wrote: > > > > On Fri, May 27, 2022 at 4:13 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > > > > > On Fri, May 27, 2022 at 3:12 PM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > > > > On Fri, 27 May 2022 at 14:54, Arnd Bergmann <arnd@xxxxxxxx> wrote: > > > > > On Fri, May 27, 2022 at 11:50 AM Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx> wrote: > > > > > > > > Not just per-cpu data: there is also the 'current' global variable > > > > which gets used now instead of the user thread ID register, and this > > > > is also different between modules and the core kernel (unless > > > > CONFIG_ARM_MODULE_PLTS is disabled) > > > > > > Right, so if the percpu hack doesn't address it, this one might: > > > > > > diff --git a/arch/arm/include/asm/current.h b/arch/arm/include/asm/current.h > > > index 1e1178bf176d..306d1a4cae40 100644 > > > --- a/arch/arm/include/asm/current.h > > > +++ b/arch/arm/include/asm/current.h > > > @@ -18,6 +18,8 @@ static __always_inline __attribute_const__ struct > > > task_struct *get_current(void) > > > { > > > struct task_struct *cur; > > > > > > + return __current; > > > + > > > #if __has_builtin(__builtin_thread_pointer) && \ > > > defined(CONFIG_CURRENT_POINTER_IN_TPIDRURO) && \ > > > !(defined(CONFIG_THUMB2_KERNEL) && \ > > > > I have tried this patch and the system still stalls. > > Ok, thanks for testing. To clarify: did you test with both the get_current() and > __my_cpu_offset() changes applied, or just the get_current() one? I have tested only the get_current() one. Should I also test __my_cpu_offset() separately and combined? Yegor