Commit 07a5298c authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

virtio-scsi: add backwards-compatibility properties for 1.1 and earlier machines



Hotplug and parameter change are new in 1.2, disable them via compat
properties for pc-1.1 and earlier.

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 1bd075f2
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -360,6 +360,14 @@ static QEMUMachine pc_machine_v1_2 = {

#define PC_COMPAT_1_1 \
        {\
            .driver   = "virtio-scsi-pci",\
            .property = "hotplug",\
            .value    = "off",\
        },{\
            .driver   = "virtio-scsi-pci",\
            .property = "param_change",\
            .value    = "off",\
        },{\
            .driver   = "VGA",\
            .property = "vgamem_mb",\
            .value    = stringify(8),\
+0 −7
Original line number Diff line number Diff line
@@ -24,11 +24,6 @@
#define VIRTIO_SCSI_MAX_TARGET  255
#define VIRTIO_SCSI_MAX_LUN     16383

/* Feature Bits */
#define VIRTIO_SCSI_F_INOUT                    0
#define VIRTIO_SCSI_F_HOTPLUG                  1
#define VIRTIO_SCSI_F_CHANGE                   2

/* Response codes */
#define VIRTIO_SCSI_S_OK                       0
#define VIRTIO_SCSI_S_OVERRUN                  1
@@ -561,8 +556,6 @@ static void virtio_scsi_set_config(VirtIODevice *vdev,
static uint32_t virtio_scsi_get_features(VirtIODevice *vdev,
                                         uint32_t requested_features)
{
    requested_features |= (1UL << VIRTIO_SCSI_F_HOTPLUG);
    requested_features |= (1UL << VIRTIO_SCSI_F_CHANGE);
    return requested_features;
}

+8 −1
Original line number Diff line number Diff line
@@ -21,6 +21,11 @@
/* The ID for virtio_scsi */
#define VIRTIO_ID_SCSI  8

/* Feature Bits */
#define VIRTIO_SCSI_F_INOUT                    0
#define VIRTIO_SCSI_F_HOTPLUG                  1
#define VIRTIO_SCSI_F_CHANGE                   2

struct VirtIOSCSIConf {
    uint32_t num_queues;
    uint32_t max_sectors;
@@ -31,6 +36,8 @@ struct VirtIOSCSIConf {
    DEFINE_VIRTIO_COMMON_FEATURES(_state, _features_field), \
    DEFINE_PROP_UINT32("num_queues", _state, _conf_field.num_queues, 1), \
    DEFINE_PROP_UINT32("max_sectors", _state, _conf_field.max_sectors, 0xFFFF), \
    DEFINE_PROP_UINT32("cmd_per_lun", _state, _conf_field.cmd_per_lun, 128)
    DEFINE_PROP_UINT32("cmd_per_lun", _state, _conf_field.cmd_per_lun, 128), \
    DEFINE_PROP_BIT("hotplug", _state, _features_field, VIRTIO_SCSI_F_HOTPLUG, true), \
    DEFINE_PROP_BIT("param_change", _state, _features_field, VIRTIO_SCSI_F_CHANGE, true)

#endif /* _QEMU_VIRTIO_SCSI_H */