sd: Mark brittle abuse of blk_attach_dev() FIXME

blk_attach_dev() fails here only when we're working for device
"sdhci-pci" (which already attached the backend), and then we don't
want to attach a second time.  If we ever create another failure mode,
we're setting up ourselves to using the same backend from multiple
frontends, which is likely to end in tears.  Can't clean this up this
close to the release, so mark it FIXME.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1449503710-3707-3-git-send-email-armbru@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Markus Armbruster 2015-12-07 16:55:10 +01:00 committed by Peter Maydell
parent 79f2170789
commit ba306c7a55

View File

@ -494,6 +494,7 @@ SDState *sd_init(BlockBackend *blk, bool is_spi)
if (sd->blk) { if (sd->blk) {
/* Attach dev if not already attached. (This call ignores an /* Attach dev if not already attached. (This call ignores an
* error return code if sd->blk is already attached.) */ * error return code if sd->blk is already attached.) */
/* FIXME ignoring blk_attach_dev() failure is dangerously brittle */
blk_attach_dev(sd->blk, sd); blk_attach_dev(sd->blk, sd);
blk_set_dev_ops(sd->blk, &sd_block_ops, sd); blk_set_dev_ops(sd->blk, &sd_block_ops, sd);
} }