2024-02-13 13:42:10

by Shigeru Yoshida

[permalink] [raw]
Subject: [PATCH net-next] tipc: Cleanup tipc_nl_bearer_add() error paths

Consolidate the error paths of tipc_nl_bearer_add() under the common label
if the function holds rtnl_lock.

Signed-off-by: Shigeru Yoshida <[email protected]>
---
net/tipc/bearer.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
index 878415c43527..5a526ebafeb4 100644
--- a/net/tipc/bearer.c
+++ b/net/tipc/bearer.c
@@ -1079,30 +1079,27 @@ int tipc_nl_bearer_add(struct sk_buff *skb, struct genl_info *info)
rtnl_lock();
b = tipc_bearer_find(net, name);
if (!b) {
- rtnl_unlock();
NL_SET_ERR_MSG(info->extack, "Bearer not found");
- return -EINVAL;
+ err = -EINVAL;
+ goto out;
}

#ifdef CONFIG_TIPC_MEDIA_UDP
if (attrs[TIPC_NLA_BEARER_UDP_OPTS]) {
if (b->media->type_id != TIPC_MEDIA_TYPE_UDP) {
- rtnl_unlock();
NL_SET_ERR_MSG(info->extack, "UDP option is unsupported");
- return -EINVAL;
+ err = -EINVAL;
+ goto out;
}

err = tipc_udp_nl_bearer_add(b,
attrs[TIPC_NLA_BEARER_UDP_OPTS]);
- if (err) {
- rtnl_unlock();
- return err;
- }
}
#endif
+out:
rtnl_unlock();

- return 0;
+ return err;
}

int __tipc_nl_bearer_set(struct sk_buff *skb, struct genl_info *info)
--
2.43.0



2024-02-15 01:07:12

by Tung Quang Nguyen

[permalink] [raw]
Subject: RE: [PATCH net-next] tipc: Cleanup tipc_nl_bearer_add() error paths

> net/tipc/bearer.c | 15 ++++++---------
> 1 file changed, 6 insertions(+), 9 deletions(-)
>
>diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index 878415c43527..5a526ebafeb4 100644
>--- a/net/tipc/bearer.c
>+++ b/net/tipc/bearer.c
>@@ -1079,30 +1079,27 @@ int tipc_nl_bearer_add(struct sk_buff *skb, struct genl_info *info)
> rtnl_lock();
> b = tipc_bearer_find(net, name);
> if (!b) {
>- rtnl_unlock();
> NL_SET_ERR_MSG(info->extack, "Bearer not found");
>- return -EINVAL;
>+ err = -EINVAL;
>+ goto out;
> }
>
> #ifdef CONFIG_TIPC_MEDIA_UDP
> if (attrs[TIPC_NLA_BEARER_UDP_OPTS]) {
> if (b->media->type_id != TIPC_MEDIA_TYPE_UDP) {
>- rtnl_unlock();
> NL_SET_ERR_MSG(info->extack, "UDP option is unsupported");
>- return -EINVAL;
>+ err = -EINVAL;
>+ goto out;
> }
>
> err = tipc_udp_nl_bearer_add(b,
> attrs[TIPC_NLA_BEARER_UDP_OPTS]);
>- if (err) {
>- rtnl_unlock();
>- return err;
>- }
> }
> #endif
>+out:
> rtnl_unlock();
>
>- return 0;
>+ return err;
> }
>
> int __tipc_nl_bearer_set(struct sk_buff *skb, struct genl_info *info)
>--
>2.43.0
>
Reviewed-by: Tung Nguyen <[email protected]>

2024-02-15 12:31:07

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net-next] tipc: Cleanup tipc_nl_bearer_add() error paths

Hello:

This patch was applied to netdev/net-next.git (main)
by Paolo Abeni <[email protected]>:

On Tue, 13 Feb 2024 22:40:58 +0900 you wrote:
> Consolidate the error paths of tipc_nl_bearer_add() under the common label
> if the function holds rtnl_lock.
>
> Signed-off-by: Shigeru Yoshida <[email protected]>
> ---
> net/tipc/bearer.c | 15 ++++++---------
> 1 file changed, 6 insertions(+), 9 deletions(-)

Here is the summary with links:
- [net-next] tipc: Cleanup tipc_nl_bearer_add() error paths
https://git.kernel.org/netdev/net-next/c/984328c7657d

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html