summary refs log tree commit diff
path: root/drivers/scsi/bnx2fc
diff options
context:
space:
mode:
authorBhanu Prakash Gollapudi <bprakash@broadcom.com>2011-08-04 17:38:48 -0700
committerJames Bottomley <JBottomley@Parallels.com>2011-08-27 08:35:45 -0600
commit3f8744d147375aca902de7a9f2632a89872565f4 (patch)
treefc1c0ac4489141a22e0d98bc28e046a69bc0198a /drivers/scsi/bnx2fc
parent5fb8fd0dbc0f7e3bc3ea594223e5d4b50c2092d9 (diff)
downloadlinux-3f8744d147375aca902de7a9f2632a89872565f4.tar.gz
[SCSI] bnx2fc: Drop incoming ABTS
As an initiator, driver need not handle incoming ABTS. It initiates an ABTS if
any IO requests time out.

Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bnx2fc')
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_fcoe.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
index ca2e20690b93..62c0e94a916f 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
@@ -547,6 +547,14 @@ static void bnx2fc_recv_frame(struct sk_buff *skb)
 			break;
 		}
 	}
+
+	if (fh->fh_r_ctl == FC_RCTL_BA_ABTS) {
+		/* Drop incoming ABTS */
+		put_cpu();
+		kfree_skb(skb);
+		return;
+	}
+
 	if (le32_to_cpu(fr_crc(fp)) !=
 			~crc32(~0, skb->data, fr_len)) {
 		if (stats->InvalidCRCCount < 5)