2022-01-24 12:10:53

by Colin Ian King

[permalink] [raw]
Subject: [PATCH] carl9170: remove redundant assignment to variable tx_params

Variable tx_params is being assigned a value that is never read, it
is being re-assigned a couple of statements later with a different
value. The assignment is redundant and can be removed.

Signed-off-by: Colin Ian King <[email protected]>
---
drivers/net/wireless/ath/carl9170/main.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
index 49f7ee1c912b..f392a2ac7e14 100644
--- a/drivers/net/wireless/ath/carl9170/main.c
+++ b/drivers/net/wireless/ath/carl9170/main.c
@@ -1909,8 +1909,6 @@ static int carl9170_parse_eeprom(struct ar9170 *ar)
tx_streams = hweight8(ar->eeprom.tx_mask);

if (rx_streams != tx_streams) {
- tx_params = IEEE80211_HT_MCS_TX_RX_DIFF;
-
WARN_ON(!(tx_streams >= 1 && tx_streams <=
IEEE80211_HT_MCS_TX_MAX_STREAMS));

--
2.33.1


2022-01-24 18:50:49

by Christian Lamparter

[permalink] [raw]
Subject: Re: [PATCH] carl9170: remove redundant assignment to variable tx_params

On 23/01/2022 19:27, Colin Ian King wrote:
> Variable tx_params is being assigned a value that is never read, it
> is being re-assigned a couple of statements later with a different
> value. The assignment is redundant and can be removed.

I think you found a bug instead. This affects 1x2 AR9170 devices.
That IEEE80211_HT_MCS_TX_RX_DIFF capability flag should not be lost.

From what I can tell, the next line (1917) after that WARN_ON(!(tx_streams >= ...)
that's still in the diff below:

tx_params = (tx_streams - 1) <<
IEEE80211_HT_MCS_TX_MAX_STREAMS_SHIFT;

needs a bitwise OR assignment operator instead of the direct assignment.

tx_params |= (tx_streams - 1) <<
IEEE80211_HT_MCS_TX_MAX_STREAMS_SHIFT;

can you please respin your patch and add stable?

Cheers,
Christian

>
> Signed-off-by: Colin Ian King <[email protected]>
> ---
> drivers/net/wireless/ath/carl9170/main.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
> index 49f7ee1c912b..f392a2ac7e14 100644
> --- a/drivers/net/wireless/ath/carl9170/main.c
> +++ b/drivers/net/wireless/ath/carl9170/main.c
> @@ -1909,8 +1909,6 @@ static int carl9170_parse_eeprom(struct ar9170 *ar)
> tx_streams = hweight8(ar->eeprom.tx_mask);
>
> if (rx_streams != tx_streams) {
> - tx_params = IEEE80211_HT_MCS_TX_RX_DIFF;
> -
> WARN_ON(!(tx_streams >= 1 && tx_streams <=
> IEEE80211_HT_MCS_TX_MAX_STREAMS));
>