Patch "mt7601u: fix always true expression" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    mt7601u: fix always true expression

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     mt7601u-fix-always-true-expression.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8dfc6e1ba0e0414aea2ecd88bbb0ffb70957f2f5
Author: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Date:   Thu Feb 25 18:32:41 2021 +0000

    mt7601u: fix always true expression
    
    [ Upstream commit 87fce88658ba047ae62e83497d3f3c5dc22fa6f9 ]
    
    Currently the expression ~nic_conf1 is always true because nic_conf1
    is a u16 and according to 6.5.3.3 of the C standard the ~ operator
    promotes the u16 to an integer before flipping all the bits. Thus
    the top 16 bits of the integer result are all set so the expression
    is always true.  If the intention was to flip all the bits of nic_conf1
    then casting the integer result back to a u16 is a suitabel fix.
    
    Interestingly static analyzers seem to thing a bitwise ! should be
    used instead of ~ for this scenario, so I think the original intent
    of the expression may need some extra consideration.
    
    Addresses-Coverity: ("Logical vs. bitwise operator")
    Fixes: c869f77d6abb ("add mt7601u driver")
    Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
    Acked-by: Jakub Kicinski <kubakici@xxxxx>
    Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20210225183241.1002129-1-colin.king@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/mediatek/mt7601u/eeprom.c b/drivers/net/wireless/mediatek/mt7601u/eeprom.c
index c868582c5d22..aa3b64902cf9 100644
--- a/drivers/net/wireless/mediatek/mt7601u/eeprom.c
+++ b/drivers/net/wireless/mediatek/mt7601u/eeprom.c
@@ -99,7 +99,7 @@ mt7601u_has_tssi(struct mt7601u_dev *dev, u8 *eeprom)
 {
 	u16 nic_conf1 = get_unaligned_le16(eeprom + MT_EE_NIC_CONF_1);
 
-	return ~nic_conf1 && (nic_conf1 & MT_EE_NIC_CONF_1_TX_ALC_EN);
+	return (u16)~nic_conf1 && (nic_conf1 & MT_EE_NIC_CONF_1_TX_ALC_EN);
 }
 
 static void



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux