[PATCH net-next 1/2] net: hns3: fix different snprintf() limit

Subsystems: hisilicon network subsystem 3 driver (hns3), hisilicon network subsystem driver, networking drivers, the rest

STALE1874d

3 messages, 2 authors, 2021-06-21 · open the first message on its own page

[PATCH net-next 1/2] net: hns3: fix different snprintf() limit

From: Dan Carpenter <hidden>
Date: 2021-06-19 13:48:02

This patch doesn't affect runtime at all, it's just a correctness issue.

The ptp->info.name[] buffer has 16 characters but the snprintf() limit
was capped at 32 characters.  Fortunately, HCLGE_DRIVER_NAME is "hclge"
which isn't close to 16 characters so we're fine.

Fixes: 0bf5eb788512 ("net: hns3: add support for PTP")
Signed-off-by: Dan Carpenter <redacted>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c
index b3eb8f109dbb..3b1f84502e36 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c
@@ -415,8 +415,6 @@ int hclge_ptp_get_ts_info(struct hnae3_handle *handle,
 
 static int hclge_ptp_create_clock(struct hclge_dev *hdev)
 {
-#define HCLGE_PTP_NAME_LEN	32
-
 	struct hclge_ptp *ptp;
 
 	ptp = devm_kzalloc(&hdev->pdev->dev, sizeof(*ptp), GFP_KERNEL);
@@ -424,7 +422,7 @@ static int hclge_ptp_create_clock(struct hclge_dev *hdev)
 		return -ENOMEM;
 
 	ptp->hdev = hdev;
-	snprintf(ptp->info.name, HCLGE_PTP_NAME_LEN, "%s",
+	snprintf(ptp->info.name, sizeof(ptp->info.name), "%s",
 		 HCLGE_DRIVER_NAME);
 	ptp->info.owner = THIS_MODULE;
 	ptp->info.max_adj = HCLGE_PTP_CYCLE_ADJ_MAX;
-- 
2.30.2

[PATCH net-next 2/2] net: hns3: fix a double shift bug

From: Dan Carpenter <hidden>
Date: 2021-06-19 13:49:49

These flags are used to set and test bits like this:

	if (!test_bit(HCLGE_PTP_FLAG_TX_EN, &ptp->flags) ||

The issue is that test_bit() takes a bit number like 1, but we are
passing BIT(1) instead and it's testing BIT(BIT(1)).  This does not
cause a problem because it is always done consistently and the bit
values are very small.

Fixes: 0bf5eb788512 ("net: hns3: add support for PTP")
Signed-off-by: Dan Carpenter <redacted>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.h
index b3ca7afdaaa6..5a202b775471 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.h
@@ -43,9 +43,9 @@
 #define HCLGE_PTP_SEC_H_OFFSET		32u
 #define HCLGE_PTP_SEC_L_MASK		GENMASK(31, 0)
 
-#define HCLGE_PTP_FLAG_EN		BIT(0)
-#define HCLGE_PTP_FLAG_TX_EN		BIT(1)
-#define HCLGE_PTP_FLAG_RX_EN		BIT(2)
+#define HCLGE_PTP_FLAG_EN		0
+#define HCLGE_PTP_FLAG_TX_EN		1
+#define HCLGE_PTP_FLAG_RX_EN		2
 
 struct hclge_ptp {
 	struct hclge_dev *hdev;
-- 
2.30.2

Re: [PATCH net-next 1/2] net: hns3: fix different snprintf() limit

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-06-21 19:20:19

Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Sat, 19 Jun 2021 16:47:38 +0300 you wrote:
This patch doesn't affect runtime at all, it's just a correctness issue.

The ptp->info.name[] buffer has 16 characters but the snprintf() limit
was capped at 32 characters.  Fortunately, HCLGE_DRIVER_NAME is "hclge"
which isn't close to 16 characters so we're fine.

Fixes: 0bf5eb788512 ("net: hns3: add support for PTP")
Signed-off-by: Dan Carpenter <redacted>

[...]
Here is the summary with links:
  - [net-next,1/2] net: hns3: fix different snprintf() limit
    https://git.kernel.org/netdev/net-next/c/faebad853455
  - [net-next,2/2] net: hns3: fix a double shift bug
    https://git.kernel.org/netdev/net-next/c/956c3ae411b2

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help