Subject: Re: [PATCH net-next] net: sunhme: move asm includes to below linux includes

From: Simon Horman <[email-masked]>
Date: Wed, 5 Apr 2023 20:02:37 +0200

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/[email-masked]/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?

> --Sean
> 
> > Compile tested only.
> > 
> > Fixes: 1ff4f42aef60 ("net: sunhme: Alphabetize includes")
> > Reported-by: kernel test robot <[email-masked]>
> > Link: https://lore.kernel.org/oe-kbuild-all/[email-masked]/
> > Signed-off-by: Simon Horman <[email-masked]>
> > ---
> >   drivers/net/ethernet/sun/sunhme.c | 7 ++++---
> >   1 file changed, 4 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/sun/sunhme.c b/drivers/net/ethernet/sun/sunhme.c
> > index ec85aef35bf9..b93613cd1994 100644
> > --- a/drivers/net/ethernet/sun/sunhme.c
> > +++ b/drivers/net/ethernet/sun/sunhme.c
> > @@ -14,9 +14,6 @@
> >    *     argument : macaddr=0x00,0x10,0x20,0x30,0x40,0x50
> >    */
> > -#include <asm/byteorder.h>
> > -#include <asm/dma.h>
> > -#include <asm/irq.h>
> >   #include <linux/bitops.h>
> >   #include <linux/crc32.h>
> >   #include <linux/delay.h>
> > @@ -45,6 +42,10 @@
> >   #include <linux/types.h>
> >   #include <linux/uaccess.h>
> > +#include <asm/byteorder.h>
> > +#include <asm/dma.h>
> > +#include <asm/irq.h>
> > +
> >   #ifdef CONFIG_SPARC
> >   #include <asm/auxio.h>
> >   #include <asm/idprom.h>
> > 
>