[PATCH net-next] net: ntb_netdev: Fix NULL check ordering in TX handler

Subsystems: networking drivers, ntb driver core, the rest

STALE155d

4 messages, 3 authors, 2026-02-26 · open the first message on its own page

[PATCH net-next] net: ntb_netdev: Fix NULL check ordering in TX handler

From: Alok Tiwari <hidden>
Date: 2026-02-24 13:05:18

ntb_netdev_tx_handler() calls netdev_priv(ndev) before checking
whether ndev is NULL. Although qp_data is expected to always be
valid in normal operation, dereferencing the pointer before the
NULL check is logically incorrect.

Move netdev_priv() after validating ndev.

No functional change intended.

Signed-off-by: Alok Tiwari <redacted>
---
 drivers/net/ntb_netdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ntb_netdev.c b/drivers/net/ntb_netdev.c
index fbeae05817e9..6792b3b1f253 100644
--- a/drivers/net/ntb_netdev.c
+++ b/drivers/net/ntb_netdev.c
@@ -177,13 +177,15 @@ static void ntb_netdev_tx_handler(struct ntb_transport_qp *qp, void *qp_data,
 				  void *data, int len)
 {
 	struct net_device *ndev = qp_data;
+	struct ntb_netdev *dev;
 	struct sk_buff *skb;
-	struct ntb_netdev *dev = netdev_priv(ndev);
 
 	skb = data;
 	if (!skb || !ndev)
 		return;
 
+	dev = netdev_priv(ndev);
+
 	if (len > 0) {
 		ndev->stats.tx_packets++;
 		ndev->stats.tx_bytes += skb->len;
-- 
2.50.1

Re: [PATCH net-next] net: ntb_netdev: Fix NULL check ordering in TX handler

From: Dave Jiang <dave.jiang@intel.com>
Date: 2026-02-24 14:42:21


On 2/24/26 6:04 AM, Alok Tiwari wrote:
ntb_netdev_tx_handler() calls netdev_priv(ndev) before checking
whether ndev is NULL. Although qp_data is expected to always be
valid in normal operation, dereferencing the pointer before the
NULL check is logically incorrect.

Move netdev_priv() after validating ndev.

No functional change intended.

Signed-off-by: Alok Tiwari <redacted>
Acked-by: Dave Jiang <dave.jiang@intel.com>
quoted hunk
---
 drivers/net/ntb_netdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ntb_netdev.c b/drivers/net/ntb_netdev.c
index fbeae05817e9..6792b3b1f253 100644
--- a/drivers/net/ntb_netdev.c
+++ b/drivers/net/ntb_netdev.c
@@ -177,13 +177,15 @@ static void ntb_netdev_tx_handler(struct ntb_transport_qp *qp, void *qp_data,
 				  void *data, int len)
 {
 	struct net_device *ndev = qp_data;
+	struct ntb_netdev *dev;
 	struct sk_buff *skb;
-	struct ntb_netdev *dev = netdev_priv(ndev);
 
 	skb = data;
 	if (!skb || !ndev)
 		return;
 
+	dev = netdev_priv(ndev);
+
 	if (len > 0) {
 		ndev->stats.tx_packets++;
 		ndev->stats.tx_bytes += skb->len;

Re: [PATCH net-next] net: ntb_netdev: Fix NULL check ordering in TX handler

From: Jakub Kicinski <kuba@kernel.org>
Date: 2026-02-26 03:22:12

On Tue, 24 Feb 2026 05:04:47 -0800 Alok Tiwari wrote:
ntb_netdev_tx_handler() calls netdev_priv(ndev) before checking
whether ndev is NULL. Although qp_data is expected to always be
valid in normal operation,
Right. Can we delete the seemingly pointless null check instead?
Defensive programming is discouraged in the kernel..
dereferencing the pointer before the
NULL check is logically incorrect.
If you strongly prefer to keep the patch as is maybe say "valid 
but surprising" rather than "logically incorrect"
Move netdev_priv() after validating ndev.

No functional change intended.
-- 
pw-bot: cr

Re: [PATCH net-next] net: ntb_netdev: Fix NULL check ordering in TX handler

From: ALOK TIWARI <hidden>
Date: 2026-02-26 14:15:21


On 2/26/2026 8:52 AM, Jakub Kicinski wrote:
On Tue, 24 Feb 2026 05:04:47 -0800 Alok Tiwari wrote:
quoted
ntb_netdev_tx_handler() calls netdev_priv(ndev) before checking
whether ndev is NULL. Although qp_data is expected to always be
valid in normal operation,
Right. Can we delete the seemingly pointless null check instead?
Defensive programming is discouraged in the kernel..
quoted
dereferencing the pointer before the
NULL check is logically incorrect.
If you strongly prefer to keep the patch as is maybe say "valid
but surprising" rather than "logically incorrect"
Thanks Jakub, it seems these changes have now been superseded by 
Koichiro's patch series.
quoted
Move netdev_priv() after validating ndev.

No functional change intended.
-- pw-bot: cr

https://lore.kernel.org/all/u6k7xyjkqdn5xsgderrxi5yw6mhwtl3srfeefagp44jco7jc44@c7f4tzlaem2l/


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