xemu/hw/block
Klaus Jensen f7e8c23f39 hw/block/nvme: fix pci doorbell size calculation
The size of the BAR is 0x1000 (main registers) + 8 bytes for each
queue. Currently, the size of the BAR is calculated like so:

    n->reg_size = pow2ceil(0x1004 + 2 * (n->num_queues + 1) * 4);

Since the 'num_queues' parameter already accounts for the admin queue,
this should in any case not need to be incremented by one. Also, the
size should be initialized to (0x1000).

    n->reg_size = pow2ceil(0x1000 + 2 * n->num_queues * 4);

This, with the default value of num_queues (64), we will set aside room
for 1 admin queue and 63 I/O queues (4 bytes per doorbell, 2 doorbells
per queue).

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Message-Id: <20200609190333.59390-2-its@irrelevant.dk>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2020-06-17 14:53:39 +02:00
..
dataplane virtio-blk: On restart, process queued requests in the proper context 2020-06-17 14:53:39 +02:00
Kconfig hw/m68k: add a dummy SWIM floppy controller 2019-10-28 19:06:51 +01:00
Makefile.objs hw/block: Let the NVMe emulated device be target-agnostic 2020-06-05 09:54:48 +01:00
block.c pflash: Require backend size to match device, improve errors 2019-03-26 08:16:24 +01:00
cdrom.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ecc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
fdc.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
hd-geometry.c block: Remove blk_pread_unthrottled() 2019-08-16 10:25:16 +02:00
m25p80.c m25p80: Improve command handling for unsupported commands 2020-03-17 11:36:42 +00:00
nand.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
nvme.c hw/block/nvme: fix pci doorbell size calculation 2020-06-17 14:53:39 +02:00
nvme.h nvme: introduce PMR support from NVMe 1.4 spec 2020-04-30 17:51:07 +02:00
onenand.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pflash_cfi01.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
pflash_cfi02.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
swim.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
tc58128.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
trace-events nvme: introduce PMR support from NVMe 1.4 spec 2020-04-30 17:51:07 +02:00
vhost-user-blk.c * Miscellaneous fixes and feature enablement (many) 2020-06-12 23:06:22 +01:00
virtio-blk.c virtio-blk: On restart, process queued requests in the proper context 2020-06-17 14:53:39 +02:00
xen-block.c qdev: Convert uses of qdev_create() manually 2020-06-15 22:05:08 +02:00
xen_blkif.h xen: Import other xen/io/*.h 2019-06-24 10:42:30 +01:00