diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2012-04-10 03:40:01 +0200 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-04-25 10:58:31 +0200 |
commit | 17c201b3281cfc2c7d7ecfabb33313b747e414cb (patch) | |
tree | 319c52a76dfc293881c00aef99c879d66f1b9923 /drivers/scsi/bfa/bfad_attr.c | |
parent | [SCSI] storvsc: Properly handle errors from the host (diff) | |
download | linux-17c201b3281cfc2c7d7ecfabb33313b747e414cb.tar.xz linux-17c201b3281cfc2c7d7ecfabb33313b747e414cb.zip |
[SCSI] bfa: Fix to defer vport delete handler invocation till firmware logo response.
Made changes to avoid queuing the vport delete work to IM driver
work queue in the bfa_fcb_lport_delete() - since at this stage we
are not completely done with using the vport structure as we are
still waiting for the LOGO response from the fw in online state or
just doing some cleanup. Since queuing up the vport delete work at
this stage will result in the FC transport layer to clean up the vport
before we get the response from firmware.
Made changes to queue the port delete work to the IM driver work queue -
from the bfa_fcs_vport_free() function since at this state we are done
with using the vport data structure and the FCS state machine is completely
cleaned up.
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfad_attr.c')
-rw-r--r-- | drivers/scsi/bfa/bfad_attr.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/bfa/bfad_attr.c b/drivers/scsi/bfa/bfad_attr.c index 7b1ecd2b3ffe..d12be9dff4ba 100644 --- a/drivers/scsi/bfa/bfad_attr.c +++ b/drivers/scsi/bfa/bfad_attr.c @@ -497,6 +497,7 @@ bfad_im_vport_delete(struct fc_vport *fc_vport) if (im_port->flags & BFAD_PORT_DELETE) { bfad_scsi_host_free(bfad, im_port); list_del(&vport->list_entry); + kfree(vport); return 0; } |