On 8/10/20 3:05 AM, Greg KH wrote: > On Mon, Aug 10, 2020 at 11:54:28AM +0200, Ahmed S. Darwish wrote: >> This reverts commit 859247d39fb008ea812e8f0c398a58a20c12899e. >> >> Current implementation of lockdep_assert_preemption_disabled() uses >> per-CPU variables, which was done to untangle the existing >> seqlock.h<=>sched.h 'current->' task_struct circular dependency. >> >> Using per-CPU variables did not fully untangle the dependency for >> various non-x86 architectures though, resulting in multiple broken >> builds. For the affected architectures, raw_smp_processor_id() led >> back to 'current->', thus having the original seqlock.h<=>sched.h >> dependency in full-effect. >> >> For now, revert adding lockdep_assert_preemption_disabled() to >> seqlock.h. >> >> Reported-by: Guenter Roeck <[email protected]> >> Link: https://lkml.kernel.org/r/[email protected] >> Link: https://lkml.kernel.org/r/[email protected] >> References: Commit a21ee6055c30 ("lockdep: Change >> hardirq{s_enabled,_context} to per-cpu variables") >> Signed-off-by: Ahmed S. Darwish <[email protected]> > > Reviewed-by: Greg Kroah-Hartman <[email protected]> > > Even after this, there are still some build errors on arm32, but I don't > think they are due to this change: > > ERROR: modpost: "__aeabi_uldivmod" [drivers/net/ethernet/sfc/sfc.ko] > undefined!
This affects every 32 bit architecture. > ERROR: modpost: "__bad_udelay" > [drivers/net/ethernet/aquantia/atlantic/atlantic.ko] undefined! > I don't think that is new. If anything, it is surprising that builds don't fail more widely because of it. AFAICS it was introduced back in 2018 (a hot 50-ms delay loop really isn't such a good idea). Guenter

