diff mbox series

[net-next,v2,2/2] bonding: cleanup bond_create

Message ID 03db585475d164343991f90b268d2d08fa42afb6.1654711315.git.jtoppins@redhat.com (mailing list archive)
State Accepted
Commit 2fa3ee93d13ce723d60a4fc4620ed9126c468901
Delegated to: Netdev Maintainers
Headers show
Series bonding: netlink errors and cleanup | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net-next
netdev/fixes_present success Fixes tag not required for -next series
netdev/subject_prefix success Link
netdev/cover_letter success Series has a cover letter
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 5 this patch: 5
netdev/cc_maintainers success CCed 8 of 8 maintainers
netdev/build_clang success Errors and warnings before: 3 this patch: 3
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 5 this patch: 5
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 51 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Jonathan Toppins June 8, 2022, 6:14 p.m. UTC
Setting RLB_NULL_INDEX is not needed as this is done in bond_alb_initialize
which is called by bond_open.

Also reduce the number of rtnl_unlock calls by just using the standard
goto cleanup path.

Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
---
 drivers/net/bonding/bond_main.c | 24 ++++++------------------
 1 file changed, 6 insertions(+), 18 deletions(-)

Comments

Jay Vosburgh June 8, 2022, 6:51 p.m. UTC | #1
Jonathan Toppins <jtoppins@redhat.com> wrote:

>Setting RLB_NULL_INDEX is not needed as this is done in bond_alb_initialize
>which is called by bond_open.
>
>Also reduce the number of rtnl_unlock calls by just using the standard
>goto cleanup path.
>
>Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>

Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>


>---
> drivers/net/bonding/bond_main.c | 24 ++++++------------------
> 1 file changed, 6 insertions(+), 18 deletions(-)
>
>diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>index f85372adf042..3d427183ec8e 100644
>--- a/drivers/net/bonding/bond_main.c
>+++ b/drivers/net/bonding/bond_main.c
>@@ -6218,45 +6218,33 @@ int bond_create(struct net *net, const char *name)
> {
> 	struct net_device *bond_dev;
> 	struct bonding *bond;
>-	struct alb_bond_info *bond_info;
>-	int res;
>+	int res = -ENOMEM;
> 
> 	rtnl_lock();
> 
> 	bond_dev = alloc_netdev_mq(sizeof(struct bonding),
> 				   name ? name : "bond%d", NET_NAME_UNKNOWN,
> 				   bond_setup, tx_queues);
>-	if (!bond_dev) {
>-		pr_err("%s: eek! can't alloc netdev!\n", name);
>-		rtnl_unlock();
>-		return -ENOMEM;
>-	}
>+	if (!bond_dev)
>+		goto out;
> 
>-	/*
>-	 * Initialize rx_hashtbl_used_head to RLB_NULL_INDEX.
>-	 * It is set to 0 by default which is wrong.
>-	 */
> 	bond = netdev_priv(bond_dev);
>-	bond_info = &(BOND_ALB_INFO(bond));
>-	bond_info->rx_hashtbl_used_head = RLB_NULL_INDEX;
>-
> 	dev_net_set(bond_dev, net);
> 	bond_dev->rtnl_link_ops = &bond_link_ops;
> 
> 	res = register_netdevice(bond_dev);
> 	if (res < 0) {
> 		free_netdev(bond_dev);
>-		rtnl_unlock();
>-
>-		return res;
>+		goto out;
> 	}
> 
> 	netif_carrier_off(bond_dev);
> 
> 	bond_work_init_all(bond);
> 
>+out:
> 	rtnl_unlock();
>-	return 0;
>+	return res;
> }
> 
> static int __net_init bond_net_init(struct net *net)
>-- 
>2.27.0
>
diff mbox series

Patch

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index f85372adf042..3d427183ec8e 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -6218,45 +6218,33 @@  int bond_create(struct net *net, const char *name)
 {
 	struct net_device *bond_dev;
 	struct bonding *bond;
-	struct alb_bond_info *bond_info;
-	int res;
+	int res = -ENOMEM;
 
 	rtnl_lock();
 
 	bond_dev = alloc_netdev_mq(sizeof(struct bonding),
 				   name ? name : "bond%d", NET_NAME_UNKNOWN,
 				   bond_setup, tx_queues);
-	if (!bond_dev) {
-		pr_err("%s: eek! can't alloc netdev!\n", name);
-		rtnl_unlock();
-		return -ENOMEM;
-	}
+	if (!bond_dev)
+		goto out;
 
-	/*
-	 * Initialize rx_hashtbl_used_head to RLB_NULL_INDEX.
-	 * It is set to 0 by default which is wrong.
-	 */
 	bond = netdev_priv(bond_dev);
-	bond_info = &(BOND_ALB_INFO(bond));
-	bond_info->rx_hashtbl_used_head = RLB_NULL_INDEX;
-
 	dev_net_set(bond_dev, net);
 	bond_dev->rtnl_link_ops = &bond_link_ops;
 
 	res = register_netdevice(bond_dev);
 	if (res < 0) {
 		free_netdev(bond_dev);
-		rtnl_unlock();
-
-		return res;
+		goto out;
 	}
 
 	netif_carrier_off(bond_dev);
 
 	bond_work_init_all(bond);
 
+out:
 	rtnl_unlock();
-	return 0;
+	return res;
 }
 
 static int __net_init bond_net_init(struct net *net)