diff mbox series

wifi: rtl8xxxu: fix txdw7 assignment of TX DESC v3

Message ID 20230119113146.9640-1-pkshih@realtek.com
State New
Headers show
Series wifi: rtl8xxxu: fix txdw7 assignment of TX DESC v3 | expand

Commit Message

Ping-Ke Shih Jan. 19, 2023, 11:31 a.m. UTC
Type of txdw7 is __le16, so assign __le32 is wrong. Also, the
TXDESC_ANTENNA_SELECT_C is defined for __le32, so shift 16 bits to fit
the value. Compile test only.

sparse warnings: (new ones prefixed by >>)
>> rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |=
>> rtl8xxxu_core.c:5198:24: sparse:    left side has type restricted __le16
>> rtl8xxxu_core.c:5198:24: sparse:    right side has type restricted __le32

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bitterblue Smith Jan. 22, 2023, 3:17 p.m. UTC | #1
On 19/01/2023 13:31, Ping-Ke Shih wrote:
> Type of txdw7 is __le16, so assign __le32 is wrong. Also, the
> TXDESC_ANTENNA_SELECT_C is defined for __le32, so shift 16 bits to fit
> the value. Compile test only.
> 
> sparse warnings: (new ones prefixed by >>)
>>> rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |=
>>> rtl8xxxu_core.c:5198:24: sparse:    left side has type restricted __le16
>>> rtl8xxxu_core.c:5198:24: sparse:    right side has type restricted __le32
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> ---
>  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> index 35dc777c1fba8..0869b95f1b3f3 100644
> --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> @@ -5250,7 +5250,7 @@ rtl8xxxu_fill_txdesc_v3(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
>  
>  	tx_desc->txdw2 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_A |
>  				      TXDESC_ANTENNA_SELECT_B);
> -	tx_desc->txdw7 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_C);
> +	tx_desc->txdw7 |= cpu_to_le16(TXDESC_ANTENNA_SELECT_C >> 16);
>  }
>  
>  static void rtl8xxxu_tx(struct ieee80211_hw *hw,

Tested-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Kalle Valo Feb. 13, 2023, 5:25 p.m. UTC | #2
Ping-Ke Shih <pkshih@realtek.com> wrote:

> Type of txdw7 is __le16, so assign __le32 is wrong. Also, the
> TXDESC_ANTENNA_SELECT_C is defined for __le32, so shift 16 bits to fit
> the value. Compile test only.
> 
> sparse warnings: (new ones prefixed by >>)
> >> rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |=
> >> rtl8xxxu_core.c:5198:24: sparse:    left side has type restricted __le16
> >> rtl8xxxu_core.c:5198:24: sparse:    right side has type restricted __le32
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> Tested-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>

Patch applied to wireless-next.git, thanks.

6869ba4911df wifi: rtl8xxxu: fix txdw7 assignment of TX DESC v3
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index 35dc777c1fba8..0869b95f1b3f3 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -5250,7 +5250,7 @@  rtl8xxxu_fill_txdesc_v3(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
 
 	tx_desc->txdw2 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_A |
 				      TXDESC_ANTENNA_SELECT_B);
-	tx_desc->txdw7 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_C);
+	tx_desc->txdw7 |= cpu_to_le16(TXDESC_ANTENNA_SELECT_C >> 16);
 }
 
 static void rtl8xxxu_tx(struct ieee80211_hw *hw,