Ahmed and Sebastian wanted additional lockdep_assert*() macros and ran into header hell. Move the IRQ state into per-cpu variables, which removes the dependency on task_struct, which is what generated the header-hell. These patches are intended to go on top of: https://lkml.kernel.org/r/20200529212728.795169701@xxxxxxxxxxxxx but should apply on current tip/master without much difficulty. There are a few build fixes for Sparc64, PowerPC64 and s390. Especially the Sparc one I'm not sure about.