Il 22/07/2013 03:04, Benjamin Herrenschmidt ha scritto:
> The free_request callback
> is not directly "linked" to task management though it happens to only
> be called in that case. It's a pre-requisite to task management, make it
> a separate patch.

Ben is right, in fact I'm not sure why you need free_request at all
(since vscsi_put_req is called from both vscsi_command_complete and
vscsi_request_cancelled).

free_request is only needed by hw/usb/dev-uas.c because it does
scsi_req_ref/scsi_req_unref in the HBA code.  There is no need for this,
AFAIK, in the current spapr_vscsi code; if it is done in the
reorganization patches, the free_request callback should be added there.

This part looks weird:

>      default:
>          vscsi_makeup_sense(s, req, ILLEGAL_REQUEST, 0x20, 0);
>          vscsi_send_rsp(s, req, CHECK_CONDITION, 0, 0);

I suggest you check in the relevant part of the vscsi spec how you are
supposed to send back errors ("FUNCTION REJECTED", "INCORRECT LUN").
Once you do that, implementing the "query" TMFs is trivial.

Paolo

Reply via email to