Commit b54345ea authored by Michael Chan's avatar Michael Chan Committed by David S. Miller

cnic: Simplify cnic_release().

Since unregister_netdevice_notifier() will replay the NETDEV_DOWN and
NETDEV_UNREGISTER_EVENTS, the cnic_dev_list will be cleaned up automatically.
The loop to cleanup the cnic_dev_list can be removed in cnic_release().
Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 415fb87d
...@@ -5693,21 +5693,8 @@ static struct notifier_block cnic_netdev_notifier = { ...@@ -5693,21 +5693,8 @@ static struct notifier_block cnic_netdev_notifier = {
static void cnic_release(void) static void cnic_release(void)
{ {
struct cnic_dev *dev;
struct cnic_uio_dev *udev; struct cnic_uio_dev *udev;
while (!list_empty(&cnic_dev_list)) {
dev = list_entry(cnic_dev_list.next, struct cnic_dev, list);
if (test_bit(CNIC_F_CNIC_UP, &dev->flags)) {
cnic_ulp_stop(dev);
cnic_stop_hw(dev);
}
cnic_ulp_exit(dev);
cnic_unregister_netdev(dev);
list_del_init(&dev->list);
cnic_free_dev(dev);
}
while (!list_empty(&cnic_udev_list)) { while (!list_empty(&cnic_udev_list)) {
udev = list_entry(cnic_udev_list.next, struct cnic_uio_dev, udev = list_entry(cnic_udev_list.next, struct cnic_uio_dev,
list); list);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment