* [PATCH v3 0/4] Drop deprecated floppy config & bogus -drive if=T
@ 2021-03-09 16:12 Markus Armbruster
2021-03-09 16:12 ` [PATCH v3 1/4] docs/system/deprecated: Fix note on fdc drive properties Markus Armbruster
` (3 more replies)
0 siblings, 4 replies; 14+ messages in thread
From: Markus Armbruster @ 2021-03-09 16:12 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, berrange, qemu-block, libvir-list, mreitz, jsnow
v3:
* PATCH 1: New [Daniel]
v2:
* Rebased, straightforward conflict with commit f5d33dd51f
"hw/block/fdc: Remove the check_media_rate property" resolved
* PATCH 2: Commit message fixed [Kevin]
Markus Armbruster (3):
fdc: Drop deprecated floppy configuration
fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common()
blockdev: Drop deprecated bogus -drive interface type
docs/system/deprecated.rst | 33 --
docs/system/removed-features.rst | 33 ++
include/sysemu/blockdev.h | 1 -
blockdev.c | 37 +-
hw/block/fdc.c | 73 +---
softmmu/vl.c | 8 +-
tests/qemu-iotests/172 | 31 +-
tests/qemu-iotests/172.out | 562 +------------------------------
8 files changed, 59 insertions(+), 719 deletions(-)
--
2.26.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v3 1/4] docs/system/deprecated: Fix note on fdc drive properties
2021-03-09 16:12 [PATCH v3 0/4] Drop deprecated floppy config & bogus -drive if=T Markus Armbruster
@ 2021-03-09 16:12 ` Markus Armbruster
2021-03-09 16:13 ` Daniel P. Berrangé
2021-03-09 16:12 ` [PATCH v3 2/4] fdc: Drop deprecated floppy configuration Markus Armbruster
` (2 subsequent siblings)
3 siblings, 1 reply; 14+ messages in thread
From: Markus Armbruster @ 2021-03-09 16:12 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, berrange, qemu-block, libvir-list, mreitz, jsnow
Commit 4a27a638e7 "fdc: Deprecate configuring floppies with -global
isa-fdc" actually deprecated any use of floppy controller driver
properties, not just with -global. Correct the deprecation note
accordingly.
Fixes: 4a27a638e718b445648de6b27c709353551d9b44
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
docs/system/deprecated.rst | 33 ++++++++++++++++++++++++++++-----
1 file changed, 28 insertions(+), 5 deletions(-)
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index cfabe69846..008d4c74ab 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -94,10 +94,11 @@ QEMU 5.1 has three options:
to the user to load all the images they need.
3. ``-bios <file>`` - Tells QEMU to load the specified file as the firmwrae.
-``Configuring floppies with ``-global``
-'''''''''''''''''''''''''''''''''''''''
+Floppy controllers' drive properties (since 5.1)
+''''''''''''''''''''''''''''''''''''''''''''''''
-Use ``-device floppy,...`` instead:
+Use ``-device floppy,...`` instead. When configuring onboard floppy
+controllers
::
-global isa-fdc.driveA=...
@@ -120,8 +121,30 @@ become
-device floppy,unit=1,drive=...
-``-drive`` with bogus interface type
-''''''''''''''''''''''''''''''''''''
+When plugging in a floppy controller
+::
+
+ -device isa-fdc,...,driveA=...
+
+becomes
+::
+
+ -device isa-fdc,...
+ -device floppy,unit=0,drive=...
+
+and
+::
+
+ -device isa-fdc,...,driveB=...
+
+becomes
+::
+
+ -device isa-fdc,...
+ -device floppy,unit=1,drive=...
+
+``-drive`` with bogus interface type (since 5.1)
+''''''''''''''''''''''''''''''''''''''''''''''''
Drives with interface types other than ``if=none`` are for onboard
devices. It is possible to use drives the board doesn't pick up with
--
2.26.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 2/4] fdc: Drop deprecated floppy configuration
2021-03-09 16:12 [PATCH v3 0/4] Drop deprecated floppy config & bogus -drive if=T Markus Armbruster
2021-03-09 16:12 ` [PATCH v3 1/4] docs/system/deprecated: Fix note on fdc drive properties Markus Armbruster
@ 2021-03-09 16:12 ` Markus Armbruster
2021-03-09 16:14 ` Daniel P. Berrangé
2021-03-09 16:12 ` [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common() Markus Armbruster
2021-03-09 16:12 ` [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type Markus Armbruster
3 siblings, 1 reply; 14+ messages in thread
From: Markus Armbruster @ 2021-03-09 16:12 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, berrange, qemu-block, libvir-list, mreitz, jsnow
Drop the crap deprecated in commit 4a27a638e7 "fdc: Deprecate
configuring floppies with -global isa-fdc" (v5.1.0).
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
docs/system/deprecated.rst | 49 ---
docs/system/removed-features.rst | 49 +++
hw/block/fdc.c | 54 +--
tests/qemu-iotests/172 | 31 +-
tests/qemu-iotests/172.out | 562 +------------------------------
5 files changed, 53 insertions(+), 692 deletions(-)
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 008d4c74ab..601e9647a5 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -94,55 +94,6 @@ QEMU 5.1 has three options:
to the user to load all the images they need.
3. ``-bios <file>`` - Tells QEMU to load the specified file as the firmwrae.
-Floppy controllers' drive properties (since 5.1)
-''''''''''''''''''''''''''''''''''''''''''''''''
-
-Use ``-device floppy,...`` instead. When configuring onboard floppy
-controllers
-::
-
- -global isa-fdc.driveA=...
- -global sysbus-fdc.driveA=...
- -global SUNW,fdtwo.drive=...
-
-become
-::
-
- -device floppy,unit=0,drive=...
-
-and
-::
-
- -global isa-fdc.driveB=...
- -global sysbus-fdc.driveB=...
-
-become
-::
-
- -device floppy,unit=1,drive=...
-
-When plugging in a floppy controller
-::
-
- -device isa-fdc,...,driveA=...
-
-becomes
-::
-
- -device isa-fdc,...
- -device floppy,unit=0,drive=...
-
-and
-::
-
- -device isa-fdc,...,driveB=...
-
-becomes
-::
-
- -device isa-fdc,...
- -device floppy,unit=1,drive=...
-
``-drive`` with bogus interface type (since 5.1)
''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index c8481cafbd..77e7ba1339 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -38,6 +38,55 @@ or ``-display default,show-cursor=on`` instead.
QEMU 5.0 introduced an alternative syntax to specify the size of the translation
block cache, ``-accel tcg,tb-size=``.
+Floppy controllers' drive properties (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Use ``-device floppy,...`` instead. When configuring onboard floppy
+controllers
+::
+
+ -global isa-fdc.driveA=...
+ -global sysbus-fdc.driveA=...
+ -global SUNW,fdtwo.drive=...
+
+become
+::
+
+ -device floppy,unit=0,drive=...
+
+and
+::
+
+ -global isa-fdc.driveB=...
+ -global sysbus-fdc.driveB=...
+
+become
+::
+
+ -device floppy,unit=1,drive=...
+
+When plugging in a floppy controller
+::
+
+ -device isa-fdc,...,driveA=...
+
+becomes
+::
+
+ -device isa-fdc,...
+ -device floppy,unit=0,drive=...
+
+and
+::
+
+ -device isa-fdc,...,driveB=...
+
+becomes
+::
+
+ -device isa-fdc,...
+ -device floppy,unit=1,drive=...
+
QEMU Machine Protocol (QMP) commands
------------------------------------
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index 198940e737..f978ddf647 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -870,7 +870,6 @@ struct FDCtrl {
uint8_t num_floppies;
FDrive drives[MAX_FD];
struct {
- BlockBackend *blk;
FloppyDriveType type;
} qdev_for_drives[MAX_FD];
int reset_sensei;
@@ -2517,56 +2516,12 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, DeviceState *fdc_dev,
{
unsigned int i;
FDrive *drive;
- DeviceState *dev;
- BlockBackend *blk;
- bool ok;
- const char *fdc_name, *drive_suffix;
for (i = 0; i < MAX_FD; i++) {
drive = &fdctrl->drives[i];
drive->fdctrl = fdctrl;
-
- /* If the drive is not present, we skip creating the qdev device, but
- * still have to initialise the controller. */
- blk = fdctrl->qdev_for_drives[i].blk;
- if (!blk) {
- fd_init(drive);
- fd_revalidate(drive);
- continue;
- }
-
- fdc_name = object_get_typename(OBJECT(fdc_dev));
- drive_suffix = !strcmp(fdc_name, "SUNW,fdtwo") ? "" : i ? "B" : "A";
- warn_report("warning: property %s.drive%s is deprecated",
- fdc_name, drive_suffix);
- error_printf("Use -device floppy,unit=%d,drive=... instead.\n", i);
-
- dev = qdev_new("floppy");
- qdev_prop_set_uint32(dev, "unit", i);
- qdev_prop_set_enum(dev, "drive-type", fdctrl->qdev_for_drives[i].type);
-
- /*
- * Hack alert: we move the backend from the floppy controller
- * device to the floppy device. We first need to detach the
- * controller, or else floppy_create()'s qdev_prop_set_drive()
- * will die when it attaches floppy device. We also need to
- * take another reference so that blk_detach_dev() doesn't
- * free blk while we still need it.
- *
- * The hack is probably a bad idea.
- */
- blk_ref(blk);
- blk_detach_dev(blk, fdc_dev);
- fdctrl->qdev_for_drives[i].blk = NULL;
- ok = qdev_prop_set_drive_err(dev, "drive", blk, errp);
- blk_unref(blk);
- if (!ok) {
- return;
- }
-
- if (!qdev_realize_and_unref(dev, &fdctrl->bus.bus, errp)) {
- return;
- }
+ fd_init(drive);
+ fd_revalidate(drive);
}
}
@@ -2882,8 +2837,6 @@ static Property isa_fdc_properties[] = {
DEFINE_PROP_UINT32("iobase", FDCtrlISABus, iobase, 0x3f0),
DEFINE_PROP_UINT32("irq", FDCtrlISABus, irq, 6),
DEFINE_PROP_UINT32("dma", FDCtrlISABus, dma, 2),
- DEFINE_PROP_DRIVE("driveA", FDCtrlISABus, state.qdev_for_drives[0].blk),
- DEFINE_PROP_DRIVE("driveB", FDCtrlISABus, state.qdev_for_drives[1].blk),
DEFINE_PROP_SIGNED("fdtypeA", FDCtrlISABus, state.qdev_for_drives[0].type,
FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type,
FloppyDriveType),
@@ -2941,8 +2894,6 @@ static const VMStateDescription vmstate_sysbus_fdc ={
};
static Property sysbus_fdc_properties[] = {
- DEFINE_PROP_DRIVE("driveA", FDCtrlSysBus, state.qdev_for_drives[0].blk),
- DEFINE_PROP_DRIVE("driveB", FDCtrlSysBus, state.qdev_for_drives[1].blk),
DEFINE_PROP_SIGNED("fdtypeA", FDCtrlSysBus, state.qdev_for_drives[0].type,
FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type,
FloppyDriveType),
@@ -2971,7 +2922,6 @@ static const TypeInfo sysbus_fdc_info = {
};
static Property sun4m_fdc_properties[] = {
- DEFINE_PROP_DRIVE("drive", FDCtrlSysBus, state.qdev_for_drives[0].blk),
DEFINE_PROP_SIGNED("fdtype", FDCtrlSysBus, state.qdev_for_drives[0].type,
FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type,
FloppyDriveType),
diff --git a/tests/qemu-iotests/172 b/tests/qemu-iotests/172
index 0ac942a6c5..ff269ca7b5 100755
--- a/tests/qemu-iotests/172
+++ b/tests/qemu-iotests/172
@@ -123,15 +123,6 @@ check_floppy_qtree -drive if=floppy,file="$TEST_IMG"
check_floppy_qtree -drive if=floppy,file="$TEST_IMG",index=1
check_floppy_qtree -drive if=floppy,file="$TEST_IMG" -drive if=floppy,file="$TEST_IMG.2",index=1
-echo
-echo
-echo === Using -drive if=none and -global ===
-
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -global isa-fdc.driveA=none0
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -global isa-fdc.driveB=none0
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -drive if=none,file="$TEST_IMG.2" \
- -global isa-fdc.driveA=none0 -global isa-fdc.driveB=none1
-
echo
echo
echo === Using -drive if=none and -device ===
@@ -145,13 +136,6 @@ echo
echo
echo === Mixing -fdX and -global ===
-# Working
-check_floppy_qtree -fda "$TEST_IMG" -drive if=none,file="$TEST_IMG.2" -global isa-fdc.driveB=none0
-check_floppy_qtree -fdb "$TEST_IMG" -drive if=none,file="$TEST_IMG.2" -global isa-fdc.driveA=none0
-
-# Conflicting
-check_floppy_qtree -fda "$TEST_IMG" -drive if=none,file="$TEST_IMG.2" -global isa-fdc.driveA=none0
-check_floppy_qtree -fdb "$TEST_IMG" -drive if=none,file="$TEST_IMG.2" -global isa-fdc.driveB=none0
# Conflicting, -fdX wins
check_floppy_qtree -fda "$TEST_IMG" -drive if=none,file="$TEST_IMG.2" -global floppy.drive=none0
@@ -186,23 +170,10 @@ echo
echo === Mixing -global and -device ===
# Working
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -drive if=none,file="$TEST_IMG.2" \
- -global isa-fdc.driveA=none0 -device floppy,drive=none1
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -drive if=none,file="$TEST_IMG.2" \
- -global isa-fdc.driveA=none0 -device floppy,drive=none1,unit=1
-
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -drive if=none,file="$TEST_IMG.2" \
- -global isa-fdc.driveB=none0 -device floppy,drive=none1
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -drive if=none,file="$TEST_IMG.2" \
- -global isa-fdc.driveB=none0 -device floppy,drive=none1,unit=0
check_floppy_qtree -drive if=none,file="$TEST_IMG" \
-global floppy.drive=none0 -device floppy,unit=0
# Conflicting
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -drive if=none,file="$TEST_IMG.2" \
- -global isa-fdc.driveA=none0 -device floppy,drive=none1,unit=0
-check_floppy_qtree -drive if=none,file="$TEST_IMG" -drive if=none,file="$TEST_IMG.2" \
- -global isa-fdc.driveB=none0 -device floppy,drive=none1,unit=1
check_floppy_qtree -drive if=none,file="$TEST_IMG" -drive if=none,file="$TEST_IMG.2" \
-global floppy.drive=none0 -device floppy,drive=none1,unit=0
@@ -227,7 +198,7 @@ echo === Too many floppy drives ===
check_floppy_qtree -drive if=floppy,file="$TEST_IMG" \
-drive if=none,file="$TEST_IMG.2" \
-drive if=none,file="$TEST_IMG.3" \
- -global isa-fdc.driveB=none0 \
+ -device floppy,drive=none0 \
-device floppy,drive=none1
echo
diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out
index 349ae51d6c..d53f61d0de 100644
--- a/tests/qemu-iotests/172.out
+++ b/tests/qemu-iotests/172.out
@@ -12,8 +12,6 @@ Testing:
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -41,8 +39,6 @@ Testing: -fda TEST_DIR/t.qcow2
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -80,8 +76,6 @@ Testing: -fdb TEST_DIR/t.qcow2
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -134,8 +128,6 @@ Testing: -fda TEST_DIR/t.qcow2 -fdb TEST_DIR/t.qcow2.2
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -189,8 +181,6 @@ Testing: -fdb
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -229,8 +219,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -268,8 +256,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2,index=1
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -322,8 +308,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2 -drive if=floppy,file=TEST_DIR/t
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -372,150 +356,6 @@ sd0: [not inserted]
-=== Using -drive if=none and -global ===
-
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -global isa-fdc.driveA=none0
-QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated
-Use -device floppy,unit=0,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 0 (0x0)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -global isa-fdc.driveB=none0
-QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated
-Use -device floppy,unit=1,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 1 (0x1)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=none0 -global isa-fdc.driveB=none1
-QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated
-Use -device floppy,unit=0,drive=... instead.
-QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated
-Use -device floppy,unit=1,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 1 (0x1)
- drive = "none1"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
- dev: floppy, id ""
- unit = 0 (0x0)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
-
=== Using -drive if=none and -device ===
Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0
@@ -524,8 +364,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -563,8 +401,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,unit=1
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -602,8 +438,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qco
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -654,130 +488,6 @@ sd0: [not inserted]
=== Mixing -fdX and -global ===
-Testing: -fda TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=none0
-QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated
-Use -device floppy,unit=1,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 0 (0x0)
- drive = "floppy0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
- dev: floppy, id ""
- unit = 1 (0x1)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
-Testing: -fdb TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=none0
-QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated
-Use -device floppy,unit=0,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 1 (0x1)
- drive = "floppy1"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
- dev: floppy, id ""
- unit = 0 (0x0)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-floppy1 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
-Testing: -fda TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=none0
-QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated
-Use -device floppy,unit=0,drive=... instead.
-QEMU_PROG: Floppy unit 0 is in use
-
-Testing: -fdb TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=none0
-QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated
-Use -device floppy,unit=1,drive=... instead.
-QEMU_PROG: Floppy unit 1 is in use
-
Testing: -fda TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global floppy.drive=none0
QEMU_PROG: -global floppy.drive=... conflicts with drive=floppy0
@@ -790,8 +500,6 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -device fl
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -845,8 +553,6 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -device fl
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -900,8 +606,6 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -device fl
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -955,8 +659,6 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -device fl
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1019,8 +721,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.q
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1074,8 +774,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.q
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1129,242 +827,12 @@ QEMU_PROG: -device floppy,drive=none0,unit=0: Floppy unit 0 is in use
=== Mixing -global and -device ===
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=none0 -device floppy,drive=none1
-QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated
-Use -device floppy,unit=0,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 1 (0x1)
- drive = "none1"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
- dev: floppy, id ""
- unit = 0 (0x0)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2)
- Attached to: /machine/peripheral-anon/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=none0 -device floppy,drive=none1,unit=1
-QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated
-Use -device floppy,unit=0,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 1 (0x1)
- drive = "none1"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
- dev: floppy, id ""
- unit = 0 (0x0)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2)
- Attached to: /machine/peripheral-anon/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=none0 -device floppy,drive=none1
-QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated
-Use -device floppy,unit=1,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 0 (0x0)
- drive = "none1"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
- dev: floppy, id ""
- unit = 1 (0x1)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2)
- Attached to: /machine/peripheral-anon/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=none0 -device floppy,drive=none1,unit=0
-QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated
-Use -device floppy,unit=1,drive=... instead.
-
- dev: isa-fdc, id ""
- iobase = 1008 (0x3f0)
- irq = 6 (0x6)
- dma = 2 (0x2)
- driveA = ""
- driveB = ""
- fdtypeA = "auto"
- fdtypeB = "auto"
- fallback = "288"
- isa irq 6
- bus: floppy-bus.0
- type floppy-bus
- dev: floppy, id ""
- unit = 0 (0x0)
- drive = "none1"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
- dev: floppy, id ""
- unit = 1 (0x1)
- drive = "none0"
- logical_block_size = 512 (512 B)
- physical_block_size = 512 (512 B)
- min_io_size = 0 (0 B)
- opt_io_size = 0 (0 B)
- discard_granularity = 4294967295 (4 GiB)
- write-cache = "auto"
- share-rw = false
- drive-type = "144"
-none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2)
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2)
- Attached to: /machine/peripheral-anon/device[N]
- Removable device: not locked, tray closed
- Cache mode: writeback
-
-ide1-cd0: [not inserted]
- Attached to: /machine/unattached/device[N]
- Removable device: not locked, tray closed
-
-sd0: [not inserted]
- Removable device: not locked, tray closed
-(qemu) quit
-
-
Testing: -drive if=none,file=TEST_DIR/t.qcow2 -global floppy.drive=none0 -device floppy,unit=0
dev: isa-fdc, id ""
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1396,16 +864,6 @@ sd0: [not inserted]
(qemu) quit
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=none0 -device floppy,drive=none1,unit=0
-QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated
-Use -device floppy,unit=0,drive=... instead.
-QEMU_PROG: -device floppy,drive=none1,unit=0: Floppy unit 0 is in use
-
-Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=none0 -device floppy,drive=none1,unit=1
-QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated
-Use -device floppy,unit=1,drive=... instead.
-QEMU_PROG: -device floppy,drive=none1,unit=1: Floppy unit 1 is in use
-
Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -global floppy.drive=none0 -device floppy,drive=none1,unit=0
QEMU_PROG: -device floppy,drive=none1,unit=0: -global floppy.drive=... conflicts with drive=none1
@@ -1430,9 +888,7 @@ QEMU_PROG: -device floppy,drive=floppy0: Property 'floppy.drive' can't find valu
=== Too many floppy drives ===
-Testing: -drive if=floppy,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -drive if=none,file=TEST_DIR/t.qcow2.3 -global isa-fdc.driveB=none0 -device floppy,drive=none1
-QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated
-Use -device floppy,unit=1,drive=... instead.
+Testing: -drive if=floppy,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -drive if=none,file=TEST_DIR/t.qcow2.3 -device floppy,drive=none0 -device floppy,drive=none1
QEMU_PROG: -device floppy,drive=none1: Can't create floppy unit 2, bus supports only 2 units
@@ -1444,8 +900,6 @@ Testing: -device floppy
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1470,8 +924,6 @@ Testing: -device floppy,drive-type=120
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1496,8 +948,6 @@ Testing: -device floppy,drive-type=144
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1522,8 +972,6 @@ Testing: -device floppy,drive-type=288
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1551,8 +999,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,drive-t
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1590,8 +1036,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,drive-t
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1632,8 +1076,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,logical
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
@@ -1671,8 +1113,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,physica
iobase = 1008 (0x3f0)
irq = 6 (0x6)
dma = 2 (0x2)
- driveA = ""
- driveB = ""
fdtypeA = "auto"
fdtypeB = "auto"
fallback = "288"
--
2.26.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common()
2021-03-09 16:12 [PATCH v3 0/4] Drop deprecated floppy config & bogus -drive if=T Markus Armbruster
2021-03-09 16:12 ` [PATCH v3 1/4] docs/system/deprecated: Fix note on fdc drive properties Markus Armbruster
2021-03-09 16:12 ` [PATCH v3 2/4] fdc: Drop deprecated floppy configuration Markus Armbruster
@ 2021-03-09 16:12 ` Markus Armbruster
2021-03-09 16:15 ` Daniel P. Berrangé
2021-03-09 18:25 ` Richard Henderson
2021-03-09 16:12 ` [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type Markus Armbruster
3 siblings, 2 replies; 14+ messages in thread
From: Markus Armbruster @ 2021-03-09 16:12 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, berrange, qemu-block, libvir-list, mreitz, jsnow
The previous commit rendered the name fdctrl_connect_drives() somewhat
misleading. Get rid of it by inlining the (now pretty simple)
function into its only caller.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
hw/block/fdc.c | 23 ++++++++---------------
1 file changed, 8 insertions(+), 15 deletions(-)
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index f978ddf647..32701c2bc5 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -2511,20 +2511,6 @@ void isa_fdc_init_drives(ISADevice *fdc, DriveInfo **fds)
fdctrl_init_drives(&ISA_FDC(fdc)->state.bus, fds);
}
-static void fdctrl_connect_drives(FDCtrl *fdctrl, DeviceState *fdc_dev,
- Error **errp)
-{
- unsigned int i;
- FDrive *drive;
-
- for (i = 0; i < MAX_FD; i++) {
- drive = &fdctrl->drives[i];
- drive->fdctrl = fdctrl;
- fd_init(drive);
- fd_revalidate(drive);
- }
-}
-
void fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
hwaddr mmio_base, DriveInfo **fds)
{
@@ -2565,6 +2551,7 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl,
Error **errp)
{
int i, j;
+ FDrive *drive;
static int command_tables_inited = 0;
if (fdctrl->fallback == FLOPPY_DRIVE_TYPE_AUTO) {
@@ -2604,7 +2591,13 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl,
}
floppy_bus_create(fdctrl, &fdctrl->bus, dev);
- fdctrl_connect_drives(fdctrl, dev, errp);
+
+ for (i = 0; i < MAX_FD; i++) {
+ drive = &fdctrl->drives[i];
+ drive->fdctrl = fdctrl;
+ fd_init(drive);
+ fd_revalidate(drive);
+ }
}
static const MemoryRegionPortio fdc_portio_list[] = {
--
2.26.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type
2021-03-09 16:12 [PATCH v3 0/4] Drop deprecated floppy config & bogus -drive if=T Markus Armbruster
` (2 preceding siblings ...)
2021-03-09 16:12 ` [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common() Markus Armbruster
@ 2021-03-09 16:12 ` Markus Armbruster
2021-03-09 16:18 ` Daniel P. Berrangé
2021-03-11 5:00 ` John Snow
3 siblings, 2 replies; 14+ messages in thread
From: Markus Armbruster @ 2021-03-09 16:12 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, berrange, qemu-block, libvir-list, mreitz, jsnow
Drop the crap deprecated in commit a1b40bda08 "blockdev: Deprecate
-drive with bogus interface type" (v5.1.0).
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
docs/system/deprecated.rst | 7 ------
docs/system/removed-features.rst | 7 ++++++
include/sysemu/blockdev.h | 1 -
blockdev.c | 37 +++++++++++++-------------------
softmmu/vl.c | 8 +------
5 files changed, 23 insertions(+), 37 deletions(-)
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 601e9647a5..664ed60e9f 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -94,13 +94,6 @@ QEMU 5.1 has three options:
to the user to load all the images they need.
3. ``-bios <file>`` - Tells QEMU to load the specified file as the firmwrae.
-``-drive`` with bogus interface type (since 5.1)
-''''''''''''''''''''''''''''''''''''''''''''''''
-
-Drives with interface types other than ``if=none`` are for onboard
-devices. It is possible to use drives the board doesn't pick up with
--device. This usage is now deprecated. Use ``if=none`` instead.
-
Short-form boolean options (since 6.0)
''''''''''''''''''''''''''''''''''''''
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 77e7ba1339..e6d2fbe798 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -87,6 +87,13 @@ becomes
-device isa-fdc,...
-device floppy,unit=1,drive=...
+``-drive`` with bogus interface type (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Drives with interface types other than ``if=none`` are for onboard
+devices. Drives the board doesn't pick up can no longer be used with
+-device. Use ``if=none`` instead.
+
QEMU Machine Protocol (QMP) commands
------------------------------------
diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h
index 3b5fcda08d..32c2d6023c 100644
--- a/include/sysemu/blockdev.h
+++ b/include/sysemu/blockdev.h
@@ -35,7 +35,6 @@ struct DriveInfo {
bool is_default; /* Added by default_drive() ? */
int media_cd;
QemuOpts *opts;
- bool claimed_by_board;
QTAILQ_ENTRY(DriveInfo) next;
};
diff --git a/blockdev.c b/blockdev.c
index cd438e60e3..2e01889cff 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -240,19 +240,10 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit)
return NULL;
}
-void drive_mark_claimed_by_board(void)
-{
- BlockBackend *blk;
- DriveInfo *dinfo;
-
- for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
- dinfo = blk_legacy_dinfo(blk);
- if (dinfo && blk_get_attached_dev(blk)) {
- dinfo->claimed_by_board = true;
- }
- }
-}
-
+/*
+ * Check board claimed all -drive that are meant to be claimed.
+ * Fatal error if any remain unclaimed.
+ */
void drive_check_orphaned(void)
{
BlockBackend *blk;
@@ -262,7 +253,17 @@ void drive_check_orphaned(void)
for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
dinfo = blk_legacy_dinfo(blk);
- if (dinfo->is_default || dinfo->type == IF_NONE) {
+ /*
+ * Ignore default drives, because we create certain default
+ * drives unconditionally, then leave them unclaimed. Not the
+ * users fault.
+ * Ignore IF_VIRTIO, because it gets desugared into -device,
+ * so we can leave failing to -device.
+ * Ignore IF_NONE, because leaving unclaimed IF_NONE remains
+ * available for device_add is a feature.
+ */
+ if (dinfo->is_default || dinfo->type == IF_VIRTIO
+ || dinfo->type == IF_NONE) {
continue;
}
if (!blk_get_attached_dev(blk)) {
@@ -273,14 +274,6 @@ void drive_check_orphaned(void)
if_name[dinfo->type], dinfo->bus, dinfo->unit);
loc_pop(&loc);
orphans = true;
- continue;
- }
- if (!dinfo->claimed_by_board && dinfo->type != IF_VIRTIO) {
- loc_push_none(&loc);
- qemu_opts_loc_restore(dinfo->opts);
- warn_report("bogus if=%s is deprecated, use if=none",
- if_name[dinfo->type]);
- loc_pop(&loc);
}
}
diff --git a/softmmu/vl.c b/softmmu/vl.c
index ff488ea3e7..7453611152 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -2460,13 +2460,7 @@ static void qemu_init_board(void)
/* From here on we enter MACHINE_PHASE_INITIALIZED. */
machine_run_board_init(current_machine);
- /*
- * TODO To drop support for deprecated bogus if=..., move
- * drive_check_orphaned() here, replacing this call. Also drop
- * its deprecation warning, along with DriveInfo member
- * @claimed_by_board.
- */
- drive_mark_claimed_by_board();
+ drive_check_orphaned();
realtime_init();
--
2.26.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v3 1/4] docs/system/deprecated: Fix note on fdc drive properties
2021-03-09 16:12 ` [PATCH v3 1/4] docs/system/deprecated: Fix note on fdc drive properties Markus Armbruster
@ 2021-03-09 16:13 ` Daniel P. Berrangé
0 siblings, 0 replies; 14+ messages in thread
From: Daniel P. Berrangé @ 2021-03-09 16:13 UTC (permalink / raw)
To: Markus Armbruster
Cc: kwolf, qemu-block, libvir-list, qemu-devel, mreitz, jsnow
On Tue, Mar 09, 2021 at 05:12:10PM +0100, Markus Armbruster wrote:
> Commit 4a27a638e7 "fdc: Deprecate configuring floppies with -global
> isa-fdc" actually deprecated any use of floppy controller driver
> properties, not just with -global. Correct the deprecation note
> accordingly.
>
> Fixes: 4a27a638e718b445648de6b27c709353551d9b44
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> docs/system/deprecated.rst | 33 ++++++++++++++++++++++++++++-----
> 1 file changed, 28 insertions(+), 5 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 2/4] fdc: Drop deprecated floppy configuration
2021-03-09 16:12 ` [PATCH v3 2/4] fdc: Drop deprecated floppy configuration Markus Armbruster
@ 2021-03-09 16:14 ` Daniel P. Berrangé
0 siblings, 0 replies; 14+ messages in thread
From: Daniel P. Berrangé @ 2021-03-09 16:14 UTC (permalink / raw)
To: Markus Armbruster
Cc: kwolf, qemu-block, libvir-list, qemu-devel, mreitz, jsnow
On Tue, Mar 09, 2021 at 05:12:11PM +0100, Markus Armbruster wrote:
> Drop the crap deprecated in commit 4a27a638e7 "fdc: Deprecate
> configuring floppies with -global isa-fdc" (v5.1.0).
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> docs/system/deprecated.rst | 49 ---
> docs/system/removed-features.rst | 49 +++
> hw/block/fdc.c | 54 +--
> tests/qemu-iotests/172 | 31 +-
> tests/qemu-iotests/172.out | 562 +------------------------------
> 5 files changed, 53 insertions(+), 692 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common()
2021-03-09 16:12 ` [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common() Markus Armbruster
@ 2021-03-09 16:15 ` Daniel P. Berrangé
2021-03-09 18:25 ` Richard Henderson
1 sibling, 0 replies; 14+ messages in thread
From: Daniel P. Berrangé @ 2021-03-09 16:15 UTC (permalink / raw)
To: Markus Armbruster
Cc: kwolf, qemu-block, libvir-list, qemu-devel, mreitz, jsnow
On Tue, Mar 09, 2021 at 05:12:12PM +0100, Markus Armbruster wrote:
> The previous commit rendered the name fdctrl_connect_drives() somewhat
> misleading. Get rid of it by inlining the (now pretty simple)
> function into its only caller.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> hw/block/fdc.c | 23 ++++++++---------------
> 1 file changed, 8 insertions(+), 15 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type
2021-03-09 16:12 ` [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type Markus Armbruster
@ 2021-03-09 16:18 ` Daniel P. Berrangé
2021-03-10 8:10 ` Markus Armbruster
2021-03-11 5:00 ` John Snow
1 sibling, 1 reply; 14+ messages in thread
From: Daniel P. Berrangé @ 2021-03-09 16:18 UTC (permalink / raw)
To: Markus Armbruster
Cc: kwolf, qemu-block, libvir-list, qemu-devel, mreitz, jsnow
On Tue, Mar 09, 2021 at 05:12:13PM +0100, Markus Armbruster wrote:
> Drop the crap deprecated in commit a1b40bda08 "blockdev: Deprecate
> -drive with bogus interface type" (v5.1.0).
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> docs/system/deprecated.rst | 7 ------
> docs/system/removed-features.rst | 7 ++++++
> include/sysemu/blockdev.h | 1 -
> blockdev.c | 37 +++++++++++++-------------------
> softmmu/vl.c | 8 +------
> 5 files changed, 23 insertions(+), 37 deletions(-)
>
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index 601e9647a5..664ed60e9f 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -94,13 +94,6 @@ QEMU 5.1 has three options:
> to the user to load all the images they need.
> 3. ``-bios <file>`` - Tells QEMU to load the specified file as the firmwrae.
>
> -``-drive`` with bogus interface type (since 5.1)
> -''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -Drives with interface types other than ``if=none`` are for onboard
> -devices. It is possible to use drives the board doesn't pick up with
> --device. This usage is now deprecated. Use ``if=none`` instead.
> -
> Short-form boolean options (since 6.0)
> ''''''''''''''''''''''''''''''''''''''
>
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index 77e7ba1339..e6d2fbe798 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -87,6 +87,13 @@ becomes
> -device isa-fdc,...
> -device floppy,unit=1,drive=...
>
> +``-drive`` with bogus interface type (removed in 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Drives with interface types other than ``if=none`` are for onboard
> +devices. Drives the board doesn't pick up can no longer be used with
> +-device. Use ``if=none`` instead.
> +
> QEMU Machine Protocol (QMP) commands
> ------------------------------------
>
> diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h
> index 3b5fcda08d..32c2d6023c 100644
> --- a/include/sysemu/blockdev.h
> +++ b/include/sysemu/blockdev.h
> @@ -35,7 +35,6 @@ struct DriveInfo {
> bool is_default; /* Added by default_drive() ? */
> int media_cd;
> QemuOpts *opts;
> - bool claimed_by_board;
> QTAILQ_ENTRY(DriveInfo) next;
> };
>
> diff --git a/blockdev.c b/blockdev.c
> index cd438e60e3..2e01889cff 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -240,19 +240,10 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit)
> return NULL;
> }
>
> -void drive_mark_claimed_by_board(void)
> -{
> - BlockBackend *blk;
> - DriveInfo *dinfo;
> -
> - for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
> - dinfo = blk_legacy_dinfo(blk);
> - if (dinfo && blk_get_attached_dev(blk)) {
> - dinfo->claimed_by_board = true;
> - }
> - }
> -}
> -
> +/*
> + * Check board claimed all -drive that are meant to be claimed.
> + * Fatal error if any remain unclaimed.
> + */
> void drive_check_orphaned(void)
> {
> BlockBackend *blk;
> @@ -262,7 +253,17 @@ void drive_check_orphaned(void)
>
> for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
> dinfo = blk_legacy_dinfo(blk);
> - if (dinfo->is_default || dinfo->type == IF_NONE) {
> + /*
> + * Ignore default drives, because we create certain default
> + * drives unconditionally, then leave them unclaimed. Not the
> + * users fault.
> + * Ignore IF_VIRTIO, because it gets desugared into -device,
> + * so we can leave failing to -device.
> + * Ignore IF_NONE, because leaving unclaimed IF_NONE remains
> + * available for device_add is a feature.
> + */
> + if (dinfo->is_default || dinfo->type == IF_VIRTIO
> + || dinfo->type == IF_NONE) {
> continue;
> }
> if (!blk_get_attached_dev(blk)) {
> @@ -273,14 +274,6 @@ void drive_check_orphaned(void)
> if_name[dinfo->type], dinfo->bus, dinfo->unit);
> loc_pop(&loc);
> orphans = true;
> - continue;
> - }
> - if (!dinfo->claimed_by_board && dinfo->type != IF_VIRTIO) {
> - loc_push_none(&loc);
> - qemu_opts_loc_restore(dinfo->opts);
> - warn_report("bogus if=%s is deprecated, use if=none",
> - if_name[dinfo->type]);
> - loc_pop(&loc);
> }
> }
>
> diff --git a/softmmu/vl.c b/softmmu/vl.c
> index ff488ea3e7..7453611152 100644
> --- a/softmmu/vl.c
> +++ b/softmmu/vl.c
> @@ -2460,13 +2460,7 @@ static void qemu_init_board(void)
> /* From here on we enter MACHINE_PHASE_INITIALIZED. */
> machine_run_board_init(current_machine);
>
> - /*
> - * TODO To drop support for deprecated bogus if=..., move
> - * drive_check_orphaned() here, replacing this call. Also drop
> - * its deprecation warning, along with DriveInfo member
> - * @claimed_by_board.
> - */
> - drive_mark_claimed_by_board();
> + drive_check_orphaned();
This method is already called by qemu_machine_creation_done(), which is
invoked shortly after this qemu_init_board() is run.
So either this added instance, or the later call to drive_check_orphaned
feels redundant
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common()
2021-03-09 16:12 ` [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common() Markus Armbruster
2021-03-09 16:15 ` Daniel P. Berrangé
@ 2021-03-09 18:25 ` Richard Henderson
2021-03-10 8:13 ` Markus Armbruster
1 sibling, 1 reply; 14+ messages in thread
From: Richard Henderson @ 2021-03-09 18:25 UTC (permalink / raw)
To: Markus Armbruster, qemu-devel
Cc: kwolf, berrange, qemu-block, libvir-list, mreitz, jsnow
On 3/9/21 8:12 AM, Markus Armbruster wrote:
> @@ -2565,6 +2551,7 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl,
> Error **errp)
> {
> int i, j;
> + FDrive *drive;
> static int command_tables_inited = 0;
>
> if (fdctrl->fallback == FLOPPY_DRIVE_TYPE_AUTO) {
> @@ -2604,7 +2591,13 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl,
> }
>
> floppy_bus_create(fdctrl, &fdctrl->bus, dev);
> - fdctrl_connect_drives(fdctrl, dev, errp);
> +
> + for (i = 0; i < MAX_FD; i++) {
> + drive = &fdctrl->drives[i];
FWIW, the declaration could be local to this loop.
r~
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type
2021-03-09 16:18 ` Daniel P. Berrangé
@ 2021-03-10 8:10 ` Markus Armbruster
0 siblings, 0 replies; 14+ messages in thread
From: Markus Armbruster @ 2021-03-10 8:10 UTC (permalink / raw)
To: Daniel P. Berrangé
Cc: kwolf, qemu-block, libvir-list, qemu-devel, mreitz, jsnow
Daniel P. Berrangé <berrange@redhat.com> writes:
> On Tue, Mar 09, 2021 at 05:12:13PM +0100, Markus Armbruster wrote:
>> Drop the crap deprecated in commit a1b40bda08 "blockdev: Deprecate
>> -drive with bogus interface type" (v5.1.0).
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>> docs/system/deprecated.rst | 7 ------
>> docs/system/removed-features.rst | 7 ++++++
>> include/sysemu/blockdev.h | 1 -
>> blockdev.c | 37 +++++++++++++-------------------
>> softmmu/vl.c | 8 +------
>> 5 files changed, 23 insertions(+), 37 deletions(-)
>>
>> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
>> index 601e9647a5..664ed60e9f 100644
>> --- a/docs/system/deprecated.rst
>> +++ b/docs/system/deprecated.rst
>> @@ -94,13 +94,6 @@ QEMU 5.1 has three options:
>> to the user to load all the images they need.
>> 3. ``-bios <file>`` - Tells QEMU to load the specified file as the firmwrae.
>>
>> -``-drive`` with bogus interface type (since 5.1)
>> -''''''''''''''''''''''''''''''''''''''''''''''''
>> -
>> -Drives with interface types other than ``if=none`` are for onboard
>> -devices. It is possible to use drives the board doesn't pick up with
>> --device. This usage is now deprecated. Use ``if=none`` instead.
>> -
>> Short-form boolean options (since 6.0)
>> ''''''''''''''''''''''''''''''''''''''
>>
>> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
>> index 77e7ba1339..e6d2fbe798 100644
>> --- a/docs/system/removed-features.rst
>> +++ b/docs/system/removed-features.rst
>> @@ -87,6 +87,13 @@ becomes
>> -device isa-fdc,...
>> -device floppy,unit=1,drive=...
>>
>> +``-drive`` with bogus interface type (removed in 6.0)
>> +'''''''''''''''''''''''''''''''''''''''''''''''''''''
>> +
>> +Drives with interface types other than ``if=none`` are for onboard
>> +devices. Drives the board doesn't pick up can no longer be used with
>> +-device. Use ``if=none`` instead.
>> +
>> QEMU Machine Protocol (QMP) commands
>> ------------------------------------
>>
>> diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h
>> index 3b5fcda08d..32c2d6023c 100644
>> --- a/include/sysemu/blockdev.h
>> +++ b/include/sysemu/blockdev.h
>> @@ -35,7 +35,6 @@ struct DriveInfo {
>> bool is_default; /* Added by default_drive() ? */
>> int media_cd;
>> QemuOpts *opts;
>> - bool claimed_by_board;
>> QTAILQ_ENTRY(DriveInfo) next;
>> };
>>
>> diff --git a/blockdev.c b/blockdev.c
>> index cd438e60e3..2e01889cff 100644
>> --- a/blockdev.c
>> +++ b/blockdev.c
>> @@ -240,19 +240,10 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit)
>> return NULL;
>> }
>>
>> -void drive_mark_claimed_by_board(void)
>> -{
>> - BlockBackend *blk;
>> - DriveInfo *dinfo;
>> -
>> - for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
>> - dinfo = blk_legacy_dinfo(blk);
>> - if (dinfo && blk_get_attached_dev(blk)) {
>> - dinfo->claimed_by_board = true;
>> - }
>> - }
>> -}
>> -
>> +/*
>> + * Check board claimed all -drive that are meant to be claimed.
>> + * Fatal error if any remain unclaimed.
>> + */
>> void drive_check_orphaned(void)
>> {
>> BlockBackend *blk;
>> @@ -262,7 +253,17 @@ void drive_check_orphaned(void)
>>
>> for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
>> dinfo = blk_legacy_dinfo(blk);
>> - if (dinfo->is_default || dinfo->type == IF_NONE) {
>> + /*
>> + * Ignore default drives, because we create certain default
>> + * drives unconditionally, then leave them unclaimed. Not the
>> + * users fault.
>> + * Ignore IF_VIRTIO, because it gets desugared into -device,
>> + * so we can leave failing to -device.
>> + * Ignore IF_NONE, because leaving unclaimed IF_NONE remains
>> + * available for device_add is a feature.
>> + */
>> + if (dinfo->is_default || dinfo->type == IF_VIRTIO
>> + || dinfo->type == IF_NONE) {
>> continue;
>> }
>> if (!blk_get_attached_dev(blk)) {
>> @@ -273,14 +274,6 @@ void drive_check_orphaned(void)
>> if_name[dinfo->type], dinfo->bus, dinfo->unit);
>> loc_pop(&loc);
>> orphans = true;
>> - continue;
>> - }
>> - if (!dinfo->claimed_by_board && dinfo->type != IF_VIRTIO) {
>> - loc_push_none(&loc);
>> - qemu_opts_loc_restore(dinfo->opts);
>> - warn_report("bogus if=%s is deprecated, use if=none",
>> - if_name[dinfo->type]);
>> - loc_pop(&loc);
>> }
>> }
>>
>> diff --git a/softmmu/vl.c b/softmmu/vl.c
>> index ff488ea3e7..7453611152 100644
>> --- a/softmmu/vl.c
>> +++ b/softmmu/vl.c
>> @@ -2460,13 +2460,7 @@ static void qemu_init_board(void)
>> /* From here on we enter MACHINE_PHASE_INITIALIZED. */
>> machine_run_board_init(current_machine);
>>
>> - /*
>> - * TODO To drop support for deprecated bogus if=..., move
>> - * drive_check_orphaned() here, replacing this call. Also drop
>> - * its deprecation warning, along with DriveInfo member
>> - * @claimed_by_board.
>> - */
>> - drive_mark_claimed_by_board();
>> + drive_check_orphaned();
>
> This method is already called by qemu_machine_creation_done(), which is
> invoked shortly after this qemu_init_board() is run.
>
> So either this added instance, or the later call to drive_check_orphaned
> feels redundant
You're right.
I'll drop the one in qemu_machine_creation_done(). Rationale:
* Before the patch, we reject -drive if=T when T != none and nothing
claimed it. We warn unless the board claimed it. "Nothing claimed
it" is known only after qemu_create_cli_devices().
* After the patch, we reject -drive if=T when T != none and the board
didn't claim it. This is known earlier, after
machine_run_board_init().
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common()
2021-03-09 18:25 ` Richard Henderson
@ 2021-03-10 8:13 ` Markus Armbruster
0 siblings, 0 replies; 14+ messages in thread
From: Markus Armbruster @ 2021-03-10 8:13 UTC (permalink / raw)
To: Richard Henderson
Cc: kwolf, berrange, qemu-block, libvir-list, qemu-devel, mreitz, jsnow
Richard Henderson <richard.henderson@linaro.org> writes:
> On 3/9/21 8:12 AM, Markus Armbruster wrote:
>> @@ -2565,6 +2551,7 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl,
>> Error **errp)
>> {
>> int i, j;
>> + FDrive *drive;
>> static int command_tables_inited = 0;
>> if (fdctrl->fallback == FLOPPY_DRIVE_TYPE_AUTO) {
>> @@ -2604,7 +2591,13 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl,
>> }
>> floppy_bus_create(fdctrl, &fdctrl->bus, dev);
>> - fdctrl_connect_drives(fdctrl, dev, errp);
>> +
>> + for (i = 0; i < MAX_FD; i++) {
>> + drive = &fdctrl->drives[i];
>
> FWIW, the declaration could be local to this loop.
Old-school habits. John, got a preference?
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type
2021-03-09 16:12 ` [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type Markus Armbruster
2021-03-09 16:18 ` Daniel P. Berrangé
@ 2021-03-11 5:00 ` John Snow
2021-03-11 6:29 ` Markus Armbruster
1 sibling, 1 reply; 14+ messages in thread
From: John Snow @ 2021-03-11 5:00 UTC (permalink / raw)
To: Markus Armbruster, qemu-devel
Cc: kwolf, libvir-list, berrange, qemu-block, mreitz
On 3/9/21 11:12 AM, Markus Armbruster wrote:
> Drop the crap deprecated in commit a1b40bda08 "blockdev: Deprecate
> -drive with bogus interface type" (v5.1.0).
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> docs/system/deprecated.rst | 7 ------
> docs/system/removed-features.rst | 7 ++++++
> include/sysemu/blockdev.h | 1 -
> blockdev.c | 37 +++++++++++++-------------------
> softmmu/vl.c | 8 +------
> 5 files changed, 23 insertions(+), 37 deletions(-)
>
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index 601e9647a5..664ed60e9f 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -94,13 +94,6 @@ QEMU 5.1 has three options:
> to the user to load all the images they need.
> 3. ``-bios <file>`` - Tells QEMU to load the specified file as the firmwrae.
>
> -``-drive`` with bogus interface type (since 5.1)
> -''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -Drives with interface types other than ``if=none`` are for onboard
> -devices. It is possible to use drives the board doesn't pick up with
> --device. This usage is now deprecated. Use ``if=none`` instead.
> -
> Short-form boolean options (since 6.0)
> ''''''''''''''''''''''''''''''''''''''
>
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index 77e7ba1339..e6d2fbe798 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -87,6 +87,13 @@ becomes
> -device isa-fdc,...
> -device floppy,unit=1,drive=...
>
> +``-drive`` with bogus interface type (removed in 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Drives with interface types other than ``if=none`` are for onboard
> +devices. Drives the board doesn't pick up can no longer be used with
> +-device. Use ``if=none`` instead.
> +
> QEMU Machine Protocol (QMP) commands
> ------------------------------------
>
> diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h
> index 3b5fcda08d..32c2d6023c 100644
> --- a/include/sysemu/blockdev.h
> +++ b/include/sysemu/blockdev.h
> @@ -35,7 +35,6 @@ struct DriveInfo {
> bool is_default; /* Added by default_drive() ? */
> int media_cd;
> QemuOpts *opts;
> - bool claimed_by_board;
> QTAILQ_ENTRY(DriveInfo) next;
> };
>
> diff --git a/blockdev.c b/blockdev.c
> index cd438e60e3..2e01889cff 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -240,19 +240,10 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit)
> return NULL;
> }
>
> -void drive_mark_claimed_by_board(void)
> -{
> - BlockBackend *blk;
> - DriveInfo *dinfo;
> -
> - for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
> - dinfo = blk_legacy_dinfo(blk);
> - if (dinfo && blk_get_attached_dev(blk)) {
> - dinfo->claimed_by_board = true;
> - }
> - }
> -}
> -
> +/*
> + * Check board claimed all -drive that are meant to be claimed.
> + * Fatal error if any remain unclaimed.
> + */
> void drive_check_orphaned(void)
> {
> BlockBackend *blk;
> @@ -262,7 +253,17 @@ void drive_check_orphaned(void)
>
> for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
> dinfo = blk_legacy_dinfo(blk);
> - if (dinfo->is_default || dinfo->type == IF_NONE) {
> + /*
> + * Ignore default drives, because we create certain default
> + * drives unconditionally, then leave them unclaimed. Not the
> + * users fault.
"user's" ?
> + * Ignore IF_VIRTIO, because it gets desugared into -device,
> + * so we can leave failing to -device.
> + * Ignore IF_NONE, because leaving unclaimed IF_NONE remains
> + * available for device_add is a feature.
Do you mean "as a feature" ?
> + */
> + if (dinfo->is_default || dinfo->type == IF_VIRTIO
> + || dinfo->type == IF_NONE) {
> continue;
> }
> if (!blk_get_attached_dev(blk)) {
> @@ -273,14 +274,6 @@ void drive_check_orphaned(void)
> if_name[dinfo->type], dinfo->bus, dinfo->unit);
> loc_pop(&loc);
> orphans = true;
> - continue;
> - }
> - if (!dinfo->claimed_by_board && dinfo->type != IF_VIRTIO) {
> - loc_push_none(&loc);
> - qemu_opts_loc_restore(dinfo->opts);
> - warn_report("bogus if=%s is deprecated, use if=none",
> - if_name[dinfo->type]);
> - loc_pop(&loc);
> }
> }
>
> diff --git a/softmmu/vl.c b/softmmu/vl.c
> index ff488ea3e7..7453611152 100644
> --- a/softmmu/vl.c
> +++ b/softmmu/vl.c
> @@ -2460,13 +2460,7 @@ static void qemu_init_board(void)
> /* From here on we enter MACHINE_PHASE_INITIALIZED. */
> machine_run_board_init(current_machine);
>
> - /*
> - * TODO To drop support for deprecated bogus if=..., move
> - * drive_check_orphaned() here, replacing this call. Also drop
> - * its deprecation warning, along with DriveInfo member
> - * @claimed_by_board.
> - */
> - drive_mark_claimed_by_board();
> + drive_check_orphaned();
>
> realtime_init();
>
>
Rest looks okay as far as I am concerned, pending your response to Dan's
remark.
(Sorry for being AWOL here. Thank you for taking the time to clean it up
as you have; it feels like closing a book on some of the first reviews I
ever got @ RH when I put the first orphan check in aeons ago! I think
only the whitespace is left by now, haha.)
--js
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type
2021-03-11 5:00 ` John Snow
@ 2021-03-11 6:29 ` Markus Armbruster
0 siblings, 0 replies; 14+ messages in thread
From: Markus Armbruster @ 2021-03-11 6:29 UTC (permalink / raw)
To: John Snow; +Cc: kwolf, berrange, qemu-block, libvir-list, qemu-devel, mreitz
John Snow <jsnow@redhat.com> writes:
> On 3/9/21 11:12 AM, Markus Armbruster wrote:
>> Drop the crap deprecated in commit a1b40bda08 "blockdev: Deprecate
>> -drive with bogus interface type" (v5.1.0).
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>> docs/system/deprecated.rst | 7 ------
>> docs/system/removed-features.rst | 7 ++++++
>> include/sysemu/blockdev.h | 1 -
>> blockdev.c | 37 +++++++++++++-------------------
>> softmmu/vl.c | 8 +------
>> 5 files changed, 23 insertions(+), 37 deletions(-)
>>
>> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
>> index 601e9647a5..664ed60e9f 100644
>> --- a/docs/system/deprecated.rst
>> +++ b/docs/system/deprecated.rst
>> @@ -94,13 +94,6 @@ QEMU 5.1 has three options:
>> to the user to load all the images they need.
>> 3. ``-bios <file>`` - Tells QEMU to load the specified file as the firmwrae.
>>
>> -``-drive`` with bogus interface type (since 5.1)
>> -''''''''''''''''''''''''''''''''''''''''''''''''
>> -
>> -Drives with interface types other than ``if=none`` are for onboard
>> -devices. It is possible to use drives the board doesn't pick up with
>> --device. This usage is now deprecated. Use ``if=none`` instead.
>> -
>> Short-form boolean options (since 6.0)
>> ''''''''''''''''''''''''''''''''''''''
>>
>> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
>> index 77e7ba1339..e6d2fbe798 100644
>> --- a/docs/system/removed-features.rst
>> +++ b/docs/system/removed-features.rst
>> @@ -87,6 +87,13 @@ becomes
>> -device isa-fdc,...
>> -device floppy,unit=1,drive=...
>>
>> +``-drive`` with bogus interface type (removed in 6.0)
>> +'''''''''''''''''''''''''''''''''''''''''''''''''''''
>> +
>> +Drives with interface types other than ``if=none`` are for onboard
>> +devices. Drives the board doesn't pick up can no longer be used with
>> +-device. Use ``if=none`` instead.
>> +
>> QEMU Machine Protocol (QMP) commands
>> ------------------------------------
>>
>> diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h
>> index 3b5fcda08d..32c2d6023c 100644
>> --- a/include/sysemu/blockdev.h
>> +++ b/include/sysemu/blockdev.h
>> @@ -35,7 +35,6 @@ struct DriveInfo {
>> bool is_default; /* Added by default_drive() ? */
>> int media_cd;
>> QemuOpts *opts;
>> - bool claimed_by_board;
>> QTAILQ_ENTRY(DriveInfo) next;
>> };
>>
>> diff --git a/blockdev.c b/blockdev.c
>> index cd438e60e3..2e01889cff 100644
>> --- a/blockdev.c
>> +++ b/blockdev.c
>> @@ -240,19 +240,10 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit)
>> return NULL;
>> }
>>
>> -void drive_mark_claimed_by_board(void)
>> -{
>> - BlockBackend *blk;
>> - DriveInfo *dinfo;
>> -
>> - for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
>> - dinfo = blk_legacy_dinfo(blk);
>> - if (dinfo && blk_get_attached_dev(blk)) {
>> - dinfo->claimed_by_board = true;
>> - }
>> - }
>> -}
>> -
>> +/*
>> + * Check board claimed all -drive that are meant to be claimed.
>> + * Fatal error if any remain unclaimed.
>> + */
>> void drive_check_orphaned(void)
>> {
>> BlockBackend *blk;
>> @@ -262,7 +253,17 @@ void drive_check_orphaned(void)
>>
>> for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
>> dinfo = blk_legacy_dinfo(blk);
>> - if (dinfo->is_default || dinfo->type == IF_NONE) {
>> + /*
>> + * Ignore default drives, because we create certain default
>> + * drives unconditionally, then leave them unclaimed. Not the
>> + * users fault.
>
> "user's" ?
Yes.
>> + * Ignore IF_VIRTIO, because it gets desugared into -device,
>> + * so we can leave failing to -device.
>> + * Ignore IF_NONE, because leaving unclaimed IF_NONE remains
>> + * available for device_add is a feature.
>
> Do you mean "as a feature" ?
I mean "because leaving unclaimed IF_NONE available for device_add is a
feature."
I'm embarrassingly prone to accidents when rewriting my own prose.
>> + */
>> + if (dinfo->is_default || dinfo->type == IF_VIRTIO
>> + || dinfo->type == IF_NONE) {
>> continue;
>> }
>> if (!blk_get_attached_dev(blk)) {
>> @@ -273,14 +274,6 @@ void drive_check_orphaned(void)
>> if_name[dinfo->type], dinfo->bus, dinfo->unit);
>> loc_pop(&loc);
>> orphans = true;
>> - continue;
>> - }
>> - if (!dinfo->claimed_by_board && dinfo->type != IF_VIRTIO) {
>> - loc_push_none(&loc);
>> - qemu_opts_loc_restore(dinfo->opts);
>> - warn_report("bogus if=%s is deprecated, use if=none",
>> - if_name[dinfo->type]);
>> - loc_pop(&loc);
>> }
>> }
>>
>> diff --git a/softmmu/vl.c b/softmmu/vl.c
>> index ff488ea3e7..7453611152 100644
>> --- a/softmmu/vl.c
>> +++ b/softmmu/vl.c
>> @@ -2460,13 +2460,7 @@ static void qemu_init_board(void)
>> /* From here on we enter MACHINE_PHASE_INITIALIZED. */
>> machine_run_board_init(current_machine);
>>
>> - /*
>> - * TODO To drop support for deprecated bogus if=..., move
>> - * drive_check_orphaned() here, replacing this call. Also drop
>> - * its deprecation warning, along with DriveInfo member
>> - * @claimed_by_board.
>> - */
>> - drive_mark_claimed_by_board();
>> + drive_check_orphaned();
>>
>> realtime_init();
>>
>>
>
> Rest looks okay as far as I am concerned, pending your response to Dan's
> remark.
>
> (Sorry for being AWOL here. Thank you for taking the time to clean it up
> as you have; it feels like closing a book on some of the first reviews I
> ever got @ RH when I put the first orphan check in aeons ago! I think
> only the whitespace is left by now, haha.)
It has served us well :)
Thank you, v4 coming!
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2021-03-11 6:31 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-09 16:12 [PATCH v3 0/4] Drop deprecated floppy config & bogus -drive if=T Markus Armbruster
2021-03-09 16:12 ` [PATCH v3 1/4] docs/system/deprecated: Fix note on fdc drive properties Markus Armbruster
2021-03-09 16:13 ` Daniel P. Berrangé
2021-03-09 16:12 ` [PATCH v3 2/4] fdc: Drop deprecated floppy configuration Markus Armbruster
2021-03-09 16:14 ` Daniel P. Berrangé
2021-03-09 16:12 ` [PATCH v3 3/4] fdc: Inline fdctrl_connect_drives() into fdctrl_realize_common() Markus Armbruster
2021-03-09 16:15 ` Daniel P. Berrangé
2021-03-09 18:25 ` Richard Henderson
2021-03-10 8:13 ` Markus Armbruster
2021-03-09 16:12 ` [PATCH v3 4/4] blockdev: Drop deprecated bogus -drive interface type Markus Armbruster
2021-03-09 16:18 ` Daniel P. Berrangé
2021-03-10 8:10 ` Markus Armbruster
2021-03-11 5:00 ` John Snow
2021-03-11 6:29 ` Markus Armbruster
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.