diff options
| author | Ben Hutchings <ben@decadent.org.uk> | 2009-10-28 07:01:46 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-10-28 07:01:46 -0400 |
| commit | 516b4df1ce49304c188704decf60275c72d4cae1 (patch) | |
| tree | 95b2653b5d08b249bf539da17306660aedf9db8e /drivers/net/via-velocity.c | |
| parent | ea84e5555a56e2013687b19b012bcf959d601128 (diff) | |
via-velocity: Remove private device list
via-velocity maintains a list of its devices in order to determine
whether a netdev notification applies to one of them. That can be
determined simply by checking the netdev_ops pointer, so the list can
be removed.
Compile-tested only.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/via-velocity.c')
| -rw-r--r-- | drivers/net/via-velocity.c | 39 |
1 files changed, 3 insertions, 36 deletions
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c index 144db6395c95..158f411bd555 100644 --- a/drivers/net/via-velocity.c +++ b/drivers/net/via-velocity.c | |||
| @@ -364,11 +364,6 @@ static int rx_copybreak = 200; | |||
| 364 | module_param(rx_copybreak, int, 0644); | 364 | module_param(rx_copybreak, int, 0644); |
| 365 | MODULE_PARM_DESC(rx_copybreak, "Copy breakpoint for copy-only-tiny-frames"); | 365 | MODULE_PARM_DESC(rx_copybreak, "Copy breakpoint for copy-only-tiny-frames"); |
| 366 | 366 | ||
| 367 | #ifdef CONFIG_PM | ||
| 368 | static DEFINE_SPINLOCK(velocity_dev_list_lock); | ||
| 369 | static LIST_HEAD(velocity_dev_list); | ||
| 370 | #endif | ||
| 371 | |||
| 372 | /* | 367 | /* |
| 373 | * Internal board variants. At the moment we have only one | 368 | * Internal board variants. At the moment we have only one |
| 374 | */ | 369 | */ |
| @@ -417,14 +412,6 @@ static void __devexit velocity_remove1(struct pci_dev *pdev) | |||
| 417 | struct net_device *dev = pci_get_drvdata(pdev); | 412 | struct net_device *dev = pci_get_drvdata(pdev); |
| 418 | struct velocity_info *vptr = netdev_priv(dev); | 413 | struct velocity_info *vptr = netdev_priv(dev); |
| 419 | 414 | ||
| 420 | #ifdef CONFIG_PM | ||
| 421 | unsigned long flags; | ||
| 422 | |||
| 423 | spin_lock_irqsave(&velocity_dev_list_lock, flags); | ||
| 424 | if (!list_empty(&velocity_dev_list)) | ||
| 425 | list_del(&vptr->list); | ||
| 426 | spin_unlock_irqrestore(&velocity_dev_list_lock, flags); | ||
| 427 | #endif | ||
| 428 | unregister_netdev(dev); | 415 | unregister_netdev(dev); |
| 429 | iounmap(vptr->mac_regs); | 416 | iounmap(vptr->mac_regs); |
| 430 | pci_release_regions(pdev); | 417 | pci_release_regions(pdev); |
| @@ -2577,7 +2564,6 @@ static void __devinit velocity_init_info(struct pci_dev *pdev, | |||
| 2577 | vptr->tx.numq = info->txqueue; | 2564 | vptr->tx.numq = info->txqueue; |
| 2578 | vptr->multicast_limit = MCAM_SIZE; | 2565 | vptr->multicast_limit = MCAM_SIZE; |
| 2579 | spin_lock_init(&vptr->lock); | 2566 | spin_lock_init(&vptr->lock); |
| 2580 | INIT_LIST_HEAD(&vptr->list); | ||
| 2581 | } | 2567 | } |
| 2582 | 2568 | ||
| 2583 | /** | 2569 | /** |
| @@ -2776,15 +2762,6 @@ static int __devinit velocity_found1(struct pci_dev *pdev, const struct pci_devi | |||
| 2776 | /* and leave the chip powered down */ | 2762 | /* and leave the chip powered down */ |
| 2777 | 2763 | ||
| 2778 | pci_set_power_state(pdev, PCI_D3hot); | 2764 | pci_set_power_state(pdev, PCI_D3hot); |
| 2779 | #ifdef CONFIG_PM | ||
| 2780 | { | ||
| 2781 | unsigned long flags; | ||
| 2782 | |||
| 2783 | spin_lock_irqsave(&velocity_dev_list_lock, flags); | ||
| 2784 | list_add(&vptr->list, &velocity_dev_list); | ||
| 2785 | spin_unlock_irqrestore(&velocity_dev_list_lock, flags); | ||
| 2786 | } | ||
| 2787 | #endif | ||
| 2788 | velocity_nics++; | 2765 | velocity_nics++; |
| 2789 | out: | 2766 | out: |
| 2790 | return ret; | 2767 | return ret; |
| @@ -3240,20 +3217,10 @@ static int velocity_netdev_event(struct notifier_block *nb, unsigned long notifi | |||
| 3240 | { | 3217 | { |
| 3241 | struct in_ifaddr *ifa = (struct in_ifaddr *) ptr; | 3218 | struct in_ifaddr *ifa = (struct in_ifaddr *) ptr; |
| 3242 | struct net_device *dev = ifa->ifa_dev->dev; | 3219 | struct net_device *dev = ifa->ifa_dev->dev; |
| 3243 | struct velocity_info *vptr; | ||
| 3244 | unsigned long flags; | ||
| 3245 | 3220 | ||
| 3246 | if (dev_net(dev) != &init_net) | 3221 | if (dev_net(dev) == &init_net && |
| 3247 | return NOTIFY_DONE; | 3222 | dev->netdev_ops == &velocity_netdev_ops) |
| 3248 | 3223 | velocity_get_ip(netdev_priv(dev)); | |
| 3249 | spin_lock_irqsave(&velocity_dev_list_lock, flags); | ||
| 3250 | list_for_each_entry(vptr, &velocity_dev_list, list) { | ||
| 3251 | if (vptr->dev == dev) { | ||
| 3252 | velocity_get_ip(vptr); | ||
| 3253 | break; | ||
| 3254 | } | ||
| 3255 | } | ||
| 3256 | spin_unlock_irqrestore(&velocity_dev_list_lock, flags); | ||
| 3257 | 3224 | ||
| 3258 | return NOTIFY_DONE; | 3225 | return NOTIFY_DONE; |
| 3259 | } | 3226 | } |
