sim-card
/
qemu
Archived
10
0
Fork 0

Merge remote-tracking branch 'mst/for_anthony' into staging

This commit is contained in:
Anthony Liguori 2011-07-19 07:43:54 -05:00
commit 6734529435
5 changed files with 21 additions and 9 deletions

View File

@ -110,4 +110,5 @@
#define PCI_DEVICE_ID_INTEL_82371AB_2 0x7112
#define PCI_DEVICE_ID_INTEL_82371AB_3 0x7113
#define PCI_VENDOR_ID_XENSOURCE 0x5853
#define PCI_VENDOR_ID_XEN 0x5853
#define PCI_DEVICE_ID_XEN_PLATFORM 0x0001

View File

@ -478,6 +478,9 @@ static PCIDeviceInfo i440fx_info[] = {
.no_hotplug = 1,
.init = piix3_initfn,
.config_write = piix3_write_config_xen,
.vendor_id = PCI_VENDOR_ID_INTEL,
.device_id = PCI_DEVICE_ID_INTEL_82371SB_0, // 82371SB PIIX3 PCI-to-ISA bridge (Step A1)
.class_id = PCI_CLASS_BRIDGE_ISA,
},{
/* end of list */
}

View File

@ -784,5 +784,6 @@ void vhost_dev_stop(struct vhost_dev *hdev, VirtIODevice *vdev)
hdev->started = false;
qemu_free(hdev->log);
hdev->log = NULL;
hdev->log_size = 0;
}

View File

@ -449,9 +449,17 @@ int virtqueue_pop(VirtQueue *vq, VirtQueueElement *elem)
struct iovec *sg;
if (vring_desc_flags(desc_pa, i) & VRING_DESC_F_WRITE) {
if (elem->in_num >= ARRAY_SIZE(elem->in_sg)) {
error_report("Too many write descriptors in indirect table");
exit(1);
}
elem->in_addr[elem->in_num] = vring_desc_addr(desc_pa, i);
sg = &elem->in_sg[elem->in_num++];
} else {
if (elem->out_num >= ARRAY_SIZE(elem->out_sg)) {
error_report("Too many read descriptors in indirect table");
exit(1);
}
elem->out_addr[elem->out_num] = vring_desc_addr(desc_pa, i);
sg = &elem->out_sg[elem->out_num++];
}

View File

@ -290,18 +290,10 @@ static int xen_platform_initfn(PCIDevice *dev)
pci_conf = d->pci_dev.config;
pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_XENSOURCE);
pci_config_set_device_id(pci_conf, 0x0001);
pci_set_word(pci_conf + PCI_SUBSYSTEM_VENDOR_ID, PCI_VENDOR_ID_XENSOURCE);
pci_set_word(pci_conf + PCI_SUBSYSTEM_ID, 0x0001);
pci_set_word(pci_conf + PCI_COMMAND, PCI_COMMAND_IO | PCI_COMMAND_MEMORY);
pci_config_set_revision(pci_conf, 1);
pci_config_set_prog_interface(pci_conf, 0);
pci_config_set_class(pci_conf, PCI_CLASS_OTHERS << 8 | 0x80);
pci_conf[PCI_INTERRUPT_PIN] = 1;
pci_register_bar(&d->pci_dev, 0, 0x100,
@ -330,6 +322,13 @@ static PCIDeviceInfo xen_platform_info = {
.qdev.size = sizeof(PCIXenPlatformState),
.qdev.vmsd = &vmstate_xen_platform,
.qdev.reset = platform_reset,
.vendor_id = PCI_VENDOR_ID_XEN,
.device_id = PCI_DEVICE_ID_XEN_PLATFORM,
.class_id = PCI_CLASS_OTHERS << 8 | 0x80,
.subsystem_vendor_id = PCI_VENDOR_ID_XEN,
.subsystem_id = PCI_DEVICE_ID_XEN_PLATFORM,
.revision = 1,
};
static void xen_platform_register(void)