> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of
> Simon Horman
> Sent: Tuesday, May 19, 2026 10:04 PM
> To: Loktionov, Aleksandr <[email protected]>
> Cc: [email protected]; Nguyen, Anthony L
> <[email protected]>; [email protected]; Kubalewski,
> Arkadiusz <[email protected]>
> Subject: Re: [Intel-wired-lan] [PATCH iwl-next] iavf: convert crit_section to
> DECLARE_BITMAP
> 
> On Fri, May 15, 2026 at 08:38:36AM +0200, Aleksandr Loktionov wrote:
> > struct iavf_adapter::crit_section is a bit-lock container indexed by
> > values from enum iavf_critical_section_t (__IAVF_IN_REMOVE_TASK).
> > It is manipulated exclusively through the kernel atomic bitops API:
> > set_bit(), clear_bit(), test_bit(), test_and_set_bit().
> >
> > It is declared as a bare 'unsigned long' and every call site passes
> > '&adapter->crit_section'. That is functionally correct -- the bit
> > index is a compile-time enum value well below BITS_PER_LONG so
> > BIT_WORD(nr) is always 0 and only the singleton word is ever touched
> > -- but it relies on layout coincidence rather than on the documented
> > contract of the bitops API, which is defined in terms of 'unsigned
> > long *' arrays.
> >
> > Static analyzers that model the same contract flag every such call
> > site with ARRAY_VS_SINGLETON because the address of a scalar is passed
> > where an array pointer is expected.
> >
> > Convert the field to a proper bitmap using DECLARE_BITMAP() sized by a
> > new sentinel __IAVF_CRIT_SECTION_NBITS at the end of the enum. The
> > underlying storage is unchanged (a single unsigned long word on every
> > architecture Linux supports), so there is no functional or ABI change;
> > the type simply becomes 'unsigned long[1]' which matches what the
> > bitops API expects and silences the analyzer warnings permanently.
> >
> > Drop the leading '&' at every call site, since arrays decay to
> > pointers.
> >
> > No functional change intended.
> >
> > Suggested-by: Arkadiusz Kubalewski <[email protected]>
> > Signed-off-by: Aleksandr Loktionov <[email protected]>
> 
> Reviewed-by: Simon Horman <[email protected]>

Tested-by: Patryk Holda <[email protected]

Reply via email to