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


Reply via email to