aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bonding')
-rw-r--r--drivers/net/bonding/bond_3ad.c2
-rw-r--r--drivers/net/bonding/bond_alb.c2
-rw-r--r--drivers/net/bonding/bond_main.c12
3 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index d16e0e1d2b30..ebb539e090c3 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -2429,7 +2429,7 @@ int bond_3ad_lacpdu_recv(struct sk_buff *skb, struct net_device *dev, struct pac
2429 struct slave *slave = NULL; 2429 struct slave *slave = NULL;
2430 int ret = NET_RX_DROP; 2430 int ret = NET_RX_DROP;
2431 2431
2432 if (dev->nd_net != &init_net) 2432 if (dev_net(dev) != &init_net)
2433 goto out; 2433 goto out;
2434 2434
2435 if (!(dev->flags & IFF_MASTER)) 2435 if (!(dev->flags & IFF_MASTER))
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index 3f58c3d0b710..5a673725471c 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -345,7 +345,7 @@ static int rlb_arp_recv(struct sk_buff *skb, struct net_device *bond_dev, struct
345 struct arp_pkt *arp = (struct arp_pkt *)skb->data; 345 struct arp_pkt *arp = (struct arp_pkt *)skb->data;
346 int res = NET_RX_DROP; 346 int res = NET_RX_DROP;
347 347
348 if (bond_dev->nd_net != &init_net) 348 if (dev_net(bond_dev) != &init_net)
349 goto out; 349 goto out;
350 350
351 if (!(bond_dev->flags & IFF_MASTER)) 351 if (!(bond_dev->flags & IFF_MASTER))
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 0f0675319e9c..ecfaf1460b1a 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2629,7 +2629,7 @@ static int bond_arp_rcv(struct sk_buff *skb, struct net_device *dev, struct pack
2629 unsigned char *arp_ptr; 2629 unsigned char *arp_ptr;
2630 __be32 sip, tip; 2630 __be32 sip, tip;
2631 2631
2632 if (dev->nd_net != &init_net) 2632 if (dev_net(dev) != &init_net)
2633 goto out; 2633 goto out;
2634 2634
2635 if (!(dev->priv_flags & IFF_BONDING) || !(dev->flags & IFF_MASTER)) 2635 if (!(dev->priv_flags & IFF_BONDING) || !(dev->flags & IFF_MASTER))
@@ -2646,10 +2646,7 @@ static int bond_arp_rcv(struct sk_buff *skb, struct net_device *dev, struct pack
2646 if (!slave || !slave_do_arp_validate(bond, slave)) 2646 if (!slave || !slave_do_arp_validate(bond, slave))
2647 goto out_unlock; 2647 goto out_unlock;
2648 2648
2649 /* ARP header, plus 2 device addresses, plus 2 IP addresses. */ 2649 if (!pskb_may_pull(skb, arp_hdr_len(dev)))
2650 if (!pskb_may_pull(skb, (sizeof(struct arphdr) +
2651 (2 * dev->addr_len) +
2652 (2 * sizeof(u32)))))
2653 goto out_unlock; 2650 goto out_unlock;
2654 2651
2655 arp = arp_hdr(skb); 2652 arp = arp_hdr(skb);
@@ -3473,7 +3470,7 @@ static int bond_netdev_event(struct notifier_block *this, unsigned long event, v
3473{ 3470{
3474 struct net_device *event_dev = (struct net_device *)ptr; 3471 struct net_device *event_dev = (struct net_device *)ptr;
3475 3472
3476 if (event_dev->nd_net != &init_net) 3473 if (dev_net(event_dev) != &init_net)
3477 return NOTIFY_DONE; 3474 return NOTIFY_DONE;
3478 3475
3479 dprintk("event_dev: %s, event: %lx\n", 3476 dprintk("event_dev: %s, event: %lx\n",
@@ -3511,6 +3508,9 @@ static int bond_inetaddr_event(struct notifier_block *this, unsigned long event,
3511 struct bonding *bond, *bond_next; 3508 struct bonding *bond, *bond_next;
3512 struct vlan_entry *vlan, *vlan_next; 3509 struct vlan_entry *vlan, *vlan_next;
3513 3510
3511 if (dev_net(ifa->ifa_dev->dev) != &init_net)
3512 return NOTIFY_DONE;
3513
3514 list_for_each_entry_safe(bond, bond_next, &bond_dev_list, bond_list) { 3514 list_for_each_entry_safe(bond, bond_next, &bond_dev_list, bond_list) {
3515 if (bond->dev == event_dev) { 3515 if (bond->dev == event_dev) {
3516 switch (event) { 3516 switch (event) {