[SCSI] bnx2fc: support software fcoe target
authorBhanu Prakash Gollapudi <bprakash@broadcom.com>
Fri, 11 Jan 2013 07:59:38 +0000 (23:59 -0800)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 29 Jan 2013 23:47:05 +0000 (10:47 +1100)
Software FCoE target always advertises RETRY bit even when there are no
tape LUNs behind the target. This causes the driver to enable FW support
for sequence level error recovery and perform REC/SRR. This patch
arrests the behavior by not enabling SLER feature for this target.

Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/bnx2fc/bnx2fc_tgt.c

index b9d0d9cb17f944309f07dd119e55999bb577c852..eba2328f60e7c94cf2b4b3dbed43ab5532f6276e 100644 (file)
@@ -381,7 +381,9 @@ static int bnx2fc_init_tgt(struct bnx2fc_rport *tgt,
        tgt->rq_cons_idx = 0;
        atomic_set(&tgt->num_active_ios, 0);
 
-       if (rdata->flags & FC_RP_FLAGS_RETRY) {
+       if (rdata->flags & FC_RP_FLAGS_RETRY &&
+           rdata->ids.roles & FC_RPORT_ROLE_FCP_TARGET &&
+           !(rdata->ids.roles & FC_RPORT_ROLE_FCP_INITIATOR)) {
                tgt->dev_type = TYPE_TAPE;
                tgt->io_timeout = 0; /* use default ULP timeout */
        } else {