On Wed, Apr 05, 2023 at 08:02:37PM +0200, Simon Horman wrote: > On Wed, Apr 05, 2023 at 01:34:11PM -0400, Sean Anderson wrote: > > On 4/5/23 13:29, Simon Horman wrote: > > > A recent rearrangement of includes has lead to a problem on m68k > > > as flagged by the kernel test robot. > > > > > > Resolve this by moving the block asm includes to below linux includes. > > > A side effect i that non-Sparc asm includes are now immediately > > > before Sparc asm includes, which seems nice. > > > > > > Using sparse v0.6.4 I was able to reproduce this problem as follows > > > using the config provided by the kernel test robot: > > > > > > $ wget https://download.01.org/0day-ci/archive/20230404/202304041748.0sQc4K4l-lkp@xxxxxxxxx/config > > > $ cp config .config > > > $ make ARCH=m68k oldconfig > > > $ make ARCH=m68k C=2 M=drivers/net/ethernet/sun > > > CC [M] drivers/net/ethernet/sun/sunhme.o > > > In file included from drivers/net/ethernet/sun/sunhme.c:19: > > > ./arch/m68k/include/asm/irq.h:78:11: error: expected ‘;’ before ‘void’ > > > 78 | asmlinkage void do_IRQ(int irq, struct pt_regs *regs); > > > | ^~~~~ > > > | ; > > > ./arch/m68k/include/asm/irq.h:78:40: warning: ‘struct pt_regs’ declared inside parameter list will not be visible outside of this definition or declaration > > > 78 | asmlinkage void do_IRQ(int irq, struct pt_regs *regs); > > > | ^~~~~~~ > > > > This seems like a problem with the header. m68k's asm/irq.h should include linux/interrupt.h before its declarations. > > Hi Sean, > > I do see your point. But TBH I'm unsure which way to go on this one. > Geert, do you have any input? We always include linux/* headers before asm/*. The "sorting" of headers in this way was inappropriate.