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