When using SCSI passthrough and running in Linux, QEMU edits the reply of the SCSI Inquiry VPD Block Limits message with the value of the /sys/bus/<dev>/queue/max_sectors_kb parameter the device has in the host. Doing so allows the Linux guest to proper setup the device.
But the Block Limits message is optional, and its absence can cause the device to be unusable by the guest. An example can be seen at https://bugzilla.redhat.com/show_bug.cgi?id=1566195. This series implements an approach to solve it. First patch has more details on the problem and why the existing workarounds are not enough, including the first step towards the solution. Patch 2 wraps it up and solves it. Patch 3 is a sort of 'cleanup' patch to isolate the logic, avoiding tampering with the communication of SCSI hardware that does implement the Block Limits message. Daniel Henrique Barboza (3): scsi-block: emulate missing Block Limits response scsi-block: add VPD Block Limits in INQUIRY Supported Pages reply scsi-block: adding flag at realize to enable Block Limits emulation hw/scsi/scsi-disk.c | 51 +++++++++++++++- hw/scsi/scsi-generic.c | 157 ++++++++++++++++++++++++++++++++++++++++++++++--- include/hw/scsi/scsi.h | 4 ++ 3 files changed, 201 insertions(+), 11 deletions(-) -- 2.14.3