There's nothing to protect here and it causes a circular
locking warning with lockdep on and there are outstanding
exchanges. destroy() will lock, then reset the EM. The EM
will make calls back up to the LP for the outstanding
exchanges. That response handler will then lock the LP
causing circular locking.

Signed-off-by: Robert Love <[EMAIL PROTECTED]>
---

 drivers/scsi/libfc/fc_lport.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index e16c6be..ee25bf0 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -558,12 +558,10 @@ EXPORT_SYMBOL(fc_fabric_logoff);
  **/
 int fc_lport_destroy(struct fc_lport *lport)
 {
-       mutex_lock(&lport->lp_mutex);
        cancel_delayed_work_sync(&lport->disc_work);
        lport->tt.scsi_abort_io(lport);
        lport->tt.frame_send = fc_frame_drop;
        lport->tt.exch_mgr_reset(lport->emp, 0, 0);
-       mutex_unlock(&lport->lp_mutex);
        return 0;
 }
 EXPORT_SYMBOL(fc_lport_destroy);

_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to