On Mon, Nov 24, 2025 at 01:20:21PM -0800, Kees Cook wrote:
> Yes, -Wconversion (W=3) is mind-blowingly noisy, unfortunately.

This third one is interesting.

include/linux/jump_label.h:126:44: error: conversion to ‘long unsigned int’ 
from ‘s32’ {aka ‘int’} may change the sign of the result 
[-Werror=sign-conversion]
  126 |         return (unsigned long)&entry->code + entry->code;

static inline unsigned long jump_entry_code(const struct jump_entry *entry)
{
        return (unsigned long)&entry->code + entry->code;
}

The warning is ... not the best phrased, but in terms of divining the
programmer's intent, I genuinely don't know if this code is supposed
to zero-extend or sign-extend the s32 to unsigned long.  I know what it
*does*, but I don't know if it was *supposed to do that*.  So I wuold be
in favour of enabling this warning ... if we have a small army of people
on tap to get the kernel to build.  There's 374 lines of errors to fix
from the header files included by scripts/mod/devicetable-offsets.s alone.

Reply via email to