Re: AW: [PATCH] amd64: Fix csum_partial_copy_generic()

From: Al Viro
Date: Mon Oct 23 2023 - 23:22:08 EST


On Mon, Oct 23, 2023 at 08:16:59AM +0000, David Laight wrote:
> From: Al Viro
> > Sent: 22 October 2023 12:12
> >
> > On Sun, Oct 22, 2023 at 11:03:39AM +0000, David Laight wrote:
> >
> > > > + return -1;
> > >
> > > If you are going to return -1 the return type should be signed.
> >
> > It's a perfectly valid C to have return -1 in a function that
> > returns unsigned long long (or any other unsigned type, really)...
>
> It is also valid C to return a pointer :-)

No, it is not. Conversions done for return are the same as for
assignments; in particular, conversion from any integer type to
any unsigned integer type is done by taking the value modulo
the range of target type. Conversion from pointer to an integer,
OTOH, is a constraint violation.

> I also suspect that sparse will complain massively and
> require a lot of the horrid (__force) casts.
> (They should really be a function so that they are completely
> ignored by the compiler - unless the compiler needs a cast as well.)

Why would sparse "complain massively" about operations with u64?
I realize that you've slapped "I suspect" in front of that
particular load of fertilizer, but... seriously, your output is
very hard to distinguish from ChatGPT drivel ;-/