Re: [PATCH] staging:kpc2000:Fix dubious x | !y sparse warning

From: Greg KH
Date: Thu Aug 01 2019 - 15:30:03 EST


On Thu, Aug 01, 2019 at 07:22:13PM +0000, Matt Sickler wrote:
> >-----Original Message-----
> >From: devel <driverdev-devel-bounces@xxxxxxxxxxxxxxxxxxxxxx> On Behalf Of Greg KH
> >Sent: Thursday, August 01, 2019 11:35 AM
> >To: Harsh Jain <harshjain32@xxxxxxxxx>
> >Cc: devel@xxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> >Subject: Re: [PATCH] staging:kpc2000:Fix dubious x | !y sparse warning
> >
> >On Thu, Aug 01, 2019 at 12:06:06AM +0530, Harsh Jain wrote:
> >> Bitwise OR(|) operation with 0 always yield same result.
> >> It fixes dubious x | !y sparse warning.
> >>
> >> Signed-off-by: Harsh Jain <harshjain32@xxxxxxxxx>
> >> ---
> >> drivers/staging/kpc2000/kpc2000_i2c.c | 16 +---------------
> >> 1 file changed, 1 insertion(+), 15 deletions(-)
> >>
> >> diff --git a/drivers/staging/kpc2000/kpc2000_i2c.c b/drivers/staging/kpc2000/kpc2000_i2c.c
> >> index b108da4..5f027d7c 100644
> >> --- a/drivers/staging/kpc2000/kpc2000_i2c.c
> >> +++ b/drivers/staging/kpc2000/kpc2000_i2c.c
> >> @@ -536,29 +536,15 @@ static u32 i801_func(struct i2c_adapter *adapter)
> >>
> >> u32 f =
> >> I2C_FUNC_I2C | /* 0x00000001 (I enabled this one) */
> >> - !I2C_FUNC_10BIT_ADDR | /* 0x00000002 */
> >> - !I2C_FUNC_PROTOCOL_MANGLING | /* 0x00000004 */
> >> ((priv->features & FEATURE_SMBUS_PEC) ? I2C_FUNC_SMBUS_PEC : 0) | /* 0x00000008 */
> >> - !I2C_FUNC_SMBUS_BLOCK_PROC_CALL | /* 0x00008000 */
> >> I2C_FUNC_SMBUS_QUICK | /* 0x00010000 */
> >> - !I2C_FUNC_SMBUS_READ_BYTE | /* 0x00020000 */
> >> - !I2C_FUNC_SMBUS_WRITE_BYTE | /* 0x00040000 */
> >> - !I2C_FUNC_SMBUS_READ_BYTE_DATA | /* 0x00080000 */
> >> - !I2C_FUNC_SMBUS_WRITE_BYTE_DATA | /* 0x00100000 */
> >> - !I2C_FUNC_SMBUS_READ_WORD_DATA | /* 0x00200000 */
> >> - !I2C_FUNC_SMBUS_WRITE_WORD_DATA | /* 0x00400000 */
> >> - !I2C_FUNC_SMBUS_PROC_CALL | /* 0x00800000 */
> >> - !I2C_FUNC_SMBUS_READ_BLOCK_DATA | /* 0x01000000 */
> >> - !I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | /* 0x02000000 */
> >
> >This is ok, it is showing you that these bits are explicitly being not
> >set. Which is good, now you can go through the list and see that all
> >are accounted for.
> >
> >So I think this should stay as-is, thanks.
>
> I was going to say the same thing, but I didn't know what the kernel style guideline was.
> Would Linus prefer this style or would commenting them out be preferred?
> Seems like the sparse warnings means the current style is not acceptable?
>

Sparse is just warning that you really are not doing anything here, in
case you think you are, as it's a common pattern for bugs.

So all should be fine, don't worry about it for now.

thanks,

greg k-h