summaryrefslogtreecommitdiff
path: root/net/mpls
diff options
context:
space:
mode:
authorKuniyuki Iwashima <kuniyu@google.com>2025-10-29 17:32:55 +0000
committerJakub Kicinski <kuba@kernel.org>2025-11-03 17:40:45 -0800
commit451c538ec067e84c1bf1c2b99ebc2b1ca0a09090 (patch)
tree8a27c153304170abf9899b3a3d54e2d4286b5073 /net/mpls
parentf0914b8436c589b7ab32c614d8d7868eb4ebd5bf (diff)
mpls: Unify return paths in mpls_dev_notify().
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>
Diffstat (limited to 'net/mpls')
-rw-r--r--net/mpls/af_mpls.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
index e7be87466809..c5bbf712f8be 100644
--- a/net/mpls/af_mpls.c
+++ b/net/mpls/af_mpls.c
@@ -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 = {