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 |
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>
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 --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;
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(-)