realize() methods aren't supposed to go on fishing expeditions for backends. For this reason, "-drive if=" options (apart from if=none) are only handled at board creation time, and is not affected by -device.
The right way for devices to tie themselves to a -drive option is "-device sdhci-pci,drive=xyz". For 2.3 we can fix sdhci only, since sdhci-pci is a new ABI. The others can wait for later. Paolo Paolo Bonzini (2): sd: move blk_attach_dev_nofail to caller sdhci: add "drive" property hw/arm/xilinx_zynq.c | 11 ++++++++++- hw/sd/milkymist-memcard.c | 3 +++ hw/sd/omap_mmc.c | 4 ++++ hw/sd/pl181.c | 7 ++++++- hw/sd/pxa2xx_mmci.c | 4 ++++ hw/sd/sd.c | 1 - hw/sd/sdhci.c | 6 ++---- hw/sd/sdhci.h | 1 + hw/sd/ssi-sd.c | 7 ++++++- 9 files changed, 36 insertions(+), 8 deletions(-) -- 2.3.3