On 4/20/22 5:25 AM, Juergen Gross wrote:
> @@ -569,7 +645,7 @@ static void scsiback_device_action(struct vscsibk_pend *pending_req,
> wait_for_completion(&pending_req->tmr_done);
>
> err = (se_cmd->se_tmr_req->response == TMR_FUNCTION_COMPLETE) ?
> - SUCCESS : FAILED;
> + XEN_VSCSIIF_RSLT_RESET_SUCCESS : XEN_VSCSIIF_RSLT_RESET_FAILED;
>
> scsiback_do_resp_with_sense(NULL, err, 0, pending_req);
> transport_generic_free_cmd(&pending_req->se_cmd, 0);
You also want to initialize err to XEN_VSCSIIF_RSLT_RESET_FAILED.
And also looking at invocations of scsiback_do_resp_with_sense() I think those may need to be adjusted as well.
-boris
On 20.04.22 18:12, Boris Ostrovsky wrote:
>
> On 4/20/22 5:25 AM, Juergen Gross wrote:
>> @@ -569,7 +645,7 @@ static void scsiback_device_action(struct vscsibk_pend
>> *pending_req,
>> wait_for_completion(&pending_req->tmr_done);
>> err = (se_cmd->se_tmr_req->response == TMR_FUNCTION_COMPLETE) ?
>> - SUCCESS : FAILED;
>> + XEN_VSCSIIF_RSLT_RESET_SUCCESS : XEN_VSCSIIF_RSLT_RESET_FAILED;
>> scsiback_do_resp_with_sense(NULL, err, 0, pending_req);
>> transport_generic_free_cmd(&pending_req->se_cmd, 0);
>
>
> You also want to initialize err to XEN_VSCSIIF_RSLT_RESET_FAILED.
I did that.
> And also looking at invocations of scsiback_do_resp_with_sense() I think those
> may need to be adjusted as well.
No, the invocations are fine, but scsiback_result() needs to pass through
the lowest 16 bits instead of only the lowest 8 bits of the result value.
Juergen