80e28a00ec
- unmodified_drivers: handle IRQF_SAMPLE_RANDOM, it was removed in 3.6-rc1 - bnc#778105 - first XEN-PV VM fails to spawn xend: Increase wait time for disk to appear in host bootloader Modified existing xen-domUloader.diff - Disable the snapshot patches. Snapshot only supported the qcow2 image format which was poorly implemented qemu 0.10.2. Snapshot support may be restored in the future when the newer upstream qemu is used by Xen. - bnc#776995 - attaching scsi control luns with pvscsi - xend/pvscsi: fix passing of SCSI control LUNs xen-bug776995-pvscsi-no-devname.patch - xend/pvscsi: fix usage of persistant device names for SCSI devices xen-bug776995-pvscsi-persistent-names.patch - xend/pvscsi: update sysfs parser for Linux 3.0 xen-bug776995-pvscsi-sysfs-parser.patch - Update to Xen 4.2.0 RC3+ c/s 25779 - Update to Xen 4.2.0 RC2+ c/s 25765 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=199
81 lines
3.1 KiB
Diff
81 lines
3.1 KiB
Diff
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
|
===================================================================
|
|
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
|
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
|
@@ -359,6 +359,8 @@ static void platform_ioport_write(void *
|
|
case 4:
|
|
fprintf(logfile, "Disconnect IDE hard disk...\n");
|
|
ide_unplug_harddisks();
|
|
+ fprintf(logfile, "Disconnect SCSI hard disk...\n");
|
|
+ pci_unplug_scsi();
|
|
fprintf(logfile, "Disconnect netifs...\n");
|
|
pci_unplug_netifs();
|
|
fprintf(logfile, "Shutdown taps...\n");
|
|
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
|
===================================================================
|
|
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
|
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
|
@@ -47,6 +47,7 @@ void unset_vram_mapping(void *opaque);
|
|
#endif
|
|
|
|
void pci_unplug_netifs(void);
|
|
+void pci_unplug_scsi(void);
|
|
void destroy_hvm_domain(void);
|
|
void unregister_iomem(target_phys_addr_t start);
|
|
|
|
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
|
===================================================================
|
|
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
|
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
|
@@ -871,6 +871,50 @@ void pci_unplug_netifs(void)
|
|
}
|
|
}
|
|
|
|
+void pci_unplug_scsi(void)
|
|
+{
|
|
+ PCIBus *bus;
|
|
+ PCIDevice *dev;
|
|
+ PCIIORegion *region;
|
|
+ int x;
|
|
+ int i;
|
|
+
|
|
+ /* We only support one PCI bus */
|
|
+ for (bus = first_bus; bus; bus = NULL) {
|
|
+ for (x = 0; x < 256; x++) {
|
|
+ dev = bus->devices[x];
|
|
+ if (dev &&
|
|
+ dev->config[0xa] == 0 &&
|
|
+ dev->config[0xb] == 1
|
|
+#ifdef CONFIG_PASSTHROUGH
|
|
+ && test_pci_devfn(x) != 1
|
|
+#endif
|
|
+ ) {
|
|
+ /* Found a scsi disk. Remove it from the bus. Note that
|
|
+ we don't free it here, since there could still be
|
|
+ references to it floating around. There are only
|
|
+ ever one or two structures leaked, and it's not
|
|
+ worth finding them all. */
|
|
+ bus->devices[x] = NULL;
|
|
+ for (i = 0; i < PCI_NUM_REGIONS; i++) {
|
|
+ region = &dev->io_regions[i];
|
|
+ if (region->addr == (uint32_t)-1 ||
|
|
+ region->size == 0)
|
|
+ continue;
|
|
+ fprintf(logfile, "region type %d at [%x,%x).\n",
|
|
+ region->type, region->addr,
|
|
+ region->addr+region->size);
|
|
+ if (region->type == PCI_ADDRESS_SPACE_IO) {
|
|
+ isa_unassign_ioport(region->addr, region->size);
|
|
+ } else if (region->type == PCI_ADDRESS_SPACE_MEM) {
|
|
+ unregister_iomem(region->addr);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+}
|
|
+
|
|
typedef struct {
|
|
PCIDevice dev;
|
|
PCIBus *bus;
|