From b457a5f54cd857815401dc4708a4c778481ec562 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Wed, 29 Apr 2015 15:13:25 +0100 Subject: [PATCH 1/7] MAINTAINERS: make virtio-blk Stefan Hajnoczi's responsibility Cc: Kevin Wolf Signed-off-by: Stefan Hajnoczi Signed-off-by: Kevin Wolf --- MAINTAINERS | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index b5ab755de5..0c14de1844 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -704,10 +704,13 @@ F: tests/virtio-9p-test.c T: git git://github.com/kvaneesh/QEMU.git virtio-blk -M: Kevin Wolf M: Stefan Hajnoczi +L: qemu-block@nongnu.org S: Supported F: hw/block/virtio-blk.c +F: hw/block/dataplane/* +F: hw/virtio/dataplane/* +T: git git://github.com/stefanha/qemu.git block virtio-ccw M: Cornelia Huck From e7c6e631b191c99eecb4a06fe19302e863f033c6 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Wed, 29 Apr 2015 15:13:26 +0100 Subject: [PATCH 2/7] MAINTAINERS: split out image formats Block driver submaintainers has proven to be a good model. Kevin and Stefan are splitting up the unclaimed block drivers so each has a dedicated maintainer. Signed-off-by: Stefan Hajnoczi Signed-off-by: Kevin Wolf --- MAINTAINERS | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 0c14de1844..9cd876130f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1201,3 +1201,80 @@ M: Alberto Garcia S: Supported F: block/quorum.c L: qemu-block@nongnu.org + +blkverify +M: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Supported +F: block/blkverify.c + +bochs +M: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Supported +F: block/bochs.c + +cloop +M: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Supported +F: block/cloop.c + +dmg +M: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Supported +F: block/dmg.c + +parallels +M: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Supported +F: block/parallels.c + +qed +M: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Supported +F: block/qed.c + +raw +M: Kevin Wolf +L: qemu-block@nongnu.org +S: Supported +F: block/linux-aio.c +F: block/raw-aio.h +F: block/raw-posix.c +F: block/raw-win32.c +F: block/raw_bsd.c +F: block/win32-aio.c + +qcow2 +M: Kevin Wolf +L: qemu-block@nongnu.org +S: Supported +F: block/qcow2* + +qcow +M: Kevin Wolf +L: qemu-block@nongnu.org +S: Supported +F: block/qcow.c + +blkdebug +M: Kevin Wolf +L: qemu-block@nongnu.org +S: Supported +F: block/blkdebug.c + +vpc +M: Kevin Wolf +L: qemu-block@nongnu.org +S: Supported +F: block/vpc.c + +vvfat +M: Kevin Wolf +L: qemu-block@nongnu.org +S: Supported +F: block/vvfat.c From d55053b16e22d46db0d98819814a31ae5c33e2c7 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Wed, 29 Apr 2015 15:13:27 +0100 Subject: [PATCH 3/7] MAINTAINERS: make block I/O path Stefan Hajnoczi's responsibility The block I/O path includes the asynchronous I/O machinery and read/write/flush/discard processing. It somewhat arbitrarily also includes block migration, which I've found myself reviewing patches for over the years. Signed-off-by: Stefan Hajnoczi Signed-off-by: Kevin Wolf --- MAINTAINERS | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 9cd876130f..9e1413e2cc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -774,12 +774,9 @@ Block M: Kevin Wolf M: Stefan Hajnoczi S: Supported -F: async.c -F: aio-*.c F: block* F: block/ F: hw/block/ -F: migration/block* F: qemu-img* F: qemu-io* F: tests/image-fuzzer/ @@ -787,6 +784,16 @@ F: tests/qemu-iotests/ T: git git://repo.or.cz/qemu/kevin.git block T: git git://github.com/stefanha/qemu.git block +Block I/O path +M: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Supported +F: async.c +F: aio-*.c +F: block/io.c +F: migration/block* +T: git git://github.com/stefanha/qemu.git block + Block Jobs M: Jeff Cody L: qemu-block@nongnu.org From abfe4e9408a9e82bec9e9834eabc65f53907f281 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Wed, 29 Apr 2015 15:13:28 +0100 Subject: [PATCH 4/7] MAINTAINERS: make image fuzzer Stefan Hajnoczi's responsibility Signed-off-by: Stefan Hajnoczi Signed-off-by: Kevin Wolf --- MAINTAINERS | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 9e1413e2cc..65a5cc5d9e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -779,7 +779,6 @@ F: block/ F: hw/block/ F: qemu-img* F: qemu-io* -F: tests/image-fuzzer/ F: tests/qemu-iotests/ T: git git://repo.or.cz/qemu/kevin.git block T: git git://github.com/stefanha/qemu.git block @@ -1285,3 +1284,9 @@ M: Kevin Wolf L: qemu-block@nongnu.org S: Supported F: block/vvfat.c + +Image format fuzzer +M: Stefan Hajnoczi +L: qemu-block@nongnu.org +S: Supported +F: tests/image-fuzzer/ From 17f1e8f5acf0016bf0b14ef9ec591d3f5081fc60 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Wed, 29 Apr 2015 15:13:29 +0100 Subject: [PATCH 5/7] MAINTAINERS: make block layer core Kevin Wolf's responsibility Kevin is now sole maintainer of the core block layer, including BlockDriverState graphs and monitor commands. Signed-off-by: Stefan Hajnoczi Signed-off-by: Kevin Wolf --- MAINTAINERS | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 65a5cc5d9e..25fd2b56ac 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -770,9 +770,8 @@ F: tests/ac97-test.c F: tests/es1370-test.c F: tests/intel-hda-test.c -Block +Block layer core M: Kevin Wolf -M: Stefan Hajnoczi S: Supported F: block* F: block/ @@ -781,7 +780,6 @@ F: qemu-img* F: qemu-io* F: tests/qemu-iotests/ T: git git://repo.or.cz/qemu/kevin.git block -T: git git://github.com/stefanha/qemu.git block Block I/O path M: Stefan Hajnoczi From c95e4c0e53c774dd82a78ae751ea24f537e38778 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Thu, 30 Apr 2015 15:15:13 +0200 Subject: [PATCH 6/7] MAINTAINERS: Add qemu-block list where missing Signed-off-by: Kevin Wolf --- MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 25fd2b56ac..0b67c4826a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -735,12 +735,14 @@ F: backends/rng*.c nvme M: Keith Busch +L: qemu-block@nongnu.org S: Supported F: hw/block/nvme* F: tests/nvme-test.c megasas M: Hannes Reinecke +L: qemu-block@nongnu.org S: Supported F: hw/scsi/megasas.c F: hw/scsi/mfi.h @@ -772,6 +774,7 @@ F: tests/intel-hda-test.c Block layer core M: Kevin Wolf +L: qemu-block@nongnu.org S: Supported F: block* F: block/ @@ -1111,6 +1114,7 @@ Block drivers ------------- VMDK M: Fam Zheng +L: qemu-block@nongnu.org S: Supported F: block/vmdk.c @@ -1141,6 +1145,7 @@ T: git git://github.com/codyprime/qemu-kvm-jtc.git block VDI M: Stefan Weil +L: qemu-block@nongnu.org S: Maintained F: block/vdi.c @@ -1148,6 +1153,7 @@ iSCSI M: Ronnie Sahlberg M: Paolo Bonzini M: Peter Lieven +L: qemu-block@nongnu.org S: Supported F: block/iscsi.c From 4a4d614ff56b4cf15e83629946afe51dc116053f Mon Sep 17 00:00:00 2001 From: Daniel Stekloff Date: Fri, 24 Apr 2015 11:55:42 -0700 Subject: [PATCH 7/7] Enable NVMe start controller for Windows guest. Windows seems to send two separate calls to NVMe controller configuration. The first sends configuration info and the second the enable bit. I couldn't enable the Windows 8.1 in-box NVMe driver with base Qemu. I made the following change to store the configuration data and then handle enable and NVMe driver works on Windows 8.1. I am not a Windows expert and I'm not entirely sure this is the correct approach. I'm offering it for anyone who wishes to use NVMe on Windows 8.1 using Qemu. I have tested this change with Linux and Windows guests with NVMe devices. Signed-off-by: Daniel Stekloff Acked-by: Keith Busch Signed-off-by: Kevin Wolf --- hw/block/nvme.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 1e071662d2..ad988d7c24 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -615,6 +615,13 @@ static void nvme_write_bar(NvmeCtrl *n, hwaddr offset, uint64_t data, n->bar.intmc = n->bar.intms; break; case 0x14: + /* Windows first sends data, then sends enable bit */ + if (!NVME_CC_EN(data) && !NVME_CC_EN(n->bar.cc) && + !NVME_CC_SHN(data) && !NVME_CC_SHN(n->bar.cc)) + { + n->bar.cc = data; + } + if (NVME_CC_EN(data) && !NVME_CC_EN(n->bar.cc)) { n->bar.cc = data; if (nvme_start_ctrl(n)) {