diff options
author | Eddie Wai <eddie.wai@broadcom.com> | 2010-11-23 15:29:24 -0800 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-12-21 12:24:12 -0600 |
commit | 94810e824df1509ad3ba401e57f74b922fd928c5 (patch) | |
tree | cbecc4b016c531ffa0a1d76f2a703b2bbf118925 /drivers/scsi/bnx2i/bnx2i_hwi.c | |
parent | 5bf3f39f9bda2750145a7da69ea9ae76d0054956 (diff) | |
download | blackbird-obmc-linux-94810e824df1509ad3ba401e57f74b922fd928c5.tar.gz blackbird-obmc-linux-94810e824df1509ad3ba401e57f74b922fd928c5.zip |
[SCSI] bnx2i: Fixed the remote TCP RST handling for the 570X (1g)
Modified the handling of the remote TCP RST code so the chip can now
flush the tx pipe accordingly upon a remote TCP RST reception.
Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/bnx2i/bnx2i_hwi.c')
-rw-r--r-- | drivers/scsi/bnx2i/bnx2i_hwi.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c index c9a3c0ff3c2f..0d40daefd572 100644 --- a/drivers/scsi/bnx2i/bnx2i_hwi.c +++ b/drivers/scsi/bnx2i/bnx2i_hwi.c @@ -2350,10 +2350,14 @@ static void bnx2i_cm_remote_close(struct cnic_sock *cm_sk) static void bnx2i_cm_remote_abort(struct cnic_sock *cm_sk) { struct bnx2i_endpoint *ep = (struct bnx2i_endpoint *) cm_sk->context; + u32 old_state = ep->state; ep->state = EP_STATE_TCP_RST_RCVD; - if (ep->conn) - bnx2i_recovery_que_add_conn(ep->hba, ep->conn); + if (old_state == EP_STATE_DISCONN_START) + wake_up_interruptible(&ep->ofld_wait); + else + if (ep->conn) + bnx2i_recovery_que_add_conn(ep->hba, ep->conn); } |