• C
    virtio-blk: set correct config size for the host driver · 42824b4d
    Changpeng Liu 提交于
    Commit caa1ee43 "vhost-user-blk: add discard/write zeroes features
    support" added fields to struct virtio_blk_config. This changes
    the size of the config space and breaks migration from QEMU 3.1
    and older:
    
    qemu-system-ppc64: get_pci_config_device: Bad config data: i=0x10 read: 41 device: 1 cmask: ff wmask: 80 w1cmask:0
    qemu-system-ppc64: Failed to load PCIDevice:config
    qemu-system-ppc64: Failed to load virtio-blk:virtio
    qemu-system-ppc64: error while loading state for instance 0x0 of device 'pci@800000020000000:01.0/virtio-blk'
    qemu-system-ppc64: load of migration failed: Invalid argument
    
    Since virtio-blk doesn't support the "discard" and "write zeroes"
    features, it shouldn't even expose the associated fields in the
    config space actually. Just include all fields up to num_queues to
    match QEMU 3.1 and older.
    Signed-off-by: NChangpeng Liu <changpeng.liu@intel.com>
    Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
    Message-id: 1550022537-27565-1-git-send-email-changpeng.liu@intel.com
    Message-Id: <1550022537-27565-1-git-send-email-changpeng.liu@intel.com>
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    42824b4d
virtio-blk.c 33.2 KB