Messages in this thread | | | Date | Thu, 21 Apr 2022 16:56:40 -0400 | Subject | Re: [PATCH 2/4] xen/scsiback: use new command result macros | From | Boris Ostrovsky <> |
| |
On 4/21/22 4:40 AM, Juergen Gross wrote: > 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.
Yes you did. I don't know what I was was looking at.
> >> 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. >
What I was thinking was that this could use the reverse of XEN_VSCSIIF_RSLT_HOST(), i.e. something like
#define RSLT_HOST_TO_XEN_VSCSIIF(x) ((x)<<16)
to be explicit about namespaces.
BTW, should scsiback_result() use XEN_VSCSIIF_RSLT_HOST() at the top?
-boris
| |