From: Tej Parkash Date: Tue, 19 May 2015 09:51:57 +0000 (-0400) Subject: bnx2i: Fixed firmware assert, during target logout. X-Git-Tag: v4.1.12-92~249^2~2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=76a6aa2020d13f8927d1466b1f3b9864e0d9ceb4;p=users%2Fjedix%2Flinux-maple.git bnx2i: Fixed firmware assert, during target logout. Orabug: 22066191 Fix the firmware assert, during target logout in case driver received FIN from target before waiting for asyncronous response. Signed-off-by: Tej Parkash Signed-off-by: Nilesh Javali Reviewed-by: Mike Christie Signed-off-by: James Bottomley (cherry picked from commit 5fc956c243852608db1e4ef74b92bb4445313912) Signed-off-by: Dan Duval --- diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c index e53078d033099..1b8a9710e7011 100644 --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c @@ -2093,7 +2093,8 @@ int bnx2i_hw_ep_disconnect(struct bnx2i_endpoint *bnx2i_ep) else /* wait for option-2 conn teardown */ wait_event_interruptible(bnx2i_ep->ofld_wait, - bnx2i_ep->state != EP_STATE_DISCONN_START); + ((bnx2i_ep->state != EP_STATE_DISCONN_START) + && (bnx2i_ep->state != EP_STATE_TCP_FIN_RCVD))); if (signal_pending(current)) flush_signals(current);