2024-03-20 17:07:02

by Kalle Valo

[permalink] [raw]
Subject: [PATCH 0/3] wifi: ath9k: fix remaining sparse warnings

From: Kalle Valo <[email protected]>

There were few sparse warnings in ath9k. After this patchset ath9k is sparse
warning free.

Please review.

Kalle Valo (3):
wifi: ath9k: ath9k_set_moredata(): fix sparse warnings
wifi: ath9k: fix ath9k_use_msi declaration
wifi: ath9k: eeprom: fix sparse endian warnings

drivers/net/wireless/ath/ath9k/ath9k.h | 1 +
drivers/net/wireless/ath/ath9k/eeprom_4k.c | 2 +-
drivers/net/wireless/ath/ath9k/eeprom_9287.c | 4 ++--
drivers/net/wireless/ath/ath9k/eeprom_def.c | 6 +++---
drivers/net/wireless/ath/ath9k/pci.c | 2 --
drivers/net/wireless/ath/ath9k/xmit.c | 10 ++++++++--
6 files changed, 15 insertions(+), 10 deletions(-)


base-commit: 4b2f0ce6f2fe0fd906d408a01e494b85c272c7d7
--
2.39.2



2024-03-20 17:07:07

by Kalle Valo

[permalink] [raw]
Subject: [PATCH 1/3] wifi: ath9k: ath9k_set_moredata(): fix sparse warnings

From: Kalle Valo <[email protected]>

Sparse warns:

drivers/net/wireless/ath/ath9k/xmit.c:1677:20: warning: incorrect type in initializer (different base types)
drivers/net/wireless/ath/ath9k/xmit.c:1677:20: expected unsigned short [usertype] mask
drivers/net/wireless/ath/ath9k/xmit.c:1677:20: got restricted __le16 [usertype]
drivers/net/wireless/ath/ath9k/xmit.c:1681:17: warning: restricted __le16 degrades to integer
drivers/net/wireless/ath/ath9k/xmit.c:1682:42: warning: restricted __le16 degrades to integer
drivers/net/wireless/ath/ath9k/xmit.c:1682:36: warning: incorrect type in assignment (different base types)
drivers/net/wireless/ath/ath9k/xmit.c:1682:36: expected restricted __le16 [usertype] frame_control
drivers/net/wireless/ath/ath9k/xmit.c:1682:36: got int

Fix ath9k_set_moredata() to use __le16 with masks and use if statement instead
of multiply operator.

Compile tested only.

Signed-off-by: Kalle Valo <[email protected]>
---
drivers/net/wireless/ath/ath9k/xmit.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index d519b676a109..35aa47a9db90 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1674,8 +1674,14 @@ static void
ath9k_set_moredata(struct ath_softc *sc, struct ath_buf *bf, bool val)
{
struct ieee80211_hdr *hdr;
- u16 mask = cpu_to_le16(IEEE80211_FCTL_MOREDATA);
- u16 mask_val = mask * val;
+ __le16 mask, mask_val;
+
+ mask = cpu_to_le16(IEEE80211_FCTL_MOREDATA);
+
+ if (val)
+ mask_val = mask;
+ else
+ mask_val = 0;

hdr = (struct ieee80211_hdr *) bf->bf_mpdu->data;
if ((hdr->frame_control & mask) != mask_val) {
--
2.39.2


2024-03-20 17:07:12

by Kalle Valo

[permalink] [raw]
Subject: [PATCH 2/3] wifi: ath9k: fix ath9k_use_msi declaration

From: Kalle Valo <[email protected]>

Sparse warns:

drivers/net/wireless/ath/ath9k/init.c:79:5: warning: symbol 'ath9k_use_msi' was not declared. Should it be static?

Move the extern to ath9k.h so that it's visible in init.c.

Compile tested only.

Signed-off-by: Kalle Valo <[email protected]>
---
drivers/net/wireless/ath/ath9k/ath9k.h | 1 +
drivers/net/wireless/ath/ath9k/pci.c | 2 --
2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 668fc07b3073..29ca65a732a6 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -39,6 +39,7 @@ extern int ath9k_modparam_nohwcrypt;
extern int ath9k_led_blink;
extern bool is_ath9k_unloaded;
extern int ath9k_use_chanctx;
+extern int ath9k_use_msi;

/*************************/
/* Descriptor Management */
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
index e655cd8bbf94..1ff53520f0a3 100644
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -21,8 +21,6 @@
#include <linux/module.h>
#include "ath9k.h"

-extern int ath9k_use_msi;
-
static const struct pci_device_id ath_pci_id_table[] = {
{ PCI_VDEVICE(ATHEROS, 0x0023) }, /* PCI */
{ PCI_VDEVICE(ATHEROS, 0x0024) }, /* PCI-E */
--
2.39.2


2024-03-20 17:07:16

by Kalle Valo

[permalink] [raw]
Subject: [PATCH 3/3] wifi: ath9k: eeprom: fix sparse endian warnings

From: Kalle Valo <[email protected]>

Sparse warns:

drivers/net/wireless/ath/ath9k/eeprom_9287.c:82:9: warning: cast to restricted __le16
drivers/net/wireless/ath/ath9k/eeprom_9287.c:82:9: warning: cast from restricted __le32
drivers/net/wireless/ath/ath9k/eeprom_9287.c:83:9: warning: cast to restricted __le16
drivers/net/wireless/ath/ath9k/eeprom_9287.c:83:9: warning: cast from restricted __le32
drivers/net/wireless/ath/ath9k/eeprom_def.c:138:9: warning: cast to restricted __le16
drivers/net/wireless/ath/ath9k/eeprom_def.c:138:9: warning: cast from restricted __le32
drivers/net/wireless/ath/ath9k/eeprom_def.c:139:9: warning: cast to restricted __le16
drivers/net/wireless/ath/ath9k/eeprom_def.c:139:9: warning: cast from restricted __le32
drivers/net/wireless/ath/ath9k/eeprom_def.c:140:9: warning: cast to restricted __le16
drivers/net/wireless/ath/ath9k/eeprom_def.c:140:9: warning: cast from restricted __le32
drivers/net/wireless/ath/ath9k/eeprom_4k.c:79:9: warning: cast to restricted __le16
drivers/net/wireless/ath/ath9k/eeprom_4k.c:79:9: warning: cast from restricted __le32

antCtrlChain is an array of __le32 so le32_to_cpu() needs to be used.

Compile tested only.

Signed-off-by: Kalle Valo <[email protected]>
---
drivers/net/wireless/ath/ath9k/eeprom_4k.c | 2 +-
drivers/net/wireless/ath/ath9k/eeprom_9287.c | 4 ++--
drivers/net/wireless/ath/ath9k/eeprom_def.c | 6 +++---
3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/eeprom_4k.c b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
index e8c2cc03be0c..27b860b0c769 100644
--- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c
+++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
@@ -76,7 +76,7 @@ static bool ath9k_hw_4k_fill_eeprom(struct ath_hw *ah)
static u32 ath9k_dump_4k_modal_eeprom(char *buf, u32 len, u32 size,
struct modal_eep_4k_header *modal_hdr)
{
- PR_EEP("Chain0 Ant. Control", le16_to_cpu(modal_hdr->antCtrlChain[0]));
+ PR_EEP("Chain0 Ant. Control", le32_to_cpu(modal_hdr->antCtrlChain[0]));
PR_EEP("Ant. Common Control", le32_to_cpu(modal_hdr->antCtrlCommon));
PR_EEP("Chain0 Ant. Gain", modal_hdr->antennaGainCh[0]);
PR_EEP("Switch Settle", modal_hdr->switchSettling);
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_9287.c b/drivers/net/wireless/ath/ath9k/eeprom_9287.c
index fd5312c2a7e3..d85472ee4d85 100644
--- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c
+++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c
@@ -79,8 +79,8 @@ static bool ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
static u32 ar9287_dump_modal_eeprom(char *buf, u32 len, u32 size,
struct modal_eep_ar9287_header *modal_hdr)
{
- PR_EEP("Chain0 Ant. Control", le16_to_cpu(modal_hdr->antCtrlChain[0]));
- PR_EEP("Chain1 Ant. Control", le16_to_cpu(modal_hdr->antCtrlChain[1]));
+ PR_EEP("Chain0 Ant. Control", le32_to_cpu(modal_hdr->antCtrlChain[0]));
+ PR_EEP("Chain1 Ant. Control", le32_to_cpu(modal_hdr->antCtrlChain[1]));
PR_EEP("Ant. Common Control", le32_to_cpu(modal_hdr->antCtrlCommon));
PR_EEP("Chain0 Ant. Gain", modal_hdr->antennaGainCh[0]);
PR_EEP("Chain1 Ant. Gain", modal_hdr->antennaGainCh[1]);
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_def.c b/drivers/net/wireless/ath/ath9k/eeprom_def.c
index 7685f8ab371e..84b31caf8ca6 100644
--- a/drivers/net/wireless/ath/ath9k/eeprom_def.c
+++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c
@@ -135,9 +135,9 @@ static bool ath9k_hw_def_fill_eeprom(struct ath_hw *ah)
static u32 ath9k_def_dump_modal_eeprom(char *buf, u32 len, u32 size,
struct modal_eep_header *modal_hdr)
{
- PR_EEP("Chain0 Ant. Control", le16_to_cpu(modal_hdr->antCtrlChain[0]));
- PR_EEP("Chain1 Ant. Control", le16_to_cpu(modal_hdr->antCtrlChain[1]));
- PR_EEP("Chain2 Ant. Control", le16_to_cpu(modal_hdr->antCtrlChain[2]));
+ PR_EEP("Chain0 Ant. Control", le32_to_cpu(modal_hdr->antCtrlChain[0]));
+ PR_EEP("Chain1 Ant. Control", le32_to_cpu(modal_hdr->antCtrlChain[1]));
+ PR_EEP("Chain2 Ant. Control", le32_to_cpu(modal_hdr->antCtrlChain[2]));
PR_EEP("Ant. Common Control", le32_to_cpu(modal_hdr->antCtrlCommon));
PR_EEP("Chain0 Ant. Gain", modal_hdr->antennaGainCh[0]);
PR_EEP("Chain1 Ant. Gain", modal_hdr->antennaGainCh[1]);
--
2.39.2


2024-03-20 17:34:53

by Jeff Johnson

[permalink] [raw]
Subject: Re: [PATCH 2/3] wifi: ath9k: fix ath9k_use_msi declaration

On 3/20/2024 10:06 AM, Kalle Valo wrote:
> From: Kalle Valo <[email protected]>
>
> Sparse warns:
>
> drivers/net/wireless/ath/ath9k/init.c:79:5: warning: symbol 'ath9k_use_msi' was not declared. Should it be static?
>
> Move the extern to ath9k.h so that it's visible in init.c.
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>
Acked-by: Jeff Johnson <[email protected]>


2024-03-20 17:34:58

by Jeff Johnson

[permalink] [raw]
Subject: Re: [PATCH 3/3] wifi: ath9k: eeprom: fix sparse endian warnings

On 3/20/2024 10:06 AM, Kalle Valo wrote:
> From: Kalle Valo <[email protected]>
>
> Sparse warns:
>
> drivers/net/wireless/ath/ath9k/eeprom_9287.c:82:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_9287.c:82:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_9287.c:83:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_9287.c:83:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_def.c:138:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_def.c:138:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_def.c:139:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_def.c:139:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_def.c:140:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_def.c:140:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_4k.c:79:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_4k.c:79:9: warning: cast from restricted __le32
>
> antCtrlChain is an array of __le32 so le32_to_cpu() needs to be used.
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>
Acked-by: Jeff Johnson <[email protected]>


2024-03-20 17:35:02

by Jeff Johnson

[permalink] [raw]
Subject: Re: [PATCH 1/3] wifi: ath9k: ath9k_set_moredata(): fix sparse warnings

On 3/20/2024 10:06 AM, Kalle Valo wrote:
> From: Kalle Valo <[email protected]>
>
> Sparse warns:
>
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: warning: incorrect type in initializer (different base types)
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: expected unsigned short [usertype] mask
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: got restricted __le16 [usertype]
> drivers/net/wireless/ath/ath9k/xmit.c:1681:17: warning: restricted __le16 degrades to integer
> drivers/net/wireless/ath/ath9k/xmit.c:1682:42: warning: restricted __le16 degrades to integer
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: expected restricted __le16 [usertype] frame_control
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: got int
>
> Fix ath9k_set_moredata() to use __le16 with masks and use if statement instead
> of multiply operator.
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>
Acked-by: Jeff Johnson <[email protected]>



2024-03-21 18:38:09

by Toke Høiland-Jørgensen

[permalink] [raw]
Subject: Re: [PATCH 3/3] wifi: ath9k: eeprom: fix sparse endian warnings

Kalle Valo <[email protected]> writes:

> From: Kalle Valo <[email protected]>
>
> Sparse warns:
>
> drivers/net/wireless/ath/ath9k/eeprom_9287.c:82:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_9287.c:82:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_9287.c:83:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_9287.c:83:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_def.c:138:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_def.c:138:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_def.c:139:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_def.c:139:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_def.c:140:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_def.c:140:9: warning: cast from restricted __le32
> drivers/net/wireless/ath/ath9k/eeprom_4k.c:79:9: warning: cast to restricted __le16
> drivers/net/wireless/ath/ath9k/eeprom_4k.c:79:9: warning: cast from restricted __le32
>
> antCtrlChain is an array of __le32 so le32_to_cpu() needs to be used.
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>

Acked-by: Toke Høiland-Jørgensen <[email protected]>

2024-03-21 18:46:45

by Toke Høiland-Jørgensen

[permalink] [raw]
Subject: Re: [PATCH 1/3] wifi: ath9k: ath9k_set_moredata(): fix sparse warnings

Kalle Valo <[email protected]> writes:

> From: Kalle Valo <[email protected]>
>
> Sparse warns:
>
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: warning: incorrect type in initializer (different base types)
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: expected unsigned short [usertype] mask
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: got restricted __le16 [usertype]
> drivers/net/wireless/ath/ath9k/xmit.c:1681:17: warning: restricted __le16 degrades to integer
> drivers/net/wireless/ath/ath9k/xmit.c:1682:42: warning: restricted __le16 degrades to integer
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: expected restricted __le16 [usertype] frame_control
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: got int
>
> Fix ath9k_set_moredata() to use __le16 with masks and use if statement instead
> of multiply operator.
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>

Acked-by: Toke Høiland-Jørgensen <[email protected]>

2024-03-21 18:47:50

by Toke Høiland-Jørgensen

[permalink] [raw]
Subject: Re: [PATCH 2/3] wifi: ath9k: fix ath9k_use_msi declaration

Kalle Valo <[email protected]> writes:

> From: Kalle Valo <[email protected]>
>
> Sparse warns:
>
> drivers/net/wireless/ath/ath9k/init.c:79:5: warning: symbol 'ath9k_use_msi' was not declared. Should it be static?
>
> Move the extern to ath9k.h so that it's visible in init.c.
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>

Acked-by: Toke Høiland-Jørgensen <[email protected]>

2024-03-25 14:52:19

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/3] wifi: ath9k: ath9k_set_moredata(): fix sparse warnings

Kalle Valo <[email protected]> wrote:

> Sparse warns:
>
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: warning: incorrect type in initializer (different base types)
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: expected unsigned short [usertype] mask
> drivers/net/wireless/ath/ath9k/xmit.c:1677:20: got restricted __le16 [usertype]
> drivers/net/wireless/ath/ath9k/xmit.c:1681:17: warning: restricted __le16 degrades to integer
> drivers/net/wireless/ath/ath9k/xmit.c:1682:42: warning: restricted __le16 degrades to integer
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: expected restricted __le16 [usertype] frame_control
> drivers/net/wireless/ath/ath9k/xmit.c:1682:36: got int
>
> Fix ath9k_set_moredata() to use __le16 with masks and use if statement instead
> of multiply operator.
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>
> Acked-by: Jeff Johnson <[email protected]>
> Acked-by: Toke Høiland-Jørgensen <[email protected]>

3 patches applied to ath-next branch of ath.git, thanks.

e5f6c85ac16f wifi: ath9k: ath9k_set_moredata(): fix sparse warnings
a854028e7bd8 wifi: ath9k: fix ath9k_use_msi declaration
f09e3b774fe8 wifi: ath9k: eeprom: fix sparse endian warnings

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

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