]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
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)
committerJoe Jin <joe.jin@oracle.com>
Thu, 17 May 2012 01:36:49 +0000 (09:36 +0800)
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>
(cherry picked from commit 26b2982f78c1fc6f486a67271b1d0a0d305dd54b)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/scsi/bnx2fc/bnx2fc_fcoe.c

index 25ced7b9e5446447f6674435d5a930aa18eb9c8e..0a610de546a4ad7d1ac7726fccca743d3d57d42e 100644 (file)
@@ -839,9 +839,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;