[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] scsi-disk: Don't use empty string as device
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] scsi-disk: Don't use empty string as device id |
Date: |
Tue, 29 Jan 2019 13:30:03 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 1/25/19 6:46 PM, Kevin Wolf wrote:
> scsi-disk includes in the Device Identification VPD page, depending on
> configuration amongst others, a vendor specific designator that consists
> either of the serial number if given or the BlockBackend name (which is
> a host detail that better shouldn't have been leaked to the guest, but
> now we have to maintain it for compatibility).
>
> With anonymous BlockBackends, i.e. scsi-disk devices constructed with
> drive=<node-name>, and no serial number explicitly specified, this ends
> up as an empty string. If this happens to more than one disk, we have
> accidentally signalled to the OS that this is a multipath setup, which
> is obviously not what was intended.
>
> Instead of using an empty string for the vendor specific designator,
> simply leave out that designator, which makes Linux detect such setups
> as separate disks again.
>
> Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> hw/scsi/scsi-disk.c | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
> index 0e9027c8f3..93eef40b87 100644
> --- a/hw/scsi/scsi-disk.c
> +++ b/hw/scsi/scsi-disk.c
> @@ -652,12 +652,14 @@ static int scsi_disk_emulate_vpd_page(SCSIRequest *req,
> uint8_t *outbuf)
> DPRINTF("Inquiry EVPD[Device identification] "
> "buffer size %zd\n", req->cmd.xfer);
>
> - outbuf[buflen++] = 0x2; /* ASCII */
> - outbuf[buflen++] = 0; /* not officially assigned */
> - outbuf[buflen++] = 0; /* reserved */
> - outbuf[buflen++] = id_len; /* length of data following */
> - memcpy(outbuf + buflen, str, id_len);
> - buflen += id_len;
> + if (id_len) {
> + outbuf[buflen++] = 0x2; /* ASCII */
> + outbuf[buflen++] = 0; /* not officially assigned */
> + outbuf[buflen++] = 0; /* reserved */
> + outbuf[buflen++] = id_len; /* length of data following */
> + memcpy(outbuf + buflen, str, id_len);
> + buflen += id_len;
> + }
>
> if (s->qdev.wwn) {
> outbuf[buflen++] = 0x1; /* Binary */
>
- [Qemu-devel] [PATCH 0/3] scsi-disk: Device Identification fixes, Kevin Wolf, 2019/01/25
- [Qemu-devel] [PATCH 1/3] scsi-disk: Don't use empty string as device id, Kevin Wolf, 2019/01/25
- [Qemu-devel] [PATCH 2/3] scsi-disk: Add device_id property, Kevin Wolf, 2019/01/25
- Re: [Qemu-devel] [PATCH 2/3] scsi-disk: Add device_id property, Peter Krempa, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] scsi-disk: Add device_id property, Peter Krempa, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] scsi-disk: Add device_id property, Kevin Wolf, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] scsi-disk: Add device_id property, Markus Armbruster, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] scsi-disk: Add device_id property, Kevin Wolf, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] scsi-disk: Add device_id property, Markus Armbruster, 2019/01/29
- Re: [Qemu-devel] [libvirt] [PATCH 2/3] scsi-disk: Add device_id property, Peter Krempa, 2019/01/29