Re: [PATCH v3] kernel.h: Skip single-eval logic on literals in min()/max()

From: Linus Torvalds
Date: Sat Mar 10 2018 - 11:11:26 EST


On Sat, Mar 10, 2018 at 7:33 AM, Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>
> And sparse freaks out too:
>
> drivers/net/ethernet/via/via-velocity.c:97:26: sparse: incorrect
> type in initializer (different address spaces) @@ expected void
> *addr @@ got struct mac_regs [noderef] <avoid *addr @@

Actually, this seems a valid warning - it's assigning a __iomem
pointer to a regular void, and dropping the iomem in the process.

Sparse does *not* like VLA's, so what may be going on is that fixing
something VLA-related in your tree just makes sparse (correctly) check
something that it had given up on before.

So don't worry about the sparse ones, if they are new. They seem correct.

Linus