diff mbox series

[v4] wifi: ath9k: fix printk specifier

Message ID 20230723040403.296723-1-dzm91@hust.edu.cn (mailing list archive)
State Accepted
Commit 061115fbfb2ce5870c9a004d68dc63138c07c782
Delegated to: Kalle Valo
Headers show
Series [v4] wifi: ath9k: fix printk specifier | expand

Commit Message

Dongliang Mu July 23, 2023, 4:04 a.m. UTC
Smatch reports:

ath_pci_probe() warn: argument 4 to %lx specifier is cast from pointer
ath_ahb_probe() warn: argument 4 to %lx specifier is cast from pointer

Fix it by modifying %lx to %p in the printk format string.

Note that with this change, the pointer address will be printed as a
hashed value by default. This is appropriate because the kernel
should not leak kernel pointers to user space in an informational
message. If someone wants to see the real address for debugging
purposes, this can be achieved with the no_hash_pointers kernel option.

Signed-off-by: Dongliang Mu <dzm91@hust.edu.cn>
---
v3->v4: add the explanation about why this commit uses %p
v2->v3: modify %px to %p in the patch
v1->v2: modify %px to %p in the commit message

 drivers/net/wireless/ath/ath9k/ahb.c | 4 ++--
 drivers/net/wireless/ath/ath9k/pci.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

Comments

Toke Høiland-Jørgensen July 23, 2023, 10:10 p.m. UTC | #1
Dongliang Mu <dzm91@hust.edu.cn> writes:

> Smatch reports:
>
> ath_pci_probe() warn: argument 4 to %lx specifier is cast from pointer
> ath_ahb_probe() warn: argument 4 to %lx specifier is cast from pointer
>
> Fix it by modifying %lx to %p in the printk format string.
>
> Note that with this change, the pointer address will be printed as a
> hashed value by default. This is appropriate because the kernel
> should not leak kernel pointers to user space in an informational
> message. If someone wants to see the real address for debugging
> purposes, this can be achieved with the no_hash_pointers kernel option.
>
> Signed-off-by: Dongliang Mu <dzm91@hust.edu.cn>

Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
Kalle Valo July 25, 2023, 2:31 p.m. UTC | #2
Dongliang Mu <dzm91@hust.edu.cn> wrote:

> Smatch reports:
> 
> ath_pci_probe() warn: argument 4 to %lx specifier is cast from pointer
> ath_ahb_probe() warn: argument 4 to %lx specifier is cast from pointer
> 
> Fix it by modifying %lx to %p in the printk format string.
> 
> Note that with this change, the pointer address will be printed as a
> hashed value by default. This is appropriate because the kernel
> should not leak kernel pointers to user space in an informational
> message. If someone wants to see the real address for debugging
> purposes, this can be achieved with the no_hash_pointers kernel option.
> 
> Signed-off-by: Dongliang Mu <dzm91@hust.edu.cn>
> Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>

Patch applied to ath-next branch of ath.git, thanks.

061115fbfb2c wifi: ath9k: fix printk specifier
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath9k/ahb.c b/drivers/net/wireless/ath/ath9k/ahb.c
index 9cd12b20b18d..9bfaadfa6c00 100644
--- a/drivers/net/wireless/ath/ath9k/ahb.c
+++ b/drivers/net/wireless/ath/ath9k/ahb.c
@@ -132,8 +132,8 @@  static int ath_ahb_probe(struct platform_device *pdev)
 
 	ah = sc->sc_ah;
 	ath9k_hw_name(ah, hw_name, sizeof(hw_name));
-	wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n",
-		   hw_name, (unsigned long)mem, irq);
+	wiphy_info(hw->wiphy, "%s mem=0x%p, irq=%d\n",
+		   hw_name, mem, irq);
 
 	return 0;
 
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
index a09f9d223f3d..0633589b85c2 100644
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -988,8 +988,8 @@  static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	sc->sc_ah->msi_reg = 0;
 
 	ath9k_hw_name(sc->sc_ah, hw_name, sizeof(hw_name));
-	wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n",
-		   hw_name, (unsigned long)sc->mem, pdev->irq);
+	wiphy_info(hw->wiphy, "%s mem=0x%p, irq=%d\n",
+		   hw_name, sc->mem, pdev->irq);
 
 	return 0;