# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1248101474 -3600
# Node ID 3341850938ac4b6ab512ec1d3a081a50b84ac3ac
# Parent 5333e6497af69f98a11c4c4c3bd9d9d473f3c6d5
Remove support for out-of-date SLES9 and RHEL4 kernel
ports from build integration
Both distros now include Xen support from their respective upstreams
and these kernels are very out of date wrt both the upstream distro
kernel and the upstream Xen kernel.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
buildconfigs/mk.linux-2.6.5-SLES-xen | 10 --
buildconfigs/mk.linux-2.6.9-RHEL-xen | 10 --
unmodified_drivers/linux-2.6/platform-pci/platform-pci.c | 58 +++++++++++++++
3 files changed, 58 insertions(+), 20 deletions(-)
diff -r 5333e6497af6 -r 3341850938ac buildconfigs/mk.linux-2.6.5-SLES-xen
--- a/buildconfigs/mk.linux-2.6.5-SLES-xen Mon Jul 20 15:45:50 2009 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-XEN_TARGET_ARCH = x86_32
-
-EXTRAVERSION = -xen
-LINUX_VER = 2.6.5-SLES
-
-XEN_LINUX_SOURCE = hg-clone
-XEN_LINUX_HGREPO ?= http://xenbits.xensource.com/kernels/sles9x.hg
-XEN_LINUX_HGREV ?= tip
-
-include buildconfigs/mk.linux-2.6-xen
diff -r 5333e6497af6 -r 3341850938ac buildconfigs/mk.linux-2.6.9-RHEL-xen
--- a/buildconfigs/mk.linux-2.6.9-RHEL-xen Mon Jul 20 15:45:50 2009 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-XEN_TARGET_ARCH = x86_32
-
-EXTRAVERSION = -xen
-LINUX_VER = 2.6.9-RHEL
-
-XEN_LINUX_SOURCE = hg-clone
-XEN_LINUX_HGREPO ?= http://xenbits.xensource.com/kernels/rhel4x.hg
-XEN_LINUX_HGREV ?= tip
-
-include buildconfigs/mk.linux-2.6-xen
diff -r 5333e6497af6 -r 3341850938ac
unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
--- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c Mon Jul 20
15:45:50 2009 +0100
+++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c Mon Jul 20
15:51:14 2009 +0100
@@ -257,6 +257,60 @@ int xen_panic_handler_init(void);
int xen_panic_handler_init(void);
int gnttab_init(void);
+#define XEN_IOPORT_BASE 0x10
+
+#define XEN_IOPORT_PLATFLAGS (XEN_IOPORT_BASE + 0) /* 1 byte access (R/W) */
+#define XEN_IOPORT_MAGIC (XEN_IOPORT_BASE + 0) /* 2 byte access (R) */
+#define XEN_IOPORT_UNPLUG (XEN_IOPORT_BASE + 0) /* 2 byte access (W) */
+#define XEN_IOPORT_DRVVER (XEN_IOPORT_BASE + 0) /* 4 byte access (W) */
+
+#define XEN_IOPORT_SYSLOG (XEN_IOPORT_BASE + 2) /* 1 byte access (W) */
+#define XEN_IOPORT_PROTOVER (XEN_IOPORT_BASE + 2) /* 1 byte access (R) */
+#define XEN_IOPORT_PRODNUM (XEN_IOPORT_BASE + 2) /* 2 byte access (W) */
+
+#define XEN_IOPORT_MAGIC_VAL 0x49d2
+#define XEN_IOPORT_LINUX_PRODNUM 0xffff /* NB: register a proper one */
+#define XEN_IOPORT_LINUX_DRVVER ((LINUX_VERSION_CODE << 8) + 0x0)
+
+static int check_platform_magic(struct device *dev, long ioaddr, long iolen)
+{
+ short magic;
+ char protocol;
+
+ if (iolen < 0x16)
+ return -ENODEV;
+
+ magic = inw(XEN_IOPORT_MAGIC);
+
+ if (magic != XEN_IOPORT_MAGIC_VAL) {
+ dev_err(dev, "invalid magic %#x", magic);
+ return -ENODEV;
+ }
+
+ protocol = inb(XEN_IOPORT_PROTOVER);
+
+ dev_info(dev, "I/O protocol version %d\n", protocol);
+
+ switch (protocol) {
+ case 1:
+ outw(XEN_IOPORT_PRODNUM, 0xbeef);
+ outl(XEN_IOPORT_DRVVER, 0xdead);
+ if (inw(XEN_IOPORT_MAGIC) != XEN_IOPORT_MAGIC_VAL) {
+ dev_err(dev, "blacklisted by host\n");
+ return -ENODEV;
+ }
+ /* Fall through */
+ case 0:
+ outw(XEN_IOPORT_UNPLUG, 0xf);
+ break;
+ default:
+ dev_err(dev, "unknown qemu version\n");
+ return -ENODEV;
+ }
+
+ return 0;
+}
+
static int __devinit platform_pci_init(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
@@ -302,6 +356,10 @@ static int __devinit platform_pci_init(s
platform_mmiolen = mmio_len;
ret = init_hypercall_stubs();
+ if (ret < 0)
+ goto out;
+
+ ret = check_platform_magic(&pdev->dev, ioaddr, iolen);
if (ret < 0)
goto out;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|