From fa11b40480132077de3787cf2122646b0c8ecc41 Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Wed, 29 Apr 2026 14:30:01 -0700 Subject: [PATCH] net: tls: reshuffle the device ops check We try to validate during registration that the netdev has ops if it has features. This is currently somewhat sillily written because we have a dereference before a NULL check on the ops struct. Straighten this out. No functional change intended other than saving ourselves the very theoretical crash with a bad driver. Note that we check earlier in the function that either ops or TLS features are set for the device in question. Reviewed-by: Simon Horman Link: https://patch.msgid.link/20260429213001.1908235-1-kuba@kernel.org Signed-off-by: Jakub Kicinski --- net/tls/tls_device.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index 99c8eff9783e..741aef09bfd3 100644 --- a/net/tls/tls_device.c +++ b/net/tls/tls_device.c @@ -1387,16 +1387,15 @@ static int tls_dev_event(struct notifier_block *this, unsigned long event, case NETDEV_FEAT_CHANGE: if (netif_is_bond_master(dev)) return NOTIFY_DONE; + if (!dev->tlsdev_ops || + !dev->tlsdev_ops->tls_dev_add || + !dev->tlsdev_ops->tls_dev_del) + return NOTIFY_BAD; if ((dev->features & NETIF_F_HW_TLS_RX) && !dev->tlsdev_ops->tls_dev_resync) return NOTIFY_BAD; - if (dev->tlsdev_ops && - dev->tlsdev_ops->tls_dev_add && - dev->tlsdev_ops->tls_dev_del) - return NOTIFY_DONE; - else - return NOTIFY_BAD; + return NOTIFY_DONE; case NETDEV_DOWN: return tls_device_down(dev); }