diff options
-rw-r--r-- | drivers/net/bonding/bond_main.c | 4 | ||||
-rw-r--r-- | include/linux/netpoll.h | 2 | ||||
-rw-r--r-- | net/8021q/vlan_dev.c | 5 | ||||
-rw-r--r-- | net/bridge/br_device.c | 5 | ||||
-rw-r--r-- | net/core/netpoll.c | 10 |
5 files changed, 9 insertions, 17 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 4ddcc3e41dab..1eb3979d0af5 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -1240,9 +1240,7 @@ static inline int slave_enable_netpoll(struct slave *slave) | |||
1240 | if (!np) | 1240 | if (!np) |
1241 | goto out; | 1241 | goto out; |
1242 | 1242 | ||
1243 | np->dev = slave->dev; | 1243 | err = __netpoll_setup(np, slave->dev); |
1244 | strlcpy(np->dev_name, slave->dev->name, IFNAMSIZ); | ||
1245 | err = __netpoll_setup(np); | ||
1246 | if (err) { | 1244 | if (err) { |
1247 | kfree(np); | 1245 | kfree(np); |
1248 | goto out; | 1246 | goto out; |
diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h index 5dfa091c3347..28f5389c924b 100644 --- a/include/linux/netpoll.h +++ b/include/linux/netpoll.h | |||
@@ -43,7 +43,7 @@ struct netpoll_info { | |||
43 | void netpoll_send_udp(struct netpoll *np, const char *msg, int len); | 43 | void netpoll_send_udp(struct netpoll *np, const char *msg, int len); |
44 | void netpoll_print_options(struct netpoll *np); | 44 | void netpoll_print_options(struct netpoll *np); |
45 | int netpoll_parse_options(struct netpoll *np, char *opt); | 45 | int netpoll_parse_options(struct netpoll *np, char *opt); |
46 | int __netpoll_setup(struct netpoll *np); | 46 | int __netpoll_setup(struct netpoll *np, struct net_device *ndev); |
47 | int netpoll_setup(struct netpoll *np); | 47 | int netpoll_setup(struct netpoll *np); |
48 | int netpoll_trap(void); | 48 | int netpoll_trap(void); |
49 | void netpoll_set_trap(int trap); | 49 | void netpoll_set_trap(int trap); |
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index da1bc9c3cf38..73a2a83ee2da 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -681,10 +681,7 @@ static int vlan_dev_netpoll_setup(struct net_device *dev, struct netpoll_info *n | |||
681 | if (!netpoll) | 681 | if (!netpoll) |
682 | goto out; | 682 | goto out; |
683 | 683 | ||
684 | netpoll->dev = real_dev; | 684 | err = __netpoll_setup(netpoll, real_dev); |
685 | strlcpy(netpoll->dev_name, real_dev->name, IFNAMSIZ); | ||
686 | |||
687 | err = __netpoll_setup(netpoll); | ||
688 | if (err) { | 685 | if (err) { |
689 | kfree(netpoll); | 686 | kfree(netpoll); |
690 | goto out; | 687 | goto out; |
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 929e48aed444..f4be1bbfef26 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c | |||
@@ -246,10 +246,7 @@ int br_netpoll_enable(struct net_bridge_port *p) | |||
246 | if (!np) | 246 | if (!np) |
247 | goto out; | 247 | goto out; |
248 | 248 | ||
249 | np->dev = p->dev; | 249 | err = __netpoll_setup(np, p->dev); |
250 | strlcpy(np->dev_name, p->dev->name, IFNAMSIZ); | ||
251 | |||
252 | err = __netpoll_setup(np); | ||
253 | if (err) { | 250 | if (err) { |
254 | kfree(np); | 251 | kfree(np); |
255 | goto out; | 252 | goto out; |
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index f9f40b932e4b..b4c90e42b443 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -715,14 +715,16 @@ int netpoll_parse_options(struct netpoll *np, char *opt) | |||
715 | } | 715 | } |
716 | EXPORT_SYMBOL(netpoll_parse_options); | 716 | EXPORT_SYMBOL(netpoll_parse_options); |
717 | 717 | ||
718 | int __netpoll_setup(struct netpoll *np) | 718 | int __netpoll_setup(struct netpoll *np, struct net_device *ndev) |
719 | { | 719 | { |
720 | struct net_device *ndev = np->dev; | ||
721 | struct netpoll_info *npinfo; | 720 | struct netpoll_info *npinfo; |
722 | const struct net_device_ops *ops; | 721 | const struct net_device_ops *ops; |
723 | unsigned long flags; | 722 | unsigned long flags; |
724 | int err; | 723 | int err; |
725 | 724 | ||
725 | np->dev = ndev; | ||
726 | strlcpy(np->dev_name, ndev->name, IFNAMSIZ); | ||
727 | |||
726 | if ((ndev->priv_flags & IFF_DISABLE_NETPOLL) || | 728 | if ((ndev->priv_flags & IFF_DISABLE_NETPOLL) || |
727 | !ndev->netdev_ops->ndo_poll_controller) { | 729 | !ndev->netdev_ops->ndo_poll_controller) { |
728 | np_err(np, "%s doesn't support polling, aborting\n", | 730 | np_err(np, "%s doesn't support polling, aborting\n", |
@@ -851,13 +853,11 @@ int netpoll_setup(struct netpoll *np) | |||
851 | np_info(np, "local IP %pI4\n", &np->local_ip); | 853 | np_info(np, "local IP %pI4\n", &np->local_ip); |
852 | } | 854 | } |
853 | 855 | ||
854 | np->dev = ndev; | ||
855 | |||
856 | /* fill up the skb queue */ | 856 | /* fill up the skb queue */ |
857 | refill_skbs(); | 857 | refill_skbs(); |
858 | 858 | ||
859 | rtnl_lock(); | 859 | rtnl_lock(); |
860 | err = __netpoll_setup(np); | 860 | err = __netpoll_setup(np, ndev); |
861 | rtnl_unlock(); | 861 | rtnl_unlock(); |
862 | 862 | ||
863 | if (err) | 863 | if (err) |