diff options
Diffstat (limited to 'hw/ide/piix.c')
-rw-r--r-- | hw/ide/piix.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/hw/ide/piix.c b/hw/ide/piix.c index 49e78a7..574b9c1 100644 --- a/hw/ide/piix.c +++ b/hw/ide/piix.c @@ -27,7 +27,7 @@ #include <hw/i386/pc.h> #include <hw/pci/pci.h> #include <hw/isa/isa.h> -#include "sysemu/blockdev.h" +#include "sysemu/block-backend.h" #include "sysemu/sysemu.h" #include "sysemu/dma.h" @@ -178,12 +178,13 @@ int pci_piix3_xen_ide_unplug(DeviceState *dev) for (; i < 3; i++) { di = drive_get_by_index(IF_IDE, i); if (di != NULL && !di->media_cd) { - DeviceState *ds = bdrv_get_attached_dev(di->bdrv); + BlockBackend *blk = blk_by_legacy_dinfo(di); + DeviceState *ds = blk_get_attached_dev(blk); if (ds) { - bdrv_detach_dev(di->bdrv, ds); + blk_detach_dev(blk, ds); } - pci_ide->bus[di->bus].ifs[di->unit].bs = NULL; - drive_del(di); + pci_ide->bus[di->bus].ifs[di->unit].blk = NULL; + blk_unref(blk); } } qdev_reset_all(DEVICE(dev)); |