Subject: Re: [PATCH] niu: Silence randstruct warnings

From: Jakub Kicinski <[email-masked]>
Date: Wed, 11 May 2022 15:16:47 -0700

On Tue, 10 May 2022 13:57:29 -0700 Kees Cook wrote:
> Clang randstruct gets upset when it sees struct addresspace (which is
> randomized) being assigned to a struct page (which is not randomized):
> 
> drivers/net/ethernet/sun/niu.c:3385:12: error: casting from randomized structure pointer type 'struct address_space *' to 'struct page *'
>                         *link = (struct page *) page->mapping;
>                                 ^
> 
> It looks like niu.c is looking for an in-line place to chain its allocated
> pages together and is overloading the "mapping" member, as it is unused.
> This is very non-standard, and is expected to be cleaned up in the
> future[1], but there is no "correct" way to handle it today.
> 
> No meaningful machine code changes result after this change, and source
> readability is improved.
> 
> Drop the randstruct exception now that there is no "confusing" cross-type
> assignment.
> 
> [1] https://lore.kernel.org/lkml/[email-masked]/
> 
> Cc: "Matthew Wilcox (Oracle)" <[email-masked]>
> Cc: Christoph Hellwig <[email-masked]>
> Cc: "David S. Miller" <[email-masked]>
> Cc: Jakub Kicinski <[email-masked]>
> Cc: Paolo Abeni <[email-masked]>
> Cc: Du Cheng <[email-masked]>
> Cc: Christophe JAILLET <[email-masked]>
> Cc: Vlastimil Babka <[email-masked]>
> Cc: William Kucharski <[email-masked]>
> Cc: Arnd Bergmann <[email-masked]>
> Cc: Nathan Chancellor <[email-masked]>
> Cc: [email-masked]
> Cc: [email-masked]
> Cc: [email-masked]
> Signed-off-by: Kees Cook <[email-masked]>

I presume you prefer to take this one via your tree too, so:

Acked-by: Jakub Kicinski <[email-masked]>