This is v2 of my "[PATCH for-2.3 0/3] Contain drive_get() misuse".
Drives defined with if!=none, character devices defined with -serial and -parallel, network devices defined with -net nic are all for board initialization to wire up. Board code calls drive_get() or similar to find them, and creates devices with their qdev properties set accordingly. Except a few devices go on fishing expeditions on their own instead of exposing a drive property for board code to set. We can't fix this in time for the release, so do the next best thing: contain the mistakes as far as possible so they don't become ABI: * Mark them all with suitable FIXME comments [PATCH 1-3]. * sdhci-pci is new, set cannot_instantiate_with_device_add_yet to make it unavailable with -device [PATCH 4]. * A few more aren't currently available with -device, set cannot_instantiate_with_device_add_yet to ensure they stay unavailable [PATCH 5]. * Left alone: m25p80-generic and its derivatives[*], ssi-sd, pc87312. I suspect these can't be used sanely with -device / device_add, and cannot_instantiate_with_device_add_yet for them would be just fine, but I feel we're too close to the release to argue this now. v2: * PATCH 1 is unchanged except for commit message * PATCH 2+3 are new * PATCH 4 was PATCH 2, unchanged except for commit message * PATCH 5 is PATH 3 extended to character devices [*] These are: 160s33b, 320s33b, 640s33b, at25df041a, at25df321a, at25df641, at25fs010, at25fs040, at26df081a, at26df161a, at26df321, at26f004, at45db081d, en25f32, en25p32, en25p64, en25q32b, en25q64, gd25q32, gd25q64, m25p05, m25p10, m25p128, m25p16, m25p20, m25p32, m25p40, m25p64, m25p80, m25pe16, m25pe20, m25pe80, m25px32, m25px32-s0, m25px32-s1, m25px64, m45pe10, m45pe16, m45pe80, mx25l12805d, mx25l12855e, mx25l1606e, mx25l2005a, mx25l25635e, mx25l25655e, mx25l3205d, mx25l4005a, mx25l6405d, mx25l8005, n25q032, n25q032a11, n25q032a13, n25q064, n25q064a11, n25q064a13, n25q128, n25q128a11, n25q128a13, n25q256a11, n25q256a13, s25fl016k, s25fl064k, s25fl129p0, s25fl129p1, s25fl256s0, s25fl256s1, s25fl512s, s25sl004a, s25sl008a, s25sl016a, s25sl032a, s25sl032p, s25sl064a, s25sl064p, s25sl12800, s25sl12801, s70fl01gs, sst25vf016b, sst25vf032b, sst25vf040b, sst25vf080b, sst25wf010, sst25wf020, sst25wf040, sst25wf512, w25q256, w25q32, w25q32dw, w25q64, w25q80, w25q80bl, w25x10, w25x16, w25x20, w25x32, w25x40, w25x64, w25x80. Markus Armbruster (5): hw: Mark devices picking up block backends actively FIXME hw: Mark devices picking up char backends actively FIXME hw: Mark device misusing nd_table[] FIXME sdhci: Make device "sdhci-pci" unavailable with -device sysbus: Make devices picking up backends unavailable with -device hw/arm/allwinner-a10.c | 2 ++ hw/arm/spitz.c | 3 +++ hw/block/m25p80.c | 1 + hw/char/cadence_uart.c | 3 +++ hw/char/digic-uart.c | 3 +++ hw/char/etraxfs_ser.c | 3 +++ hw/char/lm32_juart.c | 3 +++ hw/char/lm32_uart.c | 3 +++ hw/char/milkymist-uart.c | 3 +++ hw/char/pl011.c | 3 +++ hw/char/stm32f2xx_usart.c | 3 +++ hw/char/xilinx_uartlite.c | 3 +++ hw/isa/pc87312.c | 4 ++++ hw/sd/milkymist-memcard.c | 3 +++ hw/sd/pl181.c | 3 +++ hw/sd/sdhci.c | 5 +++++ hw/sd/ssi-sd.c | 1 + 17 files changed, 49 insertions(+) -- 1.9.3