Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6639104b authored by Eric W. Biederman's avatar Eric W. Biederman Committed by David S. Miller
Browse files

bond: Get the rtnl_link_ops support correct



- Don't call rtnl_link_unregister if rtnl_link_register fails
- Set .priv_size so we aren't stomping on uninitialized memory
  when we use netdev_priv, on bond devices created with
  ip link add type bond.

Signed-off-by: default avatarEric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ec87fd3b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -5056,6 +5056,7 @@ static int bond_validate(struct nlattr *tb[], struct nlattr *data[])

static struct rtnl_link_ops bond_link_ops __read_mostly = {
	.kind		= "bond",
	.priv_size	= sizeof(struct bonding),
	.setup		= bond_setup,
	.validate	= bond_validate,
};
@@ -5157,7 +5158,7 @@ static int __init bonding_init(void)

	res = rtnl_link_register(&bond_link_ops);
	if (res)
		goto err;
		goto err_link;

	for (i = 0; i < max_bonds; i++) {
		res = bond_create(&init_net, NULL);
@@ -5176,6 +5177,7 @@ static int __init bonding_init(void)
	return res;
err:
	rtnl_link_unregister(&bond_link_ops);
err_link:
	unregister_pernet_gen_subsys(bond_net_id, &bond_net_ops);
	goto out;