diff options
Diffstat (limited to 'drivers/net/via-velocity.c')
-rw-r--r-- | drivers/net/via-velocity.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c index cc0addb5640c..1525e8a89844 100644 --- a/drivers/net/via-velocity.c +++ b/drivers/net/via-velocity.c | |||
@@ -3460,21 +3460,22 @@ static int velocity_resume(struct pci_dev *pdev) | |||
3460 | static int velocity_netdev_event(struct notifier_block *nb, unsigned long notification, void *ptr) | 3460 | static int velocity_netdev_event(struct notifier_block *nb, unsigned long notification, void *ptr) |
3461 | { | 3461 | { |
3462 | struct in_ifaddr *ifa = (struct in_ifaddr *) ptr; | 3462 | struct in_ifaddr *ifa = (struct in_ifaddr *) ptr; |
3463 | struct net_device *dev = ifa->ifa_dev->dev; | ||
3464 | struct velocity_info *vptr; | ||
3465 | unsigned long flags; | ||
3463 | 3466 | ||
3464 | if (ifa) { | 3467 | if (dev->nd_net != &init_net) |
3465 | struct net_device *dev = ifa->ifa_dev->dev; | 3468 | return NOTIFY_DONE; |
3466 | struct velocity_info *vptr; | ||
3467 | unsigned long flags; | ||
3468 | 3469 | ||
3469 | spin_lock_irqsave(&velocity_dev_list_lock, flags); | 3470 | spin_lock_irqsave(&velocity_dev_list_lock, flags); |
3470 | list_for_each_entry(vptr, &velocity_dev_list, list) { | 3471 | list_for_each_entry(vptr, &velocity_dev_list, list) { |
3471 | if (vptr->dev == dev) { | 3472 | if (vptr->dev == dev) { |
3472 | velocity_get_ip(vptr); | 3473 | velocity_get_ip(vptr); |
3473 | break; | 3474 | break; |
3474 | } | ||
3475 | } | 3475 | } |
3476 | spin_unlock_irqrestore(&velocity_dev_list_lock, flags); | ||
3477 | } | 3476 | } |
3477 | spin_unlock_irqrestore(&velocity_dev_list_lock, flags); | ||
3478 | |||
3478 | return NOTIFY_DONE; | 3479 | return NOTIFY_DONE; |
3479 | } | 3480 | } |
3480 | 3481 | ||