OSDN Git Service

virtio-blk: set correct config size for the host driver
authorChangpeng Liu <changpeng.liu@intel.com>
Wed, 13 Feb 2019 01:48:57 +0000 (09:48 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Wed, 13 Feb 2019 08:18:17 +0000 (16:18 +0800)
commit42824b4d16da56a50ff4027f6cd22378e0e2666e
tree5f217380c4dd58da96726af9c82e9ba33eb9b092
parent0b5e750bea635b167eb03d86c3d9a09bbd43bc06
virtio-blk: set correct config size for the host driver

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: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Michael 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: Stefan Hajnoczi <stefanha@redhat.com>
hw/block/virtio-blk.c