Fill in the feature table with the last field of struct virtio_blk_config at the time that the feature flag was introduced. The table was constructed by searching through the git history.
Signed-off-by: Jesse Larrew <jlar...@linux.vnet.ibm.com> --- hw/virtio-blk.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c index 788a4c7..47c57d8 100644 --- a/hw/virtio-blk.c +++ b/hw/virtio-blk.c @@ -26,8 +26,26 @@ #endif static VirtIOFeature feature_sizes[] = { - {.flags = 0xffffffff, /* dummy table -- all features included */ - .end = sizeof(struct virtio_blk_config)}, + {.flags = 1 << VIRTIO_BLK_F_BARRIER, + .end = endof(struct virtio_blk_config, sectors)}, + {.flags = 1 << VIRTIO_BLK_F_SIZE_MAX, + .end = endof(struct virtio_blk_config, sectors)}, + {.flags = 1 << VIRTIO_BLK_F_SEG_MAX, + .end = endof(struct virtio_blk_config, sectors)}, + {.flags = 1 << VIRTIO_BLK_F_GEOMETRY, + .end = endof(struct virtio_blk_config, sectors)}, + {.flags = 1 << VIRTIO_BLK_F_RO, + .end = endof(struct virtio_blk_config, sectors)}, + {.flags = 1 << VIRTIO_BLK_F_BLK_SIZE, + .end = endof(struct virtio_blk_config, sectors)}, + {.flags = 1 << VIRTIO_BLK_F_SCSI, + .end = endof(struct virtio_blk_config, sectors)}, + {.flags = 1 << VIRTIO_BLK_F_WCE, + .end = endof(struct virtio_blk_config, blk_size)}, + {.flags = 1 << VIRTIO_BLK_F_TOPOLOGY, + .end = endof(struct virtio_blk_config, opt_io_size)}, + {.flags = 1 << VIRTIO_BLK_F_CONFIG_WCE, + .end = endof(struct virtio_blk_config, wce)}, {} }; -- 1.7.11.7