Message ID | 20220812010027.8251-7-michael.christie@oracle.com |
---|---|
State | New |
Headers | show |
Series | scsi: Fix internal host code use | expand |
> On Aug 11, 2022, at 6:00 PM, Mike Christie <michael.christie@oracle.com> wrote: > > DID_TARGET_FAILURE is internal to the SCSI layer. Drivers must not use it > because: > > 1. It's not propagated upwards, so SG IO/passthrough users will not see an > error and think a command was successful. > > 2. There is no handling for them in scsi_decide_disposition so it results > in the scsi eh running. > > This has qla2xxx use DID_NO_CONNECT because it looks like we hit this > error when we can't find a port. It will give us the same hard error > behavior and it seems to match the error where we can't find the > endpoint. > > Signed-off-by: Mike Christie <michael.christie@oracle.com> > --- > drivers/scsi/qla2xxx/qla_edif.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c > index 400a8b6f3982..00ccc41cef14 100644 > --- a/drivers/scsi/qla2xxx/qla_edif.c > +++ b/drivers/scsi/qla2xxx/qla_edif.c > @@ -1551,7 +1551,7 @@ qla24xx_sadb_update(struct bsg_job *bsg_job) > ql_dbg(ql_dbg_edif, vha, 0x70a3, "Failed to find port= %06x\n", > sa_frame.port_id.b24); > rval = -EINVAL; > - SET_DID_STATUS(bsg_reply->result, DID_TARGET_FAILURE); > + SET_DID_STATUS(bsg_reply->result, DID_NO_CONNECT); > goto done; > } > > -- > 2.18.2 > FWIW. Looks Good. Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c index 400a8b6f3982..00ccc41cef14 100644 --- a/drivers/scsi/qla2xxx/qla_edif.c +++ b/drivers/scsi/qla2xxx/qla_edif.c @@ -1551,7 +1551,7 @@ qla24xx_sadb_update(struct bsg_job *bsg_job) ql_dbg(ql_dbg_edif, vha, 0x70a3, "Failed to find port= %06x\n", sa_frame.port_id.b24); rval = -EINVAL; - SET_DID_STATUS(bsg_reply->result, DID_TARGET_FAILURE); + SET_DID_STATUS(bsg_reply->result, DID_NO_CONNECT); goto done; }
DID_TARGET_FAILURE is internal to the SCSI layer. Drivers must not use it because: 1. It's not propagated upwards, so SG IO/passthrough users will not see an error and think a command was successful. 2. There is no handling for them in scsi_decide_disposition so it results in the scsi eh running. This has qla2xxx use DID_NO_CONNECT because it looks like we hit this error when we can't find a port. It will give us the same hard error behavior and it seems to match the error where we can't find the endpoint. Signed-off-by: Mike Christie <michael.christie@oracle.com> --- drivers/scsi/qla2xxx/qla_edif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)