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
66 lines
2.1 KiB
Diff
66 lines
2.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
|
|
@@ -30,6 +30,8 @@
|
|
#include "qemu-xen.h"
|
|
#include "net.h"
|
|
#include "xen_platform.h"
|
|
+#include "sysemu.h"
|
|
+#include <xc_private.h>
|
|
|
|
#include <assert.h>
|
|
#include <xenguest.h>
|
|
@@ -335,11 +337,51 @@ static void xen_platform_ioport_writeb(v
|
|
}
|
|
}
|
|
|
|
+static uint32_t ioport_base;
|
|
+
|
|
+static void platform_ioport_write(void *opaque, uint32_t addr, uint32_t val)
|
|
+{
|
|
+ DECLARE_DOMCTL;
|
|
+ int rc;
|
|
+
|
|
+ if (val == 0)
|
|
+ qemu_invalidate_map_cache();
|
|
+
|
|
+ switch (addr - ioport_base) {
|
|
+ case 0:
|
|
+ fprintf(logfile, "Init hypercall page %x, addr %x.\n", val, addr);
|
|
+ domctl.domain = (domid_t)domid;
|
|
+ domctl.u.hypercall_init.gmfn = val;
|
|
+ domctl.cmd = XEN_DOMCTL_hypercall_init;
|
|
+ rc = xc_domctl(xc_handle, &domctl);
|
|
+ fprintf(logfile, "result -> %d.\n", rc);
|
|
+ break;
|
|
+ case 4:
|
|
+ fprintf(logfile, "Disconnect IDE hard disk...\n");
|
|
+ ide_unplug_harddisks();
|
|
+ fprintf(logfile, "Disconnect netifs...\n");
|
|
+ pci_unplug_netifs();
|
|
+ fprintf(logfile, "Shutdown taps...\n");
|
|
+ net_tap_shutdown_all();
|
|
+ fprintf(logfile, "Done.\n");
|
|
+ break;
|
|
+ default:
|
|
+ fprintf(logfile, "Write to bad port %x (base %x) on evtchn device.\n",
|
|
+ addr, ioport_base);
|
|
+ break;
|
|
+ }
|
|
+}
|
|
+
|
|
static void platform_ioport_map(PCIDevice *pci_dev, int region_num, uint32_t addr, uint32_t size, int type)
|
|
{
|
|
+ ioport_base = addr;
|
|
+
|
|
+ register_ioport_write(addr, 16, 4, platform_ioport_write, NULL);
|
|
+/*
|
|
PCIXenPlatformState *d = (PCIXenPlatformState *)pci_dev;
|
|
register_ioport_write(addr, size, 1, xen_platform_ioport_writeb, d);
|
|
register_ioport_read(addr, size, 1, xen_platform_ioport_readb, d);
|
|
+*/
|
|
}
|
|
|
|
static uint32_t platform_mmio_read(void *opaque, target_phys_addr_t addr)
|