Block backends defined with -drive if=T, T!=none are meant to be picked up by machine initialization code: a suitable frontend gets created and wired up automatically.
if=T drives not picked up that way can still be used with -device as if they had if=none, but that's unclean and best avoided. Unused ones produce an "Orphaned drive without device" warning. Many machine types default to if=ide, even though they don't actually have an IDE controller. A few default to if=scsi, even though they lack a SCSI HBA. Change their default to if=none. While their, fix handling of index and unit for a few machines with AHCI controllers. With the improved default, unintentional definition of orphaned drives should be unlikely. Improve the "orphaned drive" warning and turn it into an error. Drop a few special cases of this error that are now redundant. v3: * Trivially rebased * PATCH 6-8: Diagnostic message improved a bit [John Snow] * PATCH 7: Commit message typo fixed [John Snow] v2: * PATCH v1 6/6 dropped; if=scsi eccentricities will be addressed in a series of its own * PATCH 6-8 new Markus Armbruster (8): hw: Default -drive to if=ide explicitly where it works hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus hw: Default -drive to if=none instead of ide when ide cannot work hw: Default -drive to if=none instead of scsi when scsi cannot work hw/arm/highbank: Default -drive to if=ide instead of if=scsi blockdev: Improve message for orphaned -drive blockdev: Make orphaned -drive fatal hw: Drop superfluous special checks for orphaned -drive blockdev.c | 23 +++++++++++++---------- hw/alpha/dp264.c | 1 + hw/arm/cubieboard.c | 4 ++++ hw/arm/highbank.c | 8 ++++++-- hw/arm/realview.c | 1 - hw/arm/spitz.c | 3 +++ hw/arm/tosa.c | 1 + hw/arm/vexpress.c | 1 - hw/arm/xilinx_zynq.c | 1 - hw/arm/xlnx-ep108.c | 6 ++++++ hw/i386/pc.c | 1 + hw/ide/core.c | 17 ----------------- hw/mips/mips_fulong2e.c | 1 + hw/mips/mips_jazz.c | 4 ---- hw/mips/mips_malta.c | 1 + hw/mips/mips_r4k.c | 1 + hw/ppc/mac_newworld.c | 1 + hw/ppc/mac_oldworld.c | 1 + hw/ppc/prep.c | 1 + hw/sh4/r2d.c | 1 + hw/sparc/sun4m.c | 5 ----- hw/sparc64/sun4u.c | 2 ++ include/sysemu/blockdev.h | 11 +++++------ 23 files changed, 49 insertions(+), 47 deletions(-) -- 2.7.4