Message ID | 20250414-restricted-pointers-net-v1-3-12af0ce46cdd@linutronix.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | net: Don't use %pK through printk | expand |
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of > Thomas Weißschuh > Sent: Monday, April 14, 2025 10:26 AM > To: Jeff Johnson <jjohnson@kernel.org>; Loic Poulain > <loic.poulain@linaro.org>; Brian Norris <briannorris@chromium.org>; > Francesco Dolcini <francesco@dolcini.it>; Nguyen, Anthony L > <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw > <przemyslaw.kitszel@intel.com>; Andrew Lunn <andrew+netdev@lunn.ch>; > David S. Miller <davem@davemloft.net>; Dumazet, Eric > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni > <pabeni@redhat.com>; Saeed Mahameed <saeedm@nvidia.com>; Leon > Romanovsky <leon@kernel.org>; Tariq Toukan <tariqt@nvidia.com> > Cc: ath10k@lists.infradead.org; linux-kernel@vger.kernel.org; > ath11k@lists.infradead.org; ath12k@lists.infradead.org; > wcn36xx@lists.infradead.org; linux-wireless@vger.kernel.org; intel-wired- > lan@lists.osuosl.org; netdev@vger.kernel.org; linux-rdma@vger.kernel.org; > Thomas Weißschuh <thomas.weissschuh@linutronix.de> > Subject: [Intel-wired-lan] [PATCH net-next 3/7] wifi: ath12k: Don't use %pK > through printk > > In the past %pK was preferable to %p as it would not leak raw pointer values > into the kernel log. > Since commit ad67b74d2469 ("printk: hash addresses printed with %p") the > regular %p has been improved to avoid this issue. > Furthermore, restricted pointers ("%pK") were never meant to be used > through printk(). They can still unintentionally leak raw pointers or acquire > sleeping looks in atomic contexts. > > Switch to the regular pointer formatting which is safer and easier to reason > about. > There are still a few users of %pK left, but these use it through seq_file, for > which its usage is safe. > > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> > --- > drivers/net/wireless/ath/ath12k/testmode.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath12k/testmode.c > b/drivers/net/wireless/ath/ath12k/testmode.c > index > 18d56a976dc74c4f6eab87e358c14d4faea648e2..fb6af7ccf71f44ae4bd01cd > e53fba3527eed0d2d 100644 > --- a/drivers/net/wireless/ath/ath12k/testmode.c > +++ b/drivers/net/wireless/ath/ath12k/testmode.c > @@ -97,7 +97,7 @@ void ath12k_tm_process_event(struct ath12k_base > *ab, u32 cmd_id, > u8 const *buf_pos; > > ath12k_dbg(ab, ATH12K_DBG_TESTMODE, > - "testmode event wmi cmd_id %d ftm event msg %pK > datalen %d\n", > + "testmode event wmi cmd_id %d ftm event msg %p datalen > %d\n", > cmd_id, ftm_msg, length); > ath12k_dbg_dump(ab, ATH12K_DBG_TESTMODE, NULL, "", ftm_msg, > length); > pdev_id = DP_HW2SW_MACID(le32_to_cpu(ftm_msg- > >seg_hdr.pdev_id)); > @@ -227,7 +227,7 @@ static int ath12k_tm_cmd_process_ftm(struct ath12k > *ar, struct nlattr *tb[]) > buf_len = nla_len(tb[ATH_TM_ATTR_DATA]); > cmd_id = WMI_PDEV_UTF_CMDID; > ath12k_dbg(ar->ab, ATH12K_DBG_TESTMODE, > - "testmode cmd wmi cmd_id %d buf %pK buf_len %d\n", > + "testmode cmd wmi cmd_id %d buf %p buf_len %d\n", > cmd_id, buf, buf_len); > ath12k_dbg_dump(ar->ab, ATH12K_DBG_TESTMODE, NULL, "", buf, > buf_len); > bufpos = buf; > > -- > 2.49.0
diff --git a/drivers/net/wireless/ath/ath12k/testmode.c b/drivers/net/wireless/ath/ath12k/testmode.c index 18d56a976dc74c4f6eab87e358c14d4faea648e2..fb6af7ccf71f44ae4bd01cde53fba3527eed0d2d 100644 --- a/drivers/net/wireless/ath/ath12k/testmode.c +++ b/drivers/net/wireless/ath/ath12k/testmode.c @@ -97,7 +97,7 @@ void ath12k_tm_process_event(struct ath12k_base *ab, u32 cmd_id, u8 const *buf_pos; ath12k_dbg(ab, ATH12K_DBG_TESTMODE, - "testmode event wmi cmd_id %d ftm event msg %pK datalen %d\n", + "testmode event wmi cmd_id %d ftm event msg %p datalen %d\n", cmd_id, ftm_msg, length); ath12k_dbg_dump(ab, ATH12K_DBG_TESTMODE, NULL, "", ftm_msg, length); pdev_id = DP_HW2SW_MACID(le32_to_cpu(ftm_msg->seg_hdr.pdev_id)); @@ -227,7 +227,7 @@ static int ath12k_tm_cmd_process_ftm(struct ath12k *ar, struct nlattr *tb[]) buf_len = nla_len(tb[ATH_TM_ATTR_DATA]); cmd_id = WMI_PDEV_UTF_CMDID; ath12k_dbg(ar->ab, ATH12K_DBG_TESTMODE, - "testmode cmd wmi cmd_id %d buf %pK buf_len %d\n", + "testmode cmd wmi cmd_id %d buf %p buf_len %d\n", cmd_id, buf, buf_len); ath12k_dbg_dump(ar->ab, ATH12K_DBG_TESTMODE, NULL, "", buf, buf_len); bufpos = buf;
In the past %pK was preferable to %p as it would not leak raw pointer values into the kernel log. Since commit ad67b74d2469 ("printk: hash addresses printed with %p") the regular %p has been improved to avoid this issue. Furthermore, restricted pointers ("%pK") were never meant to be used through printk(). They can still unintentionally leak raw pointers or acquire sleeping looks in atomic contexts. Switch to the regular pointer formatting which is safer and easier to reason about. There are still a few users of %pK left, but these use it through seq_file, for which its usage is safe. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> --- drivers/net/wireless/ath/ath12k/testmode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)