Hello, From: Paolo Bonzini <pbonz...@redhat.com> Subject: [PATCH for-2.2 0/5] scsi: enable passthrough of vendor-specific commands Date: Wed, 16 Jul 2014 14:54:45 +0200
> Right now scsi-generic is parsing the CDB, in order to compute > the expected number of bytes to be transferred. This is necessary > if DMA is done by the HBA via scsi_req_data, but it prevents executing > vendor-specific commands via scsi-generic because we don't know how > to parse them. > > If DMA is delegated to the SCSI layer via get_sg_list, we know in > advance how many bytes the guest will want to receive and we can pass > the information straight from the guest to SG_IO. In this case, it is > unnecessary to parse the CDB to get the same information. scsi-disk needs > it to detect underruns and overruns, but scsi-generic and scsi-block can > just ask the HBA about the transfer direction and size. > > This series introduces a new parse_cdb callback in both the device and > the HBA. The latter is called by scsi_bus_parse_cdb, which devices can > call for passthrough requests in their implementation of parse_cdb. Great, thanks a lot. > Tamuki-san, can you please test if these patches are okay for your > usecase? I tested these patches against 5a73480 (Update version for v2.1.0-rc2 release,) and confirmed that a vendor-specific command sent from the initiator in a guest successfully reach (at least) the host using sg_raw and ftrace. That works fine. Regards, TAMUKI Shoichi