Merge remote-tracking branch 'remotes/sstabellini/xen-140220' into staging
* remotes/sstabellini/xen-140220: xen_disk: fix io accounting Call pci_piix3_xen_ide_unplug from unplug_disks Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
c58e291591
@ -483,7 +483,18 @@ static void qemu_aio_complete(void *opaque, int ret)
|
||||
ioreq->status = ioreq->aio_errors ? BLKIF_RSP_ERROR : BLKIF_RSP_OKAY;
|
||||
ioreq_unmap(ioreq);
|
||||
ioreq_finish(ioreq);
|
||||
bdrv_acct_done(ioreq->blkdev->bs, &ioreq->acct);
|
||||
switch (ioreq->req.operation) {
|
||||
case BLKIF_OP_WRITE:
|
||||
case BLKIF_OP_FLUSH_DISKCACHE:
|
||||
if (!ioreq->req.nr_segments) {
|
||||
break;
|
||||
}
|
||||
case BLKIF_OP_READ:
|
||||
bdrv_acct_done(ioreq->blkdev->bs, &ioreq->acct);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
qemu_bh_schedule(ioreq->blkdev->bh);
|
||||
}
|
||||
|
||||
|
@ -167,7 +167,7 @@ static int pci_piix_ide_initfn(PCIDevice *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pci_piix3_xen_ide_unplug(DeviceState *dev)
|
||||
int pci_piix3_xen_ide_unplug(DeviceState *dev)
|
||||
{
|
||||
PCIIDEState *pci_ide;
|
||||
DriveInfo *di;
|
||||
@ -266,7 +266,6 @@ static void piix3_ide_xen_class_init(ObjectClass *klass, void *data)
|
||||
k->device_id = PCI_DEVICE_ID_INTEL_82371SB_1;
|
||||
k->class_id = PCI_CLASS_STORAGE_IDE;
|
||||
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
|
||||
dc->unplug = pci_piix3_xen_ide_unplug;
|
||||
}
|
||||
|
||||
static const TypeInfo piix3_ide_xen_info = {
|
||||
|
@ -27,6 +27,7 @@
|
||||
|
||||
#include "hw/hw.h"
|
||||
#include "hw/i386/pc.h"
|
||||
#include "hw/ide.h"
|
||||
#include "hw/pci/pci.h"
|
||||
#include "hw/irq.h"
|
||||
#include "hw/xen/xen_common.h"
|
||||
@ -110,7 +111,7 @@ static void unplug_disks(PCIBus *b, PCIDevice *d, void *o)
|
||||
if (pci_get_word(d->config + PCI_CLASS_DEVICE) ==
|
||||
PCI_CLASS_STORAGE_IDE
|
||||
&& strcmp(d->name, "xen-pci-passthrough") != 0) {
|
||||
qdev_unplug(DEVICE(d), NULL);
|
||||
pci_piix3_xen_ide_unplug(DEVICE(d));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,7 @@ void pci_cmd646_ide_init(PCIBus *bus, DriveInfo **hd_table,
|
||||
PCIDevice *pci_piix3_xen_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
||||
PCIDevice *pci_piix3_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
||||
PCIDevice *pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
||||
int pci_piix3_xen_ide_unplug(DeviceState *dev);
|
||||
void vt82c686b_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
|
||||
|
||||
/* ide-mmio.c */
|
||||
|
Loading…
Reference in New Issue
Block a user