From 706c9978fc12e60cdf0a2ab3c06f74c9a9861997 Mon Sep 17 00:00:00 2001 From: Bhanu Prakash Gollapudi Date: Tue, 30 Aug 2011 15:54:51 -0700 Subject: [PATCH] --- yaml --- r: 271042 b: refs/heads/master c: 0cbf32e1681d870632a1772601cbaadd996dc978 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 5be6219e2e5f..1b52de27692f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 26b2982f78c1fc6f486a67271b1d0a0d305dd54b +refs/heads/master: 0cbf32e1681d870632a1772601cbaadd996dc978 diff --git a/trunk/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/trunk/drivers/scsi/bnx2fc/bnx2fc_fcoe.c index 886938d025cd..a5111f365f69 100644 --- a/trunk/drivers/scsi/bnx2fc/bnx2fc_fcoe.c +++ b/trunk/drivers/scsi/bnx2fc/bnx2fc_fcoe.c @@ -1487,13 +1487,13 @@ static void bnx2fc_if_destroy(struct fc_lport *lport) static void __bnx2fc_destroy(struct bnx2fc_interface *interface) { struct fc_lport *lport = interface->ctlr.lp; + struct fcoe_port *port = lport_priv(lport); bnx2fc_interface_cleanup(interface); bnx2fc_stop(interface); list_del(&interface->list); - lport = interface->ctlr.lp; bnx2fc_interface_put(interface); - bnx2fc_if_destroy(lport); + queue_work(bnx2fc_wq, &port->destroy_work); } /** @@ -1541,11 +1541,7 @@ static void bnx2fc_destroy_work(struct work_struct *work) BNX2FC_HBA_DBG(lport, "Entered bnx2fc_destroy_work\n"); - rtnl_lock(); - mutex_lock(&bnx2fc_dev_lock); bnx2fc_if_destroy(lport); - mutex_unlock(&bnx2fc_dev_lock); - rtnl_unlock(); } static void bnx2fc_unbind_adapter_devices(struct bnx2fc_hba *hba)