[SCSI] bnx2fc: Validate vlan id in NETDEV_UNREGISTER handler
authorNithin Nayak Sujir <nsujir@broadcom.com>
Tue, 30 Aug 2011 22:54:50 +0000 (15:54 -0700)
committerJames Bottomley <JBottomley@Parallels.com>
Sat, 17 Sep 2011 14:03:18 +0000 (18:03 +0400)
When bnx2fc receives an UNREGISTER event on a vlan interface it calls
destroy on all interfaces that matches the physical interface. Add
vlan_id check to destroy only the vlan interface that generated the
event.

Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/bnx2fc/bnx2fc_fcoe.c

index ba88ddb4580bd43686381c5aa6f3e91ccda884c3..886938d025cdaa7d903c8f5b2d284387650fa5b0 100644 (file)
@@ -838,9 +838,9 @@ static void bnx2fc_indicate_netevent(void *context, unsigned long event,
                        return;
                mutex_lock(&bnx2fc_dev_lock);
                list_for_each_entry_safe(interface, tmp, &if_list, list) {
-                       if (interface->hba != hba)
-                               continue;
-                       __bnx2fc_destroy(interface);
+                       if (interface->hba == hba &&
+                           interface->vlan_id == (vlan_id & VLAN_VID_MASK))
+                               __bnx2fc_destroy(interface);
                }
                mutex_unlock(&bnx2fc_dev_lock);
                return;