OSDN Git Service

staging: rtl8192u: fix a dubious looking mask before a shift
authorColin Ian King <colin.king@canonical.com>
Thu, 16 Jul 2020 15:47:20 +0000 (16:47 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Jul 2020 10:08:44 +0000 (12:08 +0200)
Currently the masking of ret with 0xff and followed by a right shift
of 8 bits always leaves a zero result.  It appears the mask of 0xff
is incorrect and should be 0xff00, but I don't have the hardware to
test this. Fix this to mask the upper 8 bits before shifting.

[ Not tested ]

Addresses-Coverity: ("Operands don't affect result")
Fixes: 8fc8598e61f6 ("Staging: Added Realtek rtl8192u driver to staging")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20200716154720.1710252-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8192u/r8192U_core.c

index fcfb902..6ec6518 100644 (file)
@@ -2374,7 +2374,7 @@ static int rtl8192_read_eeprom_info(struct net_device *dev)
                                ret = eprom_read(dev, (EEPROM_TX_PW_INDEX_CCK >> 1));
                                if (ret < 0)
                                        return ret;
-                               priv->EEPROMTxPowerLevelCCK = ((u16)ret & 0xff) >> 8;
+                               priv->EEPROMTxPowerLevelCCK = ((u16)ret & 0xff00) >> 8;
                        } else
                                priv->EEPROMTxPowerLevelCCK = 0x10;
                        RT_TRACE(COMP_EPROM, "CCK Tx Power Levl: 0x%02x\n", priv->EEPROMTxPowerLevelCCK);