On Mon, Mar 22, 2021 at 10:42:24PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <[email protected]> > > The __static_call_return0() function is declared to return a 'long', > while it aliases a couple of functions that all return 'int'. When > building with 'make W=1', gcc warns about this: > > kernel/sched/core.c:5420:37: error: cast between incompatible function types > from 'long int (*)(void)' to 'int (*)(void)' [-Werror=cast-function-type] > 5420 | static_call_update(might_resched, (typeof(&__cond_resched)) > __static_call_return0); > > Change all these function to return 'long' as well, but remove the cast to > ensure we get a warning if any of the types ever change.
I still think it's utter batshit. Please explain which architecture ABI is affected and why the warning is sane.

