OSDN Git Service

carl9170: fix missing bit-wise or operator for tx_params
authorColin Ian King <colin.i.king@gmail.com>
Tue, 25 Jan 2022 00:44:06 +0000 (00:44 +0000)
committerKalle Valo <quic_kvalo@quicinc.com>
Mon, 31 Jan 2022 14:13:47 +0000 (16:13 +0200)
Currently tx_params is being re-assigned with a new value and the
previous setting IEEE80211_HT_MCS_TX_RX_DIFF is being overwritten.
The assignment operator is incorrect, the original intent was to
bit-wise or the value in. Fix this by replacing the = operator
with |= instead.

Kudos to Christian Lamparter for suggesting the correct fix.

Fixes: fe8ee9ad80b2 ("carl9170: mac80211 glue and command interface")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Cc: <Stable@vger.kernel.org>
Acked-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220125004406.344422-1-colin.i.king@gmail.com
drivers/net/wireless/ath/carl9170/main.c

index 49f7ee1..2208ec8 100644 (file)
@@ -1914,7 +1914,7 @@ static int carl9170_parse_eeprom(struct ar9170 *ar)
                WARN_ON(!(tx_streams >= 1 && tx_streams <=
                        IEEE80211_HT_MCS_TX_MAX_STREAMS));
 
-               tx_params = (tx_streams - 1) <<
+               tx_params |= (tx_streams - 1) <<
                            IEEE80211_HT_MCS_TX_MAX_STREAMS_SHIFT;
 
                carl9170_band_2GHz.ht_cap.mcs.tx_params |= tx_params;