Messages in this thread | | | Date | Tue, 23 Mar 2021 08:35:59 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH] static_call: fix function type mismatch |
| |
On Mon, Mar 22, 2021 at 10:18:17PM +0100, Arnd Bergmann wrote:
> > Steve is correct. Also, why is that warning correct? On x86 we return in > > RAX, and using int will simply not inspect the upper 32 bits there. > > I think the code works correctly on all architectures we support because > both 'int' and 'long' are returned in a register with any unused bits cleared. > It is however undefined behavior in C because 'int' and 'long' are not > compatible types, and the calling conventions don't have to allow this.
Then please kill the warning, it's bullshit.
> > And I'm fairly sure I had a pointer user somewhere recently. > > I've only tested my series with 5.12-rc so far, but don't get any other > such warnings. Maybe it's in linux-next?
No, it's in Linus' tree, see commit:
c8e2fe13d1d1 ("x86/perf: Use RET0 as default for guest_get_msrs to handle "no PMU" case")
| |