Messages in this thread | | | Date | Fri, 20 May 2022 07:52:36 -0700 | From | Guenter Roeck <> | Subject | Re: [PATCH] m68k: atari: Make Atari ROM port I/O write macros return void |
| |
On 5/20/22 07:32, Geert Uytterhoeven wrote: > The macros implementing Atari ROM port I/O writes do not cast away their > output, unlike similar implementations for other I/O buses. > When they are combined using conditional expressions in the definitions of > outb() and friends, this triggers sparse warnings like: > > drivers/net/appletalk/cops.c:382:17: error: incompatible types in conditional expression (different base types): > drivers/net/appletalk/cops.c:382:17: unsigned char > drivers/net/appletalk/cops.c:382:17: void > > Fix this by adding casts to "void". > > Reported-by: kernel test robot <lkp@intel.com> > Reported-by: Guenter Roeck <linux@roeck-us.net> > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> --- > Survived m68k/allmodconfig. > To be queued in the m68k tree for v5.19. > > Removing the casts instead causes issues with functions propagating void > return values (return expression in void function), which BTW sparse > complains about, too.
We live and learn. I didn't even know that this was valid syntax. I thought it might be easier to just fix that code, but coccinelle reports that there are hundreds of places in the kernel where this is done. Outch.
Guenter
| |