[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>
This commit is contained in:
parent
5bf3f39f9b
commit
94810e824d
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1907,6 +1907,7 @@ static int bnx2i_ep_tcp_conn_active(struct bnx2i_endpoint *bnx2i_ep)
|
|||
|
||||
switch (bnx2i_ep->state) {
|
||||
case EP_STATE_CONNECT_START:
|
||||
case EP_STATE_CONNECT_FAILED:
|
||||
case EP_STATE_CLEANUP_FAILED:
|
||||
case EP_STATE_OFLD_FAILED:
|
||||
case EP_STATE_DISCONN_TIMEDOUT:
|
||||
|
@ -1922,13 +1923,10 @@ static int bnx2i_ep_tcp_conn_active(struct bnx2i_endpoint *bnx2i_ep)
|
|||
ret = 1;
|
||||
break;
|
||||
case EP_STATE_TCP_RST_RCVD:
|
||||
ret = 0;
|
||||
break;
|
||||
case EP_STATE_CONNECT_FAILED:
|
||||
if (cnic_dev_10g)
|
||||
ret = 1;
|
||||
else
|
||||
ret = 0;
|
||||
else
|
||||
ret = 1;
|
||||
break;
|
||||
default:
|
||||
ret = 0;
|
||||
|
|
Loading…
Reference in New Issue