]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mpls: Unify return paths in mpls_dev_notify().
authorKuniyuki Iwashima <kuniyu@google.com>
Wed, 29 Oct 2025 17:32:55 +0000 (17:32 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 4 Nov 2025 01:40:45 +0000 (17:40 -0800)
We will protect net->mpls.platform_label by a dedicated mutex.

Then, we need to wrap functions called from mpls_dev_notify()
with the mutex.

As a prep, let's unify the return paths.

Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Link: https://patch.msgid.link/20251029173344.2934622-4-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mpls/af_mpls.c

index e7be87466809851abf8f17c07afc3b6fc38dd530..c5bbf712f8be0a16c00b6d6e52a4ca24b9afc7c7 100644 (file)
@@ -1616,22 +1616,24 @@ static int mpls_dev_notify(struct notifier_block *this, unsigned long event,
 
        if (event == NETDEV_REGISTER) {
                mdev = mpls_add_dev(dev);
-               if (IS_ERR(mdev))
-                       return notifier_from_errno(PTR_ERR(mdev));
+               if (IS_ERR(mdev)) {
+                       err = PTR_ERR(mdev);
+                       goto err;
+               }
 
-               return NOTIFY_OK;
+               goto out;
        }
 
        mdev = mpls_dev_get(dev);
        if (!mdev)
-               return NOTIFY_OK;
+               goto out;
 
        switch (event) {
 
        case NETDEV_DOWN:
                err = mpls_ifdown(dev, event);
                if (err)
-                       return notifier_from_errno(err);
+                       goto err;
                break;
        case NETDEV_UP:
                flags = netif_get_flags(dev);
@@ -1647,13 +1649,14 @@ static int mpls_dev_notify(struct notifier_block *this, unsigned long event,
                } else {
                        err = mpls_ifdown(dev, event);
                        if (err)
-                               return notifier_from_errno(err);
+                               goto err;
                }
                break;
        case NETDEV_UNREGISTER:
                err = mpls_ifdown(dev, event);
                if (err)
-                       return notifier_from_errno(err);
+                       goto err;
+
                mdev = mpls_dev_get(dev);
                if (mdev) {
                        mpls_dev_sysctl_unregister(dev, mdev);
@@ -1667,11 +1670,16 @@ static int mpls_dev_notify(struct notifier_block *this, unsigned long event,
                        mpls_dev_sysctl_unregister(dev, mdev);
                        err = mpls_dev_sysctl_register(dev, mdev);
                        if (err)
-                               return notifier_from_errno(err);
+                               goto err;
                }
                break;
        }
+
+out:
        return NOTIFY_OK;
+
+err:
+       return notifier_from_errno(err);
 }
 
 static struct notifier_block mpls_dev_notifier = {