Re: sfc: an enumeration is not a bitmask

David Miller
2011-05-17T18:23:53Z

From: Ben Hutchings <bhutchings@solarflare.com>
Date: Tue, 17 May 2011 19:18:39 +0100

> On Tue, 2011-05-17 at 14:14 -0400, David Miller wrote:
>> Ben can you please get rid of "enum efx_fc_type"?
>>
>> drivers/net/sfc/mcdi_mac.c: In function ‘efx_mcdi_set_mac’:
>> drivers/net/sfc/mcdi_mac.c:36:2: warning: case value ‘3’ not in enumerated type ‘enum efx_fc_type’
>>
>> An enumeration is not a bitmask, instead it means one out of the set
>> of enumerated values will be used. This means that the warning
>> here about:
>>
>> switch (efx->wanted_fc) {
>> case EFX_FC_RX | EFX_FC_TX:
>>
>> is completely legitimate.
>
> I think this is common practice in C. I filed a bug regarding the
> warning at <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46457>, which
> has not yet been resolved either way.

I've been seeing this warning for at least a year, it could take yet
another year before it's "resolved" in a way that people will see the
warning go away on their computers, more likely longer.

I'm not waiting a year, or more, for something as trivial as this
warning to get cured, please fix this the way that I asked.

Thanks.