]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: tls: reshuffle the device ops check
authorJakub Kicinski <kuba@kernel.org>
Wed, 29 Apr 2026 21:30:01 +0000 (14:30 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 1 May 2026 23:46:30 +0000 (16:46 -0700)
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 <horms@kernel.org>
Link: https://patch.msgid.link/20260429213001.1908235-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/tls/tls_device.c

index 99c8eff9783e6855693d86839396fe8e36b04518..741aef09bfd356a852aae4182e187443a43a2625 100644 (file)
@@ -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);
        }