diff options
author | Petr Machata <petrm@nvidia.com> | 2023-02-02 20:59:23 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-02-06 11:48:25 +0300 |
commit | eceb30854f6b7d354ae52551b11aef2e2fa3e82e (patch) | |
tree | f8d9379af15aff276163c7597d16306f597bb9bc /net/bridge/br_multicast.c | |
parent | 976b3858dd14914c5a9254535ad7440c99467944 (diff) | |
download | linux-eceb30854f6b7d354ae52551b11aef2e2fa3e82e.tar.xz |
net: bridge: Change a cleanup in br_multicast_new_port_group() to goto
This function is getting more to clean up in the following patches.
Structuring the cleanups in one labeled block will allow reusing the same
cleanup from several places.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_multicast.c')
-rw-r--r-- | net/bridge/br_multicast.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 08da724ebfdd..51b622afdb67 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -1309,8 +1309,7 @@ struct net_bridge_port_group *br_multicast_new_port_group( rhashtable_lookup_insert_fast(&port->br->sg_port_tbl, &p->rhnode, br_sg_port_rht_params)) { NL_SET_ERR_MSG_MOD(extack, "Couldn't insert new port group"); - kfree(p); - return NULL; + goto free_out; } rcu_assign_pointer(p->next, next); @@ -1324,6 +1323,10 @@ struct net_bridge_port_group *br_multicast_new_port_group( eth_broadcast_addr(p->eth_addr); return p; + +free_out: + kfree(p); + return NULL; } void br_multicast_del_port_group(struct net_bridge_port_group *p) |