2020-06-04 00:58:11

by Larry Finger

[permalink] [raw]
Subject: [PATCH 0/2] rtlwifi: Fix some Sparse warnings concerning endianess

While investating an unrelated Sparse issue, some endian-related issues
were found in rtlwifi. Although it is unlikely that this hardware will
ever be mated to a big-endian host, the issues need to be corrected.

These issues do not cause incorrect code to be generated on little-endian
hosts, thus there is no urgency in their implementation.

Signed-off-by: Larry Finger <[email protected]>

Larry Finger (2):
rtlwifi: Fix endian issue in ps.c
rtlwifi: rtl8188ee: Fix endian issue

drivers/net/wireless/realtek/rtlwifi/ps.c | 12 ++++++------
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)

--
2.26.2


2020-06-04 00:58:12

by Larry Finger

[permalink] [raw]
Subject: [PATCH 2/2] rtlwifi: rtl8188ee: Fix endian issue

Sparse reports the following issue:

CHECK drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c:500:26: warning: incorrect type in initializer (different base types)
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c:500:26: expected restricted __le32 [usertype] *pdesc
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c:500:26: got unsigned int [usertype] *

Signed-off-by: Larry Finger <[email protected]>
---
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
index aa2e9e88be53..a5d2d6ece8db 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
@@ -497,7 +497,7 @@ void rtl88ee_tx_fill_desc(struct ieee80211_hw *hw,
dma_addr_t mapping;
u8 bw_40 = 0;
u8 short_gi = 0;
- __le32 *pdesc = (u32 *)pdesc8;
+ __le32 *pdesc = (__le32 *)pdesc8;

if (mac->opmode == NL80211_IFTYPE_STATION) {
bw_40 = mac->bw_40;
--
2.26.2

2020-06-04 00:58:35

by Larry Finger

[permalink] [raw]
Subject: [PATCH 1/2] rtlwifi: Fix endian issue in ps.c

Sparse reports the following endian issues:

CHECK drivers/net/wireless/realtek/rtlwifi/ps.c
drivers/net/wireless/realtek/rtlwifi/ps.c:772:42: warning: restricted __le32 degrades to integer
drivers/net/wireless/realtek/rtlwifi/ps.c:772:42: warning: cast to restricted __le32
drivers/net/wireless/realtek/rtlwifi/ps.c:775:42: warning: restricted __le32 degrades to integer
drivers/net/wireless/realtek/rtlwifi/ps.c:775:42: warning: cast to restricted __le32
drivers/net/wireless/realtek/rtlwifi/ps.c:778:42: warning: restricted __le32 degrades to integer
drivers/net/wireless/realtek/rtlwifi/ps.c:778:42: warning: cast to restricted __le32
drivers/net/wireless/realtek/rtlwifi/ps.c:867:42: warning: restricted __le32 degrades to integer
drivers/net/wireless/realtek/rtlwifi/ps.c:867:42: warning: cast to restricted __le32
drivers/net/wireless/realtek/rtlwifi/ps.c:870:42: warning: restricted __le32 degrades to integer
drivers/net/wireless/realtek/rtlwifi/ps.c:870:42: warning: cast to restricted __le32
drivers/net/wireless/realtek/rtlwifi/ps.c:873:42: warning: restricted __le32 degrades to integer
drivers/net/wireless/realtek/rtlwifi/ps.c:873:42: warning: cast to restricted __le32

Signed-off-by: Larry Finger <[email protected]>
---
drivers/net/wireless/realtek/rtlwifi/ps.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/ps.c b/drivers/net/wireless/realtek/rtlwifi/ps.c
index bc0ac96ee615..90f92728e16a 100644
--- a/drivers/net/wireless/realtek/rtlwifi/ps.c
+++ b/drivers/net/wireless/realtek/rtlwifi/ps.c
@@ -769,13 +769,13 @@ static void rtl_p2p_noa_ie(struct ieee80211_hw *hw, void *data,
*(u8 *)(ie + index);
index += 1;
p2pinfo->noa_duration[i] =
- le32_to_cpu(*(__le32 *)ie + index);
+ le32_to_cpu(*(__le32 *)(ie + index));
index += 4;
p2pinfo->noa_interval[i] =
- le32_to_cpu(*(__le32 *)ie + index);
+ le32_to_cpu(*(__le32 *)(ie + index));
index += 4;
p2pinfo->noa_start_time[i] =
- le32_to_cpu(*(__le32 *)ie + index);
+ le32_to_cpu(*(__le32 *)(ie + index));
index += 4;
}

@@ -864,13 +864,13 @@ static void rtl_p2p_action_ie(struct ieee80211_hw *hw, void *data,
*(u8 *)(ie + index);
index += 1;
p2pinfo->noa_duration[i] =
- le32_to_cpu(*(__le32 *)ie + index);
+ le32_to_cpu(*(__le32 *)(ie + index));
index += 4;
p2pinfo->noa_interval[i] =
- le32_to_cpu(*(__le32 *)ie + index);
+ le32_to_cpu(*(__le32 *)(ie + index));
index += 4;
p2pinfo->noa_start_time[i] =
- le32_to_cpu(*(__le32 *)ie + index);
+ le32_to_cpu(*(__le32 *)(ie + index));
index += 4;
}

--
2.26.2

2020-07-15 11:25:48

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/2] rtlwifi: Fix endian issue in ps.c

Larry Finger <[email protected]> wrote:

> Sparse reports the following endian issues:
>
> CHECK drivers/net/wireless/realtek/rtlwifi/ps.c
> drivers/net/wireless/realtek/rtlwifi/ps.c:772:42: warning: restricted __le32 degrades to integer
> drivers/net/wireless/realtek/rtlwifi/ps.c:772:42: warning: cast to restricted __le32
> drivers/net/wireless/realtek/rtlwifi/ps.c:775:42: warning: restricted __le32 degrades to integer
> drivers/net/wireless/realtek/rtlwifi/ps.c:775:42: warning: cast to restricted __le32
> drivers/net/wireless/realtek/rtlwifi/ps.c:778:42: warning: restricted __le32 degrades to integer
> drivers/net/wireless/realtek/rtlwifi/ps.c:778:42: warning: cast to restricted __le32
> drivers/net/wireless/realtek/rtlwifi/ps.c:867:42: warning: restricted __le32 degrades to integer
> drivers/net/wireless/realtek/rtlwifi/ps.c:867:42: warning: cast to restricted __le32
> drivers/net/wireless/realtek/rtlwifi/ps.c:870:42: warning: restricted __le32 degrades to integer
> drivers/net/wireless/realtek/rtlwifi/ps.c:870:42: warning: cast to restricted __le32
> drivers/net/wireless/realtek/rtlwifi/ps.c:873:42: warning: restricted __le32 degrades to integer
> drivers/net/wireless/realtek/rtlwifi/ps.c:873:42: warning: cast to restricted __le32
>
> Signed-off-by: Larry Finger <[email protected]>

2 patches applied to wireless-drivers-next.git, thanks.

0df9edb37f3c rtlwifi: Fix endian issue in ps.c
97794e638cf5 rtlwifi: rtl8188ee: Fix endian issue

--
https://patchwork.kernel.org/patch/11586759/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches