@@ -353,6 +403,7 @@ void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs)
VirtIOBlock *s;
int cylinders, heads, secs;
static int virtio_blk_id;
+ char *ps;
s = (VirtIOBlock *)virtio_init_pci(bus, "virtio-blk",
PCI_VENDOR_ID_REDHAT_QUMRANET,
@@ -369,6 +420,10 @@ void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs)
s->vdev.reset = virtio_blk_reset;
s->bs = bs;
s->rq = NULL;
+ if (strlen(ps = (char *)drive_get_serial(bs)))
+ strncpy(s->serial_str, ps, sizeof(s->serial_str));
+ else
+ snprintf(s->serial_str, sizeof(s->serial_str), "0");