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

Commit 660f706d authored by remi.denis-courmont@nokia's avatar remi.denis-courmont@nokia Committed by David S. Miller
Browse files

Phonet: handle rtnetlink registration failure

parent 76e02cf6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ struct phonet_device {

int phonet_device_init(void);
void phonet_device_exit(void);
void phonet_netlink_register(void);
int phonet_netlink_register(void);
struct net_device *phonet_device_get(struct net *net);

int phonet_address_add(struct net_device *dev, u8 addr);
+6 −2
Original line number Diff line number Diff line
@@ -190,9 +190,13 @@ static struct notifier_block phonet_device_notifier = {
/* Initialize Phonet devices list */
int __init phonet_device_init(void)
{
	int err;

	register_netdevice_notifier(&phonet_device_notifier);
	phonet_netlink_register();
	return 0;
	err = phonet_netlink_register();
	if (err)
		phonet_device_exit();
	return err;
}

void phonet_device_exit(void)
+9 −4
Original line number Diff line number Diff line
@@ -160,9 +160,14 @@ out:
	return skb->len;
}

void __init phonet_netlink_register(void)
int __init phonet_netlink_register(void)
{
	rtnl_register(PF_PHONET, RTM_NEWADDR, addr_doit, NULL);
	rtnl_register(PF_PHONET, RTM_DELADDR, addr_doit, NULL);
	rtnl_register(PF_PHONET, RTM_GETADDR, NULL, getaddr_dumpit);
	int err = __rtnl_register(PF_PHONET, RTM_NEWADDR, addr_doit, NULL);
	if (err)
		return err;

	/* Further __rtnl_register() cannot fail */
	__rtnl_register(PF_PHONET, RTM_DELADDR, addr_doit, NULL);
	__rtnl_register(PF_PHONET, RTM_GETADDR, NULL, getaddr_dumpit);
	return 0;
}