Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2011-09-26 13:23:42 +0200
committerJan Beulich <jbeulich@novell.com>2011-09-26 13:23:42 +0200
commit7de39e8cc926c7fd2b56d606253c208b83ec71bc (patch)
tree0821124026543f305ce25386a2ba0cc26859b41d
parentee8cc90d708d00daa875c99f43c628b1d5a93fef (diff)
- Update Xen patches to 3.1-rc7 and c/s 1105.
- pass PCI segment information to Xen. - ACPI: Implement overriding of arbitrary ACPI tables via initrd. - x86: allow NVS can be accessed by driver.
-rw-r--r--patches.xen/pci-guestdev56
-rw-r--r--patches.xen/xen-blkif-protocol-fallback-hack30
-rw-r--r--patches.xen/xen-blktap2-configurable-nr-devs34
-rw-r--r--patches.xen/xen-clockevents51
-rw-r--r--patches.xen/xen-configurable-guest-devices20
-rw-r--r--patches.xen/xen-cpufreq-report14
-rw-r--r--patches.xen/xen-kconfig-compat8
-rw-r--r--patches.xen/xen-kzalloc110
-rw-r--r--patches.xen/xen-mem-hotplug12
-rw-r--r--patches.xen/xen-netback-kernel-threads34
-rw-r--r--patches.xen/xen-netback-multiple-tasklets50
-rw-r--r--patches.xen/xen-netback-nr-irqs10
-rw-r--r--patches.xen/xen-op-packet16
-rw-r--r--patches.xen/xen-pci-multi-segment305
-rw-r--r--patches.xen/xen-unpriv-build92
-rw-r--r--patches.xen/xen-x86-EFI126
-rw-r--r--patches.xen/xen-x86-bigmem24
-rw-r--r--patches.xen/xen-x86-mmcfg-ACPI-reserved73
-rw-r--r--patches.xen/xen-x86-panic-no-reboot6
-rw-r--r--patches.xen/xen-x86-per-cpu-vcpu-info10
-rw-r--r--patches.xen/xen-x86_64-note-init-p2m42
-rw-r--r--patches.xen/xen3-acpi_implement_overriding_of_arbitrary_acpi_tables_via_initrd.patch99
-rw-r--r--patches.xen/xen3-apei_allow_drivers_access_nvs_ram.patch24
-rw-r--r--patches.xen/xen3-auto-arch-i386.diff2
-rw-r--r--patches.xen/xen3-auto-arch-x86.diff2
-rw-r--r--patches.xen/xen3-auto-arch-x86_64.diff2
-rw-r--r--patches.xen/xen3-auto-common.diff2
-rw-r--r--patches.xen/xen3-auto-include-xen-interface.diff2
-rw-r--r--patches.xen/xen3-auto-xen-arch.diff2
-rw-r--r--patches.xen/xen3-auto-xen-drivers.diff4276
-rw-r--r--patches.xen/xen3-auto-xen-kconfig.diff50
-rw-r--r--patches.xen/xen3-fixup-xen2
-rw-r--r--patches.xen/xen3-patch-2.6.1922
-rw-r--r--patches.xen/xen3-patch-2.6.2073
-rw-r--r--patches.xen/xen3-patch-2.6.2110
-rw-r--r--patches.xen/xen3-patch-2.6.2257
-rw-r--r--patches.xen/xen3-patch-2.6.23494
-rw-r--r--patches.xen/xen3-patch-2.6.24816
-rw-r--r--patches.xen/xen3-patch-2.6.2511
-rw-r--r--patches.xen/xen3-patch-2.6.2679
-rw-r--r--patches.xen/xen3-patch-2.6.27700
-rw-r--r--patches.xen/xen3-patch-2.6.28448
-rw-r--r--patches.xen/xen3-patch-2.6.29380
-rw-r--r--patches.xen/xen3-patch-2.6.30486
-rw-r--r--patches.xen/xen3-patch-2.6.31518
-rw-r--r--patches.xen/xen3-patch-2.6.32444
-rw-r--r--patches.xen/xen3-patch-2.6.33268
-rw-r--r--patches.xen/xen3-patch-2.6.34406
-rw-r--r--patches.xen/xen3-patch-2.6.35186
-rw-r--r--patches.xen/xen3-patch-2.6.37401
-rw-r--r--patches.xen/xen3-patch-2.6.3814
-rw-r--r--patches.xen/xen3-patch-2.6.39252
-rw-r--r--patches.xen/xen3-patch-3.0172
-rw-r--r--patches.xen/xen3-patch-3.1-rc51982
-rw-r--r--patches.xen/xen3-patch-3.1-rc6-rc741
-rw-r--r--patches.xen/xen3-stack-unwind2
-rw-r--r--series.conf33
57 files changed, 5739 insertions, 8142 deletions
diff --git a/patches.xen/pci-guestdev b/patches.xen/pci-guestdev
index 6a70ce62a4..66011637ed 100644
--- a/patches.xen/pci-guestdev
+++ b/patches.xen/pci-guestdev
@@ -8,8 +8,8 @@ jb: Added support for guestiomuldev=all.
jb: split /dev/xen/pci_iomul driver to be separate (so it can be a module)
Acked-by: jbeulich@novell.com
---- head-2011-09-07.orig/Documentation/kernel-parameters.txt 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/Documentation/kernel-parameters.txt 2011-07-21 12:02:12.000000000 +0200
+--- head-2011-09-23.orig/Documentation/kernel-parameters.txt 2011-09-23 09:40:45.000000000 +0200
++++ head-2011-09-23/Documentation/kernel-parameters.txt 2011-09-23 09:41:45.000000000 +0200
@@ -831,6 +831,24 @@ bytes respectively. Such letter suffixes
gpt [EFI] Forces disk with valid GPT signature but
invalid Protective MBR to be treated as GPT.
@@ -35,7 +35,7 @@ Acked-by: jbeulich@novell.com
hashdist= [KNL,NUMA] Large hashes allocated during boot
are distributed across NUMA nodes. Defaults on
for 64-bit NUMA, off otherwise.
-@@ -2207,6 +2225,10 @@ bytes respectively. Such letter suffixes
+@@ -2210,6 +2228,10 @@ bytes respectively. Such letter suffixes
Run specified binary instead of /init from the ramdisk,
used for early userspace startup. See initrd.
@@ -46,8 +46,8 @@ Acked-by: jbeulich@novell.com
reboot= [BUGS=X86-32,BUGS=ARM,BUGS=IA-64] Rebooting mode
Format: <reboot_mode>[,<reboot_mode2>[,...]]
See arch/*/kernel/reboot.c or arch/*/kernel/process.c
---- head-2011-09-07.orig/drivers/acpi/pci_root.c 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/pci_root.c 2011-06-30 15:22:30.000000000 +0200
+--- head-2011-09-23.orig/drivers/acpi/pci_root.c 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/acpi/pci_root.c 2011-06-30 15:22:30.000000000 +0200
@@ -449,6 +449,41 @@ out:
}
EXPORT_SYMBOL(acpi_pci_osc_control_set);
@@ -136,8 +136,8 @@ Acked-by: jbeulich@novell.com
+ return FALSE;
+}
+#endif
---- head-2011-09-07.orig/drivers/acpi/scan.c 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/scan.c 2011-05-09 11:37:03.000000000 +0200
+--- head-2011-09-23.orig/drivers/acpi/scan.c 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/acpi/scan.c 2011-05-09 11:37:03.000000000 +0200
@@ -175,6 +175,16 @@ acpi_device_hid_show(struct device *dev,
}
static DEVICE_ATTR(hid, 0444, acpi_device_hid_show, NULL);
@@ -191,8 +191,8 @@ Acked-by: jbeulich@novell.com
if (info->valid & ACPI_VALID_ADR) {
device->pnp.bus_address = info->address;
device->flags.bus_address = 1;
---- head-2011-09-07.orig/drivers/pci/Kconfig 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/drivers/pci/Kconfig 2011-01-31 14:31:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/pci/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/pci/Kconfig 2011-01-31 14:31:27.000000000 +0100
@@ -31,6 +31,20 @@ config PCI_DEBUG
When in doubt, say N.
@@ -214,8 +214,8 @@ Acked-by: jbeulich@novell.com
config PCI_STUB
tristate "PCI Stub driver"
depends on PCI
---- head-2011-09-07.orig/drivers/pci/Makefile 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/drivers/pci/Makefile 2011-01-31 14:31:28.000000000 +0100
+--- head-2011-09-23.orig/drivers/pci/Makefile 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/pci/Makefile 2011-01-31 14:31:28.000000000 +0100
@@ -7,6 +7,10 @@ obj-y += access.o bus.o probe.o remove.
irq.o vpd.o
obj-$(CONFIG_PROC_FS) += proc.o
@@ -228,7 +228,7 @@ Acked-by: jbeulich@novell.com
obj-$(CONFIG_PCI_QUIRKS) += quirks.o
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/drivers/pci/guestdev.c 2011-01-31 14:31:28.000000000 +0100
++++ head-2011-09-23/drivers/pci/guestdev.c 2011-01-31 14:31:28.000000000 +0100
@@ -0,0 +1,881 @@
+/*
+ * Copyright (c) 2008, 2009 NEC Corporation.
@@ -1112,7 +1112,7 @@ Acked-by: jbeulich@novell.com
+fs_initcall(pci_check_guestdev_exists);
+
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/drivers/pci/iomulti.c 2011-09-09 15:02:07.000000000 +0200
++++ head-2011-09-23/drivers/pci/iomulti.c 2011-09-09 15:02:07.000000000 +0200
@@ -0,0 +1,904 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
@@ -2019,7 +2019,7 @@ Acked-by: jbeulich@novell.com
+late_initcall(pci_iomul_hotplug_init);
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/drivers/pci/iomulti.h 2011-01-31 14:31:28.000000000 +0100
++++ head-2011-09-23/drivers/pci/iomulti.h 2011-01-31 14:31:28.000000000 +0100
@@ -0,0 +1,122 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
@@ -2143,8 +2143,8 @@ Acked-by: jbeulich@novell.com
+int pci_iomul_switch_io_allocated(const struct pci_iomul_switch *);
+void pci_iomul_get_lock_switch(struct pci_dev *, struct pci_iomul_switch **,
+ struct pci_iomul_slot **);
---- head-2011-09-07.orig/drivers/pci/pci.c 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/drivers/pci/pci.c 2011-08-09 10:25:20.000000000 +0200
+--- head-2011-09-23.orig/drivers/pci/pci.c 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/pci/pci.c 2011-08-09 10:25:20.000000000 +0200
@@ -3470,6 +3470,13 @@ resource_size_t pci_specified_resource_a
*/
int pci_is_reassigndev(struct pci_dev *dev)
@@ -2159,8 +2159,8 @@ Acked-by: jbeulich@novell.com
return (pci_specified_resource_alignment(dev) != 0);
}
---- head-2011-09-07.orig/drivers/pci/pci.h 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/drivers/pci/pci.h 2011-07-21 12:03:10.000000000 +0200
+--- head-2011-09-23.orig/drivers/pci/pci.h 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/pci/pci.h 2011-07-21 12:03:10.000000000 +0200
@@ -316,4 +316,11 @@ static inline int pci_dev_specific_reset
}
#endif
@@ -2174,7 +2174,7 @@ Acked-by: jbeulich@novell.com
+
#endif /* DRIVERS_PCI_H */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/drivers/pci/pci-iomul.c 2011-09-09 14:16:22.000000000 +0200
++++ head-2011-09-23/drivers/pci/pci-iomul.c 2011-09-09 14:16:22.000000000 +0200
@@ -0,0 +1,440 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
@@ -2616,9 +2616,9 @@ Acked-by: jbeulich@novell.com
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Isaku Yamahata <yamahata@valinux.co.jp>");
+MODULE_DESCRIPTION("PCI IO space multiplexing driver");
---- head-2011-09-07.orig/include/linux/acpi.h 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/include/linux/acpi.h 2011-06-30 15:21:54.000000000 +0200
-@@ -246,6 +246,8 @@ int acpi_check_region(resource_size_t st
+--- head-2011-09-23.orig/include/linux/acpi.h 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/include/linux/acpi.h 2011-09-23 09:41:53.000000000 +0200
+@@ -250,6 +250,8 @@ int acpi_check_region(resource_size_t st
int acpi_resources_are_enforced(void);
@@ -2627,8 +2627,8 @@ Acked-by: jbeulich@novell.com
#ifdef CONFIG_PM_SLEEP
void __init acpi_no_s4_hw_signature(void);
void __init acpi_old_suspend_ordering(void);
---- head-2011-09-07.orig/include/linux/pci.h 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/include/linux/pci.h 2011-06-30 15:21:48.000000000 +0200
+--- head-2011-09-23.orig/include/linux/pci.h 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/include/linux/pci.h 2011-06-30 15:21:48.000000000 +0200
@@ -1642,5 +1642,11 @@ static inline void pci_release_bus_of_no
*/
struct pci_dev *pci_find_upstream_pcie_bridge(struct pci_dev *pdev);
@@ -2641,18 +2641,18 @@ Acked-by: jbeulich@novell.com
+
#endif /* __KERNEL__ */
#endif /* LINUX_PCI_H */
---- head-2011-09-07.orig/include/xen/Kbuild 2011-09-09 14:13:25.000000000 +0200
-+++ head-2011-09-07/include/xen/Kbuild 2011-01-31 14:31:28.000000000 +0100
+--- head-2011-09-23.orig/include/xen/Kbuild 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/include/xen/Kbuild 2011-01-31 14:31:28.000000000 +0100
@@ -1,2 +1,3 @@
header-y += evtchn.h
header-y += privcmd.h
+header-y += public/
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/include/xen/public/Kbuild 2011-01-31 14:31:28.000000000 +0100
++++ head-2011-09-23/include/xen/public/Kbuild 2011-01-31 14:31:28.000000000 +0100
@@ -0,0 +1 @@
+header-y += iomulti.h
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/include/xen/public/iomulti.h 2011-01-31 14:31:28.000000000 +0100
++++ head-2011-09-23/include/xen/public/iomulti.h 2011-01-31 14:31:28.000000000 +0100
@@ -0,0 +1,50 @@
+#ifndef __LINUX_PUBLIC_IOMULTI_H__
+#define __LINUX_PUBLIC_IOMULTI_H__
diff --git a/patches.xen/xen-blkif-protocol-fallback-hack b/patches.xen/xen-blkif-protocol-fallback-hack
index c48c631e3e..e797b89624 100644
--- a/patches.xen/xen-blkif-protocol-fallback-hack
+++ b/patches.xen/xen-blkif-protocol-fallback-hack
@@ -5,9 +5,9 @@ Patch-mainline: never.
See the comment below. Oh well.
---- head-2011-09-07.orig/drivers/xen/Kconfig 2011-09-08 17:35:02.000000000 +0200
-+++ head-2011-09-07/drivers/xen/Kconfig 2011-02-24 15:23:15.000000000 +0100
-@@ -26,6 +26,9 @@ config XEN_PRIVCMD
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-09-23 10:29:33.000000000 +0200
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-23 10:30:34.000000000 +0200
+@@ -27,6 +27,9 @@ config XEN_PRIVCMD
def_bool y
depends on PROC_FS
@@ -17,7 +17,7 @@ See the comment below. Oh well.
config XEN_XENBUS_DEV
def_bool y
depends on PROC_FS
-@@ -45,6 +48,7 @@ config XEN_BLKDEV_BACKEND
+@@ -46,6 +49,7 @@ config XEN_BLKDEV_BACKEND
tristate "Block-device backend driver"
depends on BLOCK && XEN_BACKEND
default XEN_BACKEND
@@ -25,7 +25,7 @@ See the comment below. Oh well.
help
The block-device backend driver allows the kernel to export its
block devices to other guests via a high-performance shared-memory
-@@ -54,6 +58,7 @@ config XEN_BLKDEV_TAP
+@@ -55,6 +59,7 @@ config XEN_BLKDEV_TAP
tristate "Block-device tap backend driver"
depends on BLOCK && XEN_BACKEND
default XEN_BACKEND
@@ -33,8 +33,8 @@ See the comment below. Oh well.
help
The block tap driver is an alternative to the block back driver
and allows VM block requests to be redirected to userspace through
---- head-2011-09-07.orig/drivers/xen/blkback/xenbus.c 2011-09-07 12:37:53.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/xenbus.c 2011-09-09 15:40:08.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkback/xenbus.c 2011-09-23 10:14:13.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkback/xenbus.c 2011-09-09 15:40:08.000000000 +0200
@@ -21,6 +21,7 @@
#include <linux/module.h>
#include <linux/kthread.h>
@@ -64,8 +64,8 @@ See the comment below. Oh well.
kfree(protocol);
/* Map the shared frame, irq etc. */
---- head-2011-09-07.orig/drivers/xen/blktap/xenbus.c 2011-06-30 17:04:47.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blktap/xenbus.c 2011-06-28 14:08:59.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap/xenbus.c 2011-06-30 17:04:47.000000000 +0200
++++ head-2011-09-23/drivers/xen/blktap/xenbus.c 2011-06-28 14:08:59.000000000 +0200
@@ -39,6 +39,7 @@
#include <linux/kthread.h>
#include <xen/xenbus.h>
@@ -95,17 +95,17 @@ See the comment below. Oh well.
kfree(protocol);
/* Map the shared frame, irq etc. */
---- head-2011-09-07.orig/drivers/xen/core/Makefile 2011-08-18 11:08:49.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/Makefile 2011-08-18 11:16:38.000000000 +0200
-@@ -11,3 +11,6 @@ obj-$(CONFIG_XEN_SYSFS) += xen_sysfs.o
- obj-$(CONFIG_XEN_SMPBOOT) += smpboot.o
+--- head-2011-09-23.orig/drivers/xen/core/Makefile 2011-08-18 11:17:50.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/Makefile 2011-09-23 10:30:31.000000000 +0200
+@@ -14,3 +14,6 @@ obj-$(CONFIG_XEN_SMPBOOT) += smpboot.o
obj-$(CONFIG_SMP) += spinlock.o
obj-$(CONFIG_KEXEC) += machine_kexec.o
+ obj-$(CONFIG_GENERIC_CLOCKEVENTS) += clockevents.o
+obj-$(CONFIG_XEN_DOMCTL) += domctl.o
+CFLAGS_domctl.o := -D__XEN_PUBLIC_XEN_H__ -D__XEN_PUBLIC_GRANT_TABLE_H__
+CFLAGS_domctl.o += -D__XEN_TOOLS__ -imacros xen/interface/domctl.h
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/drivers/xen/core/domctl.c 2010-10-11 10:31:06.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/domctl.c 2010-10-11 10:31:06.000000000 +0200
@@ -0,0 +1,127 @@
+/*
+ * !!! dirty hack alert !!!
@@ -235,7 +235,7 @@ See the comment below. Oh well.
+
+MODULE_LICENSE("GPL");
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/drivers/xen/core/domctl.h 2010-03-25 14:37:59.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/domctl.h 2010-03-25 14:37:59.000000000 +0100
@@ -0,0 +1,2 @@
+int xen_guest_address_size(int domid);
+int xen_guest_blkif_protocol(int domid);
diff --git a/patches.xen/xen-blktap2-configurable-nr-devs b/patches.xen/xen-blktap2-configurable-nr-devs
index b107439efc..bbed4a52fb 100644
--- a/patches.xen/xen-blktap2-configurable-nr-devs
+++ b/patches.xen/xen-blktap2-configurable-nr-devs
@@ -2,9 +2,9 @@ From: jbeulich@novell.com
Subject: blktap2: replace hard-coded limit of tap devices with configurable one
Patch-mainline: n/a
---- head-2011-04-11.orig/drivers/xen/Kconfig 2011-02-24 15:23:15.000000000 +0100
-+++ head-2011-04-11/drivers/xen/Kconfig 2011-04-11 15:09:58.000000000 +0200
-@@ -79,6 +79,17 @@ config XEN_BLKDEV_TAP2
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-09-23 10:30:34.000000000 +0200
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-23 10:30:43.000000000 +0200
+@@ -80,6 +80,17 @@ config XEN_BLKDEV_TAP2
as files, in memory, or on other hosts across the network. This
driver can safely coexist with the existing blockback driver.
@@ -22,8 +22,8 @@ Patch-mainline: n/a
config XEN_BLKBACK_PAGEMAP
tristate
depends on XEN_BLKDEV_BACKEND != n && XEN_BLKDEV_TAP2 != n
---- head-2011-04-11.orig/drivers/xen/blktap2/blktap.h 2011-02-24 15:24:27.000000000 +0100
-+++ head-2011-04-11/drivers/xen/blktap2/blktap.h 2011-04-11 15:10:09.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap2/blktap.h 2011-02-24 15:24:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/blktap.h 2011-04-11 15:10:09.000000000 +0200
@@ -28,8 +28,6 @@ extern int blktap_debug_level;
#define BLKTAP2_DEV_DIR "xen/blktap-2/"
@@ -42,8 +42,8 @@ Patch-mainline: n/a
static inline int
blktap_active(struct blktap *tap)
---- head-2011-04-11.orig/drivers/xen/blktap2/control.c 2011-02-24 15:17:25.000000000 +0100
-+++ head-2011-04-11/drivers/xen/blktap2/control.c 2011-02-24 16:02:57.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/control.c 2011-02-24 15:17:25.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/control.c 2011-02-24 16:02:57.000000000 +0100
@@ -4,7 +4,7 @@
#include "blktap.h"
@@ -94,8 +94,8 @@ Patch-mainline: n/a
blktap_control_destroy_device(blktaps[i]);
if (blktap_control_registered)
---- head-2011-04-11.orig/drivers/xen/blktap2/ring.c 2011-02-01 15:04:27.000000000 +0100
-+++ head-2011-04-11/drivers/xen/blktap2/ring.c 2011-02-24 16:04:28.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/ring.c 2011-02-01 15:04:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/ring.c 2011-02-24 16:04:28.000000000 +0100
@@ -212,7 +212,7 @@ blktap_ring_open(struct inode *inode, st
struct blktap *tap;
@@ -125,8 +125,8 @@ Patch-mainline: n/a
return 0;
}
---- head-2011-04-11.orig/drivers/xen/blktap2/sysfs.c 2011-02-24 14:59:15.000000000 +0100
-+++ head-2011-04-11/drivers/xen/blktap2/sysfs.c 2011-02-24 16:03:06.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/sysfs.c 2011-02-24 14:59:15.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/sysfs.c 2011-02-24 16:03:06.000000000 +0100
@@ -409,7 +409,7 @@ blktap_sysfs_show_devices(struct class *
struct blktap *tap;
@@ -136,8 +136,8 @@ Patch-mainline: n/a
tap = blktaps[i];
if (!tap)
continue;
---- head-2011-04-11.orig/drivers/xen/blktap2-new/blktap.h 2011-02-24 15:00:29.000000000 +0100
-+++ head-2011-04-11/drivers/xen/blktap2-new/blktap.h 2011-02-24 16:01:23.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2-new/blktap.h 2011-02-24 15:00:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2-new/blktap.h 2011-02-24 16:01:23.000000000 +0100
@@ -27,8 +27,6 @@ extern int blktap_device_major;
#define BLKTAP2_DEV_DIR "xen/blktap-2/"
@@ -147,8 +147,8 @@ Patch-mainline: n/a
#define BLKTAP_DEVICE 4
#define BLKTAP_DEVICE_CLOSED 5
#define BLKTAP_SHUTDOWN_REQUESTED 8
---- head-2011-04-11.orig/drivers/xen/blktap2-new/control.c 2011-02-24 15:17:28.000000000 +0100
-+++ head-2011-04-11/drivers/xen/blktap2-new/control.c 2011-02-24 16:01:53.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2-new/control.c 2011-02-24 15:17:28.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2-new/control.c 2011-02-24 16:01:53.000000000 +0100
@@ -28,14 +28,14 @@ blktap_control_get_minor(void)
if (!blktaps[minor])
break;
@@ -184,8 +184,8 @@ Patch-mainline: n/a
blktaps = kzalloc(blktap_max_minor * sizeof(blktaps[0]), GFP_KERNEL);
if (!blktaps) {
BTERR("failed to allocate blktap minor map");
---- head-2011-04-11.orig/drivers/xen/blktap2-new/ring.c 2011-02-24 15:10:15.000000000 +0100
-+++ head-2011-04-11/drivers/xen/blktap2-new/ring.c 2011-04-11 15:10:17.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap2-new/ring.c 2011-02-24 15:10:15.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2-new/ring.c 2011-04-11 15:10:17.000000000 +0200
@@ -511,7 +511,7 @@ blktap_ring_init(void)
{
int err;
diff --git a/patches.xen/xen-clockevents b/patches.xen/xen-clockevents
index 6c62c21d11..6f5f0adc9f 100644
--- a/patches.xen/xen-clockevents
+++ b/patches.xen/xen-clockevents
@@ -4,8 +4,8 @@ Patch-mainline: n/a
Once validated this could be merged into the 2.6.?? patch.
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-12 10:54:53.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-09 15:54:01.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-12 10:54:53.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-09 15:54:01.000000000 +0200
@@ -96,7 +96,6 @@ config CLOCKSOURCE_WATCHDOG
config GENERIC_CLOCKEVENTS
@@ -14,8 +14,8 @@ Once validated this could be merged into the 2.6.?? patch.
config ARCH_CLOCKSOURCE_DATA
def_bool y
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:35:01.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:35:36.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:35:01.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:35:36.000000000 +0200
@@ -68,7 +68,6 @@ extern start_info_t *xen_start_info;
#define init_hypervisor_platform() init_hypervisor(&boot_cpu_data)
@@ -24,8 +24,8 @@ Once validated this could be merged into the 2.6.?? patch.
#define vcpu_running(cpu) (per_cpu(runstate.state, cpu) == RUNSTATE_running)
/* arch/xen/kernel/evtchn.c */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-09-08 16:54:08.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irqflags.h 2011-09-09 15:53:54.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-09-08 16:54:08.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irqflags.h 2011-09-09 15:53:54.000000000 +0200
@@ -5,6 +5,7 @@
#ifndef __ASSEMBLY__
@@ -70,8 +70,8 @@ Once validated this could be merged into the 2.6.?? patch.
/*
* For spinlocks, etc:
---- head-2011-09-07.orig/arch/x86/kernel/time-xen.c 2011-09-12 11:05:20.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/time-xen.c 2011-09-12 11:05:24.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/time-xen.c 2011-09-12 11:05:20.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/time-xen.c 2011-09-12 11:05:24.000000000 +0200
@@ -20,15 +20,12 @@
#include <linux/clocksource.h>
#include <linux/sysdev.h>
@@ -619,9 +619,9 @@ Once validated this could be merged into the 2.6.?? patch.
#ifdef CONFIG_CPU_FREQ
static int time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
void *data)
---- head-2011-09-07.orig/drivers/xen/Kconfig 2011-04-11 15:10:40.000000000 +0200
-+++ head-2011-09-07/drivers/xen/Kconfig 2011-04-14 11:21:30.000000000 +0200
-@@ -366,9 +366,6 @@ endmenu
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-09-23 10:26:59.000000000 +0200
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-23 10:27:54.000000000 +0200
+@@ -286,9 +286,6 @@ endmenu
config HAVE_IRQ_IGNORE_UNHANDLED
def_bool y
@@ -631,18 +631,15 @@ Once validated this could be merged into the 2.6.?? patch.
config ARCH_HAS_WALK_MEMORY
def_bool y
depends on X86
---- head-2011-09-07.orig/drivers/xen/core/Makefile 2011-08-18 11:16:38.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/Makefile 2011-08-18 11:16:50.000000000 +0200
-@@ -11,6 +11,7 @@ obj-$(CONFIG_XEN_SYSFS) += xen_sysfs.o
+--- head-2011-09-23.orig/drivers/xen/core/Makefile 2011-08-18 11:08:49.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/Makefile 2011-09-23 10:27:52.000000000 +0200
+@@ -11,3 +11,4 @@ obj-$(CONFIG_XEN_SYSFS) += xen_sysfs.o
obj-$(CONFIG_XEN_SMPBOOT) += smpboot.o
obj-$(CONFIG_SMP) += spinlock.o
obj-$(CONFIG_KEXEC) += machine_kexec.o
+obj-$(CONFIG_GENERIC_CLOCKEVENTS) += clockevents.o
- obj-$(CONFIG_XEN_DOMCTL) += domctl.o
- CFLAGS_domctl.o := -D__XEN_PUBLIC_XEN_H__ -D__XEN_PUBLIC_GRANT_TABLE_H__
- CFLAGS_domctl.o += -D__XEN_TOOLS__ -imacros xen/interface/domctl.h
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/drivers/xen/core/clockevents.c 2011-02-02 15:09:52.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/clockevents.c 2011-02-02 15:09:52.000000000 +0100
@@ -0,0 +1,298 @@
+/*
+ * Xen clockevent functions
@@ -942,8 +939,8 @@ Once validated this could be merged into the 2.6.?? patch.
+
+ xen_setup_cpu_clockevents();
+}
---- head-2011-09-07.orig/drivers/xen/core/evtchn.c 2011-04-14 16:36:14.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/evtchn.c 2011-04-13 16:49:13.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/core/evtchn.c 2011-04-14 16:36:14.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/evtchn.c 2011-04-13 16:49:13.000000000 +0200
@@ -382,6 +382,7 @@ asmlinkage void __irq_entry evtchn_do_up
wmb();
#endif
@@ -960,8 +957,8 @@ Once validated this could be merged into the 2.6.?? patch.
l1 = xchg(&vcpu_info->evtchn_pending_sel, 0);
---- head-2011-09-07.orig/drivers/xen/core/machine_reboot.c 2011-07-04 10:19:56.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/machine_reboot.c 2011-07-04 10:25:00.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/core/machine_reboot.c 2011-07-04 10:19:56.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/machine_reboot.c 2011-07-04 10:25:00.000000000 +0200
@@ -14,6 +14,7 @@
#include <asm/hypervisor.h>
#include <xen/xenbus.h>
@@ -985,8 +982,8 @@ Once validated this could be merged into the 2.6.?? patch.
if (!suspend_cancelled) {
#ifdef __x86_64__
/*
---- head-2011-09-07.orig/drivers/xen/core/smpboot.c 2011-04-14 16:36:14.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/smpboot.c 2011-02-07 12:28:20.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/smpboot.c 2011-04-14 16:36:14.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/smpboot.c 2011-02-07 12:28:20.000000000 +0100
@@ -18,6 +18,7 @@
#include <linux/percpu.h>
#include <asm/desc.h>
@@ -1003,8 +1000,8 @@ Once validated this could be merged into the 2.6.?? patch.
local_irq_enable();
}
---- head-2011-09-07.orig/drivers/xen/core/spinlock.c 2011-04-13 16:38:13.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/spinlock.c 2011-04-13 16:49:13.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/core/spinlock.c 2011-04-13 16:38:13.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/spinlock.c 2011-04-13 16:49:13.000000000 +0200
@@ -13,6 +13,7 @@
#include <linux/kernel.h>
#include <linux/module.h>
@@ -1014,7 +1011,7 @@ Once validated this could be merged into the 2.6.?? patch.
struct spinning {
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/include/xen/clock.h 2011-02-02 15:09:52.000000000 +0100
++++ head-2011-09-23/include/xen/clock.h 2011-02-02 15:09:52.000000000 +0100
@@ -0,0 +1,19 @@
+#ifndef __XEN_CPU_CLOCK_H__
+#define __XEN_CPU_CLOCK_H__
diff --git a/patches.xen/xen-configurable-guest-devices b/patches.xen/xen-configurable-guest-devices
index b42dedc1c5..58022eabbd 100644
--- a/patches.xen/xen-configurable-guest-devices
+++ b/patches.xen/xen-configurable-guest-devices
@@ -7,8 +7,8 @@ value).
Similarly, allow the number of simultaneous transmits in netback to be
configurable.
---- head-2011-04-13.orig/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:50:13.000000000 +0100
-+++ head-2011-04-13/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-16 08:29:39.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:50:13.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-16 08:29:39.000000000 +0100
@@ -97,9 +97,9 @@ extern int nr_pirqs;
#define DYNIRQ_BASE (PIRQ_BASE + nr_pirqs)
@@ -21,9 +21,9 @@ configurable.
#endif
#define NR_IRQS (NR_PIRQS + NR_DYNIRQS)
---- head-2011-04-13.orig/drivers/xen/Kconfig 2011-04-14 11:21:30.000000000 +0200
-+++ head-2011-04-13/drivers/xen/Kconfig 2011-04-14 11:28:14.000000000 +0200
-@@ -104,6 +104,15 @@ config XEN_NETDEV_BACKEND
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-09-23 10:27:54.000000000 +0200
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-23 10:28:17.000000000 +0200
+@@ -88,6 +88,15 @@ config XEN_NETDEV_BACKEND
network devices to other guests via a high-performance shared-memory
interface.
@@ -39,7 +39,7 @@ configurable.
config XEN_NETDEV_PIPELINED_TRANSMITTER
bool "Pipelined transmitter (DANGEROUS)"
depends on XEN_NETDEV_BACKEND
-@@ -315,6 +324,16 @@ config XEN_SYSFS
+@@ -235,6 +244,16 @@ config XEN_SYSFS
help
Xen hypervisor attributes will show up under /sys/hypervisor/.
@@ -56,8 +56,8 @@ configurable.
choice
prompt "Xen version compatibility"
default XEN_COMPAT_030002_AND_LATER
---- head-2011-04-13.orig/drivers/xen/core/evtchn.c 2011-04-13 16:49:13.000000000 +0200
-+++ head-2011-04-13/drivers/xen/core/evtchn.c 2011-04-14 16:36:32.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/core/evtchn.c 2011-04-13 16:49:13.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/evtchn.c 2011-04-14 16:36:32.000000000 +0200
@@ -1746,7 +1746,7 @@ EXPORT_SYMBOL_GPL(nr_pirqs);
int __init arch_probe_nr_irqs(void)
@@ -67,8 +67,8 @@ configurable.
if (is_initial_xendomain()) {
nr_irqs_gsi = NR_IRQS_LEGACY;
---- head-2011-04-13.orig/drivers/xen/netback/netback.c 2011-04-13 16:48:30.000000000 +0200
-+++ head-2011-04-13/drivers/xen/netback/netback.c 2011-04-13 16:51:37.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/netback.c 2011-04-13 16:48:30.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/netback.c 2011-04-13 16:51:37.000000000 +0200
@@ -76,7 +76,7 @@ static DECLARE_TASKLET(net_rx_tasklet, n
static struct timer_list net_timer;
static struct timer_list netbk_tx_pending_timer;
diff --git a/patches.xen/xen-cpufreq-report b/patches.xen/xen-cpufreq-report
index edefbbb16e..6d02668ae9 100644
--- a/patches.xen/xen-cpufreq-report
+++ b/patches.xen/xen-cpufreq-report
@@ -2,9 +2,9 @@ From: jbeulich@novell.com
Subject: make /proc/cpuinfo track CPU speed
Patch-mainline: obsolete
---- head-2011-09-07.orig/arch/x86/kernel/acpi/processor_extcntl_xen.c 2011-02-01 15:03:10.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/acpi/processor_extcntl_xen.c 2011-08-23 13:12:39.000000000 +0200
-@@ -208,3 +208,12 @@ static int __init init_extcntl(void)
+--- head-2011-09-23.orig/arch/x86/kernel/acpi/processor_extcntl_xen.c 2011-02-02 15:09:57.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/acpi/processor_extcntl_xen.c 2011-09-23 10:29:53.000000000 +0200
+@@ -266,3 +266,12 @@ static int __init init_extcntl(void)
return 0;
}
arch_initcall(init_extcntl);
@@ -17,8 +17,8 @@ Patch-mainline: obsolete
+ op.u.get_cpu_freq.vcpu = cpu;
+ return HYPERVISOR_platform_op(&op) == 0 ? op.u.get_cpu_freq.freq : 0;
+}
---- head-2011-09-07.orig/include/linux/cpufreq.h 2011-09-07 13:56:38.000000000 +0200
-+++ head-2011-09-07/include/linux/cpufreq.h 2011-09-09 15:52:26.000000000 +0200
+--- head-2011-09-23.orig/include/linux/cpufreq.h 2011-09-23 09:35:32.000000000 +0200
++++ head-2011-09-23/include/linux/cpufreq.h 2011-09-09 15:52:26.000000000 +0200
@@ -322,7 +322,7 @@ static inline unsigned int cpufreq_get(u
#endif
@@ -28,8 +28,8 @@ Patch-mainline: obsolete
unsigned int cpufreq_quick_get(unsigned int cpu);
unsigned int cpufreq_quick_get_max(unsigned int cpu);
#else
---- head-2011-09-07.orig/include/xen/interface/platform.h 2011-08-19 11:46:44.000000000 +0200
-+++ head-2011-09-07/include/xen/interface/platform.h 2011-08-23 13:12:54.000000000 +0200
+--- head-2011-09-23.orig/include/xen/interface/platform.h 2011-08-19 11:46:44.000000000 +0200
++++ head-2011-09-23/include/xen/interface/platform.h 2011-08-23 13:12:54.000000000 +0200
@@ -451,6 +451,14 @@ struct xenpf_mem_hotadd
uint32_t flags;
};
diff --git a/patches.xen/xen-kconfig-compat b/patches.xen/xen-kconfig-compat
index 71daee3b02..1b7192d166 100644
--- a/patches.xen/xen-kconfig-compat
+++ b/patches.xen/xen-kconfig-compat
@@ -2,9 +2,9 @@ From: jbeulich@novell.com
Subject: add backward-compatibility configure options
Patch-mainline: n/a
---- head-2011-08-09.orig/drivers/xen/Kconfig 2011-04-11 15:09:58.000000000 +0200
-+++ head-2011-08-09/drivers/xen/Kconfig 2011-04-11 15:10:40.000000000 +0200
-@@ -328,6 +328,21 @@ choice
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-09-20 11:48:30.000000000 +0200
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-23 10:26:59.000000000 +0200
+@@ -248,6 +248,21 @@ choice
config XEN_COMPAT_030100_AND_LATER
bool "3.1.0 and later"
@@ -26,7 +26,7 @@ Patch-mainline: n/a
config XEN_COMPAT_LATEST_ONLY
bool "no compatibility code"
-@@ -336,6 +351,11 @@ endchoice
+@@ -256,6 +271,11 @@ endchoice
config XEN_COMPAT
hex
default 0xffffff if XEN_COMPAT_LATEST_ONLY
diff --git a/patches.xen/xen-kzalloc b/patches.xen/xen-kzalloc
index cf50fabeea..81af24b468 100644
--- a/patches.xen/xen-kzalloc
+++ b/patches.xen/xen-kzalloc
@@ -4,8 +4,8 @@ Patch-mainline: n/a
Also use clear_page() in favor of memset(, 0, PAGE_SIZE).
---- head-2011-09-07.orig/arch/x86/mm/init_32-xen.c 2011-07-01 15:19:35.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/init_32-xen.c 2011-07-04 12:15:21.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/init_32-xen.c 2011-07-01 15:19:35.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/init_32-xen.c 2011-07-04 12:15:21.000000000 +0200
@@ -725,7 +725,7 @@ unsigned long __init extend_init_mapping
if (pmd_none(*pmd)) {
unsigned long pa = start_pfn++ << PAGE_SHIFT;
@@ -15,8 +15,8 @@ Also use clear_page() in favor of memset(, 0, PAGE_SIZE).
make_lowmem_page_readonly(__va(pa),
XENFEAT_writable_page_tables);
xen_l2_entry_update(pmd, __pmd(pa | _KERNPG_TABLE));
---- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-08-09 11:14:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/init_64-xen.c 2011-08-09 11:16:50.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/init_64-xen.c 2011-09-12 13:55:43.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/init_64-xen.c 2011-08-09 11:16:50.000000000 +0200
@@ -214,7 +214,7 @@ static __ref void *spp_getpage(void)
else if (pgt_buf_end < pgt_buf_top) {
ptr = __va(pgt_buf_end << PAGE_SHIFT);
@@ -26,27 +26,8 @@ Also use clear_page() in favor of memset(, 0, PAGE_SIZE).
} else
ptr = alloc_bootmem_pages(PAGE_SIZE);
---- head-2011-09-07.orig/drivers/xen/blkback/blkback.c 2011-09-09 15:50:37.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/blkback.c 2011-09-09 15:54:53.000000000 +0200
-@@ -651,7 +651,7 @@ static int __init blkif_init(void)
-
- mmap_pages = blkif_reqs * BLKIF_MAX_SEGMENTS_PER_REQUEST;
-
-- pending_reqs = kmalloc(sizeof(pending_reqs[0]) *
-+ pending_reqs = kzalloc(sizeof(pending_reqs[0]) *
- blkif_reqs, GFP_KERNEL);
- pending_grant_handles = kmalloc(sizeof(pending_grant_handles[0]) *
- mmap_pages, GFP_KERNEL);
-@@ -668,7 +668,6 @@ static int __init blkif_init(void)
-
- blkif_interface_init();
-
-- memset(pending_reqs, 0, sizeof(pending_reqs));
- INIT_LIST_HEAD(&pending_free);
-
- for (i = 0; i < blkif_reqs; i++)
---- head-2011-09-07.orig/drivers/xen/core/gnttab.c 2011-04-14 17:21:05.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/gnttab.c 2011-02-02 15:10:16.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/gnttab.c 2011-04-14 17:19:31.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/gnttab.c 2011-02-02 15:10:16.000000000 +0100
@@ -546,7 +546,7 @@ int gnttab_copy_grant_page(grant_ref_t r
new_addr = page_address(new_page);
@@ -56,8 +37,8 @@ Also use clear_page() in favor of memset(, 0, PAGE_SIZE).
pfn = page_to_pfn(page);
mfn = pfn_to_mfn(pfn);
---- head-2011-09-07.orig/drivers/xen/core/machine_reboot.c 2011-07-04 10:25:00.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/machine_reboot.c 2011-04-14 17:32:26.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/core/machine_reboot.c 2011-07-04 10:25:00.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/machine_reboot.c 2011-04-14 17:32:26.000000000 +0200
@@ -98,7 +98,7 @@ static void post_suspend(int suspend_can
BUG();
HYPERVISOR_shared_info = (shared_info_t *)fix_to_virt(FIX_SHARED_INFO);
@@ -67,8 +48,8 @@ Also use clear_page() in favor of memset(, 0, PAGE_SIZE).
fpp = PAGE_SIZE/sizeof(unsigned long);
for (i = 0, j = 0, k = -1; i < max_pfn; i += fpp, j++) {
---- head-2011-09-07.orig/drivers/xen/core/smpboot.c 2011-02-07 12:28:20.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/smpboot.c 2011-02-02 15:10:16.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/smpboot.c 2011-02-07 12:28:20.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/smpboot.c 2011-02-02 15:10:16.000000000 +0100
@@ -176,17 +176,12 @@ static void __cpuinit cpu_initialize_con
ctxt.flags = VGCF_IN_KERNEL;
ctxt.user_regs.ds = __USER_DS;
@@ -87,54 +68,18 @@ Also use clear_page() in favor of memset(, 0, PAGE_SIZE).
ctxt.gdt_frames[0] = arbitrary_virt_to_mfn(get_cpu_gdt_table(cpu));
ctxt.gdt_ents = GDT_SIZE / 8;
---- head-2011-09-07.orig/drivers/xen/netback/interface.c 2011-07-04 10:36:53.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netback/interface.c 2011-07-04 12:15:32.000000000 +0200
-@@ -215,7 +215,6 @@ netif_t *netif_alloc(struct device *pare
+--- head-2011-09-23.orig/drivers/xen/netback/interface.c 2011-07-04 15:01:14.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/interface.c 2011-09-23 10:28:45.000000000 +0200
+@@ -193,7 +193,6 @@ netif_t *netif_alloc(struct device *pare
SET_NETDEV_DEV(dev, parent);
netif = netdev_priv(dev);
- memset(netif, 0, sizeof(*netif));
netif->domid = domid;
- netif->group = UINT_MAX;
netif->handle = handle;
---- head-2011-09-07.orig/drivers/xen/scsiback/emulate.c 2011-02-08 10:04:09.000000000 +0100
-+++ head-2011-09-07/drivers/xen/scsiback/emulate.c 2011-02-08 10:45:57.000000000 +0100
-@@ -243,13 +243,11 @@ static void __report_luns(pending_req_t
- alloc_len = sizeof(struct scsi_lun) * alloc_luns
- + VSCSI_REPORT_LUNS_HEADER;
- retry:
-- if ((buff = kmalloc(alloc_len, GFP_KERNEL)) == NULL) {
-+ if ((buff = kzalloc(alloc_len, GFP_KERNEL)) == NULL) {
- pr_err("scsiback:%s kmalloc err\n", __FUNCTION__);
- goto fail;
- }
-
-- memset(buff, 0, alloc_len);
--
- one_lun = (struct scsi_lun *) &buff[8];
- spin_lock_irqsave(&info->v2p_lock, flags);
- list_for_each_entry(entry, head, l) {
---- head-2011-09-07.orig/drivers/xen/scsiback/scsiback.c 2011-04-11 15:06:01.000000000 +0200
-+++ head-2011-09-07/drivers/xen/scsiback/scsiback.c 2011-04-13 16:54:02.000000000 +0200
-@@ -670,7 +670,7 @@ static int __init scsiback_init(void)
-
- mmap_pages = vscsiif_reqs * VSCSIIF_SG_TABLESIZE;
-
-- pending_reqs = kmalloc(sizeof(pending_reqs[0]) *
-+ pending_reqs = kzalloc(sizeof(pending_reqs[0]) *
- vscsiif_reqs, GFP_KERNEL);
- pending_grant_handles = kmalloc(sizeof(pending_grant_handles[0]) *
- mmap_pages, GFP_KERNEL);
-@@ -685,7 +685,6 @@ static int __init scsiback_init(void)
- if (scsiback_interface_init() < 0)
- goto out_of_kmem;
-
-- memset(pending_reqs, 0, sizeof(pending_reqs));
- INIT_LIST_HEAD(&pending_free);
-
- for (i = 0; i < vscsiif_reqs; i++)
---- head-2011-09-07.orig/drivers/xen/sfc_netutil/accel_cuckoo_hash.c 2011-02-01 15:03:03.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netutil/accel_cuckoo_hash.c 2011-02-02 15:10:16.000000000 +0100
+ netif->can_sg = 1;
+--- head-2011-09-23.orig/drivers/xen/sfc_netutil/accel_cuckoo_hash.c 2011-02-01 15:03:03.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netutil/accel_cuckoo_hash.c 2011-02-02 15:10:16.000000000 +0100
@@ -77,7 +77,7 @@ int cuckoo_hash_init(cuckoo_hash_table *
BUG_ON(length_bits >= sizeof(unsigned) * 8);
BUG_ON(key_length > sizeof(cuckoo_hash_key));
@@ -154,8 +99,8 @@ Also use clear_page() in favor of memset(, 0, PAGE_SIZE).
return 0;
}
EXPORT_SYMBOL_GPL(cuckoo_hash_init);
---- head-2011-09-07.orig/drivers/xen/tpmback/interface.c 2011-04-11 15:00:49.000000000 +0200
-+++ head-2011-09-07/drivers/xen/tpmback/interface.c 2011-04-13 16:54:02.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/tpmback/interface.c 2011-04-11 15:00:49.000000000 +0200
++++ head-2011-09-23/drivers/xen/tpmback/interface.c 2011-04-13 16:54:02.000000000 +0200
@@ -94,7 +94,7 @@ int tpmif_map(tpmif_t *tpmif, grant_ref_
tpmif->tx_area = area;
@@ -165,22 +110,3 @@ Also use clear_page() in favor of memset(, 0, PAGE_SIZE).
err = bind_interdomain_evtchn_to_irqhandler(
tpmif->domid, evtchn, tpmif_be_int, 0, tpmif->devname, tpmif);
---- head-2011-09-07.orig/drivers/xen/usbback/usbback.c 2011-04-11 15:05:47.000000000 +0200
-+++ head-2011-09-07/drivers/xen/usbback/usbback.c 2011-04-13 16:54:02.000000000 +0200
-@@ -1142,7 +1142,7 @@ static int __init usbback_init(void)
- return -ENODEV;
-
- mmap_pages = usbif_reqs * USBIF_MAX_SEGMENTS_PER_REQUEST;
-- pending_reqs = kmalloc(sizeof(pending_reqs[0]) *
-+ pending_reqs = kzalloc(sizeof(pending_reqs[0]) *
- usbif_reqs, GFP_KERNEL);
- pending_grant_handles = kmalloc(sizeof(pending_grant_handles[0]) *
- mmap_pages, GFP_KERNEL);
-@@ -1156,7 +1156,6 @@ static int __init usbback_init(void)
- for (i = 0; i < mmap_pages; i++)
- pending_grant_handles[i] = USBBACK_INVALID_HANDLE;
-
-- memset(pending_reqs, 0, sizeof(pending_reqs));
- INIT_LIST_HEAD(&pending_free);
-
- for (i = 0; i < usbif_reqs; i++)
diff --git a/patches.xen/xen-mem-hotplug b/patches.xen/xen-mem-hotplug
index 1d1201005e..126e45bb9e 100644
--- a/patches.xen/xen-mem-hotplug
+++ b/patches.xen/xen-mem-hotplug
@@ -18,9 +18,9 @@ so much changes, to simply avoid two hooks.
jb: Integrate into base module; cleanup.
Acked-by: jbeulich@novell.com
---- head-2011-06-30.orig/drivers/acpi/Kconfig 2011-06-30 16:49:10.000000000 +0200
-+++ head-2011-06-30/drivers/acpi/Kconfig 2011-07-04 10:26:33.000000000 +0200
-@@ -337,7 +337,7 @@ config ACPI_CONTAINER
+--- head-2011-09-23.orig/drivers/acpi/Kconfig 2011-07-21 12:19:24.000000000 +0200
++++ head-2011-09-23/drivers/acpi/Kconfig 2011-09-23 10:28:08.000000000 +0200
+@@ -347,7 +347,7 @@ config ACPI_CONTAINER
config ACPI_HOTPLUG_MEMORY
tristate "Memory Hotplug"
@@ -29,8 +29,8 @@ Acked-by: jbeulich@novell.com
default n
help
This driver supports ACPI memory hotplug. The driver
---- head-2011-06-30.orig/drivers/acpi/acpi_memhotplug.c 2010-05-16 23:17:36.000000000 +0200
-+++ head-2011-06-30/drivers/acpi/acpi_memhotplug.c 2011-02-02 15:10:06.000000000 +0100
+--- head-2011-09-23.orig/drivers/acpi/acpi_memhotplug.c 2011-09-23 09:35:31.000000000 +0200
++++ head-2011-09-23/drivers/acpi/acpi_memhotplug.c 2011-02-02 15:10:06.000000000 +0100
@@ -88,6 +88,14 @@ struct acpi_memory_device {
static int acpi_hotmem_initialized;
@@ -89,7 +89,7 @@ Acked-by: jbeulich@novell.com
}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-06-30/drivers/xen/core/acpi_memhotplug.c 2011-02-02 15:10:06.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/acpi_memhotplug.c 2011-02-02 15:10:06.000000000 +0100
@@ -0,0 +1,190 @@
+/*
+ * xen_acpi_memhotplug.c - interface to notify Xen on memory device hotadd
diff --git a/patches.xen/xen-netback-kernel-threads b/patches.xen/xen-netback-kernel-threads
index d29e2ab71f..db8af932d6 100644
--- a/patches.xen/xen-netback-kernel-threads
+++ b/patches.xen/xen-netback-kernel-threads
@@ -33,9 +33,9 @@ jb: changed write_seq{,un}lock_irq() to write_seq{,un}lock_bh(), and
made the use of kernel threads optional (but default)
Acked-by: jbeulich@novell.com
---- head-2011-06-30.orig/drivers/xen/core/gnttab.c 2011-04-14 17:19:31.000000000 +0200
-+++ head-2011-06-30/drivers/xen/core/gnttab.c 2010-09-23 17:06:35.000000000 +0200
-@@ -552,14 +552,14 @@ int gnttab_copy_grant_page(grant_ref_t r
+--- head-2011-09-23.orig/drivers/xen/core/gnttab.c 2011-02-02 15:10:34.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/gnttab.c 2011-09-23 10:31:23.000000000 +0200
+@@ -554,14 +554,14 @@ int gnttab_copy_grant_page(grant_ref_t r
mfn = pfn_to_mfn(pfn);
new_mfn = virt_to_mfn(new_addr);
@@ -52,7 +52,7 @@ Acked-by: jbeulich@novell.com
put_page(new_page);
err = -EBUSY;
goto out;
-@@ -576,7 +576,7 @@ int gnttab_copy_grant_page(grant_ref_t r
+@@ -578,7 +578,7 @@ int gnttab_copy_grant_page(grant_ref_t r
BUG_ON(err);
BUG_ON(unmap.status != GNTST_okay);
@@ -61,8 +61,8 @@ Acked-by: jbeulich@novell.com
if (!xen_feature(XENFEAT_auto_translated_physmap)) {
set_phys_to_machine(page_to_pfn(new_page), INVALID_P2M_ENTRY);
---- head-2011-06-30.orig/drivers/xen/netback/common.h 2011-07-04 10:36:52.000000000 +0200
-+++ head-2011-06-30/drivers/xen/netback/common.h 2011-07-04 10:36:58.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/common.h 2011-07-04 10:36:52.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/common.h 2011-07-04 10:36:58.000000000 +0200
@@ -231,8 +231,16 @@ struct netbk_tx_pending_inuse {
#define MAX_MFN_ALLOC 64
@@ -82,8 +82,8 @@ Acked-by: jbeulich@novell.com
struct sk_buff_head rx_queue;
struct sk_buff_head tx_queue;
---- head-2011-06-30.orig/drivers/xen/netback/netback.c 2011-04-13 16:53:10.000000000 +0200
-+++ head-2011-06-30/drivers/xen/netback/netback.c 2011-04-13 16:53:15.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/netback.c 2011-09-20 14:34:26.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/netback.c 2011-09-20 14:49:43.000000000 +0200
@@ -36,6 +36,7 @@
#include "common.h"
@@ -143,16 +143,16 @@ Acked-by: jbeulich@novell.com
}
static struct sk_buff *netbk_copy_skb(struct sk_buff *skb)
-@@ -337,7 +357,7 @@ int netif_be_start_xmit(struct sk_buff *
+@@ -343,7 +363,7 @@ int netif_be_start_xmit(struct sk_buff *
- netbk = &xen_netbk[GET_GROUP_INDEX(netif)];
+ netbk = &xen_netbk[group];
skb_queue_tail(&netbk->rx_queue, skb);
- tasklet_schedule(&netbk->net_rx_tasklet);
+ netbk_schedule(netbk);
return NETDEV_TX_OK;
-@@ -775,23 +795,13 @@ static void net_rx_action(unsigned long
+@@ -781,23 +801,13 @@ static void net_rx_action(unsigned long
/* More work to do? */
if (!skb_queue_empty(&netbk->rx_queue) &&
!timer_pending(&netbk->net_timer))
@@ -177,7 +177,7 @@ Acked-by: jbeulich@novell.com
static int __on_net_schedule_list(netif_t *netif)
{
return netif->list.next != NULL;
-@@ -1522,7 +1532,10 @@ static void net_tx_action(unsigned long
+@@ -1528,7 +1538,10 @@ static void net_tx_action(unsigned long
dev->stats.rx_bytes += skb->len;
dev->stats.rx_packets++;
@@ -189,7 +189,7 @@ Acked-by: jbeulich@novell.com
}
out:
-@@ -1547,7 +1560,7 @@ static void netif_idx_release(struct xen
+@@ -1553,7 +1566,7 @@ static void netif_idx_release(struct xen
netbk->dealloc_prod++;
spin_unlock_irqrestore(&netbk->release_lock, flags);
@@ -198,7 +198,7 @@ Acked-by: jbeulich@novell.com
}
static void netif_page_release(struct page *page, unsigned int order)
-@@ -1686,6 +1699,50 @@ static struct irqaction netif_be_dbg_act
+@@ -1692,6 +1705,50 @@ static struct irqaction netif_be_dbg_act
};
#endif
@@ -249,7 +249,7 @@ Acked-by: jbeulich@novell.com
static int __init netback_init(void)
{
unsigned int i, group;
-@@ -1718,20 +1775,16 @@ static int __init netback_init(void)
+@@ -1724,20 +1781,16 @@ static int __init netback_init(void)
for (group = 0; group < netbk_nr_groups; group++) {
struct xen_netbk *netbk = &xen_netbk[group];
@@ -272,7 +272,7 @@ Acked-by: jbeulich@novell.com
netbk->pending_prod = MAX_PENDING_REQS;
-@@ -1756,6 +1809,25 @@ static int __init netback_init(void)
+@@ -1762,6 +1815,25 @@ static int __init netback_init(void)
netbk->pending_ring[i] = i;
INIT_LIST_HEAD(&netbk->pending_inuse[i].list);
}
@@ -298,7 +298,7 @@ Acked-by: jbeulich@novell.com
}
netbk_copy_skb_mode = NETBK_DONT_COPY_SKB;
-@@ -1780,12 +1852,15 @@ static int __init netback_init(void)
+@@ -1786,12 +1858,15 @@ static int __init netback_init(void)
return 0;
failed_init:
diff --git a/patches.xen/xen-netback-multiple-tasklets b/patches.xen/xen-netback-multiple-tasklets
index 2f19f1789e..264b9f0f0f 100644
--- a/patches.xen/xen-netback-multiple-tasklets
+++ b/patches.xen/xen-netback-multiple-tasklets
@@ -17,8 +17,8 @@ Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
jb: some cleanups
Acked-by: jbeulich@novell.com
---- head-2011-06-30.orig/drivers/xen/netback/common.h 2011-07-04 10:36:46.000000000 +0200
-+++ head-2011-06-30/drivers/xen/netback/common.h 2011-07-04 10:36:52.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/common.h 2011-07-04 10:36:46.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/common.h 2011-07-04 10:36:52.000000000 +0200
@@ -51,6 +51,7 @@
typedef struct netif_st {
/* Unique identifier for this interface. */
@@ -44,8 +44,8 @@ Acked-by: jbeulich@novell.com
+extern unsigned int netbk_nr_groups;
+
#endif /* __NETIF__BACKEND__COMMON_H__ */
---- head-2011-06-30.orig/drivers/xen/netback/interface.c 2011-07-04 10:36:37.000000000 +0200
-+++ head-2011-06-30/drivers/xen/netback/interface.c 2011-07-04 10:36:53.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/interface.c 2011-09-23 10:30:54.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/interface.c 2011-09-23 10:31:14.000000000 +0200
@@ -56,14 +56,36 @@ module_param_named(queue_length, netbk_q
static void __netif_up(netif_t *netif)
@@ -83,16 +83,16 @@ Acked-by: jbeulich@novell.com
}
static int net_open(struct net_device *dev)
-@@ -195,6 +217,7 @@ netif_t *netif_alloc(struct device *pare
+@@ -194,6 +216,7 @@ netif_t *netif_alloc(struct device *pare
+
netif = netdev_priv(dev);
- memset(netif, 0, sizeof(*netif));
netif->domid = domid;
+ netif->group = UINT_MAX;
netif->handle = handle;
netif->can_sg = 1;
netif->csum = 1;
---- head-2011-06-30.orig/drivers/xen/netback/netback.c 2011-04-13 16:53:05.000000000 +0200
-+++ head-2011-06-30/drivers/xen/netback/netback.c 2011-04-13 16:53:10.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/netback.c 2011-04-13 16:53:05.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/netback.c 2011-09-20 14:34:26.000000000 +0200
@@ -46,10 +46,10 @@
/*define NETBE_DEBUG_INTERRUPT*/
@@ -116,7 +116,33 @@ Acked-by: jbeulich@novell.com
int netbk_copy_skb_mode;
-@@ -408,11 +410,13 @@ static u16 netbk_gop_frag(netif_t *netif
+@@ -284,10 +286,16 @@ static void tx_queue_callback(unsigned l
+ int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev)
+ {
+ netif_t *netif = netdev_priv(dev);
++ unsigned int group = GET_GROUP_INDEX(netif);
+ struct xen_netbk *netbk;
+
+ BUG_ON(skb->dev != dev);
+
++ if (unlikely(group >= netbk_nr_groups)) {
++ BUG_ON(group != UINT_MAX);
++ goto drop;
++ }
++
+ /* Drop the packet if the target domain has no receive buffers. */
+ if (unlikely(!netif_schedulable(netif) || netbk_queue_full(netif)))
+ goto drop;
+@@ -333,7 +341,7 @@ int netif_be_start_xmit(struct sk_buff *
+ }
+ }
+
+- netbk = &xen_netbk[GET_GROUP_INDEX(netif)];
++ netbk = &xen_netbk[group];
+ skb_queue_tail(&netbk->rx_queue, skb);
+ tasklet_schedule(&netbk->net_rx_tasklet);
+
+@@ -408,11 +416,13 @@ static u16 netbk_gop_frag(netif_t *netif
(idx = netif_page_index(page)) < MAX_PENDING_REQS &&
(group = netif_page_group(page)) < netbk_nr_groups) {
struct pending_tx_info *src_pend;
@@ -131,7 +157,7 @@ Acked-by: jbeulich@novell.com
copy_gop->source.domid = src_pend->netif->domid;
copy_gop->source.u.ref = src_pend->req.gref;
copy_gop->flags |= GNTCOPY_source_gref;
-@@ -943,7 +947,7 @@ inline static void net_tx_action_dealloc
+@@ -943,7 +953,7 @@ inline static void net_tx_action_dealloc
/* Ensure we see all indices enqueued by netif_idx_release(). */
smp_rmb();
@@ -140,7 +166,7 @@ Acked-by: jbeulich@novell.com
permute_dealloc_ring(netbk->dealloc_ring, dc, dp);
while (dc != dp) {
-@@ -1561,9 +1565,20 @@ static void netif_page_release(struct pa
+@@ -1561,9 +1571,20 @@ static void netif_page_release(struct pa
irqreturn_t netif_be_int(int irq, void *dev_id)
{
netif_t *netif = dev_id;
@@ -162,7 +188,7 @@ Acked-by: jbeulich@novell.com
if (netif_schedulable(netif) && !netbk_queue_full(netif))
netif_wake_queue(netif->dev);
-@@ -1680,11 +1695,22 @@ static int __init netback_init(void)
+@@ -1680,11 +1701,22 @@ static int __init netback_init(void)
if (!is_running_on_xen())
return -ENODEV;
diff --git a/patches.xen/xen-netback-nr-irqs b/patches.xen/xen-netback-nr-irqs
index f6014c0ce0..fe3d24d2bf 100644
--- a/patches.xen/xen-netback-nr-irqs
+++ b/patches.xen/xen-netback-nr-irqs
@@ -8,9 +8,9 @@ be pretty unbounded. Also, store the dynirq rather than the raw irq
to push up the limit where the type of notify_list needs to become
'int' rather than 'u16'.
---- head-2011-06-30.orig/drivers/xen/netback/interface.c 2011-07-01 17:09:25.000000000 +0200
-+++ head-2011-06-30/drivers/xen/netback/interface.c 2011-07-04 10:36:37.000000000 +0200
-@@ -273,6 +273,7 @@ int netif_map(struct backend_info *be, g
+--- head-2011-09-23.orig/drivers/xen/netback/interface.c 2011-09-23 10:28:45.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/interface.c 2011-09-23 10:30:54.000000000 +0200
+@@ -272,6 +272,7 @@ int netif_map(struct backend_info *be, g
netif->dev->name, netif);
if (err < 0)
goto err_hypervisor;
@@ -18,8 +18,8 @@ to push up the limit where the type of notify_list needs to become
netif->irq = err;
disable_irq(netif->irq);
---- head-2011-06-30.orig/drivers/xen/netback/netback.c 2011-04-13 16:51:37.000000000 +0200
-+++ head-2011-06-30/drivers/xen/netback/netback.c 2011-04-13 16:51:45.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/netback.c 2011-04-13 16:51:37.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/netback.c 2011-04-13 16:51:45.000000000 +0200
@@ -595,8 +595,12 @@ static void net_rx_action(unsigned long
static mmu_update_t rx_mmu[NET_RX_RING_SIZE];
static gnttab_transfer_t grant_trans_op[NET_RX_RING_SIZE];
diff --git a/patches.xen/xen-op-packet b/patches.xen/xen-op-packet
index 8a67fec015..171818dc85 100644
--- a/patches.xen/xen-op-packet
+++ b/patches.xen/xen-op-packet
@@ -49,8 +49,8 @@ References: fate#300964
int st_rd_sect;
int st_wr_sect;
---- head-2011-09-07.orig/drivers/xen/blkfront/blkfront.c 2011-09-09 08:55:39.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkfront/blkfront.c 2011-07-21 12:32:39.000000000 +0200
+--- head-2011-09-07.orig/drivers/xen/blkfront/blkfront.c 2011-09-20 12:00:08.000000000 +0200
++++ head-2011-09-07/drivers/xen/blkfront/blkfront.c 2011-09-20 12:03:51.000000000 +0200
@@ -718,6 +718,8 @@ static int blkif_queue_request(struct re
if (req->cmd_flags & REQ_HARDBARRIER)
#endif
@@ -64,13 +64,13 @@ References: fate#300964
blk_start_request(req);
-- if (req->cmd_type != REQ_TYPE_FS) {
-+ if (req->cmd_type != REQ_TYPE_FS
-+ && req->cmd_type != REQ_TYPE_BLOCK_PC) {
+- if ((req->cmd_type != REQ_TYPE_FS) ||
++ if ((req->cmd_type != REQ_TYPE_FS
++ && req->cmd_type != REQ_TYPE_BLOCK_PC) ||
+ ((req->cmd_flags & (REQ_FLUSH | REQ_FUA)) &&
+ !info->flush_op)) {
__blk_end_request_all(req, -EIO);
- continue;
- }
-@@ -865,6 +868,7 @@ static irqreturn_t blkif_int(int irq, vo
+@@ -867,6 +870,7 @@ static irqreturn_t blkif_int(int irq, vo
/* fall through */
case BLKIF_OP_READ:
case BLKIF_OP_WRITE:
diff --git a/patches.xen/xen-pci-multi-segment b/patches.xen/xen-pci-multi-segment
new file mode 100644
index 0000000000..ca147246e4
--- /dev/null
+++ b/patches.xen/xen-pci-multi-segment
@@ -0,0 +1,305 @@
+Subject: pass PCI segment information to Xen
+From: jbeulich@novell.com
+Patch-mainline: n/a
+
+--- head-2011-08-09.orig/drivers/pci/msi-xen.c 2011-02-01 15:03:03.000000000 +0100
++++ head-2011-08-09/drivers/pci/msi-xen.c 2011-08-09 13:41:53.000000000 +0200
+@@ -26,6 +26,11 @@
+ #include "msi.h"
+
+ static int pci_msi_enable = 1;
++#if CONFIG_XEN_COMPAT < 0x040200
++static bool pci_seg_supported = true;
++#else
++#define pci_seg_supported true
++#endif
+
+ static LIST_HEAD(msi_dev_head);
+ DEFINE_SPINLOCK(msi_dev_lock);
+@@ -232,21 +237,34 @@ static u64 find_table_base(struct pci_de
+ static int msi_map_vector(struct pci_dev *dev, int entry_nr, u64 table_base)
+ {
+ struct physdev_map_pirq map_irq;
+- int rc;
++ int rc = -EINVAL;
+ domid_t domid = DOMID_SELF;
+
+ domid = msi_get_dev_owner(dev);
+
+ map_irq.domid = domid;
+- map_irq.type = MAP_PIRQ_TYPE_MSI;
++ map_irq.type = MAP_PIRQ_TYPE_MSI_SEG;
+ map_irq.index = -1;
+ map_irq.pirq = -1;
+- map_irq.bus = dev->bus->number;
++ map_irq.bus = dev->bus->number | (pci_domain_nr(dev->bus) << 16);
+ map_irq.devfn = dev->devfn;
+ map_irq.entry_nr = entry_nr;
+ map_irq.table_base = table_base;
+
+- if ((rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq)))
++ if (pci_seg_supported)
++ rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
++#if CONFIG_XEN_COMPAT < 0x040200
++ if (rc == -EINVAL && !pci_domain_nr(dev->bus)) {
++ map_irq.type = MAP_PIRQ_TYPE_MSI;
++ map_irq.index = -1;
++ map_irq.pirq = -1;
++ map_irq.bus = dev->bus->number;
++ rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
++ if (rc != -EINVAL)
++ pci_seg_supported = false;
++ }
++#endif
++ if (rc)
+ dev_warn(&dev->dev, "map irq failed\n");
+
+ if (rc < 0)
+@@ -282,8 +300,7 @@ static void pci_intx_for_msi(struct pci_
+
+ void pci_restore_msi_state(struct pci_dev *dev)
+ {
+- int rc;
+- struct physdev_restore_msi restore;
++ int rc = -ENOSYS;
+
+ if (!dev->msi_enabled && !dev->msix_enabled)
+ return;
+@@ -297,9 +314,27 @@ void pci_restore_msi_state(struct pci_de
+ if (dev->msix_enabled)
+ msix_set_enable(dev, 0);
+
+- restore.bus = dev->bus->number;
+- restore.devfn = dev->devfn;
+- rc = HYPERVISOR_physdev_op(PHYSDEVOP_restore_msi, &restore);
++ if (pci_seg_supported) {
++ struct physdev_pci_device restore = {
++ .seg = pci_domain_nr(dev->bus),
++ .bus = dev->bus->number,
++ .devfn = dev->devfn
++ };
++
++ rc = HYPERVISOR_physdev_op(PHYSDEVOP_restore_msi_ext,
++ &restore);
++ }
++#if CONFIG_XEN_COMPAT < 0x040200
++ if (rc == -ENOSYS && !pci_domain_nr(dev->bus)) {
++ struct physdev_restore_msi restore = {
++ .bus = dev->bus->number,
++ .devfn = dev->devfn
++ };
++
++ pci_seg_supported = false;
++ rc = HYPERVISOR_physdev_op(PHYSDEVOP_restore_msi, &restore);
++ }
++#endif
+ WARN(rc && rc != -ENOSYS, "restore_msi -> %d\n", rc);
+ }
+ EXPORT_SYMBOL_GPL(pci_restore_msi_state);
+--- head-2011-08-09.orig/drivers/xen/pci.c 2011-08-18 11:21:53.000000000 +0200
++++ head-2011-08-09/drivers/xen/pci.c 2011-08-18 11:42:23.000000000 +0200
+@@ -18,11 +18,13 @@
+ */
+
+ #include <linux/pci.h>
++#include <linux/acpi.h>
+ #include <xen/xen.h>
+ #include <xen/interface/physdev.h>
+ #include <xen/interface/xen.h>
+
+ #ifdef CONFIG_PARAVIRT_XEN
++#define CONFIG_XEN_COMPAT 0x040000
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
+ #else
+@@ -30,26 +32,91 @@
+ #endif
+ #include "../pci/pci.h"
+
++#if CONFIG_XEN_COMPAT < 0x040200
++static bool __read_mostly pci_seg_supported = true;
++#else
++#define pci_seg_supported true
++#endif
++
+ static int xen_add_device(struct device *dev)
+ {
+ int r;
+ struct pci_dev *pci_dev = to_pci_dev(dev);
++#ifdef CONFIG_PCI_IOV
++ struct pci_dev *physfn = pci_dev->physfn;
++#endif
++
++ if (pci_seg_supported) {
++ struct physdev_pci_device_add add = {
++ .seg = pci_domain_nr(pci_dev->bus),
++ .bus = pci_dev->bus->number,
++ .devfn = pci_dev->devfn
++ };
++#ifdef CONFIG_ACPI
++ acpi_handle handle;
++#endif
++
++#ifdef CONFIG_PCI_IOV
++ if (pci_dev->is_virtfn) {
++ add.flags = XEN_PCI_DEV_VIRTFN;
++ add.physfn.bus = physfn->bus->number;
++ add.physfn.devfn = physfn->devfn;
++ } else
++#endif
++ if (pci_ari_enabled(pci_dev->bus) && PCI_SLOT(pci_dev->devfn))
++ add.flags = XEN_PCI_DEV_EXTFN;
+
++#ifdef CONFIG_ACPI
++ handle = DEVICE_ACPI_HANDLE(&pci_dev->dev);
++ if (!handle)
++ handle = DEVICE_ACPI_HANDLE(pci_dev->bus->bridge);
+ #ifdef CONFIG_PCI_IOV
+- if (pci_dev->is_virtfn) {
++ if (!handle && pci_dev->is_virtfn)
++ handle = DEVICE_ACPI_HANDLE(physfn->bus->bridge);
++#endif
++ if (handle) {
++ acpi_status status;
++
++ do {
++ unsigned long long pxm;
++
++ status = acpi_evaluate_integer(handle, "_PXM",
++ NULL, &pxm);
++ if (ACPI_SUCCESS(status)) {
++ add.optarr[0] = pxm;
++ add.flags |= XEN_PCI_DEV_PXM;
++ break;
++ }
++ status = acpi_get_parent(handle, &handle);
++ } while (ACPI_SUCCESS(status));
++ }
++#endif /* CONFIG_ACPI */
++
++ r = HYPERVISOR_physdev_op(PHYSDEVOP_pci_device_add, &add);
++ if (r != -ENOSYS)
++ return r;
++#if CONFIG_XEN_COMPAT < 0x040200
++ pci_seg_supported = false;
++#endif
++ }
++
++ if (pci_domain_nr(pci_dev->bus))
++ r = -ENOSYS;
++#ifdef CONFIG_PCI_IOV
++ else if (pci_dev->is_virtfn) {
+ struct physdev_manage_pci_ext manage_pci_ext = {
+ .bus = pci_dev->bus->number,
+ .devfn = pci_dev->devfn,
+ .is_virtfn = 1,
+- .physfn.bus = pci_dev->physfn->bus->number,
+- .physfn.devfn = pci_dev->physfn->devfn,
++ .physfn.bus = physfn->bus->number,
++ .physfn.devfn = physfn->devfn,
+ };
+
+ r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_add_ext,
+ &manage_pci_ext);
+- } else
++ }
+ #endif
+- if (pci_ari_enabled(pci_dev->bus) && PCI_SLOT(pci_dev->devfn)) {
++ else if (pci_ari_enabled(pci_dev->bus) && PCI_SLOT(pci_dev->devfn)) {
+ struct physdev_manage_pci_ext manage_pci_ext = {
+ .bus = pci_dev->bus->number,
+ .devfn = pci_dev->devfn,
+@@ -75,13 +142,27 @@ static int xen_remove_device(struct devi
+ {
+ int r;
+ struct pci_dev *pci_dev = to_pci_dev(dev);
+- struct physdev_manage_pci manage_pci;
+
+- manage_pci.bus = pci_dev->bus->number;
+- manage_pci.devfn = pci_dev->devfn;
++ if (pci_seg_supported) {
++ struct physdev_pci_device device = {
++ .seg = pci_domain_nr(pci_dev->bus),
++ .bus = pci_dev->bus->number,
++ .devfn = pci_dev->devfn
++ };
+
+- r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_remove,
+- &manage_pci);
++ r = HYPERVISOR_physdev_op(PHYSDEVOP_pci_device_remove,
++ &device);
++ } else if (pci_domain_nr(pci_dev->bus))
++ r = -ENOSYS;
++ else {
++ struct physdev_manage_pci manage_pci = {
++ .bus = pci_dev->bus->number,
++ .devfn = pci_dev->devfn
++ };
++
++ r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_remove,
++ &manage_pci);
++ }
+
+ return r;
+ }
+--- head-2011-08-09.orig/include/xen/interface/physdev.h 2011-07-05 17:23:43.000000000 +0200
++++ head-2011-08-09/include/xen/interface/physdev.h 2011-08-10 08:21:19.000000000 +0200
+@@ -142,6 +142,7 @@ DEFINE_XEN_GUEST_HANDLE(physdev_irq_t);
+ #define MAP_PIRQ_TYPE_MSI 0x0
+ #define MAP_PIRQ_TYPE_GSI 0x1
+ #define MAP_PIRQ_TYPE_UNKNOWN 0x2
++#define MAP_PIRQ_TYPE_MSI_SEG 0x3
+
+ #define PHYSDEVOP_map_pirq 13
+ struct physdev_map_pirq {
+@@ -152,7 +153,7 @@ struct physdev_map_pirq {
+ int index;
+ /* IN or OUT */
+ int pirq;
+- /* IN */
++ /* IN - high 16 bits hold segment for MAP_PIRQ_TYPE_MSI_SEG */
+ int bus;
+ /* IN */
+ int devfn;
+@@ -264,6 +265,41 @@ struct physdev_pci_mmcfg_reserved {
+ typedef struct physdev_pci_mmcfg_reserved physdev_pci_mmcfg_reserved_t;
+ DEFINE_XEN_GUEST_HANDLE(physdev_pci_mmcfg_reserved_t);
+
++#define XEN_PCI_DEV_EXTFN 0x1
++#define XEN_PCI_DEV_VIRTFN 0x2
++#define XEN_PCI_DEV_PXM 0x4
++
++#define PHYSDEVOP_pci_device_add 25
++struct physdev_pci_device_add {
++ /* IN */
++ uint16_t seg;
++ uint8_t bus;
++ uint8_t devfn;
++ uint32_t flags;
++ struct {
++ uint8_t bus;
++ uint8_t devfn;
++ } physfn;
++#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
++ uint32_t optarr[];
++#elif defined(__GNUC__)
++ uint32_t optarr[0];
++#endif
++};
++typedef struct physdev_pci_device_add physdev_pci_device_add_t;
++DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_add_t);
++
++#define PHYSDEVOP_pci_device_remove 26
++#define PHYSDEVOP_restore_msi_ext 27
++struct physdev_pci_device {
++ /* IN */
++ uint16_t seg;
++ uint8_t bus;
++ uint8_t devfn;
++};
++typedef struct physdev_pci_device physdev_pci_device_t;
++DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_t);
++
+ /*
+ * Notify that some PIRQ-bound event channels have been unmasked.
+ * ** This command is obsolete since interface version 0x00030202 and is **
diff --git a/patches.xen/xen-unpriv-build b/patches.xen/xen-unpriv-build
index 9b367eef74..88c86110cb 100644
--- a/patches.xen/xen-unpriv-build
+++ b/patches.xen/xen-unpriv-build
@@ -2,8 +2,8 @@ From: jbeulich@novell.com
Subject: no need to build certain bits when building non-privileged kernel
Patch-mainline: n/a
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-09 15:54:01.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-09 15:55:02.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-09 15:54:01.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-09 15:55:02.000000000 +0200
@@ -692,6 +692,7 @@ config APB_TIMER
config DMI
default y
@@ -64,8 +64,8 @@ Patch-mainline: n/a
source "fs/Kconfig"
---- head-2011-09-07.orig/arch/x86/Kconfig.debug 2011-06-30 16:39:08.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig.debug 2011-07-21 12:33:36.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig.debug 2011-06-30 16:39:08.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig.debug 2011-07-21 12:33:36.000000000 +0200
@@ -33,6 +33,7 @@ config X86_VERBOSE_BOOTUP
config EARLY_PRINTK
@@ -74,8 +74,8 @@ Patch-mainline: n/a
default y
---help---
Write kernel log output directly into the VGA buffer or to a serial
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/swiotlb.h 2011-02-01 15:09:47.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/swiotlb.h 2011-02-02 15:10:34.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/swiotlb.h 2011-02-01 15:09:47.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/swiotlb.h 2011-02-02 15:10:34.000000000 +0100
@@ -1,4 +1,8 @@
#include_next <asm/swiotlb.h>
@@ -85,9 +85,9 @@ Patch-mainline: n/a
+
dma_addr_t swiotlb_map_single_phys(struct device *, phys_addr_t, size_t size,
int dir);
---- head-2011-09-07.orig/drivers/firmware/Kconfig 2010-11-23 16:20:20.000000000 +0100
-+++ head-2011-09-07/drivers/firmware/Kconfig 2011-04-13 16:55:00.000000000 +0200
-@@ -127,7 +127,7 @@ config DMI_SYSFS
+--- head-2011-09-23.orig/drivers/firmware/Kconfig 2011-04-13 12:52:07.000000000 +0200
++++ head-2011-09-23/drivers/firmware/Kconfig 2011-09-23 10:29:26.000000000 +0200
+@@ -126,7 +126,7 @@ config DMI_SYSFS
config ISCSI_IBFT_FIND
bool "iSCSI Boot Firmware Table Attributes"
@@ -96,8 +96,8 @@ Patch-mainline: n/a
default n
help
This option enables the kernel to find the region of memory
---- head-2011-09-07.orig/drivers/pci/Kconfig 2011-02-01 15:09:47.000000000 +0100
-+++ head-2011-09-07/drivers/pci/Kconfig 2011-02-02 15:10:34.000000000 +0100
+--- head-2011-09-23.orig/drivers/pci/Kconfig 2011-02-01 15:09:47.000000000 +0100
++++ head-2011-09-23/drivers/pci/Kconfig 2011-02-02 15:10:34.000000000 +0100
@@ -74,7 +74,7 @@ config PARAVIRT_XEN_PCIDEV_FRONTEND
config XEN_PCIDEV_FRONTEND
@@ -107,8 +107,8 @@ Patch-mainline: n/a
depends on PCI && XEN && (PCI_GOXEN_FE || PCI_GOANY || X86_64)
select HOTPLUG
help
---- head-2011-09-07.orig/drivers/video/Kconfig 2011-06-30 16:35:51.000000000 +0200
-+++ head-2011-09-07/drivers/video/Kconfig 2011-07-04 12:16:02.000000000 +0200
+--- head-2011-09-23.orig/drivers/video/Kconfig 2011-06-30 16:35:51.000000000 +0200
++++ head-2011-09-23/drivers/video/Kconfig 2011-07-04 12:16:02.000000000 +0200
@@ -745,7 +745,7 @@ config FB_UVESA
config FB_VESA
@@ -118,8 +118,8 @@ Patch-mainline: n/a
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
---- head-2011-09-07.orig/drivers/xen/Kconfig 2011-04-14 11:28:14.000000000 +0200
-+++ head-2011-09-07/drivers/xen/Kconfig 2011-04-14 11:28:24.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-09-23 10:28:17.000000000 +0200
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-23 10:29:33.000000000 +0200
@@ -18,7 +18,8 @@ config XEN_PRIVILEGED_GUEST
Support for privileged operation (domain 0)
@@ -130,7 +130,7 @@ Patch-mainline: n/a
select PM
select SUSPEND
-@@ -281,6 +282,7 @@ config XEN_USB_FRONTEND_HCD_PM
+@@ -201,6 +202,7 @@ config XEN_USB_FRONTEND_HCD_PM
config XEN_GRANT_DEV
tristate "User-space granted page access driver"
@@ -138,9 +138,9 @@ Patch-mainline: n/a
default XEN_PRIVILEGED_GUEST
help
Device for accessing (in user-space) pages that have been granted
---- head-2011-09-07.orig/drivers/xen/balloon/balloon.c 2010-11-25 13:47:01.000000000 +0100
-+++ head-2011-09-07/drivers/xen/balloon/balloon.c 2011-03-23 08:54:09.000000000 +0100
-@@ -656,6 +656,9 @@ void balloon_update_driver_allowance(lon
+--- head-2011-09-23.orig/drivers/xen/balloon/balloon.c 2011-04-26 09:16:13.000000000 +0200
++++ head-2011-09-23/drivers/xen/balloon/balloon.c 2011-09-23 10:29:36.000000000 +0200
+@@ -653,6 +653,9 @@ void balloon_update_driver_allowance(lon
bs.driver_pages += delta;
balloon_unlock(flags);
}
@@ -150,7 +150,7 @@ Patch-mainline: n/a
#ifdef CONFIG_XEN
static int dealloc_pte_fn(
-@@ -764,6 +767,7 @@ struct page **alloc_empty_pages_and_page
+@@ -761,6 +764,7 @@ struct page **alloc_empty_pages_and_page
pagevec = NULL;
goto out;
}
@@ -158,7 +158,7 @@ Patch-mainline: n/a
void free_empty_pages_and_pagevec(struct page **pagevec, int nr_pages)
{
-@@ -784,6 +788,9 @@ void free_empty_pages_and_pagevec(struct
+@@ -781,6 +785,9 @@ void free_empty_pages_and_pagevec(struct
schedule_work(&balloon_worker);
}
@@ -168,7 +168,7 @@ Patch-mainline: n/a
void balloon_release_driver_page(struct page *page)
{
-@@ -797,10 +804,6 @@ void balloon_release_driver_page(struct
+@@ -794,10 +801,6 @@ void balloon_release_driver_page(struct
schedule_work(&balloon_worker);
}
@@ -179,8 +179,8 @@ Patch-mainline: n/a
EXPORT_SYMBOL_GPL(balloon_release_driver_page);
MODULE_LICENSE("Dual BSD/GPL");
---- head-2011-09-07.orig/drivers/xen/console/console.c 2011-02-01 15:04:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/console/console.c 2011-02-02 15:10:34.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/console/console.c 2011-02-01 15:04:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/console/console.c 2011-02-02 15:10:34.000000000 +0100
@@ -47,7 +47,6 @@
#include <linux/init.h>
#include <linux/console.h>
@@ -223,8 +223,8 @@ Patch-mainline: n/a
/******************** User-space console driver (/dev/console) ************/
---- head-2011-09-07.orig/drivers/xen/core/Makefile 2011-08-18 11:17:15.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/Makefile 2011-08-18 11:17:50.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/core/Makefile 2011-08-18 11:17:15.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/Makefile 2011-08-18 11:17:50.000000000 +0200
@@ -2,9 +2,10 @@
# Makefile for the linux kernel.
#
@@ -237,9 +237,9 @@ Patch-mainline: n/a
obj-$(CONFIG_PROC_FS) += xen_proc.o
obj-$(CONFIG_SYS_HYPERVISOR) += hypervisor_sysfs.o
obj-$(CONFIG_HOTPLUG_CPU) += cpu_hotplug.o
---- head-2011-09-07.orig/drivers/xen/core/evtchn.c 2011-04-14 16:37:16.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/evtchn.c 2011-04-14 16:37:32.000000000 +0200
-@@ -1834,6 +1834,7 @@ void evtchn_register_pirq(int irq)
+--- head-2011-09-23.orig/drivers/xen/core/evtchn.c 2011-04-14 16:36:32.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/evtchn.c 2011-09-23 10:29:42.000000000 +0200
+@@ -1813,6 +1813,7 @@ void evtchn_register_pirq(int irq)
"fasteoi");
}
@@ -247,7 +247,7 @@ Patch-mainline: n/a
int evtchn_map_pirq(int irq, int xen_pirq)
{
if (irq < 0) {
-@@ -1908,6 +1909,7 @@ int evtchn_map_pirq(int irq, int xen_pir
+@@ -1887,6 +1888,7 @@ int evtchn_map_pirq(int irq, int xen_pir
}
return index_from_irq(irq) ? irq : -EINVAL;
}
@@ -255,8 +255,8 @@ Patch-mainline: n/a
int evtchn_get_xen_pirq(int irq)
{
---- head-2011-09-07.orig/drivers/xen/core/gnttab.c 2011-02-02 15:10:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/gnttab.c 2011-02-02 15:10:34.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/gnttab.c 2011-04-14 17:21:05.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/gnttab.c 2011-02-02 15:10:34.000000000 +0100
@@ -436,8 +436,6 @@ static inline unsigned int max_nr_grant_
#ifdef CONFIG_XEN
@@ -286,8 +286,8 @@ Patch-mainline: n/a
#ifdef __HAVE_ARCH_PTE_SPECIAL
static unsigned int GNTMAP_pte_special;
---- head-2011-09-07.orig/drivers/xen/privcmd/Makefile 2007-07-10 09:42:30.000000000 +0200
-+++ head-2011-09-07/drivers/xen/privcmd/Makefile 2011-02-02 15:10:34.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/privcmd/Makefile 2007-07-10 09:42:30.000000000 +0200
++++ head-2011-09-23/drivers/xen/privcmd/Makefile 2011-02-02 15:10:34.000000000 +0100
@@ -1,3 +1,3 @@
-
-obj-y += privcmd.o
@@ -295,8 +295,8 @@ Patch-mainline: n/a
+priv-$(CONFIG_COMPAT) := compat_privcmd.o
+obj-y := privcmd.o
+obj-$(CONFIG_XEN_PRIVILEGED_GUEST) += $(priv-y)
---- head-2011-09-07.orig/drivers/xen/privcmd/privcmd.c 2011-02-01 15:09:47.000000000 +0100
-+++ head-2011-09-07/drivers/xen/privcmd/privcmd.c 2011-02-02 15:10:34.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/privcmd/privcmd.c 2011-02-01 15:09:47.000000000 +0100
++++ head-2011-09-23/drivers/xen/privcmd/privcmd.c 2011-02-02 15:10:34.000000000 +0100
@@ -32,6 +32,9 @@
static struct proc_dir_entry *privcmd_intf;
static struct proc_dir_entry *capabilities_intf;
@@ -350,8 +350,8 @@ Patch-mainline: n/a
};
static int capabilities_read(char *page, char **start, off_t off,
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 15:03:17.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_comms.c 2011-04-01 10:23:25.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 15:03:17.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_comms.c 2011-04-01 10:23:25.000000000 +0200
@@ -52,12 +52,12 @@
static int xenbus_irq;
@@ -375,8 +375,8 @@ Patch-mainline: n/a
wake_up(&xb_waitq);
return IRQ_HANDLED;
}
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe.c 2011-09-09 09:52:35.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe.c 2011-09-09 15:55:11.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe.c 2011-09-09 09:52:35.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe.c 2011-09-09 15:55:11.000000000 +0200
@@ -92,7 +92,11 @@ static unsigned long xen_store_mfn;
extern struct mutex xenwatch_mutex;
@@ -405,8 +405,8 @@ Patch-mainline: n/a
{
BUG_ON(!is_xenstored_ready());
---- head-2011-09-07.orig/fs/compat_ioctl.c 2011-09-07 16:00:52.000000000 +0200
-+++ head-2011-09-07/fs/compat_ioctl.c 2011-09-09 15:55:19.000000000 +0200
+--- head-2011-09-23.orig/fs/compat_ioctl.c 2011-09-07 16:00:52.000000000 +0200
++++ head-2011-09-23/fs/compat_ioctl.c 2011-09-09 15:55:19.000000000 +0200
@@ -1487,7 +1487,7 @@ static long do_ioctl_trans(int fd, unsig
return do_video_stillpicture(fd, cmd, argp);
case VIDEO_SET_SPU_PALETTE:
@@ -416,8 +416,8 @@ Patch-mainline: n/a
case IOCTL_PRIVCMD_MMAP_32:
case IOCTL_PRIVCMD_MMAPBATCH_32:
case IOCTL_PRIVCMD_MMAPBATCH_V2_32:
---- head-2011-09-07.orig/include/xen/firmware.h 2007-07-02 08:16:19.000000000 +0200
-+++ head-2011-09-07/include/xen/firmware.h 2011-02-02 15:10:34.000000000 +0100
+--- head-2011-09-23.orig/include/xen/firmware.h 2007-07-02 08:16:19.000000000 +0200
++++ head-2011-09-23/include/xen/firmware.h 2011-02-02 15:10:34.000000000 +0100
@@ -5,6 +5,10 @@
void copy_edd(void);
#endif
@@ -429,8 +429,8 @@ Patch-mainline: n/a
+#endif
#endif /* __XEN_FIRMWARE_H__ */
---- head-2011-09-07.orig/include/xen/gnttab.h 2010-11-23 15:07:01.000000000 +0100
-+++ head-2011-09-07/include/xen/gnttab.h 2011-02-02 15:10:34.000000000 +0100
+--- head-2011-09-23.orig/include/xen/gnttab.h 2010-11-23 15:07:01.000000000 +0100
++++ head-2011-09-23/include/xen/gnttab.h 2011-02-02 15:10:34.000000000 +0100
@@ -104,7 +104,11 @@ void gnttab_grant_foreign_transfer_ref(g
unsigned long pfn);
diff --git a/patches.xen/xen-x86-EFI b/patches.xen/xen-x86-EFI
index c1c0cde744..492ed618b6 100644
--- a/patches.xen/xen-x86-EFI
+++ b/patches.xen/xen-x86-EFI
@@ -3,8 +3,8 @@ From: jbeulich@novell.com
Patch-mainline: n/a
References: fate#311376, fate#311529, bnc#578927, bnc#628554
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-09 15:58:52.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-09 15:58:58.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-09 15:58:52.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-09 15:58:58.000000000 +0200
@@ -1503,7 +1503,7 @@ config ARCH_USES_PG_UNCACHED
config EFI
@@ -14,8 +14,8 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
---help---
This enables the kernel to use EFI runtime services that are
available (such as the EFI variable services).
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/setup.h 2011-02-01 14:54:13.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/setup.h 2011-07-04 12:32:43.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/setup.h 2011-02-01 14:54:13.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/setup.h 2011-07-04 12:32:43.000000000 +0200
@@ -3,6 +3,12 @@
void xen_start_kernel(void);
void xen_arch_setup(void);
@@ -29,9 +29,9 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
#endif
#include_next <asm/setup.h>
---- head-2011-09-07.orig/arch/x86/kernel/setup-xen.c 2011-07-21 12:41:22.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/setup-xen.c 2011-07-21 12:45:13.000000000 +0200
-@@ -919,6 +919,8 @@ void __init setup_arch(char **cmdline_p)
+--- head-2011-09-23.orig/arch/x86/kernel/setup-xen.c 2011-09-23 10:31:56.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/setup-xen.c 2011-09-23 10:32:10.000000000 +0200
+@@ -927,6 +927,8 @@ void __init setup_arch(char **cmdline_p)
xen_start_info->console.dom0.info_size);
xen_start_info->console.domU.mfn = 0;
xen_start_info->console.domU.evtchn = 0;
@@ -40,14 +40,14 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
} else
screen_info.orig_video_isVGA = 0;
copy_edid();
---- head-2011-09-07.orig/arch/x86/platform/efi/Makefile 2011-01-05 01:50:19.000000000 +0100
-+++ head-2011-09-07/arch/x86/platform/efi/Makefile 2011-06-09 17:06:13.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/platform/efi/Makefile 2011-09-23 09:35:31.000000000 +0200
++++ head-2011-09-23/arch/x86/platform/efi/Makefile 2011-06-09 17:06:13.000000000 +0200
@@ -1 +1,2 @@
obj-$(CONFIG_EFI) += efi.o efi_$(BITS).o efi_stub_$(BITS).o
+disabled-obj-$(CONFIG_XEN) := efi_%$(BITS).o
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/platform/efi/efi-xen.c 2011-09-07 16:36:55.000000000 +0200
-@@ -0,0 +1,467 @@
++++ head-2011-09-23/arch/x86/platform/efi/efi-xen.c 2011-09-14 16:57:52.000000000 +0200
+@@ -0,0 +1,506 @@
+/*
+ * Common EFI (Extensible Firmware Interface) support functions
+ * Based on Extensible Firmware Interface Specification version 1.0
@@ -252,10 +252,21 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ u64 *remaining_space,
+ u64 *max_variable_size)
+{
++ int err;
++ DECLARE_CALL(query_variable_info);
++
+ if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+ return EFI_UNSUPPORTED;
+
-+ return EFI_UNSUPPORTED;//todo
++ err = HYPERVISOR_platform_op(&op);
++ if (err)
++ return EFI_UNSUPPORTED;
++
++ *storage_space = call.u.query_variable_info.max_store_size;
++ *remaining_space = call.u.query_variable_info.remain_store_size;
++ *max_variable_size = call.u.query_variable_info.max_size;
++
++ return call.status;
+}
+
+static efi_status_t xen_efi_get_next_high_mono_count(u32 *count)
@@ -276,10 +287,17 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ unsigned long count,
+ unsigned long sg_list)
+{
++ DECLARE_CALL(update_capsule);
++
+ if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+ return EFI_UNSUPPORTED;
+
-+ return EFI_UNSUPPORTED;//todo
++ set_xen_guest_handle(call.u.update_capsule.capsule_header_array,
++ capsules);
++ call.u.update_capsule.capsule_count = count;
++ call.u.update_capsule.sg_list = sg_list;
++
++ return HYPERVISOR_platform_op(&op) ? EFI_UNSUPPORTED : call.status;
+}
+
+static efi_status_t xen_efi_query_capsule_caps(efi_capsule_header_t **capsules,
@@ -287,10 +305,24 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ u64 *max_size,
+ int *reset_type)
+{
++ int err;
++ DECLARE_CALL(query_capsule_capabilities);
++
+ if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+ return EFI_UNSUPPORTED;
+
-+ return EFI_UNSUPPORTED;//todo
++ set_xen_guest_handle(call.u.query_capsule_capabilities.capsule_header_array,
++ capsules);
++ call.u.query_capsule_capabilities.capsule_count = count;
++
++ err = HYPERVISOR_platform_op(&op);
++ if (err)
++ return EFI_UNSUPPORTED;
++
++ *max_size = call.u.query_capsule_capabilities.max_capsule_size;
++ *reset_type = call.u.query_capsule_capabilities.reset_type;
++
++ return call.status;
+}
+
+#undef DECLARE_CALL
@@ -424,6 +456,13 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ else
+ printk(KERN_ERR PFX "Could not get EFI revision!\n");
+
++ op.u.firmware_info.index = XEN_FW_EFI_RT_VERSION;
++ ret = HYPERVISOR_platform_op(&op);
++ if (!ret)
++ efi.runtime_version = info->version;
++ else
++ pr_warn(PFX "Could not get runtime services revision.\n");
++
+ /*
+ * Let's see what config tables the firmware passed to us.
+ */
@@ -515,8 +554,8 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ info->mem.size = 0;
+ return HYPERVISOR_platform_op(&op) ? 0 : info->mem.attr;
+}
---- head-2011-09-07.orig/drivers/rtc/Kconfig 2011-09-07 13:56:34.000000000 +0200
-+++ head-2011-09-07/drivers/rtc/Kconfig 2011-07-04 12:33:03.000000000 +0200
+--- head-2011-09-23.orig/drivers/rtc/Kconfig 2011-09-23 09:35:31.000000000 +0200
++++ head-2011-09-23/drivers/rtc/Kconfig 2011-07-04 12:33:03.000000000 +0200
@@ -556,7 +556,7 @@ config RTC_DRV_DS1742
config RTC_DRV_EFI
@@ -526,8 +565,8 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
help
If you say yes here you will get support for the EFI
Real Time Clock.
---- head-2011-09-07.orig/drivers/xen/console/console.c 2011-02-02 15:10:34.000000000 +0100
-+++ head-2011-09-07/drivers/xen/console/console.c 2011-06-15 15:41:36.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/console/console.c 2011-02-02 15:10:34.000000000 +0100
++++ head-2011-09-23/drivers/xen/console/console.c 2011-06-15 15:41:36.000000000 +0200
@@ -315,6 +315,7 @@ void __init dom0_init_screen_info(const
break;
@@ -547,8 +586,8 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
if (size >= offsetof(struct dom0_vga_console_info,
u.vesa_lfb.gbl_caps)
+ sizeof(info->u.vesa_lfb.gbl_caps))
---- head-2011-09-07.orig/include/linux/efi.h 2011-09-07 13:56:38.000000000 +0200
-+++ head-2011-09-07/include/linux/efi.h 2011-09-09 15:59:07.000000000 +0200
+--- head-2011-09-23.orig/include/linux/efi.h 2011-09-23 09:35:31.000000000 +0200
++++ head-2011-09-23/include/linux/efi.h 2011-09-09 15:59:07.000000000 +0200
@@ -281,7 +281,9 @@ struct efi_memory_map {
* All runtime access to EFI goes through this structure:
*/
@@ -570,3 +609,50 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
} efi;
static inline int
+--- head-2011-09-23.orig/include/xen/interface/platform.h 2011-08-23 13:12:54.000000000 +0200
++++ head-2011-09-23/include/xen/interface/platform.h 2011-09-14 15:02:15.000000000 +0200
+@@ -123,6 +123,9 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_platform_q
+ #define XEN_EFI_get_variable 6
+ #define XEN_EFI_set_variable 7
+ #define XEN_EFI_get_next_variable_name 8
++#define XEN_EFI_query_variable_info 9
++#define XEN_EFI_query_capsule_capabilities 10
++#define XEN_EFI_update_capsule 11
+ struct xenpf_efi_runtime_call {
+ uint32_t function;
+ /*
+@@ -180,6 +183,26 @@ struct xenpf_efi_runtime_call {
+ XEN_GUEST_HANDLE(void) name; /* UCS-2/UTF-16 string */
+ struct xenpf_efi_guid vendor_guid;
+ } get_next_variable_name;
++
++ struct {
++ uint32_t attr;
++ uint64_t max_store_size;
++ uint64_t remain_store_size;
++ uint64_t max_size;
++ } query_variable_info;
++
++ struct {
++ XEN_GUEST_HANDLE(void) capsule_header_array;
++ unsigned long capsule_count;
++ uint64_t max_capsule_size;
++ unsigned int reset_type;
++ } query_capsule_capabilities;
++
++ struct {
++ XEN_GUEST_HANDLE(void) capsule_header_array;
++ unsigned long capsule_count;
++ uint64_t sg_list; /* machine address */
++ } update_capsule;
+ } u;
+ };
+ typedef struct xenpf_efi_runtime_call xenpf_efi_runtime_call_t;
+@@ -194,6 +217,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_efi_runtim
+ #define XEN_FW_EFI_CONFIG_TABLE 1
+ #define XEN_FW_EFI_VENDOR 2
+ #define XEN_FW_EFI_MEM_INFO 3
++#define XEN_FW_EFI_RT_VERSION 4
+ struct xenpf_firmware_info {
+ /* IN variables. */
+ uint32_t type;
diff --git a/patches.xen/xen-x86-bigmem b/patches.xen/xen-x86-bigmem
index 8617b43171..9189fc3ee0 100644
--- a/patches.xen/xen-x86-bigmem
+++ b/patches.xen/xen-x86-bigmem
@@ -3,8 +3,8 @@ Subject: fix issues with the assignment of huge amounts of memory
Patch-mainline: obsolete
References: bnc#482614, bnc#537435, bnc#700856
---- head-2011-08-09.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:35:55.000000000 +0200
-+++ head-2011-08-09/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:36:00.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:35:55.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:36:00.000000000 +0200
@@ -100,6 +100,10 @@ void xen_pgd_pin(unsigned long ptr);
void xen_pgd_unpin(unsigned long ptr);
@@ -16,9 +16,9 @@ References: bnc#482614, bnc#537435, bnc#700856
void xen_set_ldt(const void *ptr, unsigned int ents);
---- head-2011-08-09.orig/arch/x86/kernel/e820-xen.c 2011-04-26 09:20:05.000000000 +0200
-+++ head-2011-08-09/arch/x86/kernel/e820-xen.c 2011-04-13 17:05:50.000000000 +0200
-@@ -954,6 +954,26 @@ static int __init parse_memopt(char *p)
+--- head-2011-09-23.orig/arch/x86/kernel/e820-xen.c 2011-09-23 16:02:43.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/e820-xen.c 2011-09-23 16:03:31.000000000 +0200
+@@ -958,6 +958,26 @@ static int __init parse_memopt(char *p)
/* don't remove all of memory when handling "mem={invalid}" param */
if (mem_size == 0)
return -EINVAL;
@@ -45,7 +45,7 @@ References: bnc#482614, bnc#537435, bnc#700856
e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1);
i = e820.nr_map - 1;
-@@ -1152,6 +1172,7 @@ void __init e820_reserve_resources_late(
+@@ -1157,6 +1177,7 @@ void __init e820_reserve_resources_late(
char *__init default_machine_specific_memory_setup(void)
{
int rc, nr_map;
@@ -53,7 +53,7 @@ References: bnc#482614, bnc#537435, bnc#700856
struct xen_memory_map memmap;
static struct e820entry __initdata map[E820MAX];
-@@ -1177,6 +1198,22 @@ char *__init default_machine_specific_me
+@@ -1182,6 +1203,22 @@ char *__init default_machine_specific_me
BUG();
#ifdef CONFIG_XEN
@@ -76,8 +76,8 @@ References: bnc#482614, bnc#537435, bnc#700856
if (is_initial_xendomain()) {
memmap.nr_entries = E820MAX;
set_xen_guest_handle(memmap.buffer, machine_e820.map);
---- head-2011-08-09.orig/arch/x86/kernel/setup-xen.c 2011-07-04 12:21:52.000000000 +0200
-+++ head-2011-08-09/arch/x86/kernel/setup-xen.c 2011-07-21 12:41:22.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/setup-xen.c 2011-09-23 10:31:47.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/setup-xen.c 2011-09-23 10:31:56.000000000 +0200
@@ -133,12 +133,7 @@ static struct notifier_block xen_panic_b
unsigned long *phys_to_machine_mapping;
EXPORT_SYMBOL(phys_to_machine_mapping);
@@ -149,7 +149,7 @@ References: bnc#482614, bnc#537435, bnc#700856
#endif
/*
-@@ -1170,46 +1215,42 @@ void __init setup_arch(char **cmdline_p)
+@@ -1178,46 +1223,42 @@ void __init setup_arch(char **cmdline_p)
p2m_pages = xen_start_info->nr_pages;
if (!xen_feature(XENFEAT_auto_translated_physmap)) {
@@ -221,8 +221,8 @@ References: bnc#482614, bnc#537435, bnc#700856
}
/* Mark all ISA DMA channels in-use - using them wouldn't work. */
---- head-2011-08-09.orig/drivers/xen/core/machine_reboot.c 2011-04-14 17:32:26.000000000 +0200
-+++ head-2011-08-09/drivers/xen/core/machine_reboot.c 2011-07-20 16:09:26.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/core/machine_reboot.c 2011-04-14 17:32:26.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/machine_reboot.c 2011-07-20 16:09:26.000000000 +0200
@@ -72,11 +72,7 @@ static void pre_suspend(void)
static void post_suspend(int suspend_cancelled)
diff --git a/patches.xen/xen-x86-mmcfg-ACPI-reserved b/patches.xen/xen-x86-mmcfg-ACPI-reserved
deleted file mode 100644
index 8f2b6262e1..0000000000
--- a/patches.xen/xen-x86-mmcfg-ACPI-reserved
+++ /dev/null
@@ -1,73 +0,0 @@
-Subject: x86: report ACPI-reserved state of PCI MMCONFIG region to hypervisor
-From: jbeulich@novell.com
-Patch-mainline: n/a
-
-To be merged into xen3-patch-2.6.27.
-
---- head-2011-06-30.orig/include/xen/interface/physdev.h 2011-03-17 13:50:24.000000000 +0100
-+++ head-2011-06-30/include/xen/interface/physdev.h 2011-07-05 17:23:43.000000000 +0200
-@@ -251,6 +251,19 @@ struct physdev_get_free_pirq {
- typedef struct physdev_get_free_pirq physdev_get_free_pirq_t;
- DEFINE_XEN_GUEST_HANDLE(physdev_get_free_pirq_t);
-
-+#define XEN_PCI_MMCFG_RESERVED 0x1
-+
-+#define PHYSDEVOP_pci_mmcfg_reserved 24
-+struct physdev_pci_mmcfg_reserved {
-+ uint64_t address;
-+ uint16_t segment;
-+ uint8_t start_bus;
-+ uint8_t end_bus;
-+ uint32_t flags;
-+};
-+typedef struct physdev_pci_mmcfg_reserved physdev_pci_mmcfg_reserved_t;
-+DEFINE_XEN_GUEST_HANDLE(physdev_pci_mmcfg_reserved_t);
-+
- /*
- * Notify that some PIRQ-bound event channels have been unmasked.
- * ** This command is obsolete since interface version 0x00030202 and is **
---- head-2011-06-30.orig/arch/x86/pci/mmconfig-shared.c 2011-06-30 15:04:12.000000000 +0200
-+++ head-2011-06-30/arch/x86/pci/mmconfig-shared.c 2011-07-06 12:20:45.000000000 +0200
-@@ -21,6 +21,10 @@
- #include <asm/pci_x86.h>
- #include <asm/acpi.h>
-
-+#ifdef CONFIG_XEN
-+#include <xen/interface/physdev.h>
-+#endif
-+
- #define PREFIX "PCI: "
-
- /* Indicate if the mmcfg resources have been placed into the resource table. */
-@@ -471,6 +475,31 @@ static int __init is_mmconf_reserved(che
- }
- }
-
-+#ifdef CONFIG_XEN
-+ if (!with_e820) {
-+ struct physdev_pci_mmcfg_reserved r = {
-+ .address = cfg->address,
-+ .segment = cfg->segment,
-+ .start_bus = cfg->start_bus,
-+ .end_bus = cfg->end_bus,
-+ .flags = valid ? XEN_PCI_MMCFG_RESERVED : 0
-+ };
-+ int rc;
-+
-+ rc = HYPERVISOR_physdev_op(PHYSDEVOP_pci_mmcfg_reserved, &r);
-+ switch (rc) {
-+ case 0: case -ENOSYS:
-+ break;
-+ default:
-+ pr_warn(PREFIX "Failed to report MMCONFIG reservation"
-+ " state for %04x [bus%02x-%02x] to hypervisor"
-+ " (%d)\n",
-+ cfg->segment, cfg->start_bus, cfg->end_bus,
-+ rc);
-+ }
-+ }
-+#endif
-+
- return valid;
- }
-
diff --git a/patches.xen/xen-x86-panic-no-reboot b/patches.xen/xen-x86-panic-no-reboot
index 6ac155fee5..6d6faaae70 100644
--- a/patches.xen/xen-x86-panic-no-reboot
+++ b/patches.xen/xen-x86-panic-no-reboot
@@ -4,9 +4,9 @@ Patch-mainline: obsolete
$subject says it all.
---- head-2011-06-30.orig/arch/x86/kernel/setup-xen.c 2011-07-01 15:46:25.000000000 +0200
-+++ head-2011-06-30/arch/x86/kernel/setup-xen.c 2011-07-04 12:21:52.000000000 +0200
-@@ -768,15 +768,17 @@ void __init setup_arch(char **cmdline_p)
+--- head-2011-09-23.orig/arch/x86/kernel/setup-xen.c 2011-09-23 10:16:51.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/setup-xen.c 2011-09-23 10:31:47.000000000 +0200
+@@ -776,15 +776,17 @@ void __init setup_arch(char **cmdline_p)
unsigned long p2m_pages;
struct physdev_set_iopl set_iopl;
diff --git a/patches.xen/xen-x86-per-cpu-vcpu-info b/patches.xen/xen-x86-per-cpu-vcpu-info
index 7cd6e7bf43..5fa59b06fe 100644
--- a/patches.xen/xen-x86-per-cpu-vcpu-info
+++ b/patches.xen/xen-x86-per-cpu-vcpu-info
@@ -5,7 +5,7 @@ Patch-mainline: obsolete
... reducing access code size and latency, as well as being the
prerequisite for removing the limitation on 32 vCPU-s per guest.
---- head-2011-09-07.orig/arch/x86/include/asm/percpu.h 2011-09-12 10:54:14.000000000 +0200
+--- head-2011-09-07.orig/arch/x86/include/asm/percpu.h 2011-09-19 16:00:15.000000000 +0200
+++ head-2011-09-07/arch/x86/include/asm/percpu.h 2011-04-13 17:06:05.000000000 +0200
@@ -311,6 +311,40 @@ do { \
pxo_ret__; \
@@ -436,7 +436,7 @@ prerequisite for removing the limitation on 32 vCPU-s per guest.
#define NR_MC BITS_PER_LONG
#define NR_MMU BITS_PER_LONG
---- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-08-09 11:17:07.000000000 +0200
+--- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-09-12 13:56:27.000000000 +0200
+++ head-2011-09-07/arch/x86/mm/init_64-xen.c 2011-08-09 11:17:15.000000000 +0200
@@ -119,6 +119,26 @@ void __meminit early_make_page_readonly(
BUG();
@@ -465,9 +465,9 @@ prerequisite for removing the limitation on 32 vCPU-s per guest.
#ifndef CONFIG_XEN
static int __init parse_direct_gbpages_off(char *arg)
{
---- head-2011-09-07.orig/drivers/xen/Kconfig 2011-04-14 11:28:24.000000000 +0200
-+++ head-2011-09-07/drivers/xen/Kconfig 2011-04-14 11:28:35.000000000 +0200
-@@ -382,6 +382,18 @@ config XEN_COMPAT
+--- head-2011-09-07.orig/drivers/xen/Kconfig 2011-09-19 16:01:51.000000000 +0200
++++ head-2011-09-07/drivers/xen/Kconfig 2011-09-19 16:02:00.000000000 +0200
+@@ -318,6 +318,18 @@ config XEN_COMPAT
default 0x030002 if XEN_COMPAT_030002_AND_LATER
default 0
diff --git a/patches.xen/xen-x86_64-note-init-p2m b/patches.xen/xen-x86_64-note-init-p2m
index fa0e6e06df..66f602a0cd 100644
--- a/patches.xen/xen-x86_64-note-init-p2m
+++ b/patches.xen/xen-x86_64-note-init-p2m
@@ -18,8 +18,8 @@ shouldn't be as expensive (and hence can be viewed as an optimization
avoiding the spurious page fault on the local CPU), but is required
when the functions are used before the page fault handler gets set up.
---- head-2011-09-07.orig/arch/x86/kernel/head64-xen.c 2011-04-12 15:59:10.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head64-xen.c 2011-04-11 16:14:44.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head64-xen.c 2011-04-12 15:59:10.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head64-xen.c 2011-04-11 16:14:44.000000000 +0200
@@ -121,6 +121,14 @@ void __init x86_64_start_reservations(ch
memblock_x86_reserve_range(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
@@ -35,8 +35,8 @@ when the functions are used before the page fault handler gets set up.
/*
* At this point everything still needed from the boot loader
* or BIOS or kernel text should be early reserved or marked not
---- head-2011-09-07.orig/arch/x86/kernel/head_64-xen.S 2011-08-09 11:17:44.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head_64-xen.S 2011-08-09 11:19:00.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head_64-xen.S 2011-08-09 11:17:44.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head_64-xen.S 2011-08-09 11:19:00.000000000 +0200
@@ -17,6 +17,7 @@
#include <linux/elfnote.h>
#include <asm/segment.h>
@@ -53,9 +53,9 @@ when the functions are used before the page fault handler gets set up.
ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .ascii "writable_page_tables";
.ascii "|writable_descriptor_tables";
.ascii "|auto_translated_physmap";
---- head-2011-09-07.orig/arch/x86/kernel/setup-xen.c 2011-07-21 12:45:13.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/setup-xen.c 2011-07-21 12:50:48.000000000 +0200
-@@ -1109,6 +1109,54 @@ void __init setup_arch(char **cmdline_p)
+--- head-2011-09-23.orig/arch/x86/kernel/setup-xen.c 2011-09-23 10:32:10.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/setup-xen.c 2011-09-23 10:32:18.000000000 +0200
+@@ -1117,6 +1117,54 @@ void __init setup_arch(char **cmdline_p)
init_gbpages();
/* max_pfn_mapped is updated here */
@@ -110,7 +110,7 @@ when the functions are used before the page fault handler gets set up.
max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT);
max_pfn_mapped = max_low_pfn_mapped;
-@@ -1116,6 +1164,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1124,6 +1172,7 @@ void __init setup_arch(char **cmdline_p)
if (max_pfn > max_low_pfn) {
max_pfn_mapped = init_memory_mapping(1UL<<32,
max_pfn<<PAGE_SHIFT);
@@ -118,7 +118,7 @@ when the functions are used before the page fault handler gets set up.
/* can we preseve max_low_pfn ?*/
max_low_pfn = max_pfn;
}
-@@ -1207,7 +1256,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1215,7 +1264,7 @@ void __init setup_arch(char **cmdline_p)
difference = xen_start_info->nr_pages - max_pfn;
set_xen_guest_handle(reservation.extent_start,
@@ -127,7 +127,7 @@ when the functions are used before the page fault handler gets set up.
reservation.nr_extents = difference;
ret = HYPERVISOR_memory_op(XENMEM_decrease_reservation,
&reservation);
-@@ -1229,7 +1278,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1237,7 +1286,7 @@ void __init setup_arch(char **cmdline_p)
#else /* We must not use memcpy() and memset() here, as they're
not capable of dealing with 4Gb or more at a time. */
{
@@ -136,7 +136,7 @@ when the functions are used before the page fault handler gets set up.
unsigned long size, *dst = phys_to_machine_mapping;
unsigned int fpp = PAGE_SIZE / sizeof(*dst);
-@@ -1243,11 +1292,80 @@ void __init setup_arch(char **cmdline_p)
+@@ -1251,11 +1300,80 @@ void __init setup_arch(char **cmdline_p)
for (size = max_pfn - p2m_pages; size; --size)
*dst++ = INVALID_P2M_ENTRY;
}
@@ -222,8 +222,8 @@ when the functions are used before the page fault handler gets set up.
#ifndef CONFIG_KEXEC
if (!is_initial_xendomain())
---- head-2011-09-07.orig/arch/x86/mm/init-xen.c 2011-07-01 15:48:40.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/init-xen.c 2011-07-04 12:34:33.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/init-xen.c 2011-09-23 10:16:51.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/init-xen.c 2011-07-04 12:34:33.000000000 +0200
@@ -351,9 +351,20 @@ unsigned long __init_refok init_memory_m
* RO all the pagetable pages, including the ones that are beyond
* pgt_buf_end at that time.
@@ -246,8 +246,8 @@ when the functions are used before the page fault handler gets set up.
if (!after_bootmem)
early_memtest(start, end);
---- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-09-12 13:56:46.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/init_64-xen.c 2011-09-12 13:56:52.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/init_64-xen.c 2011-09-12 13:56:46.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/init_64-xen.c 2011-09-12 13:56:52.000000000 +0200
@@ -221,6 +221,17 @@ void sync_global_pgds(unsigned long star
}
}
@@ -373,8 +373,8 @@ when the functions are used before the page fault handler gets set up.
/* Destroy the Xen-created mappings beyond the kernel image. */
start = PAGE_ALIGN(_brk_end);
end = __START_KERNEL_map + (pgt_buf_start << PAGE_SHIFT);
---- head-2011-09-07.orig/arch/x86/mm/pageattr-xen.c 2011-04-13 17:01:32.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/pageattr-xen.c 2011-04-28 11:36:37.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/pageattr-xen.c 2011-04-13 17:01:32.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/pageattr-xen.c 2011-04-28 11:36:37.000000000 +0200
@@ -1496,7 +1496,7 @@ static void __make_page_writable(unsigne
pte = lookup_address(va, &level);
@@ -384,8 +384,8 @@ when the functions are used before the page fault handler gets set up.
BUG();
if (in_secondary_range(va)) {
unsigned long pfn = pte_pfn(*pte);
---- head-2011-09-07.orig/arch/x86/mm/pgtable-xen.c 2011-04-11 16:14:31.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/pgtable-xen.c 2011-02-03 14:42:41.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pgtable-xen.c 2011-04-11 16:14:31.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/pgtable-xen.c 2011-02-03 14:42:41.000000000 +0100
@@ -344,7 +344,7 @@ void __init xen_init_pgd_pin(void)
if (PTRS_PER_PUD > 1) /* not folded */
SetPagePinned(virt_to_page(pud));
@@ -404,8 +404,8 @@ when the functions are used before the page fault handler gets set up.
continue;
SetPagePinned(pmd_page(*pmd));
}
---- head-2011-09-07.orig/arch/x86/mm/pgtable_32-xen.c 2011-02-01 15:03:10.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pgtable_32-xen.c 2011-02-03 14:42:41.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pgtable_32-xen.c 2011-02-01 15:03:10.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pgtable_32-xen.c 2011-02-03 14:42:41.000000000 +0100
@@ -174,6 +174,6 @@ void make_lowmem_page_writable(void *va,
pte = lookup_address((unsigned long)va, &level);
BUG_ON(!pte || level != PG_LEVEL_4K || !pte_present(*pte));
diff --git a/patches.xen/xen3-acpi_implement_overriding_of_arbitrary_acpi_tables_via_initrd.patch b/patches.xen/xen3-acpi_implement_overriding_of_arbitrary_acpi_tables_via_initrd.patch
new file mode 100644
index 0000000000..36c88a0254
--- /dev/null
+++ b/patches.xen/xen3-acpi_implement_overriding_of_arbitrary_acpi_tables_via_initrd.patch
@@ -0,0 +1,99 @@
+Subject: ACPI: Implement overriding of arbitrary ACPI tables via initrd
+From: Thomas Renninger <trenn@suse.de>
+References: none
+Patch-Mainline: submitted, aiming for 3.2
+
+Details can be found in:
+Documentation/acpi/initrd_table_override.txt
+
+Additional dmesg output of a booted system with
+FACP (FADT), DSDT and SSDT (the 9th dynamically loaded one)
+tables overridden (with ### marked comments):
+
+### ACPI tables found glued to initrd
+DSDT ACPI table found in initrd - size: 16234
+FACP ACPI table found in initrd - size: 116
+SSDT ACPI table found in initrd - size: 334
+### Re-printed e820 map via e820_update() with additionally created
+### ACPI data section at 0xcff55000 where the ACPI tables passed via
+### initrd where copied to
+modified physical RAM map:
+...
+ ### New ACPI data section:
+ modified: 00000000cff55000 - 00000000cff5912c (ACPI data)
+ ### BIOS e820 provided ACPI data section:
+ modified: 00000000cff60000 - 00000000cff69000 (ACPI data)
+...
+### Total size of all ACPI tables glued to initrd
+### The address is initrd_start which gets updated to
+### initrd_start = initrd_start + "size of all ACPI tables glued to initrd"
+Found acpi tables of size: 16684 at 0xffff8800374c4000
+
+Disabling lock debugging due to kernel taint
+### initrd provided FACP and DSDT tables are used instead of BIOS provided ones
+ACPI: FACP @ 0x00000000cff68dd8 Phys table override, replaced with:
+ACPI: FACP 00000000cff58f6a 00074 (v01 INTEL TUMWATER 06040000 PTL 00000003)
+ACPI: DSDT @ 0x00000000cff649d4 Phys table override, replaced with:
+ACPI: DSDT 00000000cff55000 04404 (v01 Intel BLAKFORD 06040000 MSFT 0100000E)
+...
+### Much later, the 9th (/sys/firmware/acpi/table/dynamic/SSDT9) dynamically
+### loaded ACPI table matches and gets overridden:
+ACPI: SSDT @ 0x00000000cff64824 Phys table override, replaced with:
+ACPI: SSDT 00000000cff58fde 0014E (v01 PmRef Cpu7Ist 00003000 INTL 20110316)
+ACPI: Dynamic OEM Table Load:
+ACPI: SSDT (null) 0014E (v01 PmRef Cpu7Ist 00003000 INTL 20110316)
+...
+
+If the initrd does not start with a valid ACPI table signature or the ACPI
+table's checksum is wrong, there is no functional change.
+
+Signed-off-by: Thomas Renninger <trenn@suse.de>
+CC: linux-acpi@vger.kernel.org
+CC: lenb@kernel.org
+CC: linux-kernel@vger.kernel.org
+CC: x86@kernel.org
+Automatically created from "patches.arch/acpi_implement_overriding_of_arbitrary_acpi_tables_via_initrd.patch" by xen-port-patches.py
+
+--- head-2011-09-23.orig/arch/x86/kernel/setup-xen.c 2011-07-01 15:46:25.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/setup-xen.c 2011-09-23 10:16:51.000000000 +0200
+@@ -467,12 +467,20 @@ static void __init reserve_initrd(void)
+ #ifdef CONFIG_X86_64_XEN
+ initrd_below_start_ok = 1;
+ #endif
+- return;
++ } else {
++ relocate_initrd();
++ memblock_x86_free_range(ramdisk_image, ramdisk_end);
+ }
+-
+- relocate_initrd();
+-
+- memblock_x86_free_range(ramdisk_image, ramdisk_end);
++#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
++ acpi_initrd_offset = acpi_initrd_table_override((void *)initrd_start,
++ (void *)initrd_end);
++ if (!acpi_initrd_offset)
++ return;
++ printk(KERN_INFO "Found acpi tables of size: %lu at 0x%lx\n",
++ acpi_initrd_offset, initrd_start);
++ initrd_start += acpi_initrd_offset;
++ return;
++#endif
+ }
+ #else
+ static void __init reserve_initrd(void)
+--- head-2011-09-23.orig/arch/x86/mm/init-xen.c 2011-07-01 15:48:40.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/init-xen.c 2011-09-23 10:16:51.000000000 +0200
+@@ -463,6 +463,12 @@ void free_initrd_mem(unsigned long start
+ * - relocate_initrd()
+ * So here We can do PAGE_ALIGN() safely to get partial page to be freed
+ */
++#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
++ if (acpi_initrd_offset)
++ free_init_pages("initrd memory", start - acpi_initrd_offset,
++ PAGE_ALIGN(end));
++ else
++#endif
+ free_init_pages("initrd memory", start, PAGE_ALIGN(end));
+ }
+ #endif
diff --git a/patches.xen/xen3-apei_allow_drivers_access_nvs_ram.patch b/patches.xen/xen3-apei_allow_drivers_access_nvs_ram.patch
new file mode 100644
index 0000000000..b26b16c481
--- /dev/null
+++ b/patches.xen/xen3-apei_allow_drivers_access_nvs_ram.patch
@@ -0,0 +1,24 @@
+From: Yinghai Lu <yinghai@kernel.org>
+Subject: [PATCH] x86: allow NVS can be accessed by driver
+References: none
+Patch-Mainline: submitted, aiming for 3.2
+
+APEI related...
+
+Signed-off-by: Yinghai Lu <yinghai@kernel.org>
+Signed-off-by: Thomas Renninger <trenn@suse.de>
+
+Automatically created from "patches.drivers/apei_allow_drivers_access_nvs_ram.patch" by xen-port-patches.py
+
+--- head-2011-09-23.orig/arch/x86/kernel/e820-xen.c 2011-09-23 16:02:14.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/e820-xen.c 2011-09-23 16:02:43.000000000 +0200
+@@ -1083,7 +1083,8 @@ void __init e820_reserve_resources(void)
+ * pcibios_resource_survey()
+ */
+ if (e820.map[i].type != E820_RESERVED || res->start < (1ULL<<20)) {
+- res->flags |= IORESOURCE_BUSY;
++ if (e820.map[i].type != E820_NVS)
++ res->flags |= IORESOURCE_BUSY;
+ insert_resource(&iomem_resource, res);
+ }
+ res++;
diff --git a/patches.xen/xen3-auto-arch-i386.diff b/patches.xen/xen3-auto-arch-i386.diff
index 57efc0bfd7..0ee90fd9f7 100644
--- a/patches.xen/xen3-auto-arch-i386.diff
+++ b/patches.xen/xen3-auto-arch-i386.diff
@@ -1,5 +1,5 @@
Subject: xen3 arch-i386
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
diff --git a/patches.xen/xen3-auto-arch-x86.diff b/patches.xen/xen3-auto-arch-x86.diff
index 35d68c069b..5dcdbff9dd 100644
--- a/patches.xen/xen3-auto-arch-x86.diff
+++ b/patches.xen/xen3-auto-arch-x86.diff
@@ -1,5 +1,5 @@
Subject: xen3 arch-x86
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
diff --git a/patches.xen/xen3-auto-arch-x86_64.diff b/patches.xen/xen3-auto-arch-x86_64.diff
index e24d2805d3..4a440d5c7e 100644
--- a/patches.xen/xen3-auto-arch-x86_64.diff
+++ b/patches.xen/xen3-auto-arch-x86_64.diff
@@ -1,5 +1,5 @@
Subject: xen3 arch-x86_64
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
diff --git a/patches.xen/xen3-auto-common.diff b/patches.xen/xen3-auto-common.diff
index d265871d69..24e597219a 100644
--- a/patches.xen/xen3-auto-common.diff
+++ b/patches.xen/xen3-auto-common.diff
@@ -1,5 +1,5 @@
Subject: xen3 common
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
diff --git a/patches.xen/xen3-auto-include-xen-interface.diff b/patches.xen/xen3-auto-include-xen-interface.diff
index dd630fdf9c..ebac6e34b8 100644
--- a/patches.xen/xen3-auto-include-xen-interface.diff
+++ b/patches.xen/xen3-auto-include-xen-interface.diff
@@ -1,5 +1,5 @@
Subject: xen3 include-xen-interface
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
diff --git a/patches.xen/xen3-auto-xen-arch.diff b/patches.xen/xen3-auto-xen-arch.diff
index 02f8b15fe2..41c9f05f7a 100644
--- a/patches.xen/xen3-auto-xen-arch.diff
+++ b/patches.xen/xen3-auto-xen-arch.diff
@@ -1,5 +1,5 @@
Subject: xen3 xen-arch
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
diff --git a/patches.xen/xen3-auto-xen-drivers.diff b/patches.xen/xen3-auto-xen-drivers.diff
index 09c2ebcbfb..5183b313b6 100644
--- a/patches.xen/xen3-auto-xen-drivers.diff
+++ b/patches.xen/xen3-auto-xen-drivers.diff
@@ -1,5 +1,5 @@
Subject: xen3 xen-drivers
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
@@ -11,6 +11,23 @@ and in case upstream wants to take the forward porting patches:
2.6.31/drivers/xen/evtchn/Makefile
2.6.31/drivers/xen/evtchn/evtchn.c
2.6.37/drivers/xen/core/pci.c
+3.1/drivers/xen/pciback/Makefile
+3.1/drivers/xen/pciback/conf_space.c
+3.1/drivers/xen/pciback/conf_space.h
+3.1/drivers/xen/pciback/conf_space_capability.c
+3.1/drivers/xen/pciback/conf_space_capability.h
+3.1/drivers/xen/pciback/conf_space_capability_msi.c
+3.1/drivers/xen/pciback/conf_space_capability_pm.c
+3.1/drivers/xen/pciback/conf_space_capability_vpd.c
+3.1/drivers/xen/pciback/conf_space_header.c
+3.1/drivers/xen/pciback/conf_space_quirks.c
+3.1/drivers/xen/pciback/conf_space_quirks.h
+3.1/drivers/xen/pciback/passthrough.c
+3.1/drivers/xen/pciback/pci_stub.c
+3.1/drivers/xen/pciback/pciback.h
+3.1/drivers/xen/pciback/pciback_ops.c
+3.1/drivers/xen/pciback/vpci.c
+3.1/drivers/xen/pciback/xenbus.c
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ b/drivers/xen/balloon/Makefile 2007-06-12 13:13:44.000000000 +0200
@@ -1010,8 +1027,8 @@ and in case upstream wants to take the forward porting patches:
+
+blkbk-y := blkback.o xenbus.o interface.o vbd.o
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/blkback/blkback.c 2011-04-11 13:43:15.000000000 +0200
-@@ -0,0 +1,673 @@
++++ b/drivers/xen/blkback/blkback.c 2011-09-22 14:33:35.000000000 +0200
+@@ -0,0 +1,672 @@
+/******************************************************************************
+ * arch/xen/drivers/blkif/backend/main.c
+ *
@@ -1647,7 +1664,7 @@ and in case upstream wants to take the forward porting patches:
+
+ mmap_pages = blkif_reqs * BLKIF_MAX_SEGMENTS_PER_REQUEST;
+
-+ pending_reqs = kmalloc(sizeof(pending_reqs[0]) *
++ pending_reqs = kzalloc(sizeof(pending_reqs[0]) *
+ blkif_reqs, GFP_KERNEL);
+ pending_grant_handles = kmalloc(sizeof(pending_grant_handles[0]) *
+ mmap_pages, GFP_KERNEL);
@@ -1664,7 +1681,6 @@ and in case upstream wants to take the forward porting patches:
+
+ blkif_interface_init();
+
-+ memset(pending_reqs, 0, sizeof(pending_reqs));
+ INIT_LIST_HEAD(&pending_free);
+
+ for (i = 0; i < blkif_reqs; i++)
@@ -24405,1506 +24421,7 @@ and in case upstream wants to take the forward porting patches:
+ struct xenbus_device *dev);
+#endif /* NETFRONT_H */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/Makefile 2008-07-21 11:00:33.000000000 +0200
-@@ -0,0 +1,17 @@
-+obj-$(CONFIG_XEN_PCIDEV_BACKEND) += pciback.o
-+
-+pciback-y := pci_stub.o pciback_ops.o xenbus.o
-+pciback-y += conf_space.o conf_space_header.o \
-+ conf_space_capability.o \
-+ conf_space_capability_vpd.o \
-+ conf_space_capability_pm.o \
-+ conf_space_quirks.o
-+pciback-$(CONFIG_PCI_MSI) += conf_space_capability_msi.o
-+pciback-$(CONFIG_XEN_PCIDEV_BACKEND_VPCI) += vpci.o
-+pciback-$(CONFIG_XEN_PCIDEV_BACKEND_SLOT) += slot.o
-+pciback-$(CONFIG_XEN_PCIDEV_BACKEND_PASS) += passthrough.o
-+pciback-$(CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER) += controller.o
-+
-+ifeq ($(CONFIG_XEN_PCIDEV_BE_DEBUG),y)
-+EXTRA_CFLAGS += -DDEBUG
-+endif
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space.c 2009-05-04 10:01:03.000000000 +0200
-@@ -0,0 +1,435 @@
-+/*
-+ * PCI Backend - Functions for creating a virtual configuration space for
-+ * exported PCI Devices.
-+ * It's dangerous to allow PCI Driver Domains to change their
-+ * device's resources (memory, i/o ports, interrupts). We need to
-+ * restrict changes to certain PCI Configuration registers:
-+ * BARs, INTERRUPT_PIN, most registers in the header...
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/pci.h>
-+#include "pciback.h"
-+#include "conf_space.h"
-+#include "conf_space_quirks.h"
-+
-+static int permissive;
-+module_param(permissive, bool, 0644);
-+
-+#define DEFINE_PCI_CONFIG(op,size,type) \
-+int pciback_##op##_config_##size \
-+(struct pci_dev *dev, int offset, type value, void *data) \
-+{ \
-+ return pci_##op##_config_##size (dev, offset, value); \
-+}
-+
-+DEFINE_PCI_CONFIG(read, byte, u8 *)
-+DEFINE_PCI_CONFIG(read, word, u16 *)
-+DEFINE_PCI_CONFIG(read, dword, u32 *)
-+
-+DEFINE_PCI_CONFIG(write, byte, u8)
-+DEFINE_PCI_CONFIG(write, word, u16)
-+DEFINE_PCI_CONFIG(write, dword, u32)
-+
-+static int conf_space_read(struct pci_dev *dev,
-+ const struct config_field_entry *entry,
-+ int offset, u32 *value)
-+{
-+ int ret = 0;
-+ const struct config_field *field = entry->field;
-+
-+ *value = 0;
-+
-+ switch (field->size) {
-+ case 1:
-+ if (field->u.b.read)
-+ ret = field->u.b.read(dev, offset, (u8 *) value,
-+ entry->data);
-+ break;
-+ case 2:
-+ if (field->u.w.read)
-+ ret = field->u.w.read(dev, offset, (u16 *) value,
-+ entry->data);
-+ break;
-+ case 4:
-+ if (field->u.dw.read)
-+ ret = field->u.dw.read(dev, offset, value, entry->data);
-+ break;
-+ }
-+ return ret;
-+}
-+
-+static int conf_space_write(struct pci_dev *dev,
-+ const struct config_field_entry *entry,
-+ int offset, u32 value)
-+{
-+ int ret = 0;
-+ const struct config_field *field = entry->field;
-+
-+ switch (field->size) {
-+ case 1:
-+ if (field->u.b.write)
-+ ret = field->u.b.write(dev, offset, (u8) value,
-+ entry->data);
-+ break;
-+ case 2:
-+ if (field->u.w.write)
-+ ret = field->u.w.write(dev, offset, (u16) value,
-+ entry->data);
-+ break;
-+ case 4:
-+ if (field->u.dw.write)
-+ ret = field->u.dw.write(dev, offset, value,
-+ entry->data);
-+ break;
-+ }
-+ return ret;
-+}
-+
-+static inline u32 get_mask(int size)
-+{
-+ if (size == 1)
-+ return 0xff;
-+ else if (size == 2)
-+ return 0xffff;
-+ else
-+ return 0xffffffff;
-+}
-+
-+static inline int valid_request(int offset, int size)
-+{
-+ /* Validate request (no un-aligned requests) */
-+ if ((size == 1 || size == 2 || size == 4) && (offset % size) == 0)
-+ return 1;
-+ return 0;
-+}
-+
-+static inline u32 merge_value(u32 val, u32 new_val, u32 new_val_mask,
-+ int offset)
-+{
-+ if (offset >= 0) {
-+ new_val_mask <<= (offset * 8);
-+ new_val <<= (offset * 8);
-+ } else {
-+ new_val_mask >>= (offset * -8);
-+ new_val >>= (offset * -8);
-+ }
-+ val = (val & ~new_val_mask) | (new_val & new_val_mask);
-+
-+ return val;
-+}
-+
-+static int pcibios_err_to_errno(int err)
-+{
-+ switch (err) {
-+ case PCIBIOS_SUCCESSFUL:
-+ return XEN_PCI_ERR_success;
-+ case PCIBIOS_DEVICE_NOT_FOUND:
-+ return XEN_PCI_ERR_dev_not_found;
-+ case PCIBIOS_BAD_REGISTER_NUMBER:
-+ return XEN_PCI_ERR_invalid_offset;
-+ case PCIBIOS_FUNC_NOT_SUPPORTED:
-+ return XEN_PCI_ERR_not_implemented;
-+ case PCIBIOS_SET_FAILED:
-+ return XEN_PCI_ERR_access_denied;
-+ }
-+ return err;
-+}
-+
-+int pciback_config_read(struct pci_dev *dev, int offset, int size,
-+ u32 * ret_val)
-+{
-+ int err = 0;
-+ struct pciback_dev_data *dev_data = pci_get_drvdata(dev);
-+ const struct config_field_entry *cfg_entry;
-+ const struct config_field *field;
-+ int req_start, req_end, field_start, field_end;
-+ /* if read fails for any reason, return 0 (as if device didn't respond) */
-+ u32 value = 0, tmp_val;
-+
-+ if (unlikely(verbose_request))
-+ printk(KERN_DEBUG "pciback: %s: read %d bytes at 0x%x\n",
-+ pci_name(dev), size, offset);
-+
-+ if (!valid_request(offset, size)) {
-+ err = XEN_PCI_ERR_invalid_offset;
-+ goto out;
-+ }
-+
-+ /* Get the real value first, then modify as appropriate */
-+ switch (size) {
-+ case 1:
-+ err = pci_read_config_byte(dev, offset, (u8 *) & value);
-+ break;
-+ case 2:
-+ err = pci_read_config_word(dev, offset, (u16 *) & value);
-+ break;
-+ case 4:
-+ err = pci_read_config_dword(dev, offset, &value);
-+ break;
-+ }
-+
-+ list_for_each_entry(cfg_entry, &dev_data->config_fields, list) {
-+ field = cfg_entry->field;
-+
-+ req_start = offset;
-+ req_end = offset + size;
-+ field_start = OFFSET(cfg_entry);
-+ field_end = OFFSET(cfg_entry) + field->size;
-+
-+ if ((req_start >= field_start && req_start < field_end)
-+ || (req_end > field_start && req_end <= field_end)) {
-+ err = conf_space_read(dev, cfg_entry, field_start,
-+ &tmp_val);
-+ if (err)
-+ goto out;
-+
-+ value = merge_value(value, tmp_val,
-+ get_mask(field->size),
-+ field_start - req_start);
-+ }
-+ }
-+
-+ out:
-+ if (unlikely(verbose_request))
-+ printk(KERN_DEBUG "pciback: %s: read %d bytes at 0x%x = %x\n",
-+ pci_name(dev), size, offset, value);
-+
-+ *ret_val = value;
-+ return pcibios_err_to_errno(err);
-+}
-+
-+int pciback_config_write(struct pci_dev *dev, int offset, int size, u32 value)
-+{
-+ int err = 0, handled = 0;
-+ struct pciback_dev_data *dev_data = pci_get_drvdata(dev);
-+ const struct config_field_entry *cfg_entry;
-+ const struct config_field *field;
-+ u32 tmp_val;
-+ int req_start, req_end, field_start, field_end;
-+
-+ if (unlikely(verbose_request))
-+ printk(KERN_DEBUG
-+ "pciback: %s: write request %d bytes at 0x%x = %x\n",
-+ pci_name(dev), size, offset, value);
-+
-+ if (!valid_request(offset, size))
-+ return XEN_PCI_ERR_invalid_offset;
-+
-+ list_for_each_entry(cfg_entry, &dev_data->config_fields, list) {
-+ field = cfg_entry->field;
-+
-+ req_start = offset;
-+ req_end = offset + size;
-+ field_start = OFFSET(cfg_entry);
-+ field_end = OFFSET(cfg_entry) + field->size;
-+
-+ if ((req_start >= field_start && req_start < field_end)
-+ || (req_end > field_start && req_end <= field_end)) {
-+ tmp_val = 0;
-+
-+ err = pciback_config_read(dev, field_start,
-+ field->size, &tmp_val);
-+ if (err)
-+ break;
-+
-+ tmp_val = merge_value(tmp_val, value, get_mask(size),
-+ req_start - field_start);
-+
-+ err = conf_space_write(dev, cfg_entry, field_start,
-+ tmp_val);
-+
-+ /* handled is set true here, but not every byte
-+ * may have been written! Properly detecting if
-+ * every byte is handled is unnecessary as the
-+ * flag is used to detect devices that need
-+ * special helpers to work correctly.
-+ */
-+ handled = 1;
-+ }
-+ }
-+
-+ if (!handled && !err) {
-+ /* By default, anything not specificially handled above is
-+ * read-only. The permissive flag changes this behavior so
-+ * that anything not specifically handled above is writable.
-+ * This means that some fields may still be read-only because
-+ * they have entries in the config_field list that intercept
-+ * the write and do nothing. */
-+ if (dev_data->permissive || permissive) {
-+ switch (size) {
-+ case 1:
-+ err = pci_write_config_byte(dev, offset,
-+ (u8) value);
-+ break;
-+ case 2:
-+ err = pci_write_config_word(dev, offset,
-+ (u16) value);
-+ break;
-+ case 4:
-+ err = pci_write_config_dword(dev, offset,
-+ (u32) value);
-+ break;
-+ }
-+ } else if (!dev_data->warned_on_write) {
-+ dev_data->warned_on_write = 1;
-+ dev_warn(&dev->dev, "Driver tried to write to a "
-+ "read-only configuration space field at offset "
-+ "0x%x, size %d. This may be harmless, but if "
-+ "you have problems with your device:\n"
-+ "1) see permissive attribute in sysfs\n"
-+ "2) report problems to the xen-devel "
-+ "mailing list along with details of your "
-+ "device obtained from lspci.\n", offset, size);
-+ }
-+ }
-+
-+ return pcibios_err_to_errno(err);
-+}
-+
-+void pciback_config_free_dyn_fields(struct pci_dev *dev)
-+{
-+ struct pciback_dev_data *dev_data = pci_get_drvdata(dev);
-+ struct config_field_entry *cfg_entry, *t;
-+ const struct config_field *field;
-+
-+ dev_dbg(&dev->dev,
-+ "free-ing dynamically allocated virtual configuration space fields\n");
-+ if (!dev_data)
-+ return;
-+
-+ list_for_each_entry_safe(cfg_entry, t, &dev_data->config_fields, list) {
-+ field = cfg_entry->field;
-+
-+ if (field->clean) {
-+ field->clean((struct config_field *)field);
-+
-+ if (cfg_entry->data)
-+ kfree(cfg_entry->data);
-+
-+ list_del(&cfg_entry->list);
-+ kfree(cfg_entry);
-+ }
-+
-+ }
-+}
-+
-+void pciback_config_reset_dev(struct pci_dev *dev)
-+{
-+ struct pciback_dev_data *dev_data = pci_get_drvdata(dev);
-+ const struct config_field_entry *cfg_entry;
-+ const struct config_field *field;
-+
-+ dev_dbg(&dev->dev, "resetting virtual configuration space\n");
-+ if (!dev_data)
-+ return;
-+
-+ list_for_each_entry(cfg_entry, &dev_data->config_fields, list) {
-+ field = cfg_entry->field;
-+
-+ if (field->reset)
-+ field->reset(dev, OFFSET(cfg_entry), cfg_entry->data);
-+ }
-+}
-+
-+void pciback_config_free_dev(struct pci_dev *dev)
-+{
-+ struct pciback_dev_data *dev_data = pci_get_drvdata(dev);
-+ struct config_field_entry *cfg_entry, *t;
-+ const struct config_field *field;
-+
-+ dev_dbg(&dev->dev, "free-ing virtual configuration space fields\n");
-+ if (!dev_data)
-+ return;
-+
-+ list_for_each_entry_safe(cfg_entry, t, &dev_data->config_fields, list) {
-+ list_del(&cfg_entry->list);
-+
-+ field = cfg_entry->field;
-+
-+ if (field->release)
-+ field->release(dev, OFFSET(cfg_entry), cfg_entry->data);
-+
-+ kfree(cfg_entry);
-+ }
-+}
-+
-+int pciback_config_add_field_offset(struct pci_dev *dev,
-+ const struct config_field *field,
-+ unsigned int base_offset)
-+{
-+ int err = 0;
-+ struct pciback_dev_data *dev_data = pci_get_drvdata(dev);
-+ struct config_field_entry *cfg_entry;
-+ void *tmp;
-+
-+ cfg_entry = kmalloc(sizeof(*cfg_entry), GFP_KERNEL);
-+ if (!cfg_entry) {
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+
-+ cfg_entry->data = NULL;
-+ cfg_entry->field = field;
-+ cfg_entry->base_offset = base_offset;
-+
-+ /* silently ignore duplicate fields */
-+ err = pciback_field_is_dup(dev,OFFSET(cfg_entry));
-+ if (err)
-+ goto out;
-+
-+ if (field->init) {
-+ tmp = field->init(dev, OFFSET(cfg_entry));
-+
-+ if (IS_ERR(tmp)) {
-+ err = PTR_ERR(tmp);
-+ goto out;
-+ }
-+
-+ cfg_entry->data = tmp;
-+ }
-+
-+ dev_dbg(&dev->dev, "added config field at offset 0x%02x\n",
-+ OFFSET(cfg_entry));
-+ list_add_tail(&cfg_entry->list, &dev_data->config_fields);
-+
-+ out:
-+ if (err)
-+ kfree(cfg_entry);
-+
-+ return err;
-+}
-+
-+/* This sets up the device's virtual configuration space to keep track of
-+ * certain registers (like the base address registers (BARs) so that we can
-+ * keep the client from manipulating them directly.
-+ */
-+int pciback_config_init_dev(struct pci_dev *dev)
-+{
-+ int err = 0;
-+ struct pciback_dev_data *dev_data = pci_get_drvdata(dev);
-+
-+ dev_dbg(&dev->dev, "initializing virtual configuration space\n");
-+
-+ INIT_LIST_HEAD(&dev_data->config_fields);
-+
-+ err = pciback_config_header_add_fields(dev);
-+ if (err)
-+ goto out;
-+
-+ err = pciback_config_capability_add_fields(dev);
-+ if (err)
-+ goto out;
-+
-+ err = pciback_config_quirks_init(dev);
-+
-+ out:
-+ return err;
-+}
-+
-+int pciback_config_init(void)
-+{
-+ return pciback_config_capability_init();
-+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space.h 2008-10-29 09:55:56.000000000 +0100
-@@ -0,0 +1,126 @@
-+/*
-+ * PCI Backend - Common data structures for overriding the configuration space
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#ifndef __XEN_PCIBACK_CONF_SPACE_H__
-+#define __XEN_PCIBACK_CONF_SPACE_H__
-+
-+#include <linux/list.h>
-+#include <linux/err.h>
-+
-+/* conf_field_init can return an errno in a ptr with ERR_PTR() */
-+typedef void *(*conf_field_init) (struct pci_dev * dev, int offset);
-+typedef void (*conf_field_reset) (struct pci_dev * dev, int offset, void *data);
-+typedef void (*conf_field_free) (struct pci_dev * dev, int offset, void *data);
-+
-+typedef int (*conf_dword_write) (struct pci_dev * dev, int offset, u32 value,
-+ void *data);
-+typedef int (*conf_word_write) (struct pci_dev * dev, int offset, u16 value,
-+ void *data);
-+typedef int (*conf_byte_write) (struct pci_dev * dev, int offset, u8 value,
-+ void *data);
-+typedef int (*conf_dword_read) (struct pci_dev * dev, int offset, u32 * value,
-+ void *data);
-+typedef int (*conf_word_read) (struct pci_dev * dev, int offset, u16 * value,
-+ void *data);
-+typedef int (*conf_byte_read) (struct pci_dev * dev, int offset, u8 * value,
-+ void *data);
-+
-+/* These are the fields within the configuration space which we
-+ * are interested in intercepting reads/writes to and changing their
-+ * values.
-+ */
-+struct config_field {
-+ unsigned int offset;
-+ unsigned int size;
-+ unsigned int mask;
-+ conf_field_init init;
-+ conf_field_reset reset;
-+ conf_field_free release;
-+ void (*clean) (struct config_field * field);
-+ union {
-+ struct {
-+ conf_dword_write write;
-+ conf_dword_read read;
-+ } dw;
-+ struct {
-+ conf_word_write write;
-+ conf_word_read read;
-+ } w;
-+ struct {
-+ conf_byte_write write;
-+ conf_byte_read read;
-+ } b;
-+ } u;
-+ struct list_head list;
-+};
-+
-+struct config_field_entry {
-+ struct list_head list;
-+ const struct config_field *field;
-+ unsigned int base_offset;
-+ void *data;
-+};
-+
-+#define OFFSET(cfg_entry) ((cfg_entry)->base_offset+(cfg_entry)->field->offset)
-+
-+/* Add fields to a device - the add_fields macro expects to get a pointer to
-+ * the first entry in an array (of which the ending is marked by size==0)
-+ */
-+int pciback_config_add_field_offset(struct pci_dev *dev,
-+ const struct config_field *field,
-+ unsigned int offset);
-+
-+static inline int pciback_config_add_field(struct pci_dev *dev,
-+ const struct config_field *field)
-+{
-+ return pciback_config_add_field_offset(dev, field, 0);
-+}
-+
-+static inline int pciback_config_add_fields(struct pci_dev *dev,
-+ const struct config_field *field)
-+{
-+ int i, err = 0;
-+ for (i = 0; field[i].size != 0; i++) {
-+ err = pciback_config_add_field(dev, &field[i]);
-+ if (err)
-+ break;
-+ }
-+ return err;
-+}
-+
-+static inline int pciback_config_add_fields_offset(struct pci_dev *dev,
-+ const struct config_field *field,
-+ unsigned int offset)
-+{
-+ int i, err = 0;
-+ for (i = 0; field[i].size != 0; i++) {
-+ err = pciback_config_add_field_offset(dev, &field[i], offset);
-+ if (err)
-+ break;
-+ }
-+ return err;
-+}
-+
-+/* Read/Write the real configuration space */
-+int pciback_read_config_byte(struct pci_dev *dev, int offset, u8 * value,
-+ void *data);
-+int pciback_read_config_word(struct pci_dev *dev, int offset, u16 * value,
-+ void *data);
-+int pciback_read_config_dword(struct pci_dev *dev, int offset, u32 * value,
-+ void *data);
-+int pciback_write_config_byte(struct pci_dev *dev, int offset, u8 value,
-+ void *data);
-+int pciback_write_config_word(struct pci_dev *dev, int offset, u16 value,
-+ void *data);
-+int pciback_write_config_dword(struct pci_dev *dev, int offset, u32 value,
-+ void *data);
-+
-+int pciback_config_capability_init(void);
-+
-+int pciback_config_header_add_fields(struct pci_dev *dev);
-+int pciback_config_capability_add_fields(struct pci_dev *dev);
-+
-+#endif /* __XEN_PCIBACK_CONF_SPACE_H__ */
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space_capability.c 2008-10-29 09:55:56.000000000 +0100
-@@ -0,0 +1,69 @@
-+/*
-+ * PCI Backend - Handles the virtual fields found on the capability lists
-+ * in the configuration space.
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/pci.h>
-+#include "pciback.h"
-+#include "conf_space.h"
-+#include "conf_space_capability.h"
-+
-+static LIST_HEAD(capabilities);
-+
-+static const struct config_field caplist_header[] = {
-+ {
-+ .offset = PCI_CAP_LIST_ID,
-+ .size = 2, /* encompass PCI_CAP_LIST_ID & PCI_CAP_LIST_NEXT */
-+ .u.w.read = pciback_read_config_word,
-+ .u.w.write = NULL,
-+ },
-+ {}
-+};
-+
-+static inline void register_capability(struct pciback_config_capability *cap)
-+{
-+ list_add_tail(&cap->cap_list, &capabilities);
-+}
-+
-+int pciback_config_capability_add_fields(struct pci_dev *dev)
-+{
-+ int err = 0;
-+ struct pciback_config_capability *cap;
-+ int cap_offset;
-+
-+ list_for_each_entry(cap, &capabilities, cap_list) {
-+ cap_offset = pci_find_capability(dev, cap->capability);
-+ if (cap_offset) {
-+ dev_dbg(&dev->dev, "Found capability 0x%x at 0x%x\n",
-+ cap->capability, cap_offset);
-+
-+ err = pciback_config_add_fields_offset(dev,
-+ caplist_header,
-+ cap_offset);
-+ if (err)
-+ goto out;
-+ err = pciback_config_add_fields_offset(dev,
-+ cap->fields,
-+ cap_offset);
-+ if (err)
-+ goto out;
-+ }
-+ }
-+
-+ out:
-+ return err;
-+}
-+
-+extern struct pciback_config_capability pciback_config_capability_vpd;
-+extern struct pciback_config_capability pciback_config_capability_pm;
-+
-+int pciback_config_capability_init(void)
-+{
-+ register_capability(&pciback_config_capability_vpd);
-+ register_capability(&pciback_config_capability_pm);
-+
-+ return 0;
-+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space_capability.h 2008-10-29 09:55:56.000000000 +0100
-@@ -0,0 +1,23 @@
-+/*
-+ * PCI Backend - Data structures for special overlays for structures on
-+ * the capability list.
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#ifndef __PCIBACK_CONFIG_CAPABILITY_H__
-+#define __PCIBACK_CONFIG_CAPABILITY_H__
-+
-+#include <linux/pci.h>
-+#include <linux/list.h>
-+
-+struct pciback_config_capability {
-+ struct list_head cap_list;
-+
-+ int capability;
-+
-+ /* If the device has the capability found above, add these fields */
-+ const struct config_field *fields;
-+};
-+
-+#endif
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space_capability_msi.c 2008-09-15 13:40:15.000000000 +0200
-@@ -0,0 +1,79 @@
-+/*
-+ * PCI Backend -- Configuration overlay for MSI capability
-+ */
-+#include <linux/pci.h>
-+#include <linux/slab.h>
-+#include "conf_space.h"
-+#include "conf_space_capability.h"
-+#include <xen/interface/io/pciif.h>
-+#include "pciback.h"
-+
-+int pciback_enable_msi(struct pciback_device *pdev,
-+ struct pci_dev *dev, struct xen_pci_op *op)
-+{
-+ int otherend = pdev->xdev->otherend_id;
-+ int status;
-+
-+ status = pci_enable_msi(dev);
-+
-+ if (status) {
-+ printk("error enable msi for guest %x status %x\n", otherend, status);
-+ op->value = 0;
-+ return XEN_PCI_ERR_op_failed;
-+ }
-+
-+ op->value = dev->irq;
-+ return 0;
-+}
-+
-+int pciback_disable_msi(struct pciback_device *pdev,
-+ struct pci_dev *dev, struct xen_pci_op *op)
-+{
-+ pci_disable_msi(dev);
-+
-+ op->value = dev->irq;
-+ return 0;
-+}
-+
-+int pciback_enable_msix(struct pciback_device *pdev,
-+ struct pci_dev *dev, struct xen_pci_op *op)
-+{
-+ int i, result;
-+ struct msix_entry *entries;
-+
-+ if (op->value > SH_INFO_MAX_VEC)
-+ return -EINVAL;
-+
-+ entries = kmalloc(op->value * sizeof(*entries), GFP_KERNEL);
-+ if (entries == NULL)
-+ return -ENOMEM;
-+
-+ for (i = 0; i < op->value; i++) {
-+ entries[i].entry = op->msix_entries[i].entry;
-+ entries[i].vector = op->msix_entries[i].vector;
-+ }
-+
-+ result = pci_enable_msix(dev, entries, op->value);
-+
-+ for (i = 0; i < op->value; i++) {
-+ op->msix_entries[i].entry = entries[i].entry;
-+ op->msix_entries[i].vector = entries[i].vector;
-+ }
-+
-+ kfree(entries);
-+
-+ op->value = result;
-+
-+ return result;
-+}
-+
-+int pciback_disable_msix(struct pciback_device *pdev,
-+ struct pci_dev *dev, struct xen_pci_op *op)
-+{
-+
-+ pci_disable_msix(dev);
-+
-+ op->value = dev->irq;
-+ return 0;
-+}
-+
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space_capability_pm.c 2008-10-29 09:55:56.000000000 +0100
-@@ -0,0 +1,126 @@
-+/*
-+ * PCI Backend - Configuration space overlay for power management
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#include <linux/pci.h>
-+#include "conf_space.h"
-+#include "conf_space_capability.h"
-+
-+static int pm_caps_read(struct pci_dev *dev, int offset, u16 *value,
-+ void *data)
-+{
-+ int err;
-+ u16 real_value;
-+
-+ err = pci_read_config_word(dev, offset, &real_value);
-+ if (err)
-+ goto out;
-+
-+ *value = real_value & ~PCI_PM_CAP_PME_MASK;
-+
-+ out:
-+ return err;
-+}
-+
-+/* PM_OK_BITS specifies the bits that the driver domain is allowed to change.
-+ * Can't allow driver domain to enable PMEs - they're shared */
-+#define PM_OK_BITS (PCI_PM_CTRL_PME_STATUS|PCI_PM_CTRL_DATA_SEL_MASK)
-+
-+static int pm_ctrl_write(struct pci_dev *dev, int offset, u16 new_value,
-+ void *data)
-+{
-+ int err;
-+ u16 old_value;
-+ pci_power_t new_state, old_state;
-+
-+ err = pci_read_config_word(dev, offset, &old_value);
-+ if (err)
-+ goto out;
-+
-+ old_state = (pci_power_t)(old_value & PCI_PM_CTRL_STATE_MASK);
-+ new_state = (pci_power_t)(new_value & PCI_PM_CTRL_STATE_MASK);
-+
-+ new_value &= PM_OK_BITS;
-+ if ((old_value & PM_OK_BITS) != new_value) {
-+ new_value = (old_value & ~PM_OK_BITS) | new_value;
-+ err = pci_write_config_word(dev, offset, new_value);
-+ if (err)
-+ goto out;
-+ }
-+
-+ /* Let pci core handle the power management change */
-+ dev_dbg(&dev->dev, "set power state to %x\n", new_state);
-+ err = pci_set_power_state(dev, new_state);
-+ if (err) {
-+ err = PCIBIOS_SET_FAILED;
-+ goto out;
-+ }
-+
-+ /*
-+ * Device may lose PCI config info on D3->D0 transition. This
-+ * is a problem for some guests which will not reset BARs. Even
-+ * those that have a go will be foiled by our BAR-write handler
-+ * which will discard the write! Since Linux won't re-init
-+ * the config space automatically in all cases, we do it here.
-+ * Future: Should we re-initialise all first 64 bytes of config space?
-+ */
-+ if (new_state == PCI_D0 &&
-+ (old_state == PCI_D3hot || old_state == PCI_D3cold) &&
-+ !(old_value & PCI_PM_CTRL_NO_SOFT_RESET))
-+ pci_restore_bars(dev);
-+
-+ out:
-+ return err;
-+}
-+
-+/* Ensure PMEs are disabled */
-+static void *pm_ctrl_init(struct pci_dev *dev, int offset)
-+{
-+ int err;
-+ u16 value;
-+
-+ err = pci_read_config_word(dev, offset, &value);
-+ if (err)
-+ goto out;
-+
-+ if (value & PCI_PM_CTRL_PME_ENABLE) {
-+ value &= ~PCI_PM_CTRL_PME_ENABLE;
-+ err = pci_write_config_word(dev, offset, value);
-+ }
-+
-+ out:
-+ return ERR_PTR(err);
-+}
-+
-+static const struct config_field caplist_pm[] = {
-+ {
-+ .offset = PCI_PM_PMC,
-+ .size = 2,
-+ .u.w.read = pm_caps_read,
-+ },
-+ {
-+ .offset = PCI_PM_CTRL,
-+ .size = 2,
-+ .init = pm_ctrl_init,
-+ .u.w.read = pciback_read_config_word,
-+ .u.w.write = pm_ctrl_write,
-+ },
-+ {
-+ .offset = PCI_PM_PPB_EXTENSIONS,
-+ .size = 1,
-+ .u.b.read = pciback_read_config_byte,
-+ },
-+ {
-+ .offset = PCI_PM_DATA_REGISTER,
-+ .size = 1,
-+ .u.b.read = pciback_read_config_byte,
-+ },
-+ {}
-+};
-+
-+struct pciback_config_capability pciback_config_capability_pm = {
-+ .capability = PCI_CAP_ID_PM,
-+ .fields = caplist_pm,
-+};
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space_capability_vpd.c 2008-10-29 09:55:56.000000000 +0100
-@@ -0,0 +1,40 @@
-+/*
-+ * PCI Backend - Configuration space overlay for Vital Product Data
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#include <linux/pci.h>
-+#include "conf_space.h"
-+#include "conf_space_capability.h"
-+
-+static int vpd_address_write(struct pci_dev *dev, int offset, u16 value,
-+ void *data)
-+{
-+ /* Disallow writes to the vital product data */
-+ if (value & PCI_VPD_ADDR_F)
-+ return PCIBIOS_SET_FAILED;
-+ else
-+ return pci_write_config_word(dev, offset, value);
-+}
-+
-+static const struct config_field caplist_vpd[] = {
-+ {
-+ .offset = PCI_VPD_ADDR,
-+ .size = 2,
-+ .u.w.read = pciback_read_config_word,
-+ .u.w.write = vpd_address_write,
-+ },
-+ {
-+ .offset = PCI_VPD_DATA,
-+ .size = 4,
-+ .u.dw.read = pciback_read_config_dword,
-+ .u.dw.write = NULL,
-+ },
-+ {}
-+};
-+
-+struct pciback_config_capability pciback_config_capability_vpd = {
-+ .capability = PCI_CAP_ID_VPD,
-+ .fields = caplist_vpd,
-+};
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space_header.c 2010-03-02 09:56:10.000000000 +0100
-@@ -0,0 +1,378 @@
-+/*
-+ * PCI Backend - Handles the virtual fields in the configuration space headers.
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/pci.h>
-+#include "pciback.h"
-+#include "conf_space.h"
-+
-+struct pci_bar_info {
-+ u32 val;
-+ u32 len_val;
-+ int which;
-+};
-+
-+#define is_enable_cmd(value) ((value)&(PCI_COMMAND_MEMORY|PCI_COMMAND_IO))
-+#define is_master_cmd(value) ((value)&PCI_COMMAND_MASTER)
-+
-+static int command_read(struct pci_dev *dev, int offset, u16 *value, void *data)
-+{
-+ int i;
-+ int ret;
-+
-+ ret = pciback_read_config_word(dev, offset, value, data);
-+ if (!dev->is_enabled)
-+ return ret;
-+
-+ for (i = 0; i < PCI_ROM_RESOURCE; i++) {
-+ if (dev->resource[i].flags & IORESOURCE_IO)
-+ *value |= PCI_COMMAND_IO;
-+ if (dev->resource[i].flags & IORESOURCE_MEM)
-+ *value |= PCI_COMMAND_MEMORY;
-+ }
-+
-+ return ret;
-+}
-+
-+static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
-+{
-+ int err;
-+
-+ if (!dev->is_enabled && is_enable_cmd(value)) {
-+ if (unlikely(verbose_request))
-+ printk(KERN_DEBUG "pciback: %s: enable\n",
-+ pci_name(dev));
-+ err = pci_enable_device(dev);
-+ if (err)
-+ return err;
-+ } else if (dev->is_enabled && !is_enable_cmd(value)) {
-+ if (unlikely(verbose_request))
-+ printk(KERN_DEBUG "pciback: %s: disable\n",
-+ pci_name(dev));
-+ pci_disable_device(dev);
-+ }
-+
-+ if (!dev->is_busmaster && is_master_cmd(value)) {
-+ if (unlikely(verbose_request))
-+ printk(KERN_DEBUG "pciback: %s: set bus master\n",
-+ pci_name(dev));
-+ pci_set_master(dev);
-+ }
-+
-+ if (value & PCI_COMMAND_INVALIDATE) {
-+ if (unlikely(verbose_request))
-+ printk(KERN_DEBUG
-+ "pciback: %s: enable memory-write-invalidate\n",
-+ pci_name(dev));
-+ err = pci_set_mwi(dev);
-+ if (err) {
-+ printk(KERN_WARNING
-+ "pciback: %s: cannot enable memory-write-invalidate (%d)\n",
-+ pci_name(dev), err);
-+ value &= ~PCI_COMMAND_INVALIDATE;
-+ }
-+ }
-+
-+ return pci_write_config_word(dev, offset, value);
-+}
-+
-+static int rom_write(struct pci_dev *dev, int offset, u32 value, void *data)
-+{
-+ struct pci_bar_info *bar = data;
-+
-+ if (unlikely(!bar)) {
-+ printk(KERN_WARNING "pciback: driver data not found for %s\n",
-+ pci_name(dev));
-+ return XEN_PCI_ERR_op_failed;
-+ }
-+
-+ /* A write to obtain the length must happen as a 32-bit write.
-+ * This does not (yet) support writing individual bytes
-+ */
-+ if (value == ~PCI_ROM_ADDRESS_ENABLE)
-+ bar->which = 1;
-+ else {
-+ u32 tmpval;
-+ pci_read_config_dword(dev, offset, &tmpval);
-+ if (tmpval != bar->val && value == bar->val) {
-+ /* Allow restoration of bar value. */
-+ pci_write_config_dword(dev, offset, bar->val);
-+ }
-+ bar->which = 0;
-+ }
-+
-+ /* Do we need to support enabling/disabling the rom address here? */
-+
-+ return 0;
-+}
-+
-+/* For the BARs, only allow writes which write ~0 or
-+ * the correct resource information
-+ * (Needed for when the driver probes the resource usage)
-+ */
-+static int bar_write(struct pci_dev *dev, int offset, u32 value, void *data)
-+{
-+ struct pci_bar_info *bar = data;
-+
-+ if (unlikely(!bar)) {
-+ printk(KERN_WARNING "pciback: driver data not found for %s\n",
-+ pci_name(dev));
-+ return XEN_PCI_ERR_op_failed;
-+ }
-+
-+ /* A write to obtain the length must happen as a 32-bit write.
-+ * This does not (yet) support writing individual bytes
-+ */
-+ if (value == ~0)
-+ bar->which = 1;
-+ else {
-+ u32 tmpval;
-+ pci_read_config_dword(dev, offset, &tmpval);
-+ if (tmpval != bar->val && value == bar->val) {
-+ /* Allow restoration of bar value. */
-+ pci_write_config_dword(dev, offset, bar->val);
-+ }
-+ bar->which = 0;
-+ }
-+
-+ return 0;
-+}
-+
-+static int bar_read(struct pci_dev *dev, int offset, u32 * value, void *data)
-+{
-+ struct pci_bar_info *bar = data;
-+
-+ if (unlikely(!bar)) {
-+ printk(KERN_WARNING "pciback: driver data not found for %s\n",
-+ pci_name(dev));
-+ return XEN_PCI_ERR_op_failed;
-+ }
-+
-+ *value = bar->which ? bar->len_val : bar->val;
-+
-+ return 0;
-+}
-+
-+static inline void read_dev_bar(struct pci_dev *dev,
-+ struct pci_bar_info *bar_info, int offset,
-+ u32 len_mask)
-+{
-+ int pos;
-+ struct resource *res = dev->resource;
-+
-+ if (offset == PCI_ROM_ADDRESS || offset == PCI_ROM_ADDRESS1)
-+ pos = PCI_ROM_RESOURCE;
-+ else {
-+ pos = (offset - PCI_BASE_ADDRESS_0) / 4;
-+ if (pos && ((res[pos - 1].flags & (PCI_BASE_ADDRESS_SPACE |
-+ PCI_BASE_ADDRESS_MEM_TYPE_MASK)) ==
-+ (PCI_BASE_ADDRESS_SPACE_MEMORY |
-+ PCI_BASE_ADDRESS_MEM_TYPE_64))) {
-+ bar_info->val = res[pos - 1].start >> 32;
-+ bar_info->len_val = res[pos - 1].end >> 32;
-+ return;
-+ }
-+ }
-+
-+ bar_info->val = res[pos].start |
-+ (res[pos].flags & PCI_REGION_FLAG_MASK);
-+ bar_info->len_val = res[pos].end - res[pos].start + 1;
-+}
-+
-+static void *bar_init(struct pci_dev *dev, int offset)
-+{
-+ struct pci_bar_info *bar = kmalloc(sizeof(*bar), GFP_KERNEL);
-+
-+ if (!bar)
-+ return ERR_PTR(-ENOMEM);
-+
-+ read_dev_bar(dev, bar, offset, ~0);
-+ bar->which = 0;
-+
-+ return bar;
-+}
-+
-+static void *rom_init(struct pci_dev *dev, int offset)
-+{
-+ struct pci_bar_info *bar = kmalloc(sizeof(*bar), GFP_KERNEL);
-+
-+ if (!bar)
-+ return ERR_PTR(-ENOMEM);
-+
-+ read_dev_bar(dev, bar, offset, ~PCI_ROM_ADDRESS_ENABLE);
-+ bar->which = 0;
-+
-+ return bar;
-+}
-+
-+static void bar_reset(struct pci_dev *dev, int offset, void *data)
-+{
-+ struct pci_bar_info *bar = data;
-+
-+ bar->which = 0;
-+}
-+
-+static void bar_release(struct pci_dev *dev, int offset, void *data)
-+{
-+ kfree(data);
-+}
-+
-+static int pciback_read_vendor(struct pci_dev *dev, int offset,
-+ u16 *value, void *data)
-+{
-+ *value = dev->vendor;
-+
-+ return 0;
-+}
-+
-+static int pciback_read_device(struct pci_dev *dev, int offset,
-+ u16 *value, void *data)
-+{
-+ *value = dev->device;
-+
-+ return 0;
-+}
-+
-+static int interrupt_read(struct pci_dev *dev, int offset, u8 * value,
-+ void *data)
-+{
-+ *value = (u8) dev->irq;
-+
-+ return 0;
-+}
-+
-+static int bist_write(struct pci_dev *dev, int offset, u8 value, void *data)
-+{
-+ u8 cur_value;
-+ int err;
-+
-+ err = pci_read_config_byte(dev, offset, &cur_value);
-+ if (err)
-+ goto out;
-+
-+ if ((cur_value & ~PCI_BIST_START) == (value & ~PCI_BIST_START)
-+ || value == PCI_BIST_START)
-+ err = pci_write_config_byte(dev, offset, value);
-+
-+ out:
-+ return err;
-+}
-+
-+static const struct config_field header_common[] = {
-+ {
-+ .offset = PCI_VENDOR_ID,
-+ .size = 2,
-+ .u.w.read = pciback_read_vendor,
-+ },
-+ {
-+ .offset = PCI_DEVICE_ID,
-+ .size = 2,
-+ .u.w.read = pciback_read_device,
-+ },
-+ {
-+ .offset = PCI_COMMAND,
-+ .size = 2,
-+ .u.w.read = command_read,
-+ .u.w.write = command_write,
-+ },
-+ {
-+ .offset = PCI_INTERRUPT_LINE,
-+ .size = 1,
-+ .u.b.read = interrupt_read,
-+ },
-+ {
-+ .offset = PCI_INTERRUPT_PIN,
-+ .size = 1,
-+ .u.b.read = pciback_read_config_byte,
-+ },
-+ {
-+ /* Any side effects of letting driver domain control cache line? */
-+ .offset = PCI_CACHE_LINE_SIZE,
-+ .size = 1,
-+ .u.b.read = pciback_read_config_byte,
-+ .u.b.write = pciback_write_config_byte,
-+ },
-+ {
-+ .offset = PCI_LATENCY_TIMER,
-+ .size = 1,
-+ .u.b.read = pciback_read_config_byte,
-+ },
-+ {
-+ .offset = PCI_BIST,
-+ .size = 1,
-+ .u.b.read = pciback_read_config_byte,
-+ .u.b.write = bist_write,
-+ },
-+ {}
-+};
-+
-+#define CFG_FIELD_BAR(reg_offset) \
-+ { \
-+ .offset = reg_offset, \
-+ .size = 4, \
-+ .init = bar_init, \
-+ .reset = bar_reset, \
-+ .release = bar_release, \
-+ .u.dw.read = bar_read, \
-+ .u.dw.write = bar_write, \
-+ }
-+
-+#define CFG_FIELD_ROM(reg_offset) \
-+ { \
-+ .offset = reg_offset, \
-+ .size = 4, \
-+ .init = rom_init, \
-+ .reset = bar_reset, \
-+ .release = bar_release, \
-+ .u.dw.read = bar_read, \
-+ .u.dw.write = rom_write, \
-+ }
-+
-+static const struct config_field header_0[] = {
-+ CFG_FIELD_BAR(PCI_BASE_ADDRESS_0),
-+ CFG_FIELD_BAR(PCI_BASE_ADDRESS_1),
-+ CFG_FIELD_BAR(PCI_BASE_ADDRESS_2),
-+ CFG_FIELD_BAR(PCI_BASE_ADDRESS_3),
-+ CFG_FIELD_BAR(PCI_BASE_ADDRESS_4),
-+ CFG_FIELD_BAR(PCI_BASE_ADDRESS_5),
-+ CFG_FIELD_ROM(PCI_ROM_ADDRESS),
-+ {}
-+};
-+
-+static const struct config_field header_1[] = {
-+ CFG_FIELD_BAR(PCI_BASE_ADDRESS_0),
-+ CFG_FIELD_BAR(PCI_BASE_ADDRESS_1),
-+ CFG_FIELD_ROM(PCI_ROM_ADDRESS1),
-+ {}
-+};
-+
-+int pciback_config_header_add_fields(struct pci_dev *dev)
-+{
-+ int err;
-+
-+ err = pciback_config_add_fields(dev, header_common);
-+ if (err)
-+ goto out;
-+
-+ switch (dev->hdr_type) {
-+ case PCI_HEADER_TYPE_NORMAL:
-+ err = pciback_config_add_fields(dev, header_0);
-+ break;
-+
-+ case PCI_HEADER_TYPE_BRIDGE:
-+ err = pciback_config_add_fields(dev, header_1);
-+ break;
-+
-+ default:
-+ err = -EINVAL;
-+ printk(KERN_ERR "pciback: %s: Unsupported header type %d!\n",
-+ pci_name(dev), dev->hdr_type);
-+ break;
-+ }
-+
-+ out:
-+ return err;
-+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space_quirks.c 2009-03-18 10:39:32.000000000 +0100
-@@ -0,0 +1,138 @@
-+/*
-+ * PCI Backend - Handle special overlays for broken devices.
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ * Author: Chris Bookholt <hap10@epoch.ncsc.mil>
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/pci.h>
-+#include "pciback.h"
-+#include "conf_space.h"
-+#include "conf_space_quirks.h"
-+
-+LIST_HEAD(pciback_quirks);
-+
-+static inline const struct pci_device_id *
-+match_one_device(const struct pci_device_id *id, const struct pci_dev *dev)
-+{
-+ if ((id->vendor == PCI_ANY_ID || id->vendor == dev->vendor) &&
-+ (id->device == PCI_ANY_ID || id->device == dev->device) &&
-+ (id->subvendor == PCI_ANY_ID || id->subvendor == dev->subsystem_vendor) &&
-+ (id->subdevice == PCI_ANY_ID || id->subdevice == dev->subsystem_device) &&
-+ !((id->class ^ dev->class) & id->class_mask))
-+ return id;
-+ return NULL;
-+}
-+
-+struct pciback_config_quirk *pciback_find_quirk(struct pci_dev *dev)
-+{
-+ struct pciback_config_quirk *tmp_quirk;
-+
-+ list_for_each_entry(tmp_quirk, &pciback_quirks, quirks_list)
-+ if (match_one_device(&tmp_quirk->devid, dev) != NULL)
-+ goto out;
-+ tmp_quirk = NULL;
-+ printk(KERN_DEBUG
-+ "quirk didn't match any device pciback knows about\n");
-+ out:
-+ return tmp_quirk;
-+}
-+
-+static inline void register_quirk(struct pciback_config_quirk *quirk)
-+{
-+ list_add_tail(&quirk->quirks_list, &pciback_quirks);
-+}
-+
-+int pciback_field_is_dup(struct pci_dev *dev, unsigned int reg)
-+{
-+ int ret = 0;
-+ struct pciback_dev_data *dev_data = pci_get_drvdata(dev);
-+ struct config_field_entry *cfg_entry;
-+
-+ list_for_each_entry(cfg_entry, &dev_data->config_fields, list) {
-+ if ( OFFSET(cfg_entry) == reg) {
-+ ret = 1;
-+ break;
-+ }
-+ }
-+ return ret;
-+}
-+
-+int pciback_config_quirks_add_field(struct pci_dev *dev, struct config_field
-+ *field)
-+{
-+ int err = 0;
-+
-+ switch (field->size) {
-+ case 1:
-+ field->u.b.read = pciback_read_config_byte;
-+ field->u.b.write = pciback_write_config_byte;
-+ break;
-+ case 2:
-+ field->u.w.read = pciback_read_config_word;
-+ field->u.w.write = pciback_write_config_word;
-+ break;
-+ case 4:
-+ field->u.dw.read = pciback_read_config_dword;
-+ field->u.dw.write = pciback_write_config_dword;
-+ break;
-+ default:
-+ err = -EINVAL;
-+ goto out;
-+ }
-+
-+ pciback_config_add_field(dev, field);
-+
-+ out:
-+ return err;
-+}
-+
-+int pciback_config_quirks_init(struct pci_dev *dev)
-+{
-+ struct pciback_config_quirk *quirk;
-+ int ret = 0;
-+
-+ quirk = kzalloc(sizeof(*quirk), GFP_ATOMIC);
-+ if (!quirk) {
-+ ret = -ENOMEM;
-+ goto out;
-+ }
-+
-+ quirk->devid.vendor = dev->vendor;
-+ quirk->devid.device = dev->device;
-+ quirk->devid.subvendor = dev->subsystem_vendor;
-+ quirk->devid.subdevice = dev->subsystem_device;
-+ quirk->devid.class = 0;
-+ quirk->devid.class_mask = 0;
-+ quirk->devid.driver_data = 0UL;
-+
-+ quirk->pdev = dev;
-+
-+ register_quirk(quirk);
-+ out:
-+ return ret;
-+}
-+
-+void pciback_config_field_free(struct config_field *field)
-+{
-+ kfree(field);
-+}
-+
-+int pciback_config_quirk_release(struct pci_dev *dev)
-+{
-+ struct pciback_config_quirk *quirk;
-+ int ret = 0;
-+
-+ quirk = pciback_find_quirk(dev);
-+ if (!quirk) {
-+ ret = -ENXIO;
-+ goto out;
-+ }
-+
-+ list_del(&quirk->quirks_list);
-+ kfree(quirk);
-+
-+ out:
-+ return ret;
-+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/conf_space_quirks.h 2007-06-12 13:13:45.000000000 +0200
-@@ -0,0 +1,35 @@
-+/*
-+ * PCI Backend - Data structures for special overlays for broken devices.
-+ *
-+ * Ryan Wilson <hap9@epoch.ncsc.mil>
-+ * Chris Bookholt <hap10@epoch.ncsc.mil>
-+ */
-+
-+#ifndef __XEN_PCIBACK_CONF_SPACE_QUIRKS_H__
-+#define __XEN_PCIBACK_CONF_SPACE_QUIRKS_H__
-+
-+#include <linux/pci.h>
-+#include <linux/list.h>
-+
-+struct pciback_config_quirk {
-+ struct list_head quirks_list;
-+ struct pci_device_id devid;
-+ struct pci_dev *pdev;
-+};
-+
-+struct pciback_config_quirk *pciback_find_quirk(struct pci_dev *dev);
-+
-+int pciback_config_quirks_add_field(struct pci_dev *dev, struct config_field
-+ *field);
-+
-+int pciback_config_quirks_remove_field(struct pci_dev *dev, int reg);
-+
-+int pciback_config_quirks_init(struct pci_dev *dev);
-+
-+void pciback_config_field_free(struct config_field *field);
-+
-+int pciback_config_quirk_release(struct pci_dev *dev);
-+
-+int pciback_field_is_dup(struct pci_dev *dev, unsigned int reg);
-+
-+#endif
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/controller.c 2009-03-18 10:39:32.000000000 +0100
++++ b/drivers/xen/xen-pciback/controller.c 2009-03-18 10:39:32.000000000 +0100
@@ -0,0 +1,443 @@
+/*
+ * Copyright (C) 2007 Hewlett-Packard Development Company, L.P.
@@ -26350,1774 +24867,7 @@ and in case upstream wants to take the forward porting patches:
+}
+
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/passthrough.c 2009-03-18 10:39:32.000000000 +0100
-@@ -0,0 +1,176 @@
-+/*
-+ * PCI Backend - Provides restricted access to the real PCI bus topology
-+ * to the frontend
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#include <linux/list.h>
-+#include <linux/pci.h>
-+#include <linux/spinlock.h>
-+#include "pciback.h"
-+
-+struct passthrough_dev_data {
-+ /* Access to dev_list must be protected by lock */
-+ struct list_head dev_list;
-+ spinlock_t lock;
-+};
-+
-+struct pci_dev *pciback_get_pci_dev(struct pciback_device *pdev,
-+ unsigned int domain, unsigned int bus,
-+ unsigned int devfn)
-+{
-+ struct passthrough_dev_data *dev_data = pdev->pci_dev_data;
-+ struct pci_dev_entry *dev_entry;
-+ struct pci_dev *dev = NULL;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&dev_data->lock, flags);
-+
-+ list_for_each_entry(dev_entry, &dev_data->dev_list, list) {
-+ if (domain == (unsigned int)pci_domain_nr(dev_entry->dev->bus)
-+ && bus == (unsigned int)dev_entry->dev->bus->number
-+ && devfn == dev_entry->dev->devfn) {
-+ dev = dev_entry->dev;
-+ break;
-+ }
-+ }
-+
-+ spin_unlock_irqrestore(&dev_data->lock, flags);
-+
-+ return dev;
-+}
-+
-+int pciback_add_pci_dev(struct pciback_device *pdev, struct pci_dev *dev,
-+ int devid, publish_pci_dev_cb publish_cb)
-+{
-+ struct passthrough_dev_data *dev_data = pdev->pci_dev_data;
-+ struct pci_dev_entry *dev_entry;
-+ unsigned long flags;
-+ unsigned int domain, bus, devfn;
-+ int err;
-+
-+ dev_entry = kmalloc(sizeof(*dev_entry), GFP_KERNEL);
-+ if (!dev_entry)
-+ return -ENOMEM;
-+ dev_entry->dev = dev;
-+
-+ spin_lock_irqsave(&dev_data->lock, flags);
-+ list_add_tail(&dev_entry->list, &dev_data->dev_list);
-+ spin_unlock_irqrestore(&dev_data->lock, flags);
-+
-+ /* Publish this device. */
-+ domain = (unsigned int)pci_domain_nr(dev->bus);
-+ bus = (unsigned int)dev->bus->number;
-+ devfn = dev->devfn;
-+ err = publish_cb(pdev, domain, bus, devfn, devid);
-+
-+ return err;
-+}
-+
-+void pciback_release_pci_dev(struct pciback_device *pdev, struct pci_dev *dev)
-+{
-+ struct passthrough_dev_data *dev_data = pdev->pci_dev_data;
-+ struct pci_dev_entry *dev_entry, *t;
-+ struct pci_dev *found_dev = NULL;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&dev_data->lock, flags);
-+
-+ list_for_each_entry_safe(dev_entry, t, &dev_data->dev_list, list) {
-+ if (dev_entry->dev == dev) {
-+ list_del(&dev_entry->list);
-+ found_dev = dev_entry->dev;
-+ kfree(dev_entry);
-+ }
-+ }
-+
-+ spin_unlock_irqrestore(&dev_data->lock, flags);
-+
-+ if (found_dev)
-+ pcistub_put_pci_dev(found_dev);
-+}
-+
-+int pciback_init_devices(struct pciback_device *pdev)
-+{
-+ struct passthrough_dev_data *dev_data;
-+
-+ dev_data = kmalloc(sizeof(*dev_data), GFP_KERNEL);
-+ if (!dev_data)
-+ return -ENOMEM;
-+
-+ spin_lock_init(&dev_data->lock);
-+
-+ INIT_LIST_HEAD(&dev_data->dev_list);
-+
-+ pdev->pci_dev_data = dev_data;
-+
-+ return 0;
-+}
-+
-+int pciback_publish_pci_roots(struct pciback_device *pdev,
-+ publish_pci_root_cb publish_root_cb)
-+{
-+ int err = 0;
-+ struct passthrough_dev_data *dev_data = pdev->pci_dev_data;
-+ struct pci_dev_entry *dev_entry, *e;
-+ struct pci_dev *dev;
-+ int found;
-+ unsigned int domain, bus;
-+
-+ spin_lock(&dev_data->lock);
-+
-+ list_for_each_entry(dev_entry, &dev_data->dev_list, list) {
-+ /* Only publish this device as a root if none of its
-+ * parent bridges are exported
-+ */
-+ found = 0;
-+ dev = dev_entry->dev->bus->self;
-+ for (; !found && dev != NULL; dev = dev->bus->self) {
-+ list_for_each_entry(e, &dev_data->dev_list, list) {
-+ if (dev == e->dev) {
-+ found = 1;
-+ break;
-+ }
-+ }
-+ }
-+
-+ domain = (unsigned int)pci_domain_nr(dev_entry->dev->bus);
-+ bus = (unsigned int)dev_entry->dev->bus->number;
-+
-+ if (!found) {
-+ err = publish_root_cb(pdev, domain, bus);
-+ if (err)
-+ break;
-+ }
-+ }
-+
-+ spin_unlock(&dev_data->lock);
-+
-+ return err;
-+}
-+
-+void pciback_release_devices(struct pciback_device *pdev)
-+{
-+ struct passthrough_dev_data *dev_data = pdev->pci_dev_data;
-+ struct pci_dev_entry *dev_entry, *t;
-+
-+ list_for_each_entry_safe(dev_entry, t, &dev_data->dev_list, list) {
-+ list_del(&dev_entry->list);
-+ pcistub_put_pci_dev(dev_entry->dev);
-+ kfree(dev_entry);
-+ }
-+
-+ kfree(dev_data);
-+ pdev->pci_dev_data = NULL;
-+}
-+
-+int pciback_get_pcifront_dev(struct pci_dev *pcidev, struct pciback_device *pdev,
-+ unsigned int *domain, unsigned int *bus, unsigned int *devfn)
-+
-+{
-+ *domain = pci_domain_nr(pcidev->bus);
-+ *bus = pcidev->bus->number;
-+ *devfn = pcidev->devfn;
-+ return 1;
-+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/pci_stub.c 2011-03-02 12:00:16.000000000 +0100
-@@ -0,0 +1,1311 @@
-+/*
-+ * PCI Stub Driver - Grabs devices in backend to be exported later
-+ *
-+ * Ryan Wilson <hap9@epoch.ncsc.mil>
-+ * Chris Bookholt <hap10@epoch.ncsc.mil>
-+ */
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/rwsem.h>
-+#include <linux/list.h>
-+#include <linux/spinlock.h>
-+#include <linux/kref.h>
-+#include <linux/pci.h>
-+#include <linux/wait.h>
-+#include <asm/atomic.h>
-+#include <xen/evtchn.h>
-+#include "pciback.h"
-+#include "conf_space.h"
-+#include "conf_space_quirks.h"
-+
-+static char *pci_devs_to_hide = NULL;
-+wait_queue_head_t aer_wait_queue;
-+/*Add sem for sync AER handling and pciback remove/reconfigue ops,
-+* We want to avoid in middle of AER ops, pciback devices is being removed
-+*/
-+static DECLARE_RWSEM(pcistub_sem);
-+module_param_named(hide, pci_devs_to_hide, charp, 0444);
-+
-+struct pcistub_device_id {
-+ struct list_head slot_list;
-+ int domain;
-+ unsigned char bus;
-+ unsigned int devfn;
-+};
-+static LIST_HEAD(pcistub_device_ids);
-+static DEFINE_SPINLOCK(device_ids_lock);
-+
-+struct pcistub_device {
-+ struct kref kref;
-+ struct list_head dev_list;
-+ spinlock_t lock;
-+
-+ struct pci_dev *dev;
-+ struct pciback_device *pdev; /* non-NULL if struct pci_dev is in use */
-+};
-+
-+/* Access to pcistub_devices & seized_devices lists and the initialize_devices
-+ * flag must be locked with pcistub_devices_lock
-+ */
-+static DEFINE_SPINLOCK(pcistub_devices_lock);
-+static LIST_HEAD(pcistub_devices);
-+
-+/* wait for device_initcall before initializing our devices
-+ * (see pcistub_init_devices_late)
-+ */
-+static int initialize_devices = 0;
-+static LIST_HEAD(seized_devices);
-+
-+static struct pcistub_device *pcistub_device_alloc(struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev;
-+
-+ dev_dbg(&dev->dev, "pcistub_device_alloc\n");
-+
-+ psdev = kzalloc(sizeof(*psdev), GFP_ATOMIC);
-+ if (!psdev)
-+ return NULL;
-+
-+ psdev->dev = pci_dev_get(dev);
-+ if (!psdev->dev) {
-+ kfree(psdev);
-+ return NULL;
-+ }
-+
-+ kref_init(&psdev->kref);
-+ spin_lock_init(&psdev->lock);
-+
-+ return psdev;
-+}
-+
-+/* Don't call this directly as it's called by pcistub_device_put */
-+static void pcistub_device_release(struct kref *kref)
-+{
-+ struct pcistub_device *psdev;
-+
-+ psdev = container_of(kref, struct pcistub_device, kref);
-+
-+ dev_dbg(&psdev->dev->dev, "pcistub_device_release\n");
-+
-+ /* Clean-up the device */
-+ pciback_reset_device(psdev->dev);
-+ pciback_config_free_dyn_fields(psdev->dev);
-+ pciback_config_free_dev(psdev->dev);
-+ kfree(pci_get_drvdata(psdev->dev));
-+ pci_set_drvdata(psdev->dev, NULL);
-+
-+ pci_dev_put(psdev->dev);
-+
-+ kfree(psdev);
-+}
-+
-+static inline void pcistub_device_get(struct pcistub_device *psdev)
-+{
-+ kref_get(&psdev->kref);
-+}
-+
-+static inline void pcistub_device_put(struct pcistub_device *psdev)
-+{
-+ kref_put(&psdev->kref, pcistub_device_release);
-+}
-+
-+static struct pcistub_device *pcistub_device_find(int domain, int bus,
-+ int slot, int func)
-+{
-+ struct pcistub_device *psdev = NULL;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ list_for_each_entry(psdev, &pcistub_devices, dev_list) {
-+ if (psdev->dev != NULL
-+ && domain == pci_domain_nr(psdev->dev->bus)
-+ && bus == psdev->dev->bus->number
-+ && PCI_DEVFN(slot, func) == psdev->dev->devfn) {
-+ pcistub_device_get(psdev);
-+ goto out;
-+ }
-+ }
-+
-+ /* didn't find it */
-+ psdev = NULL;
-+
-+ out:
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+ return psdev;
-+}
-+
-+static struct pci_dev *pcistub_device_get_pci_dev(struct pciback_device *pdev,
-+ struct pcistub_device *psdev)
-+{
-+ struct pci_dev *pci_dev = NULL;
-+ unsigned long flags;
-+
-+ pcistub_device_get(psdev);
-+
-+ spin_lock_irqsave(&psdev->lock, flags);
-+ if (!psdev->pdev) {
-+ psdev->pdev = pdev;
-+ pci_dev = psdev->dev;
-+ }
-+ spin_unlock_irqrestore(&psdev->lock, flags);
-+
-+ if (!pci_dev)
-+ pcistub_device_put(psdev);
-+
-+ return pci_dev;
-+}
-+
-+struct pci_dev *pcistub_get_pci_dev_by_slot(struct pciback_device *pdev,
-+ int domain, int bus,
-+ int slot, int func)
-+{
-+ struct pcistub_device *psdev;
-+ struct pci_dev *found_dev = NULL;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ list_for_each_entry(psdev, &pcistub_devices, dev_list) {
-+ if (psdev->dev != NULL
-+ && domain == pci_domain_nr(psdev->dev->bus)
-+ && bus == psdev->dev->bus->number
-+ && PCI_DEVFN(slot, func) == psdev->dev->devfn) {
-+ found_dev = pcistub_device_get_pci_dev(pdev, psdev);
-+ break;
-+ }
-+ }
-+
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+ return found_dev;
-+}
-+
-+struct pci_dev *pcistub_get_pci_dev(struct pciback_device *pdev,
-+ struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev;
-+ struct pci_dev *found_dev = NULL;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ list_for_each_entry(psdev, &pcistub_devices, dev_list) {
-+ if (psdev->dev == dev) {
-+ found_dev = pcistub_device_get_pci_dev(pdev, psdev);
-+ break;
-+ }
-+ }
-+
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+ return found_dev;
-+}
-+
-+void pcistub_put_pci_dev(struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev, *found_psdev = NULL;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ list_for_each_entry(psdev, &pcistub_devices, dev_list) {
-+ if (psdev->dev == dev) {
-+ found_psdev = psdev;
-+ break;
-+ }
-+ }
-+
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+
-+ /*hold this lock for avoiding breaking link between
-+ * pcistub and pciback when AER is in processing
-+ */
-+ down_write(&pcistub_sem);
-+ /* Cleanup our device
-+ * (so it's ready for the next domain)
-+ */
-+ pciback_reset_device(found_psdev->dev);
-+ pciback_config_free_dyn_fields(found_psdev->dev);
-+ pciback_config_reset_dev(found_psdev->dev);
-+
-+ spin_lock_irqsave(&found_psdev->lock, flags);
-+ found_psdev->pdev = NULL;
-+ spin_unlock_irqrestore(&found_psdev->lock, flags);
-+
-+ pcistub_device_put(found_psdev);
-+ up_write(&pcistub_sem);
-+}
-+
-+static int __devinit pcistub_match_one(struct pci_dev *dev,
-+ struct pcistub_device_id *pdev_id)
-+{
-+ /* Match the specified device by domain, bus, slot, func and also if
-+ * any of the device's parent bridges match.
-+ */
-+ for (; dev != NULL; dev = dev->bus->self) {
-+ if (pci_domain_nr(dev->bus) == pdev_id->domain
-+ && dev->bus->number == pdev_id->bus
-+ && dev->devfn == pdev_id->devfn)
-+ return 1;
-+
-+ /* Sometimes topmost bridge links to itself. */
-+ if (dev == dev->bus->self)
-+ break;
-+ }
-+
-+ return 0;
-+}
-+
-+static int __devinit pcistub_match(struct pci_dev *dev)
-+{
-+ struct pcistub_device_id *pdev_id;
-+ unsigned long flags;
-+ int found = 0;
-+
-+ spin_lock_irqsave(&device_ids_lock, flags);
-+ list_for_each_entry(pdev_id, &pcistub_device_ids, slot_list) {
-+ if (pcistub_match_one(dev, pdev_id)) {
-+ found = 1;
-+ break;
-+ }
-+ }
-+ spin_unlock_irqrestore(&device_ids_lock, flags);
-+
-+ return found;
-+}
-+
-+static int __devinit pcistub_init_device(struct pci_dev *dev)
-+{
-+ struct pciback_dev_data *dev_data;
-+ int err = 0;
-+
-+ dev_dbg(&dev->dev, "initializing...\n");
-+
-+ /* The PCI backend is not intended to be a module (or to work with
-+ * removable PCI devices (yet). If it were, pciback_config_free()
-+ * would need to be called somewhere to free the memory allocated
-+ * here and then to call kfree(pci_get_drvdata(psdev->dev)).
-+ */
-+ dev_data = kzalloc(sizeof(*dev_data), GFP_ATOMIC);
-+ if (!dev_data) {
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+ pci_set_drvdata(dev, dev_data);
-+
-+ dev_dbg(&dev->dev, "initializing config\n");
-+
-+ init_waitqueue_head(&aer_wait_queue);
-+ err = pciback_config_init_dev(dev);
-+ if (err)
-+ goto out;
-+
-+ /* HACK: Force device (& ACPI) to determine what IRQ it's on - we
-+ * must do this here because pcibios_enable_device may specify
-+ * the pci device's true irq (and possibly its other resources)
-+ * if they differ from what's in the configuration space.
-+ * This makes the assumption that the device's resources won't
-+ * change after this point (otherwise this code may break!)
-+ */
-+ dev_dbg(&dev->dev, "enabling device\n");
-+ err = pci_enable_device(dev);
-+ if (err)
-+ goto config_release;
-+
-+ /* Now disable the device (this also ensures some private device
-+ * data is setup before we export)
-+ */
-+ dev_dbg(&dev->dev, "reset device\n");
-+ pciback_reset_device(dev);
-+
-+ return 0;
-+
-+ config_release:
-+ pciback_config_free_dev(dev);
-+
-+ out:
-+ pci_set_drvdata(dev, NULL);
-+ kfree(dev_data);
-+ return err;
-+}
-+
-+/*
-+ * Because some initialization still happens on
-+ * devices during fs_initcall, we need to defer
-+ * full initialization of our devices until
-+ * device_initcall.
-+ */
-+static int __init pcistub_init_devices_late(void)
-+{
-+ struct pcistub_device *psdev;
-+ unsigned long flags;
-+ int err = 0;
-+
-+ pr_debug("pciback: pcistub_init_devices_late\n");
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ while (!list_empty(&seized_devices)) {
-+ psdev = container_of(seized_devices.next,
-+ struct pcistub_device, dev_list);
-+ list_del(&psdev->dev_list);
-+
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+
-+ err = pcistub_init_device(psdev->dev);
-+ if (err) {
-+ dev_err(&psdev->dev->dev,
-+ "error %d initializing device\n", err);
-+ kfree(psdev);
-+ psdev = NULL;
-+ }
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ if (psdev)
-+ list_add_tail(&psdev->dev_list, &pcistub_devices);
-+ }
-+
-+ initialize_devices = 1;
-+
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+
-+ return 0;
-+}
-+
-+static int __devinit pcistub_seize(struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev;
-+ unsigned long flags;
-+ int err = 0;
-+
-+ psdev = pcistub_device_alloc(dev);
-+ if (!psdev)
-+ return -ENOMEM;
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ if (initialize_devices) {
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+
-+ /* don't want irqs disabled when calling pcistub_init_device */
-+ err = pcistub_init_device(psdev->dev);
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ if (!err)
-+ list_add(&psdev->dev_list, &pcistub_devices);
-+ } else {
-+ dev_dbg(&dev->dev, "deferring initialization\n");
-+ list_add(&psdev->dev_list, &seized_devices);
-+ }
-+
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+
-+ if (err)
-+ pcistub_device_put(psdev);
-+
-+ return err;
-+}
-+
-+static int __devinit pcistub_probe(struct pci_dev *dev,
-+ const struct pci_device_id *id)
-+{
-+ int err = 0;
-+
-+ dev_dbg(&dev->dev, "probing...\n");
-+
-+ if (pcistub_match(dev)) {
-+
-+ if (dev->hdr_type != PCI_HEADER_TYPE_NORMAL
-+ && dev->hdr_type != PCI_HEADER_TYPE_BRIDGE) {
-+ dev_err(&dev->dev, "can't export pci devices that "
-+ "don't have a normal (0) or bridge (1) "
-+ "header type!\n");
-+ err = -ENODEV;
-+ goto out;
-+ }
-+
-+ dev_info(&dev->dev, "seizing device\n");
-+ err = pcistub_seize(dev);
-+#ifdef CONFIG_PCI_GUESTDEV
-+ } else if (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) {
-+ if (!pci_is_guestdev(dev)) {
-+ err = -ENODEV;
-+ goto out;
-+ }
-+
-+ dev_info(&dev->dev, "seizing device\n");
-+ err = pcistub_seize(dev);
-+#endif /* CONFIG_PCI_GUESTDEV */
-+ } else
-+ /* Didn't find the device */
-+ err = -ENODEV;
-+
-+ out:
-+ return err;
-+}
-+
-+static void pcistub_remove(struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev, *found_psdev = NULL;
-+ unsigned long flags;
-+
-+ dev_dbg(&dev->dev, "removing\n");
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+
-+ pciback_config_quirk_release(dev);
-+
-+ list_for_each_entry(psdev, &pcistub_devices, dev_list) {
-+ if (psdev->dev == dev) {
-+ found_psdev = psdev;
-+ break;
-+ }
-+ }
-+
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+
-+ if (found_psdev) {
-+ dev_dbg(&dev->dev, "found device to remove - in use? %p\n",
-+ found_psdev->pdev);
-+
-+ if (found_psdev->pdev) {
-+ printk(KERN_WARNING "pciback: ****** removing device "
-+ "%s while still in-use! ******\n",
-+ pci_name(found_psdev->dev));
-+ printk(KERN_WARNING "pciback: ****** driver domain may "
-+ "still access this device's i/o resources!\n");
-+ printk(KERN_WARNING "pciback: ****** shutdown driver "
-+ "domain before binding device\n");
-+ printk(KERN_WARNING "pciback: ****** to other drivers "
-+ "or domains\n");
-+
-+ pciback_release_pci_dev(found_psdev->pdev,
-+ found_psdev->dev);
-+ }
-+
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+ list_del(&found_psdev->dev_list);
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+
-+ /* the final put for releasing from the list */
-+ pcistub_device_put(found_psdev);
-+ }
-+}
-+
-+static const struct pci_device_id pcistub_ids[] = {
-+ {
-+ .vendor = PCI_ANY_ID,
-+ .device = PCI_ANY_ID,
-+ .subvendor = PCI_ANY_ID,
-+ .subdevice = PCI_ANY_ID,
-+ },
-+ {0,},
-+};
-+
-+static void kill_domain_by_device(struct pcistub_device *psdev)
-+{
-+ struct xenbus_transaction xbt;
-+ int err;
-+ char nodename[1024];
-+
-+ if (!psdev)
-+ dev_err(&psdev->dev->dev,
-+ "device is NULL when do AER recovery/kill_domain\n");
-+ sprintf(nodename, "/local/domain/0/backend/pci/%d/0",
-+ psdev->pdev->xdev->otherend_id);
-+ nodename[strlen(nodename)] = '\0';
-+
-+again:
-+ err = xenbus_transaction_start(&xbt);
-+ if (err)
-+ {
-+ dev_err(&psdev->dev->dev,
-+ "error %d when start xenbus transaction\n", err);
-+ return;
-+ }
-+ /*PV AER handlers will set this flag*/
-+ xenbus_printf(xbt, nodename, "aerState" , "aerfail" );
-+ err = xenbus_transaction_end(xbt, 0);
-+ if (err)
-+ {
-+ if (err == -EAGAIN)
-+ goto again;
-+ dev_err(&psdev->dev->dev,
-+ "error %d when end xenbus transaction\n", err);
-+ return;
-+ }
-+}
-+
-+/* For each aer recovery step error_detected, mmio_enabled, etc, front_end and
-+ * backend need to have cooperation. In pciback, those steps will do similar
-+ * jobs: send service request and waiting for front_end response.
-+*/
-+static pci_ers_result_t common_process(struct pcistub_device *psdev,
-+ pci_channel_state_t state, int aer_cmd, pci_ers_result_t result)
-+{
-+ pci_ers_result_t res = result;
-+ struct xen_pcie_aer_op *aer_op;
-+ int ret;
-+
-+ /*with PV AER drivers*/
-+ aer_op = &(psdev->pdev->sh_info->aer_op);
-+ aer_op->cmd = aer_cmd ;
-+ /*useful for error_detected callback*/
-+ aer_op->err = state;
-+ /*pcifront_end BDF*/
-+ ret = pciback_get_pcifront_dev(psdev->dev, psdev->pdev,
-+ &aer_op->domain, &aer_op->bus, &aer_op->devfn);
-+ if (!ret) {
-+ dev_err(&psdev->dev->dev,
-+ "pciback: failed to get pcifront device\n");
-+ return PCI_ERS_RESULT_NONE;
-+ }
-+ wmb();
-+
-+ dev_dbg(&psdev->dev->dev,
-+ "pciback: aer_op %x dom %x bus %x devfn %x\n",
-+ aer_cmd, aer_op->domain, aer_op->bus, aer_op->devfn);
-+ /*local flag to mark there's aer request, pciback callback will use this
-+ * flag to judge whether we need to check pci-front give aer service
-+ * ack signal
-+ */
-+ set_bit(_PCIB_op_pending, (unsigned long *)&psdev->pdev->flags);
-+
-+ /*It is possible that a pcifront conf_read_write ops request invokes
-+ * the callback which cause the spurious execution of wake_up.
-+ * Yet it is harmless and better than a spinlock here
-+ */
-+ set_bit(_XEN_PCIB_active,
-+ (unsigned long *)&psdev->pdev->sh_info->flags);
-+ wmb();
-+ notify_remote_via_irq(psdev->pdev->evtchn_irq);
-+
-+ ret = wait_event_timeout(aer_wait_queue, !(test_bit(_XEN_PCIB_active,
-+ (unsigned long *)&psdev->pdev->sh_info->flags)), 300*HZ);
-+
-+ if (!ret) {
-+ if (test_bit(_XEN_PCIB_active,
-+ (unsigned long *)&psdev->pdev->sh_info->flags)) {
-+ dev_err(&psdev->dev->dev,
-+ "pcifront aer process not responding!\n");
-+ clear_bit(_XEN_PCIB_active,
-+ (unsigned long *)&psdev->pdev->sh_info->flags);
-+ aer_op->err = PCI_ERS_RESULT_NONE;
-+ return res;
-+ }
-+ }
-+ clear_bit(_PCIB_op_pending, (unsigned long *)&psdev->pdev->flags);
-+
-+ if ( test_bit( _XEN_PCIF_active,
-+ (unsigned long*)&psdev->pdev->sh_info->flags)) {
-+ dev_dbg(&psdev->dev->dev,
-+ "schedule pci_conf service in pciback \n");
-+ test_and_schedule_op(psdev->pdev);
-+ }
-+
-+ res = (pci_ers_result_t)aer_op->err;
-+ return res;
-+}
-+
-+/*
-+* pciback_slot_reset: it will send the slot_reset request to pcifront in case
-+* of the device driver could provide this service, and then wait for pcifront
-+* ack.
-+* @dev: pointer to PCI devices
-+* return value is used by aer_core do_recovery policy
-+*/
-+static pci_ers_result_t pciback_slot_reset(struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev;
-+ pci_ers_result_t result;
-+
-+ result = PCI_ERS_RESULT_RECOVERED;
-+ dev_dbg(&dev->dev, "pciback_slot_reset(bus:%x,devfn:%x)\n",
-+ dev->bus->number, dev->devfn);
-+
-+ down_write(&pcistub_sem);
-+ psdev = pcistub_device_find(pci_domain_nr(dev->bus),
-+ dev->bus->number,
-+ PCI_SLOT(dev->devfn),
-+ PCI_FUNC(dev->devfn));
-+
-+ if ( !psdev || !psdev->pdev )
-+ {
-+ dev_err(&dev->dev,
-+ "pciback device is not found/assigned\n");
-+ goto end;
-+ }
-+
-+ if ( !psdev->pdev->sh_info )
-+ {
-+ dev_err(&dev->dev, "pciback device is not connected or owned"
-+ " by HVM, kill it\n");
-+ kill_domain_by_device(psdev);
-+ goto release;
-+ }
-+
-+ if ( !test_bit(_XEN_PCIB_AERHANDLER,
-+ (unsigned long *)&psdev->pdev->sh_info->flags) ) {
-+ dev_err(&dev->dev,
-+ "guest with no AER driver should have been killed\n");
-+ goto release;
-+ }
-+ result = common_process(psdev, 1, XEN_PCI_OP_aer_slotreset, result);
-+
-+ if (result == PCI_ERS_RESULT_NONE ||
-+ result == PCI_ERS_RESULT_DISCONNECT) {
-+ dev_dbg(&dev->dev,
-+ "No AER slot_reset service or disconnected!\n");
-+ kill_domain_by_device(psdev);
-+ }
-+release:
-+ pcistub_device_put(psdev);
-+end:
-+ up_write(&pcistub_sem);
-+ return result;
-+
-+}
-+
-+
-+/*pciback_mmio_enabled: it will send the mmio_enabled request to pcifront
-+* in case of the device driver could provide this service, and then wait
-+* for pcifront ack.
-+* @dev: pointer to PCI devices
-+* return value is used by aer_core do_recovery policy
-+*/
-+
-+static pci_ers_result_t pciback_mmio_enabled(struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev;
-+ pci_ers_result_t result;
-+
-+ result = PCI_ERS_RESULT_RECOVERED;
-+ dev_dbg(&dev->dev, "pciback_mmio_enabled(bus:%x,devfn:%x)\n",
-+ dev->bus->number, dev->devfn);
-+
-+ down_write(&pcistub_sem);
-+ psdev = pcistub_device_find(pci_domain_nr(dev->bus),
-+ dev->bus->number,
-+ PCI_SLOT(dev->devfn),
-+ PCI_FUNC(dev->devfn));
-+
-+ if ( !psdev || !psdev->pdev )
-+ {
-+ dev_err(&dev->dev,
-+ "pciback device is not found/assigned\n");
-+ goto end;
-+ }
-+
-+ if ( !psdev->pdev->sh_info )
-+ {
-+ dev_err(&dev->dev, "pciback device is not connected or owned"
-+ " by HVM, kill it\n");
-+ kill_domain_by_device(psdev);
-+ goto release;
-+ }
-+
-+ if ( !test_bit(_XEN_PCIB_AERHANDLER,
-+ (unsigned long *)&psdev->pdev->sh_info->flags) ) {
-+ dev_err(&dev->dev,
-+ "guest with no AER driver should have been killed\n");
-+ goto release;
-+ }
-+ result = common_process(psdev, 1, XEN_PCI_OP_aer_mmio, result);
-+
-+ if (result == PCI_ERS_RESULT_NONE ||
-+ result == PCI_ERS_RESULT_DISCONNECT) {
-+ dev_dbg(&dev->dev,
-+ "No AER mmio_enabled service or disconnected!\n");
-+ kill_domain_by_device(psdev);
-+ }
-+release:
-+ pcistub_device_put(psdev);
-+end:
-+ up_write(&pcistub_sem);
-+ return result;
-+}
-+
-+/*pciback_error_detected: it will send the error_detected request to pcifront
-+* in case of the device driver could provide this service, and then wait
-+* for pcifront ack.
-+* @dev: pointer to PCI devices
-+* @error: the current PCI connection state
-+* return value is used by aer_core do_recovery policy
-+*/
-+
-+static pci_ers_result_t pciback_error_detected(struct pci_dev *dev,
-+ pci_channel_state_t error)
-+{
-+ struct pcistub_device *psdev;
-+ pci_ers_result_t result;
-+
-+ result = PCI_ERS_RESULT_CAN_RECOVER;
-+ dev_dbg(&dev->dev, "pciback_error_detected(bus:%x,devfn:%x)\n",
-+ dev->bus->number, dev->devfn);
-+
-+ down_write(&pcistub_sem);
-+ psdev = pcistub_device_find(pci_domain_nr(dev->bus),
-+ dev->bus->number,
-+ PCI_SLOT(dev->devfn),
-+ PCI_FUNC(dev->devfn));
-+
-+ if ( !psdev || !psdev->pdev )
-+ {
-+ dev_err(&dev->dev,
-+ "pciback device is not found/assigned\n");
-+ goto end;
-+ }
-+
-+ if ( !psdev->pdev->sh_info )
-+ {
-+ dev_err(&dev->dev, "pciback device is not connected or owned"
-+ " by HVM, kill it\n");
-+ kill_domain_by_device(psdev);
-+ goto release;
-+ }
-+
-+ /*Guest owns the device yet no aer handler regiested, kill guest*/
-+ if ( !test_bit(_XEN_PCIB_AERHANDLER,
-+ (unsigned long *)&psdev->pdev->sh_info->flags) ) {
-+ dev_dbg(&dev->dev, "guest may have no aer driver, kill it\n");
-+ kill_domain_by_device(psdev);
-+ goto release;
-+ }
-+ result = common_process(psdev, error, XEN_PCI_OP_aer_detected, result);
-+
-+ if (result == PCI_ERS_RESULT_NONE ||
-+ result == PCI_ERS_RESULT_DISCONNECT) {
-+ dev_dbg(&dev->dev,
-+ "No AER error_detected service or disconnected!\n");
-+ kill_domain_by_device(psdev);
-+ }
-+release:
-+ pcistub_device_put(psdev);
-+end:
-+ up_write(&pcistub_sem);
-+ return result;
-+}
-+
-+/*pciback_error_resume: it will send the error_resume request to pcifront
-+* in case of the device driver could provide this service, and then wait
-+* for pcifront ack.
-+* @dev: pointer to PCI devices
-+*/
-+
-+static void pciback_error_resume(struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev;
-+
-+ dev_dbg(&dev->dev, "pciback_error_resume(bus:%x,devfn:%x)\n",
-+ dev->bus->number, dev->devfn);
-+
-+ down_write(&pcistub_sem);
-+ psdev = pcistub_device_find(pci_domain_nr(dev->bus),
-+ dev->bus->number,
-+ PCI_SLOT(dev->devfn),
-+ PCI_FUNC(dev->devfn));
-+
-+ if ( !psdev || !psdev->pdev )
-+ {
-+ dev_err(&dev->dev,
-+ "pciback device is not found/assigned\n");
-+ goto end;
-+ }
-+
-+ if ( !psdev->pdev->sh_info )
-+ {
-+ dev_err(&dev->dev, "pciback device is not connected or owned"
-+ " by HVM, kill it\n");
-+ kill_domain_by_device(psdev);
-+ goto release;
-+ }
-+
-+ if ( !test_bit(_XEN_PCIB_AERHANDLER,
-+ (unsigned long *)&psdev->pdev->sh_info->flags) ) {
-+ dev_err(&dev->dev,
-+ "guest with no AER driver should have been killed\n");
-+ kill_domain_by_device(psdev);
-+ goto release;
-+ }
-+ common_process(psdev, 1, XEN_PCI_OP_aer_resume, PCI_ERS_RESULT_RECOVERED);
-+release:
-+ pcistub_device_put(psdev);
-+end:
-+ up_write(&pcistub_sem);
-+ return;
-+}
-+
-+/*add pciback AER handling*/
-+static struct pci_error_handlers pciback_error_handler = {
-+ .error_detected = pciback_error_detected,
-+ .mmio_enabled = pciback_mmio_enabled,
-+ .slot_reset = pciback_slot_reset,
-+ .resume = pciback_error_resume,
-+};
-+
-+/*
-+ * Note: There is no MODULE_DEVICE_TABLE entry here because this isn't
-+ * for a normal device. I don't want it to be loaded automatically.
-+ */
-+
-+static struct pci_driver pciback_pci_driver = {
-+ .name = "pciback",
-+ .id_table = pcistub_ids,
-+ .probe = pcistub_probe,
-+ .remove = pcistub_remove,
-+ .err_handler = &pciback_error_handler,
-+};
-+
-+static inline int str_to_slot(const char *buf, int *domain, int *bus,
-+ int *slot, int *func)
-+{
-+ int err;
-+
-+ err = sscanf(buf, " %x:%x:%x.%x", domain, bus, slot, func);
-+ if (err == 4)
-+ return 0;
-+ else if (err < 0)
-+ return -EINVAL;
-+
-+ /* try again without domain */
-+ *domain = 0;
-+ err = sscanf(buf, " %x:%x.%x", bus, slot, func);
-+ if (err == 3)
-+ return 0;
-+
-+ return -EINVAL;
-+}
-+
-+static inline int str_to_quirk(const char *buf, int *domain, int *bus, int
-+ *slot, int *func, int *reg, int *size, int *mask)
-+{
-+ int err;
-+
-+ err =
-+ sscanf(buf, " %04x:%02x:%02x.%1x-%08x:%1x:%08x", domain, bus, slot,
-+ func, reg, size, mask);
-+ if (err == 7)
-+ return 0;
-+ return -EINVAL;
-+}
-+
-+static int pcistub_device_id_add(int domain, int bus, int slot, int func)
-+{
-+ struct pcistub_device_id *pci_dev_id;
-+ unsigned long flags;
-+
-+ pci_dev_id = kmalloc(sizeof(*pci_dev_id), GFP_KERNEL);
-+ if (!pci_dev_id)
-+ return -ENOMEM;
-+
-+ pci_dev_id->domain = domain;
-+ pci_dev_id->bus = bus;
-+ pci_dev_id->devfn = PCI_DEVFN(slot, func);
-+
-+ pr_debug("pciback: wants to seize %04x:%02x:%02x.%01x\n",
-+ domain, bus, slot, func);
-+
-+ spin_lock_irqsave(&device_ids_lock, flags);
-+ list_add_tail(&pci_dev_id->slot_list, &pcistub_device_ids);
-+ spin_unlock_irqrestore(&device_ids_lock, flags);
-+
-+ return 0;
-+}
-+
-+static int pcistub_device_id_remove(int domain, int bus, int slot, int func)
-+{
-+ struct pcistub_device_id *pci_dev_id, *t;
-+ int devfn = PCI_DEVFN(slot, func);
-+ int err = -ENOENT;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&device_ids_lock, flags);
-+ list_for_each_entry_safe(pci_dev_id, t, &pcistub_device_ids, slot_list) {
-+
-+ if (pci_dev_id->domain == domain
-+ && pci_dev_id->bus == bus && pci_dev_id->devfn == devfn) {
-+ /* Don't break; here because it's possible the same
-+ * slot could be in the list more than once
-+ */
-+ list_del(&pci_dev_id->slot_list);
-+ kfree(pci_dev_id);
-+
-+ err = 0;
-+
-+ pr_debug("pciback: removed %04x:%02x:%02x.%01x from "
-+ "seize list\n", domain, bus, slot, func);
-+ }
-+ }
-+ spin_unlock_irqrestore(&device_ids_lock, flags);
-+
-+ return err;
-+}
-+
-+static int pcistub_reg_add(int domain, int bus, int slot, int func, int reg,
-+ int size, int mask)
-+{
-+ int err = 0;
-+ struct pcistub_device *psdev;
-+ struct pci_dev *dev;
-+ struct config_field *field;
-+
-+ psdev = pcistub_device_find(domain, bus, slot, func);
-+ if (!psdev || !psdev->dev) {
-+ err = -ENODEV;
-+ goto out;
-+ }
-+ dev = psdev->dev;
-+
-+ field = kzalloc(sizeof(*field), GFP_ATOMIC);
-+ if (!field) {
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+
-+ field->offset = reg;
-+ field->size = size;
-+ field->mask = mask;
-+ field->init = NULL;
-+ field->reset = NULL;
-+ field->release = NULL;
-+ field->clean = pciback_config_field_free;
-+
-+ err = pciback_config_quirks_add_field(dev, field);
-+ if (err)
-+ kfree(field);
-+ out:
-+ return err;
-+}
-+
-+static ssize_t pcistub_slot_add(struct device_driver *drv, const char *buf,
-+ size_t count)
-+{
-+ int domain, bus, slot, func;
-+ int err;
-+
-+ err = str_to_slot(buf, &domain, &bus, &slot, &func);
-+ if (err)
-+ goto out;
-+
-+ err = pcistub_device_id_add(domain, bus, slot, func);
-+
-+ out:
-+ if (!err)
-+ err = count;
-+ return err;
-+}
-+static DRIVER_ATTR(new_slot, S_IWUSR, NULL, pcistub_slot_add);
-+
-+static ssize_t pcistub_slot_remove(struct device_driver *drv, const char *buf,
-+ size_t count)
-+{
-+ int domain, bus, slot, func;
-+ int err;
-+
-+ err = str_to_slot(buf, &domain, &bus, &slot, &func);
-+ if (err)
-+ goto out;
-+
-+ err = pcistub_device_id_remove(domain, bus, slot, func);
-+
-+ out:
-+ if (!err)
-+ err = count;
-+ return err;
-+}
-+static DRIVER_ATTR(remove_slot, S_IWUSR, NULL, pcistub_slot_remove);
-+
-+static ssize_t pcistub_slot_show(struct device_driver *drv, char *buf)
-+{
-+ struct pcistub_device_id *pci_dev_id;
-+ size_t count = 0;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&device_ids_lock, flags);
-+ list_for_each_entry(pci_dev_id, &pcistub_device_ids, slot_list) {
-+ if (count >= PAGE_SIZE)
-+ break;
-+
-+ count += scnprintf(buf + count, PAGE_SIZE - count,
-+ "%04x:%02x:%02x.%01x\n",
-+ pci_dev_id->domain, pci_dev_id->bus,
-+ PCI_SLOT(pci_dev_id->devfn),
-+ PCI_FUNC(pci_dev_id->devfn));
-+ }
-+ spin_unlock_irqrestore(&device_ids_lock, flags);
-+
-+ return count;
-+}
-+static DRIVER_ATTR(slots, S_IRUSR, pcistub_slot_show, NULL);
-+
-+static ssize_t pcistub_quirk_add(struct device_driver *drv, const char *buf,
-+ size_t count)
-+{
-+ int domain, bus, slot, func, reg, size, mask;
-+ int err;
-+
-+ err = str_to_quirk(buf, &domain, &bus, &slot, &func, &reg, &size,
-+ &mask);
-+ if (err)
-+ goto out;
-+
-+ err = pcistub_reg_add(domain, bus, slot, func, reg, size, mask);
-+
-+ out:
-+ if (!err)
-+ err = count;
-+ return err;
-+}
-+
-+static ssize_t pcistub_quirk_show(struct device_driver *drv, char *buf)
-+{
-+ int count = 0;
-+ unsigned long flags;
-+ extern struct list_head pciback_quirks;
-+ struct pciback_config_quirk *quirk;
-+ struct pciback_dev_data *dev_data;
-+ const struct config_field *field;
-+ const struct config_field_entry *cfg_entry;
-+
-+ spin_lock_irqsave(&device_ids_lock, flags);
-+ list_for_each_entry(quirk, &pciback_quirks, quirks_list) {
-+ if (count >= PAGE_SIZE)
-+ goto out;
-+
-+ count += scnprintf(buf + count, PAGE_SIZE - count,
-+ "%02x:%02x.%01x\n\t%04x:%04x:%04x:%04x\n",
-+ quirk->pdev->bus->number,
-+ PCI_SLOT(quirk->pdev->devfn),
-+ PCI_FUNC(quirk->pdev->devfn),
-+ quirk->devid.vendor, quirk->devid.device,
-+ quirk->devid.subvendor,
-+ quirk->devid.subdevice);
-+
-+ dev_data = pci_get_drvdata(quirk->pdev);
-+
-+ list_for_each_entry(cfg_entry, &dev_data->config_fields, list) {
-+ field = cfg_entry->field;
-+ if (count >= PAGE_SIZE)
-+ goto out;
-+
-+ count += scnprintf(buf + count, PAGE_SIZE - count,
-+ "\t\t%08x:%01x:%08x\n",
-+ cfg_entry->base_offset + field->offset,
-+ field->size, field->mask);
-+ }
-+ }
-+
-+ out:
-+ spin_unlock_irqrestore(&device_ids_lock, flags);
-+
-+ return count;
-+}
-+static DRIVER_ATTR(quirks, S_IRUSR | S_IWUSR, pcistub_quirk_show, pcistub_quirk_add);
-+
-+static ssize_t permissive_add(struct device_driver *drv, const char *buf,
-+ size_t count)
-+{
-+ int domain, bus, slot, func;
-+ int err;
-+ struct pcistub_device *psdev;
-+ struct pciback_dev_data *dev_data;
-+ err = str_to_slot(buf, &domain, &bus, &slot, &func);
-+ if (err)
-+ goto out;
-+ psdev = pcistub_device_find(domain, bus, slot, func);
-+ if (!psdev) {
-+ err = -ENODEV;
-+ goto out;
-+ }
-+ if (!psdev->dev) {
-+ err = -ENODEV;
-+ goto release;
-+ }
-+ dev_data = pci_get_drvdata(psdev->dev);
-+ /* the driver data for a device should never be null at this point */
-+ if (!dev_data) {
-+ err = -ENXIO;
-+ goto release;
-+ }
-+ if (!dev_data->permissive) {
-+ dev_data->permissive = 1;
-+ /* Let user know that what they're doing could be unsafe */
-+ dev_warn(&psdev->dev->dev,
-+ "enabling permissive mode configuration space accesses!\n");
-+ dev_warn(&psdev->dev->dev,
-+ "permissive mode is potentially unsafe!\n");
-+ }
-+ release:
-+ pcistub_device_put(psdev);
-+ out:
-+ if (!err)
-+ err = count;
-+ return err;
-+}
-+
-+static ssize_t permissive_show(struct device_driver *drv, char *buf)
-+{
-+ struct pcistub_device *psdev;
-+ struct pciback_dev_data *dev_data;
-+ size_t count = 0;
-+ unsigned long flags;
-+ spin_lock_irqsave(&pcistub_devices_lock, flags);
-+ list_for_each_entry(psdev, &pcistub_devices, dev_list) {
-+ if (count >= PAGE_SIZE)
-+ break;
-+ if (!psdev->dev)
-+ continue;
-+ dev_data = pci_get_drvdata(psdev->dev);
-+ if (!dev_data || !dev_data->permissive)
-+ continue;
-+ count +=
-+ scnprintf(buf + count, PAGE_SIZE - count, "%s\n",
-+ pci_name(psdev->dev));
-+ }
-+ spin_unlock_irqrestore(&pcistub_devices_lock, flags);
-+ return count;
-+}
-+static DRIVER_ATTR(permissive, S_IRUSR | S_IWUSR, permissive_show, permissive_add);
-+
-+#ifdef CONFIG_PCI_MSI
-+
-+int pciback_get_owner(struct pci_dev *dev)
-+{
-+ struct pcistub_device *psdev;
-+
-+ psdev = pcistub_device_find(pci_domain_nr(dev->bus), dev->bus->number,
-+ PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
-+
-+ if (!psdev || !psdev->pdev)
-+ return -1;
-+
-+ return psdev->pdev->xdev->otherend_id;
-+}
-+#endif
-+
-+static void pcistub_exit(void)
-+{
-+ driver_remove_file(&pciback_pci_driver.driver, &driver_attr_new_slot);
-+ driver_remove_file(&pciback_pci_driver.driver,
-+ &driver_attr_remove_slot);
-+ driver_remove_file(&pciback_pci_driver.driver, &driver_attr_slots);
-+ driver_remove_file(&pciback_pci_driver.driver, &driver_attr_quirks);
-+ driver_remove_file(&pciback_pci_driver.driver, &driver_attr_permissive);
-+
-+ pci_unregister_driver(&pciback_pci_driver);
-+ WARN_ON(unregister_msi_get_owner(pciback_get_owner));
-+}
-+
-+static int __init pcistub_init(void)
-+{
-+ int pos = 0;
-+ int err = 0;
-+ int domain, bus, slot, func;
-+ int parsed;
-+
-+ if (pci_devs_to_hide && *pci_devs_to_hide) {
-+ do {
-+ parsed = 0;
-+
-+ err = sscanf(pci_devs_to_hide + pos,
-+ " (%x:%x:%x.%x) %n",
-+ &domain, &bus, &slot, &func, &parsed);
-+ if (err != 4) {
-+ domain = 0;
-+ err = sscanf(pci_devs_to_hide + pos,
-+ " (%x:%x.%x) %n",
-+ &bus, &slot, &func, &parsed);
-+ if (err != 3)
-+ goto parse_error;
-+ }
-+
-+ err = pcistub_device_id_add(domain, bus, slot, func);
-+ if (err)
-+ goto out;
-+
-+ /* if parsed<=0, we've reached the end of the string */
-+ pos += parsed;
-+ } while (parsed > 0 && pci_devs_to_hide[pos]);
-+ }
-+
-+ /* If we're the first PCI Device Driver to register, we're the
-+ * first one to get offered PCI devices as they become
-+ * available (and thus we can be the first to grab them)
-+ */
-+ err = pci_register_driver(&pciback_pci_driver);
-+ if (err < 0)
-+ goto out;
-+
-+ err = driver_create_file(&pciback_pci_driver.driver,
-+ &driver_attr_new_slot);
-+ if (!err)
-+ err = driver_create_file(&pciback_pci_driver.driver,
-+ &driver_attr_remove_slot);
-+ if (!err)
-+ err = driver_create_file(&pciback_pci_driver.driver,
-+ &driver_attr_slots);
-+ if (!err)
-+ err = driver_create_file(&pciback_pci_driver.driver,
-+ &driver_attr_quirks);
-+ if (!err)
-+ err = driver_create_file(&pciback_pci_driver.driver,
-+ &driver_attr_permissive);
-+
-+ if (!err)
-+ err = register_msi_get_owner(pciback_get_owner);
-+ if (err)
-+ pcistub_exit();
-+
-+ out:
-+ return err;
-+
-+ parse_error:
-+ printk(KERN_ERR "pciback: Error parsing pci_devs_to_hide at \"%s\"\n",
-+ pci_devs_to_hide + pos);
-+ return -EINVAL;
-+}
-+
-+#ifndef MODULE
-+/*
-+ * fs_initcall happens before device_initcall
-+ * so pciback *should* get called first (b/c we
-+ * want to suck up any device before other drivers
-+ * get a chance by being the first pci device
-+ * driver to register)
-+ */
-+fs_initcall(pcistub_init);
-+#endif
-+
-+static int __init pciback_init(void)
-+{
-+ int err;
-+
-+ err = pciback_config_init();
-+ if (err)
-+ return err;
-+
-+#ifdef MODULE
-+ err = pcistub_init();
-+ if (err < 0)
-+ return err;
-+#endif
-+
-+ pcistub_init_devices_late();
-+ err = pciback_xenbus_register();
-+ if (err)
-+ pcistub_exit();
-+
-+ return err;
-+}
-+
-+static void __exit pciback_cleanup(void)
-+{
-+ pciback_xenbus_unregister();
-+ pcistub_exit();
-+}
-+
-+module_init(pciback_init);
-+module_exit(pciback_cleanup);
-+
-+MODULE_LICENSE("Dual BSD/GPL");
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/pciback.h 2009-03-18 10:39:32.000000000 +0100
-@@ -0,0 +1,126 @@
-+/*
-+ * PCI Backend Common Data Structures & Function Declarations
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+#ifndef __XEN_PCIBACK_H__
-+#define __XEN_PCIBACK_H__
-+
-+#include <linux/pci.h>
-+#include <linux/interrupt.h>
-+#include <xen/xenbus.h>
-+#include <linux/list.h>
-+#include <linux/spinlock.h>
-+#include <linux/workqueue.h>
-+#include <asm/atomic.h>
-+#include <xen/interface/io/pciif.h>
-+
-+struct pci_dev_entry {
-+ struct list_head list;
-+ struct pci_dev *dev;
-+};
-+
-+#define _PDEVF_op_active (0)
-+#define PDEVF_op_active (1<<(_PDEVF_op_active))
-+#define _PCIB_op_pending (1)
-+#define PCIB_op_pending (1<<(_PCIB_op_pending))
-+
-+struct pciback_device {
-+ void *pci_dev_data;
-+ spinlock_t dev_lock;
-+
-+ struct xenbus_device *xdev;
-+
-+ struct xenbus_watch be_watch;
-+ u8 be_watching;
-+
-+ int evtchn_irq;
-+
-+ struct vm_struct *sh_area;
-+ struct xen_pci_sharedinfo *sh_info;
-+
-+ unsigned long flags;
-+
-+ struct work_struct op_work;
-+};
-+
-+struct pciback_dev_data {
-+ struct list_head config_fields;
-+ int permissive;
-+ int warned_on_write;
-+};
-+
-+/* Get/Put PCI Devices that are hidden from the PCI Backend Domain */
-+struct pci_dev *pcistub_get_pci_dev_by_slot(struct pciback_device *pdev,
-+ int domain, int bus,
-+ int slot, int func);
-+struct pci_dev *pcistub_get_pci_dev(struct pciback_device *pdev,
-+ struct pci_dev *dev);
-+void pcistub_put_pci_dev(struct pci_dev *dev);
-+
-+/* Ensure a device is turned off or reset */
-+void pciback_reset_device(struct pci_dev *pdev);
-+
-+/* Access a virtual configuration space for a PCI device */
-+int pciback_config_init(void);
-+int pciback_config_init_dev(struct pci_dev *dev);
-+void pciback_config_free_dyn_fields(struct pci_dev *dev);
-+void pciback_config_reset_dev(struct pci_dev *dev);
-+void pciback_config_free_dev(struct pci_dev *dev);
-+int pciback_config_read(struct pci_dev *dev, int offset, int size,
-+ u32 * ret_val);
-+int pciback_config_write(struct pci_dev *dev, int offset, int size, u32 value);
-+
-+/* Handle requests for specific devices from the frontend */
-+typedef int (*publish_pci_dev_cb) (struct pciback_device *pdev,
-+ unsigned int domain, unsigned int bus,
-+ unsigned int devfn, unsigned int devid);
-+typedef int (*publish_pci_root_cb) (struct pciback_device * pdev,
-+ unsigned int domain, unsigned int bus);
-+int pciback_add_pci_dev(struct pciback_device *pdev, struct pci_dev *dev,
-+ int devid, publish_pci_dev_cb publish_cb);
-+void pciback_release_pci_dev(struct pciback_device *pdev, struct pci_dev *dev);
-+struct pci_dev *pciback_get_pci_dev(struct pciback_device *pdev,
-+ unsigned int domain, unsigned int bus,
-+ unsigned int devfn);
-+
-+/**
-+* Add for domain0 PCIE-AER handling. Get guest domain/bus/devfn in pciback
-+* before sending aer request to pcifront, so that guest could identify
-+* device, coopearte with pciback to finish aer recovery job if device driver
-+* has the capability
-+*/
-+
-+int pciback_get_pcifront_dev(struct pci_dev *pcidev, struct pciback_device *pdev,
-+ unsigned int *domain, unsigned int *bus, unsigned int *devfn);
-+int pciback_init_devices(struct pciback_device *pdev);
-+int pciback_publish_pci_roots(struct pciback_device *pdev,
-+ publish_pci_root_cb cb);
-+void pciback_release_devices(struct pciback_device *pdev);
-+
-+/* Handles events from front-end */
-+irqreturn_t pciback_handle_event(int irq, void *dev_id, struct pt_regs *regs);
-+void pciback_do_op(void *data);
-+
-+int pciback_xenbus_register(void);
-+void pciback_xenbus_unregister(void);
-+
-+#ifdef CONFIG_PCI_MSI
-+int pciback_enable_msi(struct pciback_device *pdev,
-+ struct pci_dev *dev, struct xen_pci_op *op);
-+
-+int pciback_disable_msi(struct pciback_device *pdev,
-+ struct pci_dev *dev, struct xen_pci_op *op);
-+
-+
-+int pciback_enable_msix(struct pciback_device *pdev,
-+ struct pci_dev *dev, struct xen_pci_op *op);
-+
-+int pciback_disable_msix(struct pciback_device *pdev,
-+ struct pci_dev *dev, struct xen_pci_op *op);
-+#endif
-+extern int verbose_request;
-+
-+void test_and_schedule_op(struct pciback_device *pdev);
-+#endif
-+
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/pciback_ops.c 2011-02-17 09:58:10.000000000 +0100
-@@ -0,0 +1,142 @@
-+/*
-+ * PCI Backend Operations - respond to PCI requests from Frontend
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+#include <linux/module.h>
-+#include <linux/wait.h>
-+#include <asm/bitops.h>
-+#include <xen/evtchn.h>
-+#include "pciback.h"
-+
-+int verbose_request = 0;
-+module_param(verbose_request, int, 0644);
-+
-+/* Ensure a device is "turned off" and ready to be exported.
-+ * (Also see pciback_config_reset to ensure virtual configuration space is
-+ * ready to be re-exported)
-+ */
-+void pciback_reset_device(struct pci_dev *dev)
-+{
-+ u16 cmd;
-+
-+ /* Disable devices (but not bridges) */
-+ if (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) {
-+#ifdef CONFIG_PCI_MSI
-+ /* The guest could have been abruptly killed without
-+ * disabling MSI/MSI-X interrupts.*/
-+ if (dev->msix_enabled)
-+ pci_disable_msix(dev);
-+ if (dev->msi_enabled)
-+ pci_disable_msi(dev);
-+#endif
-+ pci_disable_device(dev);
-+
-+ pci_write_config_word(dev, PCI_COMMAND, 0);
-+
-+ dev->is_enabled = 0;
-+ dev->is_busmaster = 0;
-+ } else {
-+ pci_read_config_word(dev, PCI_COMMAND, &cmd);
-+ if (cmd & (PCI_COMMAND_INVALIDATE)) {
-+ cmd &= ~(PCI_COMMAND_INVALIDATE);
-+ pci_write_config_word(dev, PCI_COMMAND, cmd);
-+
-+ dev->is_busmaster = 0;
-+ }
-+ }
-+}
-+extern wait_queue_head_t aer_wait_queue;
-+extern struct workqueue_struct *pciback_wq;
-+/*
-+* Now the same evtchn is used for both pcifront conf_read_write request
-+* as well as pcie aer front end ack. We use a new work_queue to schedule
-+* pciback conf_read_write service for avoiding confict with aer_core
-+* do_recovery job which also use the system default work_queue
-+*/
-+void test_and_schedule_op(struct pciback_device *pdev)
-+{
-+ /* Check that frontend is requesting an operation and that we are not
-+ * already processing a request */
-+ if (test_bit(_XEN_PCIF_active, (unsigned long *)&pdev->sh_info->flags)
-+ && !test_and_set_bit(_PDEVF_op_active, &pdev->flags))
-+ {
-+ queue_work(pciback_wq, &pdev->op_work);
-+ }
-+ /*_XEN_PCIB_active should have been cleared by pcifront. And also make
-+ sure pciback is waiting for ack by checking _PCIB_op_pending*/
-+ if (!test_bit(_XEN_PCIB_active,(unsigned long *)&pdev->sh_info->flags)
-+ &&test_bit(_PCIB_op_pending, &pdev->flags)) {
-+ wake_up(&aer_wait_queue);
-+ }
-+}
-+
-+/* Performing the configuration space reads/writes must not be done in atomic
-+ * context because some of the pci_* functions can sleep (mostly due to ACPI
-+ * use of semaphores). This function is intended to be called from a work
-+ * queue in process context taking a struct pciback_device as a parameter */
-+void pciback_do_op(void *data)
-+{
-+ struct pciback_device *pdev = data;
-+ struct pci_dev *dev;
-+ struct xen_pci_op *op = &pdev->sh_info->op;
-+
-+ dev = pciback_get_pci_dev(pdev, op->domain, op->bus, op->devfn);
-+
-+ if (dev == NULL)
-+ op->err = XEN_PCI_ERR_dev_not_found;
-+ else
-+ {
-+ switch (op->cmd)
-+ {
-+ case XEN_PCI_OP_conf_read:
-+ op->err = pciback_config_read(dev,
-+ op->offset, op->size, &op->value);
-+ break;
-+ case XEN_PCI_OP_conf_write:
-+ op->err = pciback_config_write(dev,
-+ op->offset, op->size, op->value);
-+ break;
-+#ifdef CONFIG_PCI_MSI
-+ case XEN_PCI_OP_enable_msi:
-+ op->err = pciback_enable_msi(pdev, dev, op);
-+ break;
-+ case XEN_PCI_OP_disable_msi:
-+ op->err = pciback_disable_msi(pdev, dev, op);
-+ break;
-+ case XEN_PCI_OP_enable_msix:
-+ op->err = pciback_enable_msix(pdev, dev, op);
-+ break;
-+ case XEN_PCI_OP_disable_msix:
-+ op->err = pciback_disable_msix(pdev, dev, op);
-+ break;
-+#endif
-+ default:
-+ op->err = XEN_PCI_ERR_not_implemented;
-+ break;
-+ }
-+ }
-+ /* Tell the driver domain that we're done. */
-+ wmb();
-+ clear_bit(_XEN_PCIF_active, (unsigned long *)&pdev->sh_info->flags);
-+ notify_remote_via_irq(pdev->evtchn_irq);
-+
-+ /* Mark that we're done. */
-+ smp_mb__before_clear_bit(); /* /after/ clearing PCIF_active */
-+ clear_bit(_PDEVF_op_active, &pdev->flags);
-+ smp_mb__after_clear_bit(); /* /before/ final check for work */
-+
-+ /* Check to see if the driver domain tried to start another request in
-+ * between clearing _XEN_PCIF_active and clearing _PDEVF_op_active.
-+ */
-+ test_and_schedule_op(pdev);
-+}
-+
-+irqreturn_t pciback_handle_event(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+ struct pciback_device *pdev = dev_id;
-+
-+ test_and_schedule_op(pdev);
-+
-+ return IRQ_HANDLED;
-+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/slot.c 2009-03-18 10:39:32.000000000 +0100
++++ b/drivers/xen/xen-pciback/slot.c 2009-03-18 10:39:32.000000000 +0100
@@ -0,0 +1,187 @@
+/*
+ * PCI Backend - Provides a Virtual PCI bus (with real devices)
@@ -28307,964 +25057,6 @@ and in case upstream wants to take the forward porting patches:
+
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/vpci.c 2011-06-30 15:37:44.000000000 +0200
-@@ -0,0 +1,242 @@
-+/*
-+ * PCI Backend - Provides a Virtual PCI bus (with real devices)
-+ * to the frontend
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+
-+#include <linux/list.h>
-+#include <linux/slab.h>
-+#include <linux/pci.h>
-+#include <linux/spinlock.h>
-+#include "pciback.h"
-+
-+#define PCI_SLOT_MAX 32
-+
-+struct vpci_dev_data {
-+ /* Access to dev_list must be protected by lock */
-+ struct list_head dev_list[PCI_SLOT_MAX];
-+ spinlock_t lock;
-+};
-+
-+static inline struct list_head *list_first(struct list_head *head)
-+{
-+ return head->next;
-+}
-+
-+struct pci_dev *pciback_get_pci_dev(struct pciback_device *pdev,
-+ unsigned int domain, unsigned int bus,
-+ unsigned int devfn)
-+{
-+ struct pci_dev_entry *entry;
-+ struct pci_dev *dev = NULL;
-+ struct vpci_dev_data *vpci_dev = pdev->pci_dev_data;
-+ unsigned long flags;
-+
-+ if (domain != 0 || bus != 0)
-+ return NULL;
-+
-+ if (PCI_SLOT(devfn) < PCI_SLOT_MAX) {
-+ spin_lock_irqsave(&vpci_dev->lock, flags);
-+
-+ list_for_each_entry(entry,
-+ &vpci_dev->dev_list[PCI_SLOT(devfn)],
-+ list) {
-+ if (PCI_FUNC(entry->dev->devfn) == PCI_FUNC(devfn)) {
-+ dev = entry->dev;
-+ break;
-+ }
-+ }
-+
-+ spin_unlock_irqrestore(&vpci_dev->lock, flags);
-+ }
-+ return dev;
-+}
-+
-+static inline int match_slot(struct pci_dev *l, struct pci_dev *r)
-+{
-+ if (pci_domain_nr(l->bus) == pci_domain_nr(r->bus)
-+ && l->bus == r->bus && PCI_SLOT(l->devfn) == PCI_SLOT(r->devfn))
-+ return 1;
-+
-+ return 0;
-+}
-+
-+int pciback_add_pci_dev(struct pciback_device *pdev, struct pci_dev *dev,
-+ int devid, publish_pci_dev_cb publish_cb)
-+{
-+ int err = 0, slot, func;
-+ struct pci_dev_entry *t, *dev_entry;
-+ struct vpci_dev_data *vpci_dev = pdev->pci_dev_data;
-+ unsigned long flags;
-+
-+ if ((dev->class >> 24) == PCI_BASE_CLASS_BRIDGE) {
-+ err = -EFAULT;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Can't export bridges on the virtual PCI bus");
-+ goto out;
-+ }
-+
-+ dev_entry = kmalloc(sizeof(*dev_entry), GFP_KERNEL);
-+ if (!dev_entry) {
-+ err = -ENOMEM;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error adding entry to virtual PCI bus");
-+ goto out;
-+ }
-+
-+ dev_entry->dev = dev;
-+
-+ spin_lock_irqsave(&vpci_dev->lock, flags);
-+
-+ /* Keep multi-function devices together on the virtual PCI bus */
-+ for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
-+ if (!list_empty(&vpci_dev->dev_list[slot])) {
-+ t = list_entry(list_first(&vpci_dev->dev_list[slot]),
-+ struct pci_dev_entry, list);
-+
-+ if (match_slot(dev, t->dev)) {
-+ pr_info("pciback: vpci: %s: "
-+ "assign to virtual slot %d func %d\n",
-+ pci_name(dev), slot,
-+ PCI_FUNC(dev->devfn));
-+ list_add_tail(&dev_entry->list,
-+ &vpci_dev->dev_list[slot]);
-+ func = PCI_FUNC(dev->devfn);
-+ goto unlock;
-+ }
-+ }
-+ }
-+
-+ /* Assign to a new slot on the virtual PCI bus */
-+ for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
-+ if (list_empty(&vpci_dev->dev_list[slot])) {
-+ printk(KERN_INFO
-+ "pciback: vpci: %s: assign to virtual slot %d\n",
-+ pci_name(dev), slot);
-+ list_add_tail(&dev_entry->list,
-+ &vpci_dev->dev_list[slot]);
-+ func = PCI_FUNC(dev->devfn);
-+ goto unlock;
-+ }
-+ }
-+
-+ err = -ENOMEM;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "No more space on root virtual PCI bus");
-+
-+ unlock:
-+ spin_unlock_irqrestore(&vpci_dev->lock, flags);
-+
-+ /* Publish this device. */
-+ if(!err)
-+ err = publish_cb(pdev, 0, 0, PCI_DEVFN(slot, func), devid);
-+
-+ out:
-+ return err;
-+}
-+
-+void pciback_release_pci_dev(struct pciback_device *pdev, struct pci_dev *dev)
-+{
-+ int slot;
-+ struct vpci_dev_data *vpci_dev = pdev->pci_dev_data;
-+ struct pci_dev *found_dev = NULL;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&vpci_dev->lock, flags);
-+
-+ for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
-+ struct pci_dev_entry *e;
-+
-+ list_for_each_entry(e, &vpci_dev->dev_list[slot], list) {
-+ if (e->dev == dev) {
-+ list_del(&e->list);
-+ found_dev = e->dev;
-+ kfree(e);
-+ goto out;
-+ }
-+ }
-+ }
-+
-+ out:
-+ spin_unlock_irqrestore(&vpci_dev->lock, flags);
-+
-+ if (found_dev)
-+ pcistub_put_pci_dev(found_dev);
-+}
-+
-+int pciback_init_devices(struct pciback_device *pdev)
-+{
-+ int slot;
-+ struct vpci_dev_data *vpci_dev;
-+
-+ vpci_dev = kmalloc(sizeof(*vpci_dev), GFP_KERNEL);
-+ if (!vpci_dev)
-+ return -ENOMEM;
-+
-+ spin_lock_init(&vpci_dev->lock);
-+
-+ for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
-+ INIT_LIST_HEAD(&vpci_dev->dev_list[slot]);
-+ }
-+
-+ pdev->pci_dev_data = vpci_dev;
-+
-+ return 0;
-+}
-+
-+int pciback_publish_pci_roots(struct pciback_device *pdev,
-+ publish_pci_root_cb publish_cb)
-+{
-+ /* The Virtual PCI bus has only one root */
-+ return publish_cb(pdev, 0, 0);
-+}
-+
-+void pciback_release_devices(struct pciback_device *pdev)
-+{
-+ int slot;
-+ struct vpci_dev_data *vpci_dev = pdev->pci_dev_data;
-+
-+ for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
-+ struct pci_dev_entry *e, *tmp;
-+ list_for_each_entry_safe(e, tmp, &vpci_dev->dev_list[slot],
-+ list) {
-+ list_del(&e->list);
-+ pcistub_put_pci_dev(e->dev);
-+ kfree(e);
-+ }
-+ }
-+
-+ kfree(vpci_dev);
-+ pdev->pci_dev_data = NULL;
-+}
-+
-+int pciback_get_pcifront_dev(struct pci_dev *pcidev, struct pciback_device *pdev,
-+ unsigned int *domain, unsigned int *bus, unsigned int *devfn)
-+{
-+ struct pci_dev_entry *entry;
-+ struct pci_dev *dev = NULL;
-+ struct vpci_dev_data *vpci_dev = pdev->pci_dev_data;
-+ unsigned long flags;
-+ int found = 0, slot;
-+
-+ spin_lock_irqsave(&vpci_dev->lock, flags);
-+ for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
-+ list_for_each_entry(entry,
-+ &vpci_dev->dev_list[slot],
-+ list) {
-+ dev = entry->dev;
-+ if (dev && dev->bus->number == pcidev->bus->number
-+ && pci_domain_nr(dev->bus) == pci_domain_nr(pcidev->bus)
-+ && dev->devfn == pcidev->devfn)
-+ {
-+ found = 1;
-+ *domain = 0;
-+ *bus = 0;
-+ *devfn = PCI_DEVFN(slot, PCI_FUNC(pcidev->devfn));
-+ }
-+ }
-+ }
-+ spin_unlock_irqrestore(&vpci_dev->lock, flags);
-+ return found;
-+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/pciback/xenbus.c 2009-04-07 13:58:48.000000000 +0200
-@@ -0,0 +1,710 @@
-+/*
-+ * PCI Backend Xenbus Setup - handles setup with frontend and xend
-+ *
-+ * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
-+ */
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/list.h>
-+#include <linux/vmalloc.h>
-+#include <xen/xenbus.h>
-+#include <xen/evtchn.h>
-+#include "pciback.h"
-+
-+#define INVALID_EVTCHN_IRQ (-1)
-+struct workqueue_struct *pciback_wq;
-+
-+static struct pciback_device *alloc_pdev(struct xenbus_device *xdev)
-+{
-+ struct pciback_device *pdev;
-+
-+ pdev = kzalloc(sizeof(struct pciback_device), GFP_KERNEL);
-+ if (pdev == NULL)
-+ goto out;
-+ dev_dbg(&xdev->dev, "allocated pdev @ 0x%p\n", pdev);
-+
-+ pdev->xdev = xdev;
-+ xdev->dev.driver_data = pdev;
-+
-+ spin_lock_init(&pdev->dev_lock);
-+
-+ pdev->sh_area = NULL;
-+ pdev->sh_info = NULL;
-+ pdev->evtchn_irq = INVALID_EVTCHN_IRQ;
-+ pdev->be_watching = 0;
-+
-+ INIT_WORK(&pdev->op_work, pciback_do_op, pdev);
-+
-+ if (pciback_init_devices(pdev)) {
-+ kfree(pdev);
-+ pdev = NULL;
-+ }
-+ out:
-+ return pdev;
-+}
-+
-+static void pciback_disconnect(struct pciback_device *pdev)
-+{
-+ spin_lock(&pdev->dev_lock);
-+
-+ /* Ensure the guest can't trigger our handler before removing devices */
-+ if (pdev->evtchn_irq != INVALID_EVTCHN_IRQ) {
-+ unbind_from_irqhandler(pdev->evtchn_irq, pdev);
-+ pdev->evtchn_irq = INVALID_EVTCHN_IRQ;
-+ }
-+
-+ /* If the driver domain started an op, make sure we complete it
-+ * before releasing the shared memory */
-+ flush_workqueue(pciback_wq);
-+
-+ if (pdev->sh_info != NULL) {
-+ xenbus_unmap_ring_vfree(pdev->xdev, pdev->sh_area);
-+ pdev->sh_info = NULL;
-+ }
-+
-+ spin_unlock(&pdev->dev_lock);
-+}
-+
-+static void free_pdev(struct pciback_device *pdev)
-+{
-+ if (pdev->be_watching)
-+ unregister_xenbus_watch(&pdev->be_watch);
-+
-+ pciback_disconnect(pdev);
-+
-+ pciback_release_devices(pdev);
-+
-+ pdev->xdev->dev.driver_data = NULL;
-+ pdev->xdev = NULL;
-+
-+ kfree(pdev);
-+}
-+
-+static int pciback_do_attach(struct pciback_device *pdev, int gnt_ref,
-+ int remote_evtchn)
-+{
-+ int err = 0;
-+ struct vm_struct *area;
-+
-+ dev_dbg(&pdev->xdev->dev,
-+ "Attaching to frontend resources - gnt_ref=%d evtchn=%d\n",
-+ gnt_ref, remote_evtchn);
-+
-+ area = xenbus_map_ring_valloc(pdev->xdev, gnt_ref);
-+ if (IS_ERR(area)) {
-+ err = PTR_ERR(area);
-+ goto out;
-+ }
-+ pdev->sh_area = area;
-+ pdev->sh_info = area->addr;
-+
-+ err = bind_interdomain_evtchn_to_irqhandler(
-+ pdev->xdev->otherend_id, remote_evtchn, pciback_handle_event,
-+ SA_SAMPLE_RANDOM, "pciback", pdev);
-+ if (err < 0) {
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error binding event channel to IRQ");
-+ goto out;
-+ }
-+ pdev->evtchn_irq = err;
-+ err = 0;
-+
-+ dev_dbg(&pdev->xdev->dev, "Attached!\n");
-+ out:
-+ return err;
-+}
-+
-+static int pciback_attach(struct pciback_device *pdev)
-+{
-+ int err = 0;
-+ int gnt_ref, remote_evtchn;
-+ char *magic = NULL;
-+
-+ spin_lock(&pdev->dev_lock);
-+
-+ /* Make sure we only do this setup once */
-+ if (xenbus_read_driver_state(pdev->xdev->nodename) !=
-+ XenbusStateInitialised)
-+ goto out;
-+
-+ /* Wait for frontend to state that it has published the configuration */
-+ if (xenbus_read_driver_state(pdev->xdev->otherend) !=
-+ XenbusStateInitialised)
-+ goto out;
-+
-+ dev_dbg(&pdev->xdev->dev, "Reading frontend config\n");
-+
-+ err = xenbus_gather(XBT_NIL, pdev->xdev->otherend,
-+ "pci-op-ref", "%u", &gnt_ref,
-+ "event-channel", "%u", &remote_evtchn,
-+ "magic", NULL, &magic, NULL);
-+ if (err) {
-+ /* If configuration didn't get read correctly, wait longer */
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error reading configuration from frontend");
-+ goto out;
-+ }
-+
-+ if (magic == NULL || strcmp(magic, XEN_PCI_MAGIC) != 0) {
-+ xenbus_dev_fatal(pdev->xdev, -EFAULT,
-+ "version mismatch (%s/%s) with pcifront - "
-+ "halting pciback",
-+ magic, XEN_PCI_MAGIC);
-+ goto out;
-+ }
-+
-+ err = pciback_do_attach(pdev, gnt_ref, remote_evtchn);
-+ if (err)
-+ goto out;
-+
-+ dev_dbg(&pdev->xdev->dev, "Connecting...\n");
-+
-+ err = xenbus_switch_state(pdev->xdev, XenbusStateConnected);
-+ if (err)
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error switching to connected state!");
-+
-+ dev_dbg(&pdev->xdev->dev, "Connected? %d\n", err);
-+ out:
-+ spin_unlock(&pdev->dev_lock);
-+
-+ if (magic)
-+ kfree(magic);
-+
-+ return err;
-+}
-+
-+static int pciback_publish_pci_dev(struct pciback_device *pdev,
-+ unsigned int domain, unsigned int bus,
-+ unsigned int devfn, unsigned int devid)
-+{
-+ int err;
-+ int len;
-+ char str[64];
-+
-+ len = snprintf(str, sizeof(str), "vdev-%d", devid);
-+ if (unlikely(len >= (sizeof(str) - 1))) {
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+
-+ err = xenbus_printf(XBT_NIL, pdev->xdev->nodename, str,
-+ "%04x:%02x:%02x.%02x", domain, bus,
-+ PCI_SLOT(devfn), PCI_FUNC(devfn));
-+
-+ out:
-+ return err;
-+}
-+
-+static int pciback_export_device(struct pciback_device *pdev,
-+ int domain, int bus, int slot, int func,
-+ int devid)
-+{
-+ struct pci_dev *dev;
-+ int err = 0;
-+
-+ dev_dbg(&pdev->xdev->dev, "exporting dom %x bus %x slot %x func %x\n",
-+ domain, bus, slot, func);
-+
-+ dev = pcistub_get_pci_dev_by_slot(pdev, domain, bus, slot, func);
-+ if (!dev) {
-+ err = -EINVAL;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Couldn't locate PCI device "
-+ "(%04x:%02x:%02x.%01x)! "
-+ "perhaps already in-use?",
-+ domain, bus, slot, func);
-+ goto out;
-+ }
-+
-+ err = pciback_add_pci_dev(pdev, dev, devid, pciback_publish_pci_dev);
-+ if (err)
-+ goto out;
-+
-+ /* TODO: It'd be nice to export a bridge and have all of its children
-+ * get exported with it. This may be best done in xend (which will
-+ * have to calculate resource usage anyway) but we probably want to
-+ * put something in here to ensure that if a bridge gets given to a
-+ * driver domain, that all devices under that bridge are not given
-+ * to other driver domains (as he who controls the bridge can disable
-+ * it and stop the other devices from working).
-+ */
-+ out:
-+ return err;
-+}
-+
-+static int pciback_remove_device(struct pciback_device *pdev,
-+ int domain, int bus, int slot, int func)
-+{
-+ int err = 0;
-+ struct pci_dev *dev;
-+
-+ dev_dbg(&pdev->xdev->dev, "removing dom %x bus %x slot %x func %x\n",
-+ domain, bus, slot, func);
-+
-+ dev = pciback_get_pci_dev(pdev, domain, bus, PCI_DEVFN(slot, func));
-+ if (!dev) {
-+ err = -EINVAL;
-+ dev_dbg(&pdev->xdev->dev, "Couldn't locate PCI device "
-+ "(%04x:%02x:%02x.%01x)! not owned by this domain\n",
-+ domain, bus, slot, func);
-+ goto out;
-+ }
-+
-+ pciback_release_pci_dev(pdev, dev);
-+
-+ out:
-+ return err;
-+}
-+
-+static int pciback_publish_pci_root(struct pciback_device *pdev,
-+ unsigned int domain, unsigned int bus)
-+{
-+ unsigned int d, b;
-+ int i, root_num, len, err;
-+ char str[64];
-+
-+ dev_dbg(&pdev->xdev->dev, "Publishing pci roots\n");
-+
-+ err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename,
-+ "root_num", "%d", &root_num);
-+ if (err == 0 || err == -ENOENT)
-+ root_num = 0;
-+ else if (err < 0)
-+ goto out;
-+
-+ /* Verify that we haven't already published this pci root */
-+ for (i = 0; i < root_num; i++) {
-+ len = snprintf(str, sizeof(str), "root-%d", i);
-+ if (unlikely(len >= (sizeof(str) - 1))) {
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+
-+ err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename,
-+ str, "%x:%x", &d, &b);
-+ if (err < 0)
-+ goto out;
-+ if (err != 2) {
-+ err = -EINVAL;
-+ goto out;
-+ }
-+
-+ if (d == domain && b == bus) {
-+ err = 0;
-+ goto out;
-+ }
-+ }
-+
-+ len = snprintf(str, sizeof(str), "root-%d", root_num);
-+ if (unlikely(len >= (sizeof(str) - 1))) {
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+
-+ dev_dbg(&pdev->xdev->dev, "writing root %d at %04x:%02x\n",
-+ root_num, domain, bus);
-+
-+ err = xenbus_printf(XBT_NIL, pdev->xdev->nodename, str,
-+ "%04x:%02x", domain, bus);
-+ if (err)
-+ goto out;
-+
-+ err = xenbus_printf(XBT_NIL, pdev->xdev->nodename,
-+ "root_num", "%d", (root_num + 1));
-+
-+ out:
-+ return err;
-+}
-+
-+static int pciback_reconfigure(struct pciback_device *pdev)
-+{
-+ int err = 0;
-+ int num_devs;
-+ int domain, bus, slot, func;
-+ int substate;
-+ int i, len;
-+ char state_str[64];
-+ char dev_str[64];
-+
-+ spin_lock(&pdev->dev_lock);
-+
-+ dev_dbg(&pdev->xdev->dev, "Reconfiguring device ...\n");
-+
-+ /* Make sure we only reconfigure once */
-+ if (xenbus_read_driver_state(pdev->xdev->nodename) !=
-+ XenbusStateReconfiguring)
-+ goto out;
-+
-+ err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, "num_devs", "%d",
-+ &num_devs);
-+ if (err != 1) {
-+ if (err >= 0)
-+ err = -EINVAL;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error reading number of devices");
-+ goto out;
-+ }
-+
-+ for (i = 0; i < num_devs; i++) {
-+ len = snprintf(state_str, sizeof(state_str), "state-%d", i);
-+ if (unlikely(len >= (sizeof(state_str) - 1))) {
-+ err = -ENOMEM;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "String overflow while reading "
-+ "configuration");
-+ goto out;
-+ }
-+ err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, state_str,
-+ "%d", &substate);
-+ if (err != 1)
-+ substate = XenbusStateUnknown;
-+
-+ switch (substate) {
-+ case XenbusStateInitialising:
-+ dev_dbg(&pdev->xdev->dev, "Attaching dev-%d ...\n", i);
-+
-+ len = snprintf(dev_str, sizeof(dev_str), "dev-%d", i);
-+ if (unlikely(len >= (sizeof(dev_str) - 1))) {
-+ err = -ENOMEM;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "String overflow while "
-+ "reading configuration");
-+ goto out;
-+ }
-+ err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename,
-+ dev_str, "%x:%x:%x.%x",
-+ &domain, &bus, &slot, &func);
-+ if (err < 0) {
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error reading device "
-+ "configuration");
-+ goto out;
-+ }
-+ if (err != 4) {
-+ err = -EINVAL;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error parsing pci device "
-+ "configuration");
-+ goto out;
-+ }
-+
-+ err = pciback_export_device(pdev, domain, bus, slot,
-+ func, i);
-+ if (err)
-+ goto out;
-+
-+ /* Publish pci roots. */
-+ err = pciback_publish_pci_roots(pdev, pciback_publish_pci_root);
-+ if (err) {
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error while publish PCI root"
-+ "buses for frontend");
-+ goto out;
-+ }
-+
-+ err = xenbus_printf(XBT_NIL, pdev->xdev->nodename,
-+ state_str, "%d",
-+ XenbusStateInitialised);
-+ if (err) {
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error switching substate of "
-+ "dev-%d\n", i);
-+ goto out;
-+ }
-+ break;
-+
-+ case XenbusStateClosing:
-+ dev_dbg(&pdev->xdev->dev, "Detaching dev-%d ...\n", i);
-+
-+ len = snprintf(dev_str, sizeof(dev_str), "vdev-%d", i);
-+ if (unlikely(len >= (sizeof(dev_str) - 1))) {
-+ err = -ENOMEM;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "String overflow while "
-+ "reading configuration");
-+ goto out;
-+ }
-+ err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename,
-+ dev_str, "%x:%x:%x.%x",
-+ &domain, &bus, &slot, &func);
-+ if (err < 0) {
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error reading device "
-+ "configuration");
-+ goto out;
-+ }
-+ if (err != 4) {
-+ err = -EINVAL;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error parsing pci device "
-+ "configuration");
-+ goto out;
-+ }
-+
-+ err = pciback_remove_device(pdev, domain, bus, slot,
-+ func);
-+ if(err)
-+ goto out;
-+
-+ /* TODO: If at some point we implement support for pci
-+ * root hot-remove on pcifront side, we'll need to
-+ * remove unnecessary xenstore nodes of pci roots here.
-+ */
-+
-+ break;
-+
-+ default:
-+ break;
-+ }
-+ }
-+
-+ err = xenbus_switch_state(pdev->xdev, XenbusStateReconfigured);
-+ if (err) {
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error switching to reconfigured state!");
-+ goto out;
-+ }
-+
-+ out:
-+ spin_unlock(&pdev->dev_lock);
-+
-+ return 0;
-+}
-+
-+static void pciback_frontend_changed(struct xenbus_device *xdev,
-+ enum xenbus_state fe_state)
-+{
-+ struct pciback_device *pdev = xdev->dev.driver_data;
-+
-+ dev_dbg(&xdev->dev, "fe state changed %d\n", fe_state);
-+
-+ switch (fe_state) {
-+ case XenbusStateInitialised:
-+ pciback_attach(pdev);
-+ break;
-+
-+ case XenbusStateReconfiguring:
-+ pciback_reconfigure(pdev);
-+ break;
-+
-+ case XenbusStateConnected:
-+ /* pcifront switched its state from reconfiguring to connected.
-+ * Then switch to connected state.
-+ */
-+ xenbus_switch_state(xdev, XenbusStateConnected);
-+ break;
-+
-+ case XenbusStateClosing:
-+ pciback_disconnect(pdev);
-+ xenbus_switch_state(xdev, XenbusStateClosing);
-+ break;
-+
-+ case XenbusStateClosed:
-+ pciback_disconnect(pdev);
-+ xenbus_switch_state(xdev, XenbusStateClosed);
-+ if (xenbus_dev_is_online(xdev))
-+ break;
-+ /* fall through if not online */
-+ case XenbusStateUnknown:
-+ dev_dbg(&xdev->dev, "frontend is gone! unregister device\n");
-+ device_unregister(&xdev->dev);
-+ break;
-+
-+ default:
-+ break;
-+ }
-+}
-+
-+static int pciback_setup_backend(struct pciback_device *pdev)
-+{
-+ /* Get configuration from xend (if available now) */
-+ int domain, bus, slot, func;
-+ int err = 0;
-+ int i, num_devs;
-+ char dev_str[64];
-+ char state_str[64];
-+
-+ spin_lock(&pdev->dev_lock);
-+
-+ /* It's possible we could get the call to setup twice, so make sure
-+ * we're not already connected.
-+ */
-+ if (xenbus_read_driver_state(pdev->xdev->nodename) !=
-+ XenbusStateInitWait)
-+ goto out;
-+
-+ dev_dbg(&pdev->xdev->dev, "getting be setup\n");
-+
-+ err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, "num_devs", "%d",
-+ &num_devs);
-+ if (err != 1) {
-+ if (err >= 0)
-+ err = -EINVAL;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error reading number of devices");
-+ goto out;
-+ }
-+
-+ for (i = 0; i < num_devs; i++) {
-+ int l = snprintf(dev_str, sizeof(dev_str), "dev-%d", i);
-+ if (unlikely(l >= (sizeof(dev_str) - 1))) {
-+ err = -ENOMEM;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "String overflow while reading "
-+ "configuration");
-+ goto out;
-+ }
-+
-+ err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, dev_str,
-+ "%x:%x:%x.%x", &domain, &bus, &slot, &func);
-+ if (err < 0) {
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error reading device configuration");
-+ goto out;
-+ }
-+ if (err != 4) {
-+ err = -EINVAL;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error parsing pci device "
-+ "configuration");
-+ goto out;
-+ }
-+
-+ err = pciback_export_device(pdev, domain, bus, slot, func, i);
-+ if (err)
-+ goto out;
-+
-+ /* Switch substate of this device. */
-+ l = snprintf(state_str, sizeof(state_str), "state-%d", i);
-+ if (unlikely(l >= (sizeof(state_str) - 1))) {
-+ err = -ENOMEM;
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "String overflow while reading "
-+ "configuration");
-+ goto out;
-+ }
-+ err = xenbus_printf(XBT_NIL, pdev->xdev->nodename, state_str,
-+ "%d", XenbusStateInitialised);
-+ if (err) {
-+ xenbus_dev_fatal(pdev->xdev, err, "Error switching "
-+ "substate of dev-%d\n", i);
-+ goto out;
-+ }
-+ }
-+
-+ err = pciback_publish_pci_roots(pdev, pciback_publish_pci_root);
-+ if (err) {
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error while publish PCI root buses "
-+ "for frontend");
-+ goto out;
-+ }
-+
-+ err = xenbus_switch_state(pdev->xdev, XenbusStateInitialised);
-+ if (err)
-+ xenbus_dev_fatal(pdev->xdev, err,
-+ "Error switching to initialised state!");
-+
-+ out:
-+ spin_unlock(&pdev->dev_lock);
-+
-+ if (!err)
-+ /* see if pcifront is already configured (if not, we'll wait) */
-+ pciback_attach(pdev);
-+
-+ return err;
-+}
-+
-+static void pciback_be_watch(struct xenbus_watch *watch,
-+ const char **vec, unsigned int len)
-+{
-+ struct pciback_device *pdev =
-+ container_of(watch, struct pciback_device, be_watch);
-+
-+ switch (xenbus_read_driver_state(pdev->xdev->nodename)) {
-+ case XenbusStateInitWait:
-+ pciback_setup_backend(pdev);
-+ break;
-+
-+ default:
-+ break;
-+ }
-+}
-+
-+static int pciback_xenbus_probe(struct xenbus_device *dev,
-+ const struct xenbus_device_id *id)
-+{
-+ int err = 0;
-+ struct pciback_device *pdev = alloc_pdev(dev);
-+
-+ if (pdev == NULL) {
-+ err = -ENOMEM;
-+ xenbus_dev_fatal(dev, err,
-+ "Error allocating pciback_device struct");
-+ goto out;
-+ }
-+
-+ /* wait for xend to configure us */
-+ err = xenbus_switch_state(dev, XenbusStateInitWait);
-+ if (err)
-+ goto out;
-+
-+ /* watch the backend node for backend configuration information */
-+ err = xenbus_watch_path(dev, dev->nodename, &pdev->be_watch,
-+ pciback_be_watch);
-+ if (err)
-+ goto out;
-+ pdev->be_watching = 1;
-+
-+ /* We need to force a call to our callback here in case
-+ * xend already configured us!
-+ */
-+ pciback_be_watch(&pdev->be_watch, NULL, 0);
-+
-+ out:
-+ return err;
-+}
-+
-+static int pciback_xenbus_remove(struct xenbus_device *dev)
-+{
-+ struct pciback_device *pdev = dev->dev.driver_data;
-+
-+ if (pdev != NULL)
-+ free_pdev(pdev);
-+
-+ return 0;
-+}
-+
-+static const struct xenbus_device_id xenpci_ids[] = {
-+ {"pci"},
-+ {{0}},
-+};
-+
-+static struct xenbus_driver xenbus_pciback_driver = {
-+ .name = "pciback",
-+ .owner = THIS_MODULE,
-+ .ids = xenpci_ids,
-+ .probe = pciback_xenbus_probe,
-+ .remove = pciback_xenbus_remove,
-+ .otherend_changed = pciback_frontend_changed,
-+};
-+
-+int __init pciback_xenbus_register(void)
-+{
-+ if (!is_running_on_xen())
-+ return -ENODEV;
-+ pciback_wq = create_workqueue("pciback_workqueue");
-+ if (!pciback_wq) {
-+ printk(KERN_ERR "pciback_xenbus_register: create"
-+ "pciback_workqueue failed\n");
-+ return -EFAULT;
-+ }
-+ return xenbus_register_backend(&xenbus_pciback_driver);
-+}
-+
-+void __exit pciback_xenbus_unregister(void)
-+{
-+ destroy_workqueue(pciback_wq);
-+ xenbus_unregister_driver(&xenbus_pciback_driver);
-+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ b/drivers/xen/pcifront/Makefile 2007-06-12 13:13:45.000000000 +0200
@@ -0,0 +1,7 @@
+obj-y += pcifront.o
@@ -31375,8 +27167,8 @@ and in case upstream wants to take the forward porting patches:
+
+#endif /* __SCSIIF__BACKEND__COMMON_H__ */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/scsiback/emulate.c 2011-02-02 12:19:11.000000000 +0100
-@@ -0,0 +1,484 @@
++++ b/drivers/xen/scsiback/emulate.c 2011-09-22 14:33:35.000000000 +0200
+@@ -0,0 +1,482 @@
+/*
+ * Xen SCSI backend driver
+ *
@@ -31625,13 +27417,11 @@ and in case upstream wants to take the forward porting patches:
+ alloc_len = sizeof(struct scsi_lun) * alloc_luns
+ + VSCSI_REPORT_LUNS_HEADER;
+retry:
-+ if ((buff = kmalloc(alloc_len, GFP_KERNEL)) == NULL) {
++ if ((buff = kzalloc(alloc_len, GFP_KERNEL)) == NULL) {
+ printk(KERN_ERR "scsiback:%s kmalloc err\n", __FUNCTION__);
+ goto fail;
+ }
+
-+ memset(buff, 0, alloc_len);
-+
+ one_lun = (struct scsi_lun *) &buff[8];
+ spin_lock_irqsave(&info->v2p_lock, flags);
+ list_for_each_entry(entry, head, l) {
@@ -32006,8 +27796,8 @@ and in case upstream wants to take the forward porting patches:
+ kmem_cache_destroy(scsiback_cachep);
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/scsiback/scsiback.c 2011-04-11 13:43:15.000000000 +0200
-@@ -0,0 +1,749 @@
++++ b/drivers/xen/scsiback/scsiback.c 2011-09-22 14:33:35.000000000 +0200
+@@ -0,0 +1,748 @@
+/*
+ * Xen SCSI backend driver
+ *
@@ -32697,7 +28487,7 @@ and in case upstream wants to take the forward porting patches:
+
+ mmap_pages = vscsiif_reqs * VSCSIIF_SG_TABLESIZE;
+
-+ pending_reqs = kmalloc(sizeof(pending_reqs[0]) *
++ pending_reqs = kzalloc(sizeof(pending_reqs[0]) *
+ vscsiif_reqs, GFP_KERNEL);
+ pending_grant_handles = kmalloc(sizeof(pending_grant_handles[0]) *
+ mmap_pages, GFP_KERNEL);
@@ -32712,7 +28502,6 @@ and in case upstream wants to take the forward porting patches:
+ if (scsiback_interface_init() < 0)
+ goto out_of_kmem;
+
-+ memset(pending_reqs, 0, sizeof(pending_reqs));
+ INIT_LIST_HEAD(&pending_free);
+
+ for (i = 0; i < vscsiif_reqs; i++)
@@ -53337,8 +49126,8 @@ and in case upstream wants to take the forward porting patches:
+ kfree(usbif);
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/drivers/xen/usbback/usbback.c 2011-04-11 13:43:15.000000000 +0200
-@@ -0,0 +1,1161 @@
++++ b/drivers/xen/usbback/usbback.c 2011-09-22 14:33:35.000000000 +0200
+@@ -0,0 +1,1160 @@
+/*
+ * usbback.c
+ *
@@ -54446,7 +50235,7 @@ and in case upstream wants to take the forward porting patches:
+ return -ENODEV;
+
+ mmap_pages = usbif_reqs * USBIF_MAX_SEGMENTS_PER_REQUEST;
-+ pending_reqs = kmalloc(sizeof(pending_reqs[0]) *
++ pending_reqs = kzalloc(sizeof(pending_reqs[0]) *
+ usbif_reqs, GFP_KERNEL);
+ pending_grant_handles = kmalloc(sizeof(pending_grant_handles[0]) *
+ mmap_pages, GFP_KERNEL);
@@ -54460,7 +50249,6 @@ and in case upstream wants to take the forward porting patches:
+ for (i = 0; i < mmap_pages; i++)
+ pending_grant_handles[i] = USBBACK_INVALID_HANDLE;
+
-+ memset(pending_reqs, 0, sizeof(pending_reqs));
+ INIT_LIST_HEAD(&pending_free);
+
+ for (i = 0; i < usbif_reqs; i++)
diff --git a/patches.xen/xen3-auto-xen-kconfig.diff b/patches.xen/xen3-auto-xen-kconfig.diff
index e2b0c0996f..63b904fa6d 100644
--- a/patches.xen/xen3-auto-xen-kconfig.diff
+++ b/patches.xen/xen3-auto-xen-kconfig.diff
@@ -1,10 +1,10 @@
Subject: xen3 xen-kconfig
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-07 13:57:00.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-07 14:37:06.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-07 14:37:06.000000000 +0200
@@ -89,6 +89,7 @@ config ARCH_DEFCONFIG
config GENERIC_CMOS_UPDATE
@@ -344,8 +344,8 @@ Acked-by: jbeulich@novell.com
+source "drivers/xen/Kconfig"
+
source "lib/Kconfig"
---- head-2011-09-07.orig/arch/x86/Kconfig.cpu 2011-09-07 13:56:13.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig.cpu 2011-09-07 14:37:08.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig.cpu 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig.cpu 2011-09-07 14:37:08.000000000 +0200
@@ -341,7 +341,7 @@ config X86_PPRO_FENCE
config X86_F00F_BUG
@@ -363,8 +363,8 @@ Acked-by: jbeulich@novell.com
config X86_CMPXCHG64
def_bool y
---- head-2011-09-07.orig/arch/x86/Kconfig.debug 2011-07-22 04:17:23.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig.debug 2011-06-30 15:35:42.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig.debug 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig.debug 2011-06-30 15:35:42.000000000 +0200
@@ -119,7 +119,7 @@ config DEBUG_NX_TEST
config DOUBLEFAULT
default y
@@ -374,9 +374,9 @@ Acked-by: jbeulich@novell.com
---help---
This option allows trapping of rare doublefault exceptions that
would otherwise cause a system to silently reboot. Disabling this
---- head-2011-09-07.orig/drivers/acpi/Kconfig 2011-07-22 04:17:23.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/Kconfig 2011-06-30 15:35:53.000000000 +0200
-@@ -308,6 +308,7 @@ config ACPI_PCI_SLOT
+--- head-2011-09-23.orig/drivers/acpi/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/acpi/Kconfig 2011-09-23 09:45:08.000000000 +0200
+@@ -318,6 +318,7 @@ config ACPI_PCI_SLOT
config X86_PM_TIMER
bool "Power Management Timer Support" if EXPERT
depends on X86
@@ -384,7 +384,7 @@ Acked-by: jbeulich@novell.com
default y
help
The Power Management Timer is available on all ACPI-capable,
-@@ -386,4 +387,13 @@ config ACPI_CUSTOM_METHOD
+@@ -396,4 +397,13 @@ config ACPI_CUSTOM_METHOD
source "drivers/acpi/apei/Kconfig"
@@ -398,8 +398,8 @@ Acked-by: jbeulich@novell.com
+ depends on (X86 || IA64) && XEN
+ default y
endif # ACPI
---- head-2011-09-07.orig/drivers/char/Kconfig 2011-09-07 13:57:00.000000000 +0200
-+++ head-2011-09-07/drivers/char/Kconfig 2011-04-13 11:17:33.000000000 +0200
+--- head-2011-09-23.orig/drivers/char/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/char/Kconfig 2011-04-13 11:17:33.000000000 +0200
@@ -534,7 +534,7 @@ config MAX_RAW_DEVS
config HPET
bool "HPET - High Precision Event Timer" if (X86 || IA64)
@@ -409,8 +409,8 @@ Acked-by: jbeulich@novell.com
help
If you say Y here, you will have a miscdevice named "/dev/hpet/". Each
open selects one of the timers supported by the HPET. The timers are
---- head-2011-09-07.orig/drivers/char/tpm/Kconfig 2011-01-05 01:50:19.000000000 +0100
-+++ head-2011-09-07/drivers/char/tpm/Kconfig 2011-04-13 11:17:33.000000000 +0200
+--- head-2011-09-23.orig/drivers/char/tpm/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/char/tpm/Kconfig 2011-04-13 11:17:33.000000000 +0200
@@ -60,4 +60,13 @@ config TCG_INFINEON
Further information on this driver and the supported hardware
can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/
@@ -425,8 +425,8 @@ Acked-by: jbeulich@novell.com
+ will be called tpm_xenu.
+
endif # TCG_TPM
---- head-2011-09-07.orig/drivers/cpufreq/Kconfig 2011-09-07 13:56:14.000000000 +0200
-+++ head-2011-09-07/drivers/cpufreq/Kconfig 2011-06-30 15:36:01.000000000 +0200
+--- head-2011-09-23.orig/drivers/cpufreq/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/cpufreq/Kconfig 2011-06-30 15:36:01.000000000 +0200
@@ -2,6 +2,7 @@ menu "CPU Frequency scaling"
config CPU_FREQ
@@ -435,8 +435,8 @@ Acked-by: jbeulich@novell.com
help
CPU Frequency scaling allows you to change the clock speed of
CPUs on the fly. This is a nice method to save power, because
---- head-2011-09-07.orig/drivers/tty/serial/Kconfig 2011-09-07 13:56:36.000000000 +0200
-+++ head-2011-09-07/drivers/tty/serial/Kconfig 2011-04-13 11:17:33.000000000 +0200
+--- head-2011-09-23.orig/drivers/tty/serial/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/tty/serial/Kconfig 2011-04-13 11:17:33.000000000 +0200
@@ -9,6 +9,7 @@ menu "Serial drivers"
# The new 8250/16550 serial drivers
config SERIAL_8250
@@ -445,8 +445,8 @@ Acked-by: jbeulich@novell.com
select SERIAL_CORE
---help---
This selects whether you want to include the driver for the standard
---- head-2011-09-07.orig/drivers/xen/Kconfig 2011-09-07 13:56:36.000000000 +0200
-+++ head-2011-09-07/drivers/xen/Kconfig 2011-09-07 14:36:47.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-07 14:36:47.000000000 +0200
@@ -1,8 +1,357 @@
+#
+# This Kconfig describe xen options
@@ -830,8 +830,8 @@ Acked-by: jbeulich@novell.com
If in doubt, say yes.
config XEN_DEV_EVTCHN
---- head-2011-09-07.orig/fs/Kconfig 2011-09-07 13:56:43.000000000 +0200
-+++ head-2011-09-07/fs/Kconfig 2011-06-30 15:36:20.000000000 +0200
+--- head-2011-09-23.orig/fs/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/fs/Kconfig 2011-06-30 15:36:20.000000000 +0200
@@ -165,6 +165,7 @@ config HUGETLBFS
bool "HugeTLB file system support"
depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \
@@ -840,8 +840,8 @@ Acked-by: jbeulich@novell.com
help
hugetlbfs is a filesystem backing for HugeTLB pages, based on
ramfs. For architectures that support it, say Y here and read
---- head-2011-09-07.orig/kernel/Kconfig.preempt 2011-09-07 13:56:42.000000000 +0200
-+++ head-2011-09-07/kernel/Kconfig.preempt 2011-09-07 14:36:35.000000000 +0200
+--- head-2011-09-23.orig/kernel/Kconfig.preempt 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/kernel/Kconfig.preempt 2011-09-07 14:36:35.000000000 +0200
@@ -36,6 +36,7 @@ config PREEMPT_VOLUNTARY
config PREEMPT
diff --git a/patches.xen/xen3-fixup-xen b/patches.xen/xen3-fixup-xen
index 631cdc5ef5..14e4b1b55e 100644
--- a/patches.xen/xen3-fixup-xen
+++ b/patches.xen/xen3-fixup-xen
@@ -1,5 +1,5 @@
Subject: Fix Xen build wrt. Xen files coming from mainline.
-From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1104:700f70b60d4b)
+From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1105:f4f25124b1b6)
Patch-mainline: n/a
Acked-by: jbeulich@novell.com
diff --git a/patches.xen/xen3-patch-2.6.19 b/patches.xen/xen3-patch-2.6.19
index 5b7f6cc546..89a413e39c 100644
--- a/patches.xen/xen3-patch-2.6.19
+++ b/patches.xen/xen3-patch-2.6.19
@@ -10980,28 +10980,6 @@ Acked-by: jbeulich@novell.com
struct netif_tx_front_ring tx;
struct netif_rx_front_ring rx;
---- head-2011-09-07.orig/drivers/xen/pciback/pciback.h 2009-03-18 10:39:32.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/pciback.h 2011-01-31 17:29:16.000000000 +0100
-@@ -99,7 +99,7 @@ int pciback_publish_pci_roots(struct pci
- void pciback_release_devices(struct pciback_device *pdev);
-
- /* Handles events from front-end */
--irqreturn_t pciback_handle_event(int irq, void *dev_id, struct pt_regs *regs);
-+irqreturn_t pciback_handle_event(int irq, void *dev_id);
- void pciback_do_op(void *data);
-
- int pciback_xenbus_register(void);
---- head-2011-09-07.orig/drivers/xen/pciback/pciback_ops.c 2011-02-17 09:58:10.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/pciback_ops.c 2011-02-17 10:07:33.000000000 +0100
-@@ -132,7 +132,7 @@ void pciback_do_op(void *data)
- test_and_schedule_op(pdev);
- }
-
--irqreturn_t pciback_handle_event(int irq, void *dev_id, struct pt_regs *regs)
-+irqreturn_t pciback_handle_event(int irq, void *dev_id)
- {
- struct pciback_device *pdev = dev_id;
-
--- head-2011-09-07.orig/drivers/xen/pcifront/pcifront.h 2010-10-05 09:58:12.000000000 +0200
+++ head-2011-09-07/drivers/xen/pcifront/pcifront.h 2011-01-31 17:29:16.000000000 +0100
@@ -51,6 +51,6 @@ void pcifront_free_roots(struct pcifront
diff --git a/patches.xen/xen3-patch-2.6.20 b/patches.xen/xen3-patch-2.6.20
index 05a0b8c3bc..a3e374d434 100644
--- a/patches.xen/xen3-patch-2.6.20
+++ b/patches.xen/xen3-patch-2.6.20
@@ -5731,79 +5731,6 @@ Acked-by: jbeulich@novell.com
static int nloopbacks = -1;
module_param(nloopbacks, int, 0);
---- head-2011-09-07.orig/drivers/xen/pciback/conf_space_header.c 2010-03-02 09:56:10.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/conf_space_header.c 2011-01-31 17:32:16.000000000 +0100
-@@ -24,7 +24,7 @@ static int command_read(struct pci_dev *
- int ret;
-
- ret = pciback_read_config_word(dev, offset, value, data);
-- if (!dev->is_enabled)
-+ if (!atomic_read(&dev->enable_cnt))
- return ret;
-
- for (i = 0; i < PCI_ROM_RESOURCE; i++) {
-@@ -41,14 +41,14 @@ static int command_write(struct pci_dev
- {
- int err;
-
-- if (!dev->is_enabled && is_enable_cmd(value)) {
-+ if (!atomic_read(&dev->enable_cnt) && is_enable_cmd(value)) {
- if (unlikely(verbose_request))
- printk(KERN_DEBUG "pciback: %s: enable\n",
- pci_name(dev));
- err = pci_enable_device(dev);
- if (err)
- return err;
-- } else if (dev->is_enabled && !is_enable_cmd(value)) {
-+ } else if (atomic_read(&dev->enable_cnt) && !is_enable_cmd(value)) {
- if (unlikely(verbose_request))
- printk(KERN_DEBUG "pciback: %s: disable\n",
- pci_name(dev));
---- head-2011-09-07.orig/drivers/xen/pciback/pciback.h 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/pciback.h 2011-01-31 17:32:16.000000000 +0100
-@@ -100,7 +100,7 @@ void pciback_release_devices(struct pcib
-
- /* Handles events from front-end */
- irqreturn_t pciback_handle_event(int irq, void *dev_id);
--void pciback_do_op(void *data);
-+void pciback_do_op(struct work_struct *work);
-
- int pciback_xenbus_register(void);
- void pciback_xenbus_unregister(void);
---- head-2011-09-07.orig/drivers/xen/pciback/pciback_ops.c 2011-02-17 10:07:33.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/pciback_ops.c 2011-02-17 10:07:46.000000000 +0100
-@@ -34,7 +34,7 @@ void pciback_reset_device(struct pci_dev
-
- pci_write_config_word(dev, PCI_COMMAND, 0);
-
-- dev->is_enabled = 0;
-+ atomic_set(&dev->enable_cnt, 0);
- dev->is_busmaster = 0;
- } else {
- pci_read_config_word(dev, PCI_COMMAND, &cmd);
-@@ -75,9 +75,9 @@ void test_and_schedule_op(struct pciback
- * context because some of the pci_* functions can sleep (mostly due to ACPI
- * use of semaphores). This function is intended to be called from a work
- * queue in process context taking a struct pciback_device as a parameter */
--void pciback_do_op(void *data)
-+void pciback_do_op(struct work_struct *work)
- {
-- struct pciback_device *pdev = data;
-+ struct pciback_device *pdev = container_of(work, struct pciback_device, op_work);
- struct pci_dev *dev;
- struct xen_pci_op *op = &pdev->sh_info->op;
-
---- head-2011-09-07.orig/drivers/xen/pciback/xenbus.c 2009-04-07 13:58:48.000000000 +0200
-+++ head-2011-09-07/drivers/xen/pciback/xenbus.c 2011-01-31 17:32:16.000000000 +0100
-@@ -33,7 +33,7 @@ static struct pciback_device *alloc_pdev
- pdev->evtchn_irq = INVALID_EVTCHN_IRQ;
- pdev->be_watching = 0;
-
-- INIT_WORK(&pdev->op_work, pciback_do_op, pdev);
-+ INIT_WORK(&pdev->op_work, pciback_do_op);
-
- if (pciback_init_devices(pdev)) {
- kfree(pdev);
--- head-2011-09-07.orig/drivers/xen/pcifront/pci_op.c 2011-01-31 17:29:16.000000000 +0100
+++ head-2011-09-07/drivers/xen/pcifront/pci_op.c 2011-01-31 17:32:16.000000000 +0100
@@ -634,9 +634,9 @@ static pci_ers_result_t pcifront_common_
diff --git a/patches.xen/xen3-patch-2.6.21 b/patches.xen/xen3-patch-2.6.21
index 9a574c9ecd..6be716aca2 100644
--- a/patches.xen/xen3-patch-2.6.21
+++ b/patches.xen/xen3-patch-2.6.21
@@ -4463,16 +4463,6 @@ Acked-by: jbeulich@novell.com
.ids = netfront_ids,
.probe = netfront_probe,
.remove = __devexit_p(netfront_remove),
---- head-2011-09-07.orig/drivers/xen/pciback/xenbus.c 2011-01-31 17:32:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/xenbus.c 2011-01-31 17:32:22.000000000 +0100
-@@ -683,7 +683,6 @@ static const struct xenbus_device_id xen
-
- static struct xenbus_driver xenbus_pciback_driver = {
- .name = "pciback",
-- .owner = THIS_MODULE,
- .ids = xenpci_ids,
- .probe = pciback_xenbus_probe,
- .remove = pciback_xenbus_remove,
--- head-2011-09-07.orig/drivers/xen/pcifront/xenbus.c 2011-01-31 17:32:16.000000000 +0100
+++ head-2011-09-07/drivers/xen/pcifront/xenbus.c 2011-01-31 17:32:22.000000000 +0100
@@ -464,7 +464,6 @@ MODULE_ALIAS("xen:pci");
diff --git a/patches.xen/xen3-patch-2.6.22 b/patches.xen/xen3-patch-2.6.22
index ff7a528e17..3a9ebf56cd 100644
--- a/patches.xen/xen3-patch-2.6.22
+++ b/patches.xen/xen3-patch-2.6.22
@@ -4073,7 +4073,7 @@ Acked-by: jbeulich@novell.com
if (err <= 0) {
WPRINTK("bind_listening_port_to_irqhandler failed "
"(err=%d)\n", err);
---- head-2011-09-07.orig/drivers/hwmon/Kconfig 2011-09-07 13:56:14.000000000 +0200
+--- head-2011-09-07.orig/drivers/hwmon/Kconfig 2011-09-20 11:28:23.000000000 +0200
+++ head-2011-09-07/drivers/hwmon/Kconfig 2011-06-30 16:06:09.000000000 +0200
@@ -412,7 +412,7 @@ config SENSORS_GPIO_FAN
@@ -5025,6 +5025,37 @@ Acked-by: jbeulich@novell.com
}
#endif
+--- head-2011-09-07.orig/drivers/xen/fbfront/xenkbd.c 2011-05-23 11:08:11.000000000 +0200
++++ head-2011-09-07/drivers/xen/fbfront/xenkbd.c 2011-09-20 11:34:12.000000000 +0200
+@@ -137,11 +137,11 @@ int __devinit xenkbd_probe(struct xenbus
+ kbd->id.bustype = BUS_PCI;
+ kbd->id.vendor = 0x5853;
+ kbd->id.product = 0xffff;
+- kbd->evbit[0] = BIT(EV_KEY);
++ __set_bit(EV_KEY, kbd->evbit);
+ for (i = KEY_ESC; i < KEY_UNKNOWN; i++)
+- set_bit(i, kbd->keybit);
++ __set_bit(i, kbd->keybit);
+ for (i = KEY_OK; i < KEY_MAX; i++)
+- set_bit(i, kbd->keybit);
++ __set_bit(i, kbd->keybit);
+
+ ret = input_register_device(kbd);
+ if (ret) {
+@@ -166,10 +166,10 @@ int __devinit xenkbd_probe(struct xenbus
+ input_set_abs_params(ptr, ABS_X, 0, XENFB_WIDTH, 0, 0);
+ input_set_abs_params(ptr, ABS_Y, 0, XENFB_HEIGHT, 0, 0);
+ } else {
+- __set_bit(REL_X, ptr->relbit);
+- __set_bit(REL_Y, ptr->relbit);
++ input_set_capability(ptr, EV_REL, REL_X);
++ input_set_capability(ptr, EV_REL, REL_Y);
+ }
+- __set_bit(REL_WHEEL, ptr->relbit);
++ input_set_capability(ptr, EV_REL, REL_WHEEL);
+
+ __set_bit(EV_KEY, ptr->evbit);
+ for (i = BTN_LEFT; i <= BTN_TASK; i++)
--- head-2011-09-07.orig/drivers/xen/netback/common.h 2011-04-11 14:28:08.000000000 +0200
+++ head-2011-09-07/drivers/xen/netback/common.h 2011-04-11 14:38:17.000000000 +0200
@@ -98,7 +98,6 @@ typedef struct netif_st {
@@ -5481,6 +5512,15 @@ Acked-by: jbeulich@novell.com
__skb_queue_tail(&rxq, skb);
+@@ -1691,7 +1689,7 @@ static struct net_device_stats *network_
+ struct netfront_info *np = netdev_priv(dev);
+
+ netfront_accelerator_call_get_stats(np, dev);
+- return &np->stats;
++ return &dev->stats;
+ }
+
+ static int xennet_set_mac_address(struct net_device *dev, void *p)
--- head-2011-09-07.orig/drivers/xen/netfront/netfront.h 2011-02-09 15:35:17.000000000 +0100
+++ head-2011-09-07/drivers/xen/netfront/netfront.h 2011-02-09 15:54:19.000000000 +0100
@@ -149,9 +149,6 @@ struct netfront_info {
@@ -5503,17 +5543,6 @@ Acked-by: jbeulich@novell.com
/* Private pointer to state internal to accelerator module */
void *accel_priv;
/* The accelerator used by this netfront device */
---- head-2011-09-07.orig/drivers/xen/pciback/xenbus.c 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/xenbus.c 2011-01-31 17:32:29.000000000 +0100
-@@ -100,7 +100,7 @@ static int pciback_do_attach(struct pcib
-
- err = bind_interdomain_evtchn_to_irqhandler(
- pdev->xdev->otherend_id, remote_evtchn, pciback_handle_event,
-- SA_SAMPLE_RANDOM, "pciback", pdev);
-+ IRQF_SAMPLE_RANDOM, "pciback", pdev);
- if (err < 0) {
- xenbus_dev_fatal(pdev->xdev, err,
- "Error binding event channel to IRQ");
--- head-2011-09-07.orig/drivers/xen/pcifront/xenbus.c 2011-01-31 17:32:22.000000000 +0100
+++ head-2011-09-07/drivers/xen/pcifront/xenbus.c 2011-01-31 17:32:29.000000000 +0100
@@ -11,10 +11,6 @@
@@ -5762,7 +5791,7 @@ Acked-by: jbeulich@novell.com
if (error)
return error;
---- head-2011-09-07.orig/arch/x86/include/asm/boot.h 2011-03-15 02:20:32.000000000 +0100
+--- head-2011-09-07.orig/arch/x86/include/asm/boot.h 2011-09-20 11:28:23.000000000 +0200
+++ head-2011-09-07/arch/x86/include/asm/boot.h 2011-01-31 17:32:29.000000000 +0100
@@ -16,7 +16,7 @@
& ~(CONFIG_PHYSICAL_ALIGN - 1))
@@ -8094,7 +8123,7 @@ Acked-by: jbeulich@novell.com
EXPORT_SYMBOL(swiotlb_map_single);
EXPORT_SYMBOL(swiotlb_unmap_single);
EXPORT_SYMBOL(swiotlb_map_sg);
---- head-2011-09-07.orig/mm/vmalloc.c 2011-09-07 13:56:40.000000000 +0200
+--- head-2011-09-07.orig/mm/vmalloc.c 2011-09-20 11:28:23.000000000 +0200
+++ head-2011-09-07/mm/vmalloc.c 2011-09-07 15:25:31.000000000 +0200
@@ -1525,6 +1525,13 @@ static void *__vmalloc_area_node(struct
struct page **pages;
diff --git a/patches.xen/xen3-patch-2.6.23 b/patches.xen/xen3-patch-2.6.23
index f3d3e1d0ce..2fa9e211a2 100644
--- a/patches.xen/xen3-patch-2.6.23
+++ b/patches.xen/xen3-patch-2.6.23
@@ -6,8 +6,8 @@ Automatically created from "patches.kernel.org/patch-2.6.23" by xen-port-patches
Acked-by: jbeulich@novell.com
---- head-2011-09-07.orig/arch/x86/Kbuild 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kbuild 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/Kbuild 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/Kbuild 2011-01-31 17:49:31.000000000 +0100
@@ -2,7 +2,7 @@
obj-$(CONFIG_KVM) += kvm/
@@ -17,8 +17,8 @@ Acked-by: jbeulich@novell.com
# lguest paravirtualization support
obj-$(CONFIG_LGUEST_GUEST) += lguest/
---- head-2011-09-07.orig/arch/x86/kernel/asm-offsets.c 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/asm-offsets.c 2011-04-13 12:42:43.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/asm-offsets.c 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/asm-offsets.c 2011-04-13 12:42:43.000000000 +0200
@@ -17,7 +17,7 @@
#include <asm/bootparam.h>
#include <asm/suspend.h>
@@ -37,8 +37,8 @@ Acked-by: jbeulich@novell.com
BLANK();
OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending);
---- head-2011-09-07.orig/arch/x86/kernel/cpu/common-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/cpu/common-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/common-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/cpu/common-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -362,6 +362,8 @@ static void __cpuinit generic_identify(s
if ( xlvl >= 0x80000004 )
get_model_name(c); /* Default name */
@@ -64,8 +64,8 @@ Acked-by: jbeulich@novell.com
nexgen_init_cpu();
umc_init_cpu();
early_cpu_detect();
---- head-2011-09-07.orig/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -167,7 +167,7 @@ mtrr_del(int reg, unsigned long base, un
EXPORT_SYMBOL(mtrr_add);
EXPORT_SYMBOL(mtrr_del);
@@ -75,8 +75,8 @@ Acked-by: jbeulich@novell.com
{
}
---- head-2011-09-07.orig/arch/x86/kernel/e820_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/e820_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/e820_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/e820_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -10,6 +10,7 @@
#include <linux/efi.h>
#include <linux/pfn.h>
@@ -132,8 +132,8 @@ Acked-by: jbeulich@novell.com
break;
}
}
---- head-2011-09-07.orig/arch/x86/kernel/entry_32.S 2011-09-07 14:44:06.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/entry_32.S 2011-09-07 15:28:37.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/entry_32.S 2011-09-07 14:44:06.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/entry_32.S 2011-09-07 15:28:37.000000000 +0200
@@ -1045,7 +1045,7 @@ ENTRY(kernel_thread_helper)
CFI_ENDPROC
ENDPROC(kernel_thread_helper)
@@ -152,8 +152,8 @@ Acked-by: jbeulich@novell.com
#ifdef CONFIG_FUNCTION_TRACER
#ifdef CONFIG_DYNAMIC_FTRACE
---- head-2011-09-07.orig/arch/x86/kernel/entry_32-xen.S 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/entry_32-xen.S 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/entry_32-xen.S 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/entry_32-xen.S 2011-01-31 17:49:31.000000000 +0100
@@ -452,9 +452,6 @@ restore_nocheck_notrace:
1: INTERRUPT_RETURN
.section .fixup,"ax"
@@ -164,8 +164,8 @@ Acked-by: jbeulich@novell.com
pushl $0 # no error code
pushl $do_iret_error
jmp error_code
---- head-2011-09-07.orig/arch/x86/kernel/head_32-xen.S 2011-08-09 10:37:32.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head_32-xen.S 2011-08-09 10:41:46.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head_32-xen.S 2011-08-09 10:37:32.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head_32-xen.S 2011-08-09 10:41:46.000000000 +0200
@@ -87,7 +87,10 @@ ENTRY(_stext)
/*
* BSS section
@@ -237,8 +237,8 @@ Acked-by: jbeulich@novell.com
- ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long, 1)
+ ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic")
+ ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long 1)
---- head-2011-09-07.orig/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -402,14 +402,6 @@ static void set_ioapic_affinity_irq(unsi
# include <linux/slab.h> /* kmalloc() */
# include <linux/timer.h> /* time_after() */
@@ -352,8 +352,8 @@ Acked-by: jbeulich@novell.com
{
unsigned long t1 = jiffies;
---- head-2011-09-07.orig/arch/x86/kernel/microcode-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/microcode-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/microcode-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/microcode-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -33,6 +33,7 @@
#include <linux/miscdevice.h>
#include <linux/spinlock.h>
@@ -362,8 +362,8 @@ Acked-by: jbeulich@novell.com
#include <linux/mutex.h>
#include <linux/cpu.h>
#include <linux/firmware.h>
---- head-2011-09-07.orig/arch/x86/kernel/pci-dma-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/pci-dma-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/pci-dma-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/pci-dma-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -24,7 +24,7 @@
#include <asm/bug.h>
@@ -373,8 +373,8 @@ Acked-by: jbeulich@novell.com
int iommu_merge __read_mostly = 0;
EXPORT_SYMBOL(iommu_merge);
---- head-2011-09-07.orig/arch/x86/kernel/process_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -241,6 +241,7 @@ early_param("idle", idle_setup);
void show_regs(struct pt_regs * regs)
{
@@ -490,8 +490,8 @@ Acked-by: jbeulich@novell.com
/*
* Leave lazy mode, flushing any hypercalls made here.
---- head-2011-09-07.orig/arch/x86/kernel/setup_32-xen.c 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/setup_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup_32-xen.c 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/setup_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -114,19 +114,10 @@ static unsigned int highmem_pages = -1;
/*
* Setup options
@@ -578,8 +578,8 @@ Acked-by: jbeulich@novell.com
if (is_initial_xendomain()) {
#ifdef CONFIG_VT
---- head-2011-09-07.orig/arch/x86/kernel/smp_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/smp_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/smp_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/smp_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -22,6 +22,7 @@
#include <asm/mtrr.h>
@@ -604,8 +604,8 @@ Acked-by: jbeulich@novell.com
{
if (per_cpu(cpu_tlbstate, cpu).state == TLBSTATE_OK)
BUG();
---- head-2011-09-07.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:10:56.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/time-xen.c 2011-07-11 11:22:42.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:10:56.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/time-xen.c 2011-07-11 11:22:42.000000000 +0200
@@ -75,11 +75,12 @@
#include <xen/evtchn.h>
#include <xen/interface/vcpu.h>
@@ -680,8 +680,8 @@ Acked-by: jbeulich@novell.com
}
extern void (*late_time_init)(void);
---- head-2011-09-07.orig/arch/x86/kernel/traps_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/traps_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/traps_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -41,6 +41,10 @@
#include <linux/mca.h>
#endif
@@ -888,8 +888,8 @@ Acked-by: jbeulich@novell.com
#ifndef CONFIG_MATH_EMULATION
---- head-2011-09-07.orig/arch/x86/mach-xen/setup.c 2011-08-09 10:35:06.000000000 +0200
-+++ head-2011-09-07/arch/x86/mach-xen/setup.c 2011-09-07 15:28:26.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mach-xen/setup.c 2011-08-09 10:35:06.000000000 +0200
++++ head-2011-09-23/arch/x86/mach-xen/setup.c 2011-09-07 15:28:26.000000000 +0200
@@ -12,6 +12,7 @@
#include <asm/e820.h>
#include <asm/setup.h>
@@ -926,8 +926,8 @@ Acked-by: jbeulich@novell.com
+ set_pmd(pmd, __pmd(__pa_symbol(swapper_pg_pmd) | _PAGE_TABLE));
+ }
}
---- head-2011-09-07.orig/arch/x86/mm/fault_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/fault_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/fault_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/fault_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -346,7 +346,10 @@ static inline pmd_t *vmalloc_sync_one(pg
pmd_k = pmd_offset(pud_k, address);
if (!pmd_present(*pmd_k))
@@ -1013,8 +1013,8 @@ Acked-by: jbeulich@novell.com
tsk->thread.cr2 = address;
/* Kernel addresses are always protection faults */
tsk->thread.error_code = error_code | (address >= TASK_SIZE);
---- head-2011-09-07.orig/arch/x86/mm/highmem_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/highmem_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/highmem_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/highmem_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -34,17 +34,16 @@ void *kmap_atomic_prot(struct page *page
/* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
pagefault_disable();
@@ -1036,8 +1036,8 @@ Acked-by: jbeulich@novell.com
}
void *kmap_atomic(struct page *page, enum km_type type)
---- head-2011-09-07.orig/arch/x86/mm/init_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/init_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -96,7 +96,7 @@ static pte_t * __init one_page_table_ini
#endif
pte_t *page_table = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
@@ -1100,8 +1100,8 @@ Acked-by: jbeulich@novell.com
if (!SHARED_KERNEL_PMD) {
/* If we're in PAE mode and have a non-shared
kernel pmd, then the pgd size must be a
---- head-2011-09-07.orig/arch/x86/mm/ioremap-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/ioremap-xen.c 2011-02-07 15:38:30.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/ioremap-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/ioremap-xen.c 2011-02-07 15:38:30.000000000 +0100
@@ -344,9 +344,8 @@ void iounmap(volatile void __iomem *addr
/* Reset the direct mapping. Can block */
@@ -1113,8 +1113,8 @@ Acked-by: jbeulich@novell.com
PAGE_KERNEL);
global_flush_tlb();
}
---- head-2011-09-07.orig/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -198,7 +198,7 @@ void pte_free(struct page *pte)
va, pfn_pte(pfn, PAGE_KERNEL), 0))
BUG();
@@ -1213,8 +1213,8 @@ Acked-by: jbeulich@novell.com
(atomic_read(&mm->mm_count) == 1) &&
!mm->context.has_foreign_mappings)
mm_unpin(mm);
---- head-2011-09-07.orig/arch/x86/xen/Kconfig 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/arch/x86/xen/Kconfig 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/xen/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/xen/Kconfig 2011-01-31 17:49:31.000000000 +0100
@@ -2,7 +2,7 @@
# This Kconfig describes xen options
#
@@ -1224,8 +1224,8 @@ Acked-by: jbeulich@novell.com
bool "Xen guest support"
select PARAVIRT
select PARAVIRT_CLOCK
---- head-2011-09-07.orig/arch/x86/xen/xen-head.S 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/arch/x86/xen/xen-head.S 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/xen/xen-head.S 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/xen/xen-head.S 2011-01-31 17:49:31.000000000 +0100
@@ -1,7 +1,7 @@
/* Xen-specific pieces of head.S, intended to be included in the right
place in head.S */
@@ -1241,8 +1241,8 @@ Acked-by: jbeulich@novell.com
-#endif /*CONFIG_XEN */
+#endif /* CONFIG_PARAVIRT_XEN */
---- head-2011-09-07.orig/arch/x86/ia32/ia32entry-xen.S 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/ia32/ia32entry-xen.S 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/ia32/ia32entry-xen.S 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/ia32/ia32entry-xen.S 2011-01-31 17:49:31.000000000 +0100
@@ -105,7 +105,7 @@ ENTRY(ia32_sysenter_target)
movl $VSYSCALL32_SYSEXIT,8(%rsp)
movq %rax,(%rsp)
@@ -1284,8 +1284,8 @@ Acked-by: jbeulich@novell.com
.quad sys_eventfd
+ .quad sys32_fallocate
ia32_syscall_end:
---- head-2011-09-07.orig/arch/x86/kernel/e820_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/e820_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/e820_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/e820_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -224,37 +224,6 @@ unsigned long __init e820_end_of_ram(voi
}
@@ -1469,8 +1469,8 @@ Acked-by: jbeulich@novell.com
(unsigned long long) e820.map[i].addr,
(unsigned long long) (e820.map[i].addr + e820.map[i].size));
switch (e820.map[i].type) {
---- head-2011-09-07.orig/arch/x86/kernel/early_printk-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/early_printk-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/early_printk-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/early_printk-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -174,6 +174,7 @@ static __init void early_serial_init(cha
* mappings. Someone should fix this for domain 0. For now, use fake serial.
*/
@@ -1505,8 +1505,8 @@ Acked-by: jbeulich@novell.com
}
if (keep_early)
---- head-2011-09-07.orig/arch/x86/kernel/entry_64-xen.S 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/entry_64-xen.S 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/entry_64-xen.S 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/entry_64-xen.S 2011-01-31 17:49:31.000000000 +0100
@@ -310,7 +310,7 @@ sysret_signal:
TRACE_IRQS_ON
/* sti */
@@ -1534,8 +1534,8 @@ Acked-by: jbeulich@novell.com
jz retint_restore_args
TRACE_IRQS_ON
XEN_UNBLOCK_EVENTS(%rsi)
---- head-2011-09-07.orig/arch/x86/kernel/head_64-xen.S 2011-08-09 10:37:34.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head_64-xen.S 2011-08-09 10:41:44.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head_64-xen.S 2011-08-09 10:37:34.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head_64-xen.S 2011-08-09 10:41:44.000000000 +0200
@@ -24,7 +24,7 @@
#include <xen/interface/elfnote.h>
#include <xen/interface/features.h>
@@ -1612,8 +1612,8 @@ Acked-by: jbeulich@novell.com
- ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long, 1)
+ ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic")
+ ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long 1)
---- head-2011-09-07.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:37:35.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head64-xen.c 2011-08-09 10:41:42.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:37:35.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head64-xen.c 2011-08-09 10:41:42.000000000 +0200
@@ -89,7 +89,7 @@ void __init x86_64_start_kernel(char * r
struct xen_machphys_mapping mapping;
int i;
@@ -1623,8 +1623,8 @@ Acked-by: jbeulich@novell.com
xen_start_info = (struct start_info *)real_mode_data;
if (!xen_feature(XENFEAT_auto_translated_physmap))
---- head-2011-09-07.orig/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -165,7 +165,9 @@ static inline void io_apic_write(unsigne
#endif
}
@@ -1747,8 +1747,8 @@ Acked-by: jbeulich@novell.com
}
static struct irq_chip ioapic_chip __read_mostly = {
---- head-2011-09-07.orig/arch/x86/kernel/ldt_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ldt_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ldt_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ldt_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -114,6 +114,8 @@ int init_new_context(struct task_struct
memset(&mm->context, 0, sizeof(mm->context));
init_MUTEX(&mm->context.sem);
@@ -1767,8 +1767,8 @@ Acked-by: jbeulich@novell.com
spin_lock(&mm_unpinned_lock);
list_del(&mm->context.unpinned);
spin_unlock(&mm_unpinned_lock);
---- head-2011-09-07.orig/arch/x86/kernel/mpparse_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/mpparse_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/mpparse_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/mpparse_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -32,7 +32,6 @@
/* Have we found an MP table */
@@ -1825,8 +1825,8 @@ Acked-by: jbeulich@novell.com
}
void __init
---- head-2011-09-07.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:31:39.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_64-xen.c 2011-02-02 08:31:50.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:31:39.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_64-xen.c 2011-02-02 08:31:50.000000000 +0100
@@ -26,6 +26,7 @@
#include <linux/sched.h>
#include <linux/kernel.h>
@@ -1858,8 +1858,8 @@ Acked-by: jbeulich@novell.com
}
void show_regs(struct pt_regs *regs)
---- head-2011-09-07.orig/arch/x86/kernel/setup_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/setup_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/setup_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -828,6 +828,8 @@ static void __cpuinit init_amd(struct cp
level = cpuid_eax(1);
if (c->x86 == 15 && ((level >= 0x0f48 && level < 0x0f50) || level >= 0x0f58))
@@ -1942,8 +1942,8 @@ Acked-by: jbeulich@novell.com
};
static char *x86_power_flags[] = {
"ts", /* temperature sensor */
---- head-2011-09-07.orig/arch/x86/kernel/setup64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/setup64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/setup64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -125,11 +125,14 @@ void __init setup_per_cpu_areas(void)
}
@@ -1970,8 +1970,8 @@ Acked-by: jbeulich@novell.com
/* others are initialized in smpboot.c */
pda->pcurrent = &init_task;
pda->irqstackptr = boot_cpu_stack;
---- head-2011-09-07.orig/arch/x86/kernel/smp_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/smp_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/smp_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/smp_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -362,7 +362,7 @@ __smp_call_function_single(int cpu, void
}
@@ -2008,8 +2008,8 @@ Acked-by: jbeulich@novell.com
put_cpu();
return 0;
}
---- head-2011-09-07.orig/arch/x86/kernel/traps_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/traps_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/traps_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -34,6 +34,10 @@
#include <linux/bug.h>
#include <linux/kdebug.h>
@@ -2080,8 +2080,8 @@ Acked-by: jbeulich@novell.com
if (panic_on_unrecovered_nmi)
panic("NMI: Not continuing");
---- head-2011-09-07.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -42,6 +42,7 @@
#include <asm/segment.h>
#include <asm/desc.h>
@@ -2127,8 +2127,8 @@ Acked-by: jbeulich@novell.com
write_sequnlock_irqrestore(&vsyscall_gtod_data.lock, flags);
}
---- head-2011-09-07.orig/arch/x86/mm/fault_64-xen.c 2011-07-26 09:27:41.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/fault_64-xen.c 2011-08-15 10:44:41.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/fault_64-xen.c 2011-07-26 09:27:41.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/fault_64-xen.c 2011-08-15 10:44:41.000000000 +0200
@@ -160,7 +160,9 @@ void dump_pagetable(unsigned long addres
pmd_t *pmd;
pte_t *pte;
@@ -2250,8 +2250,8 @@ Acked-by: jbeulich@novell.com
goto no_context;
do_sigbus:
---- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/init_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -66,6 +66,9 @@ int after_bootmem;
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
extern unsigned long start_pfn;
@@ -2375,8 +2375,8 @@ Acked-by: jbeulich@novell.com
+ return "[vsyscall]";
+ return NULL;
+}
---- head-2011-09-07.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:49:31.000000000 +0100
@@ -171,7 +171,7 @@ void mm_pin(struct mm_struct *mm)
mm_walk(mm, PAGE_KERNEL_RO);
xen_pgd_pin(__pa(mm->pgd)); /* kernel */
@@ -2481,8 +2481,8 @@ Acked-by: jbeulich@novell.com
ClearPagePrivate(pg);
__free_page(pg);
}
---- head-2011-09-07.orig/arch/x86/oprofile/xenoprof.c 2008-01-28 12:24:19.000000000 +0100
-+++ head-2011-09-07/arch/x86/oprofile/xenoprof.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/oprofile/xenoprof.c 2008-01-28 12:24:19.000000000 +0100
++++ head-2011-09-23/arch/x86/oprofile/xenoprof.c 2011-01-31 17:49:31.000000000 +0100
@@ -18,9 +18,9 @@
#include <linux/init.h>
#include <linux/oprofile.h>
@@ -2494,8 +2494,8 @@ Acked-by: jbeulich@novell.com
#include <xen/interface/xen.h>
#include <xen/interface/xenoprof.h>
#include <xen/xenoprof.h>
---- head-2011-09-07.orig/arch/x86/vdso/vdso32/note.S 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/arch/x86/vdso/vdso32/note.S 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/vdso/vdso32/note.S 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/vdso/vdso32/note.S 2011-01-31 17:49:31.000000000 +0100
@@ -13,7 +13,7 @@ ELFNOTE_START(Linux, 0, "a")
.long LINUX_VERSION_CODE
ELFNOTE_END
@@ -2518,8 +2518,8 @@ Acked-by: jbeulich@novell.com
.byte VDSO_NOTE_NONEGSEG_BIT; .asciz "nosegneg" /* bit, name */
ELFNOTE_END
#endif
---- head-2011-09-07.orig/drivers/Makefile 2011-06-30 15:36:40.000000000 +0200
-+++ head-2011-09-07/drivers/Makefile 2011-06-30 16:09:27.000000000 +0200
+--- head-2011-09-23.orig/drivers/Makefile 2011-06-30 15:36:40.000000000 +0200
++++ head-2011-09-23/drivers/Makefile 2011-06-30 16:09:27.000000000 +0200
@@ -22,7 +22,7 @@ obj-$(CONFIG_ARM_AMBA) += amba/
obj-$(CONFIG_DMA_ENGINE) += dma/
@@ -2529,8 +2529,8 @@ Acked-by: jbeulich@novell.com
# regulators early, since some subsystems rely on them to initialize
obj-$(CONFIG_REGULATOR) += regulator/
---- head-2011-09-07.orig/drivers/block/Kconfig 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/drivers/block/Kconfig 2011-09-07 15:27:40.000000000 +0200
+--- head-2011-09-23.orig/drivers/block/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/block/Kconfig 2011-09-07 15:27:40.000000000 +0200
@@ -475,9 +475,9 @@ config XILINX_SYSACE
help
Include support for the Xilinx SystemACE CompactFlash interface
@@ -2543,8 +2543,8 @@ Acked-by: jbeulich@novell.com
default y
select XEN_XENBUS_FRONTEND
help
---- head-2011-09-07.orig/drivers/block/Makefile 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/drivers/block/Makefile 2011-06-30 16:09:48.000000000 +0200
+--- head-2011-09-23.orig/drivers/block/Makefile 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/block/Makefile 2011-06-30 16:09:48.000000000 +0200
@@ -35,7 +35,7 @@ obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
obj-$(CONFIG_BLK_DEV_UB) += ub.o
obj-$(CONFIG_BLK_DEV_HD) += hd.o
@@ -2554,8 +2554,8 @@ Acked-by: jbeulich@novell.com
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/
obj-$(CONFIG_BLK_DEV_DRBD) += drbd/
obj-$(CONFIG_BLK_DEV_RBD) += rbd.o
---- head-2011-09-07.orig/drivers/block/xen-blkfront.c 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/drivers/block/xen-blkfront.c 2011-06-30 16:09:40.000000000 +0200
+--- head-2011-09-23.orig/drivers/block/xen-blkfront.c 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/block/xen-blkfront.c 2011-06-30 16:09:40.000000000 +0200
@@ -1374,7 +1374,6 @@ static const struct xenbus_device_id blk
static struct xenbus_driver blkfront = {
@@ -2564,8 +2564,8 @@ Acked-by: jbeulich@novell.com
.ids = blkfront_ids,
.probe = blkfront_probe,
.remove = blkfront_remove,
---- head-2011-09-07.orig/drivers/tty/hvc/Kconfig 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/drivers/tty/hvc/Kconfig 2011-09-07 15:27:50.000000000 +0200
+--- head-2011-09-23.orig/drivers/tty/hvc/Kconfig 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/tty/hvc/Kconfig 2011-09-07 15:27:50.000000000 +0200
@@ -60,7 +60,7 @@ config HVC_IUCV
config HVC_XEN
@@ -2575,9 +2575,9 @@ Acked-by: jbeulich@novell.com
select HVC_DRIVER
select HVC_IRQ
default y
---- head-2011-09-07.orig/drivers/net/Kconfig 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/drivers/net/Kconfig 2011-09-07 15:27:57.000000000 +0200
-@@ -2962,9 +2962,9 @@ config TILE_NET
+--- head-2011-09-23.orig/drivers/net/Kconfig 2011-09-23 09:40:45.000000000 +0200
++++ head-2011-09-23/drivers/net/Kconfig 2011-09-23 09:45:48.000000000 +0200
+@@ -2963,9 +2963,9 @@ config TILE_NET
To compile this driver as a module, choose M here: the module
will be called tile_net.
@@ -2589,8 +2589,8 @@ Acked-by: jbeulich@novell.com
select XEN_XENBUS_FRONTEND
default y
help
---- head-2011-09-07.orig/drivers/net/Makefile 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/drivers/net/Makefile 2011-09-07 15:28:07.000000000 +0200
+--- head-2011-09-23.orig/drivers/net/Makefile 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/net/Makefile 2011-09-07 15:28:07.000000000 +0200
@@ -171,7 +171,7 @@ obj-$(CONFIG_PPTP) += pppox.o pptp.o
obj-$(CONFIG_SLIP) += slip.o
obj-$(CONFIG_SLHC) += slhc.o
@@ -2600,8 +2600,8 @@ Acked-by: jbeulich@novell.com
obj-$(CONFIG_XEN_NETDEV_BACKEND) += xen-netback/
obj-$(CONFIG_DUMMY) += dummy.o
---- head-2011-09-07.orig/drivers/net/xen-netfront.c 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/drivers/net/xen-netfront.c 2011-09-07 15:28:15.000000000 +0200
+--- head-2011-09-23.orig/drivers/net/xen-netfront.c 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/drivers/net/xen-netfront.c 2011-09-07 15:28:15.000000000 +0200
@@ -1935,7 +1935,6 @@ static int __devexit xennet_remove(struc
static struct xenbus_driver netfront_driver = {
@@ -2610,8 +2610,8 @@ Acked-by: jbeulich@novell.com
.ids = netfront_ids,
.probe = netfront_probe,
.remove = __devexit_p(xennet_remove),
---- head-2011-09-07.orig/drivers/xen/Kconfig 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/Kconfig 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/Kconfig 2011-01-31 17:49:31.000000000 +0100
@@ -23,6 +23,9 @@ config XEN_PRIVILEGED_GUEST
config XEN_UNPRIVILEGED_GUEST
def_bool !XEN_PRIVILEGED_GUEST
@@ -2622,8 +2622,8 @@ Acked-by: jbeulich@novell.com
config XEN_PRIVCMD
def_bool y
---- head-2011-09-07.orig/drivers/xen/Makefile 2011-02-24 13:56:24.000000000 +0100
-+++ head-2011-09-07/drivers/xen/Makefile 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/Makefile 2011-02-24 13:56:24.000000000 +0100
++++ head-2011-09-23/drivers/xen/Makefile 2011-01-31 17:49:31.000000000 +0100
@@ -1,10 +1,14 @@
-obj-y += core/
-obj-y += console/
@@ -2645,8 +2645,8 @@ Acked-by: jbeulich@novell.com
obj-$(CONFIG_XEN_BALLOON) += balloon/
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += blkback/
obj-$(CONFIG_XEN_BLKDEV_TAP) += blktap/
---- head-2011-09-07.orig/drivers/xen/balloon/balloon.c 2011-03-23 08:51:42.000000000 +0100
-+++ head-2011-09-07/drivers/xen/balloon/balloon.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/balloon/balloon.c 2011-03-23 08:51:42.000000000 +0100
++++ head-2011-09-23/drivers/xen/balloon/balloon.c 2011-01-31 17:49:31.000000000 +0100
@@ -324,13 +324,9 @@ static int increase_reservation(unsigned
#ifndef MODULE
@@ -2661,8 +2661,8 @@ Acked-by: jbeulich@novell.com
vm_total_pages = nr_free_pagecache_pages();
#endif
---- head-2011-09-07.orig/drivers/xen/blkback/blkback.c 2011-01-31 17:32:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkback/blkback.c 2011-04-11 14:51:40.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkback/blkback.c 2011-01-31 17:32:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkback/blkback.c 2011-04-11 14:51:40.000000000 +0200
@@ -157,7 +157,7 @@ static void unplug_queue(blkif_t *blkif)
static void plug_queue(blkif_t *blkif, struct block_device *bdev)
@@ -2672,8 +2672,8 @@ Acked-by: jbeulich@novell.com
if (q == blkif->plug)
return;
---- head-2011-09-07.orig/drivers/xen/blkback/common.h 2011-04-11 14:28:27.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/common.h 2011-04-11 14:51:44.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkback/common.h 2011-04-11 14:28:27.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkback/common.h 2011-04-11 14:51:44.000000000 +0200
@@ -35,7 +35,6 @@
#include <linux/wait.h>
#include <asm/hypervisor.h>
@@ -2691,8 +2691,8 @@ Acked-by: jbeulich@novell.com
/* statistics */
unsigned long st_print;
---- head-2011-09-07.orig/drivers/xen/blkback/interface.c 2011-04-11 14:29:25.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/interface.c 2011-04-11 14:51:52.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkback/interface.c 2011-04-11 14:29:25.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkback/interface.c 2011-04-11 14:51:52.000000000 +0200
@@ -140,5 +140,5 @@ void blkif_free(blkif_t *blkif)
void __init blkif_interface_init(void)
{
@@ -2700,8 +2700,8 @@ Acked-by: jbeulich@novell.com
- 0, 0, NULL, NULL);
+ 0, 0, NULL);
}
---- head-2011-09-07.orig/drivers/xen/blkback/xenbus.c 2011-06-30 16:04:52.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/xenbus.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blkback/xenbus.c 2011-06-30 16:04:52.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkback/xenbus.c 2011-01-31 17:49:31.000000000 +0100
@@ -27,8 +27,6 @@
pr_debug("blkback/xenbus (%s:%d) " fmt ".\n", \
__FUNCTION__, __LINE__, ##args)
@@ -2738,8 +2738,8 @@ Acked-by: jbeulich@novell.com
return 0;
}
---- head-2011-09-07.orig/drivers/xen/blkfront/blkfront.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkfront/blkfront.c 2011-07-21 12:08:17.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkfront/blkfront.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkfront/blkfront.c 2011-07-21 12:08:17.000000000 +0200
@@ -572,14 +572,20 @@ int blkif_ioctl(struct inode *inode, str
return -EINVAL;
@@ -2771,8 +2771,8 @@ Acked-by: jbeulich@novell.com
{
struct blkfront_info *info = NULL;
struct request *req;
---- head-2011-09-07.orig/drivers/xen/blkfront/block.h 2010-02-24 13:13:46.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkfront/block.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blkfront/block.h 2010-02-24 13:13:46.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkfront/block.h 2011-01-31 17:49:31.000000000 +0100
@@ -107,7 +107,7 @@ struct blkfront_info
struct scatterlist sg[BLKIF_MAX_SEGMENTS_PER_REQUEST];
unsigned int irq;
@@ -2791,8 +2791,8 @@ Acked-by: jbeulich@novell.com
/* Virtual block-device subsystem. */
/* Note that xlvbd_add doesn't call add_disk for you: you're expected
---- head-2011-09-07.orig/drivers/xen/blkfront/vbd.c 2010-01-18 15:23:12.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkfront/vbd.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blkfront/vbd.c 2010-01-18 15:23:12.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkfront/vbd.c 2011-01-31 17:49:31.000000000 +0100
@@ -298,7 +298,7 @@ xlbd_release_minors(struct xlbd_major_in
static int
xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size)
@@ -2802,8 +2802,8 @@ Acked-by: jbeulich@novell.com
rq = blk_init_queue(do_blkif_request, &blkif_io_lock);
if (rq == NULL)
---- head-2011-09-07.orig/drivers/xen/blktap/common.h 2011-04-11 14:28:19.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blktap/common.h 2011-04-11 14:51:59.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap/common.h 2011-04-11 14:28:19.000000000 +0200
++++ head-2011-09-23/drivers/xen/blktap/common.h 2011-04-11 14:51:59.000000000 +0200
@@ -34,7 +34,6 @@
#include <linux/blkdev.h>
#include <asm/hypervisor.h>
@@ -2821,8 +2821,8 @@ Acked-by: jbeulich@novell.com
/* statistics */
unsigned long st_print;
---- head-2011-09-07.orig/drivers/xen/blktap/interface.c 2011-04-11 14:29:39.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blktap/interface.c 2011-04-11 14:52:00.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap/interface.c 2011-04-11 14:29:39.000000000 +0200
++++ head-2011-09-23/drivers/xen/blktap/interface.c 2011-04-11 14:52:00.000000000 +0200
@@ -136,5 +136,5 @@ void tap_blkif_kmem_cache_free(blkif_t *
void __init tap_blkif_interface_init(void)
{
@@ -2830,8 +2830,8 @@ Acked-by: jbeulich@novell.com
- 0, 0, NULL, NULL);
+ 0, 0, NULL);
}
---- head-2011-09-07.orig/drivers/xen/blktap/xenbus.c 2011-06-30 16:05:02.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blktap/xenbus.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap/xenbus.c 2011-06-30 16:05:02.000000000 +0200
++++ head-2011-09-23/drivers/xen/blktap/xenbus.c 2011-01-31 17:49:31.000000000 +0100
@@ -50,8 +50,6 @@ struct backend_info
int group_added;
};
@@ -2868,8 +2868,8 @@ Acked-by: jbeulich@novell.com
return 0;
}
---- head-2011-09-07.orig/drivers/xen/blktap2/blktap.h 2010-02-24 13:13:46.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap2/blktap.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/blktap.h 2010-02-24 13:13:46.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/blktap.h 2011-01-31 17:49:31.000000000 +0100
@@ -203,6 +203,7 @@ blktap_validate_params(struct blktap *ta
}
@@ -2878,8 +2878,8 @@ Acked-by: jbeulich@novell.com
int blktap_ring_init(int *);
int blktap_ring_free(void);
---- head-2011-09-07.orig/drivers/xen/blktap2/control.c 2011-04-11 13:43:15.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blktap2/control.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/control.c 2011-04-11 13:43:15.000000000 +0200
++++ head-2011-09-23/drivers/xen/blktap2/control.c 2011-01-31 17:49:31.000000000 +0100
@@ -194,14 +194,20 @@ blktap_control_destroy_device(struct blk
clear_bit(BLKTAP_SHUTDOWN_REQUESTED, &tap->dev_inuse);
@@ -2904,8 +2904,8 @@ Acked-by: jbeulich@novell.com
static int __init
blktap_control_init(void)
{
---- head-2011-09-07.orig/drivers/xen/blktap2/device.c 2010-11-25 09:36:37.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap2/device.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/device.c 2010-11-25 09:36:37.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/device.c 2011-01-31 17:49:31.000000000 +0100
@@ -833,7 +833,7 @@ static void
blktap_device_run_queue(struct blktap *tap)
{
@@ -2932,8 +2932,8 @@ Acked-by: jbeulich@novell.com
- BTERR("blktap device unregister failed\n");
+ unregister_blkdev(blktap_device_major, "tapdev");
}
---- head-2011-09-07.orig/drivers/xen/blktap2/sysfs.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap2/sysfs.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/sysfs.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/sysfs.c 2011-01-31 17:49:31.000000000 +0100
@@ -334,6 +334,24 @@ blktap_sysfs_create(struct blktap *tap)
return err;
}
@@ -2978,8 +2978,8 @@ Acked-by: jbeulich@novell.com
}
static ssize_t
---- head-2011-09-07.orig/drivers/xen/core/gnttab.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/gnttab.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/gnttab.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/gnttab.c 2011-01-31 17:49:31.000000000 +0100
@@ -42,7 +42,6 @@
#include <asm/synch_bitops.h>
#include <asm/io.h>
@@ -2988,8 +2988,8 @@ Acked-by: jbeulich@novell.com
#include <asm/gnttab_dma.h>
#ifdef HAVE_XEN_PLATFORM_COMPAT_H
---- head-2011-09-07.orig/drivers/xen/core/reboot.c 2011-01-31 17:32:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/reboot.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/reboot.c 2011-01-31 17:32:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/reboot.c 2011-01-31 17:49:31.000000000 +0100
@@ -3,6 +3,7 @@
#include <linux/unistd.h>
#include <linux/module.h>
@@ -2998,8 +2998,8 @@ Acked-by: jbeulich@novell.com
#include <linux/sysrq.h>
#include <asm/hypervisor.h>
#include <xen/xenbus.h>
---- head-2011-09-07.orig/drivers/xen/core/xen_proc.c 2011-04-11 13:43:15.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/xen_proc.c 2011-04-01 13:07:57.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/core/xen_proc.c 2011-04-11 13:43:15.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/xen_proc.c 2011-04-01 13:07:57.000000000 +0200
@@ -1,11 +1,15 @@
-
+#include <linux/init.h>
@@ -3027,8 +3027,8 @@ Acked-by: jbeulich@novell.com
void remove_xen_proc_entry(const char *name)
{
---- head-2011-09-07.orig/drivers/xen/netback/common.h 2011-04-11 14:38:17.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netback/common.h 2011-04-11 14:52:16.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/common.h 2011-04-11 14:38:17.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/common.h 2011-04-11 14:52:16.000000000 +0200
@@ -39,7 +39,6 @@
#include <linux/etherdevice.h>
#include <linux/wait.h>
@@ -3037,8 +3037,8 @@ Acked-by: jbeulich@novell.com
#include <xen/xenbus.h>
#include <xen/interface/event_channel.h>
---- head-2011-09-07.orig/drivers/xen/scsiback/common.h 2011-04-11 14:27:49.000000000 +0200
-+++ head-2011-09-07/drivers/xen/scsiback/common.h 2011-04-11 14:52:20.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/scsiback/common.h 2011-04-11 14:27:49.000000000 +0200
++++ head-2011-09-23/drivers/xen/scsiback/common.h 2011-04-11 14:52:20.000000000 +0200
@@ -49,7 +49,6 @@
#include <scsi/scsi_dbg.h>
#include <scsi/scsi_eh.h>
@@ -3047,8 +3047,8 @@ Acked-by: jbeulich@novell.com
#include <xen/xenbus.h>
#include <xen/interface/io/ring.h>
#include <xen/interface/io/vscsiif.h>
---- head-2011-09-07.orig/drivers/xen/scsiback/interface.c 2011-04-11 14:30:02.000000000 +0200
-+++ head-2011-09-07/drivers/xen/scsiback/interface.c 2011-04-11 14:52:22.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/scsiback/interface.c 2011-04-11 14:30:02.000000000 +0200
++++ head-2011-09-23/drivers/xen/scsiback/interface.c 2011-04-11 14:52:22.000000000 +0200
@@ -126,7 +126,7 @@ void scsiback_free(struct vscsibk_info *
int __init scsiback_interface_init(void)
{
@@ -3058,8 +3058,8 @@ Acked-by: jbeulich@novell.com
if (!scsiback_cachep) {
printk(KERN_ERR "scsiback: can't init scsi cache\n");
return -ENOMEM;
---- head-2011-09-07.orig/drivers/xen/scsifront/scsifront.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/scsifront/scsifront.c 2011-02-08 10:03:55.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/scsifront/scsifront.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/scsifront/scsifront.c 2011-02-08 10:03:55.000000000 +0100
@@ -147,7 +147,7 @@ static void scsifront_cdb_cmd_done(struc
add_id_to_freelist(info, id);
@@ -3089,8 +3089,8 @@ Acked-by: jbeulich@novell.com
vscsiif_request_t *ring_req;
uint16_t rqid;
---- head-2011-09-07.orig/drivers/xen/sfc_netback/accel_solarflare.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netback/accel_solarflare.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netback/accel_solarflare.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netback/accel_solarflare.c 2011-01-31 17:49:31.000000000 +0100
@@ -37,7 +37,6 @@
#include "ci/efhw/public.h"
@@ -3099,8 +3099,8 @@ Acked-by: jbeulich@novell.com
#include <linux/list.h>
#include <linux/mutex.h>
---- head-2011-09-07.orig/drivers/xen/sfc_netutil/accel_util.c 2010-09-23 15:39:04.000000000 +0200
-+++ head-2011-09-07/drivers/xen/sfc_netutil/accel_util.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netutil/accel_util.c 2010-09-23 15:39:04.000000000 +0200
++++ head-2011-09-23/drivers/xen/sfc_netutil/accel_util.c 2011-01-31 17:49:31.000000000 +0100
@@ -28,7 +28,6 @@
#include <asm/pgtable.h>
#include <asm/hypercall.h>
@@ -3109,8 +3109,8 @@ Acked-by: jbeulich@novell.com
#include <xen/gnttab.h>
#include "accel_util.h"
---- head-2011-09-07.orig/drivers/xen/tpmback/common.h 2011-04-11 14:32:54.000000000 +0200
-+++ head-2011-09-07/drivers/xen/tpmback/common.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/tpmback/common.h 2011-04-11 14:32:54.000000000 +0200
++++ head-2011-09-23/drivers/xen/tpmback/common.h 2011-01-31 17:49:31.000000000 +0100
@@ -10,7 +10,6 @@
#include <linux/interrupt.h>
#include <linux/mm.h>
@@ -3119,8 +3119,8 @@ Acked-by: jbeulich@novell.com
#include <xen/xenbus.h>
#include <xen/interface/event_channel.h>
#include <xen/interface/io/tpmif.h>
---- head-2011-09-07.orig/drivers/xen/tpmback/interface.c 2011-04-11 14:31:42.000000000 +0200
-+++ head-2011-09-07/drivers/xen/tpmback/interface.c 2011-04-11 14:52:30.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/tpmback/interface.c 2011-04-11 14:31:42.000000000 +0200
++++ head-2011-09-23/drivers/xen/tpmback/interface.c 2011-04-11 14:52:30.000000000 +0200
@@ -13,6 +13,7 @@
#include "common.h"
@@ -3138,8 +3138,8 @@ Acked-by: jbeulich@novell.com
return tpmif_cachep ? 0 : -ENOMEM;
}
---- head-2011-09-07.orig/drivers/xen/usbback/usbback.h 2011-04-11 14:27:35.000000000 +0200
-+++ head-2011-09-07/drivers/xen/usbback/usbback.h 2011-04-11 14:52:41.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/usbback/usbback.h 2011-04-11 14:27:35.000000000 +0200
++++ head-2011-09-23/drivers/xen/usbback/usbback.h 2011-04-11 14:52:41.000000000 +0200
@@ -55,7 +55,6 @@
#include <linux/wait.h>
#include <linux/list.h>
@@ -3148,8 +3148,8 @@ Acked-by: jbeulich@novell.com
#include <xen/xenbus.h>
#include <xen/interface/event_channel.h>
#include <xen/interface/io/usbif.h>
---- head-2011-09-07.orig/drivers/xen/usbfront/xenbus.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/usbfront/xenbus.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/usbfront/xenbus.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/usbfront/xenbus.c 2011-01-31 17:49:31.000000000 +0100
@@ -393,7 +393,7 @@ static int __init usbfront_init(void)
return -ENODEV;
@@ -3159,8 +3159,8 @@ Acked-by: jbeulich@novell.com
if (!xenhcd_urbp_cachep) {
printk(KERN_ERR "usbfront failed to create kmem cache\n");
return -ENOMEM;
---- head-2011-09-07.orig/drivers/xen/util.c 2007-07-10 09:42:30.000000000 +0200
-+++ head-2011-09-07/drivers/xen/util.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/util.c 2007-07-10 09:42:30.000000000 +0200
++++ head-2011-09-23/drivers/xen/util.c 2011-01-31 17:49:31.000000000 +0100
@@ -1,8 +1,5 @@
-#include <linux/mm.h>
+#include <linux/err.h>
@@ -3217,8 +3217,8 @@ Acked-by: jbeulich@novell.com
-}
-EXPORT_SYMBOL_GPL(free_vm_area);
-#endif /* CONFIG_X86 */
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_backend_client.c 2011-04-11 13:43:15.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_backend_client.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_backend_client.c 2011-04-11 13:43:15.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_backend_client.c 2011-01-31 17:49:31.000000000 +0100
@@ -32,9 +32,9 @@
#include <linux/err.h>
@@ -3230,8 +3230,8 @@ Acked-by: jbeulich@novell.com
/* Based on Rusty Russell's skeleton driver's map_page */
struct vm_struct *xenbus_map_ring_valloc(struct xenbus_device *dev, grant_ref_t gnt_ref)
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_client.c 2011-06-30 15:37:44.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_client.c 2011-06-30 16:10:27.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_client.c 2011-06-30 15:37:44.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_client.c 2011-06-30 16:10:27.000000000 +0200
@@ -30,19 +30,25 @@
* IN THE SOFTWARE.
*/
@@ -3677,8 +3677,8 @@ Acked-by: jbeulich@novell.com
enum xenbus_state xenbus_read_driver_state(const char *path)
{
int result;
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_comms.c 2011-01-31 17:32:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 14:52:53.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_comms.c 2011-01-31 17:32:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 14:52:53.000000000 +0200
@@ -34,12 +34,15 @@
#include <linux/interrupt.h>
#include <linux/sched.h>
@@ -3744,8 +3744,8 @@ Acked-by: jbeulich@novell.com
xen_store_evtchn, wake_waiting,
0, "xenbus", &xb_waitq);
if (err <= 0) {
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_dev.c 2011-06-30 15:37:44.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_dev.c 2011-06-30 16:10:32.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_dev.c 2011-06-30 15:37:44.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_dev.c 2011-06-30 16:10:32.000000000 +0200
@@ -487,7 +487,13 @@ static const struct file_operations xenb
#endif
};
@@ -3761,8 +3761,8 @@ Acked-by: jbeulich@novell.com
{
xenbus_dev_intf = create_xen_proc_entry("xenbus", 0400);
if (xenbus_dev_intf)
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe.c 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe.c 2011-06-30 16:10:35.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe.c 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe.c 2011-06-30 16:10:35.000000000 +0200
@@ -43,21 +43,26 @@
#include <linux/mm.h>
#include <linux/notifier.h>
@@ -4062,8 +4062,8 @@ Acked-by: jbeulich@novell.com
{
return xenbus_probe_init();
}
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe.h 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe.h 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe.h 2011-01-31 17:49:31.000000000 +0100
@@ -62,7 +62,9 @@ struct xen_bus_type
int (*get_bus_id)(char bus_id[XEN_BUS_ID_SIZE], const char *nodename);
int (*probe)(const char *type, const char *dir);
@@ -4082,8 +4082,8 @@ Acked-by: jbeulich@novell.com
+extern void xenbus_dev_changed(const char *node, struct xen_bus_type *bus);
#endif
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:49:31.000000000 +0100
@@ -236,7 +236,7 @@ static void backend_changed(struct xenbu
{
DPRINTK("");
@@ -4093,8 +4093,8 @@ Acked-by: jbeulich@novell.com
}
static struct xenbus_watch be_watch = {
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:06:45.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:10:38.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:06:45.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:10:38.000000000 +0200
@@ -661,7 +661,9 @@ void unregister_xenbus_watch(struct xenb
char token[sizeof(watch) * 2 + 1];
int err;
@@ -4170,8 +4170,8 @@ Acked-by: jbeulich@novell.com
}
return 0;
---- head-2011-09-07.orig/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 17:49:31.000000000 +0100
@@ -26,7 +26,6 @@
#include <asm/pgtable.h>
#include <xen/evtchn.h>
@@ -4180,8 +4180,8 @@ Acked-by: jbeulich@novell.com
#include <xen/interface/xen.h>
#include <xen/interface/xenoprof.h>
#include "../../../drivers/oprofile/cpu_buffer.h"
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-01-31 17:49:31.000000000 +0100
@@ -53,6 +53,8 @@ extern unsigned long __FIXADDR_TOP;
enum fixed_addresses {
FIX_HOLE,
@@ -4191,8 +4191,8 @@ Acked-by: jbeulich@novell.com
#ifdef CONFIG_X86_LOCAL_APIC
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/highmem.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/highmem.h 2011-01-31 17:49:31.000000000 +0100
@@ -75,8 +75,7 @@ struct page *kmap_atomic_to_page(void *p
#define kmap_atomic_pte(page, type) \
@@ -4203,8 +4203,8 @@ Acked-by: jbeulich@novell.com
#define flush_cache_kmaps() do { } while (0)
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/maddr_32.h 2011-08-08 12:54:10.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/maddr_32.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/maddr_32.h 2011-08-08 12:54:10.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/maddr_32.h 2011-01-31 17:49:31.000000000 +0100
@@ -155,6 +155,7 @@ static inline paddr_t pte_machine_to_phy
#ifdef CONFIG_X86_PAE
@@ -4213,8 +4213,8 @@ Acked-by: jbeulich@novell.com
static inline pte_t pfn_pte_ma(unsigned long page_nr, pgprot_t pgprot)
{
pte_t pte;
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-01-31 17:49:31.000000000 +0100
@@ -16,7 +16,7 @@ void mm_pin_all(void);
static inline void xen_activate_mm(struct mm_struct *prev,
struct mm_struct *next)
@@ -4242,8 +4242,8 @@ Acked-by: jbeulich@novell.com
/* stop flush ipis for the previous mm */
cpu_clear(cpu, prev->cpu_vm_mask);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgalloc_32.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgalloc_32.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgalloc_32.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgalloc_32.h 2011-01-31 17:49:31.000000000 +0100
@@ -5,7 +5,7 @@
#include <linux/mm.h> /* for struct page */
#include <asm/io.h> /* for phys_to_virt and page_to_pseudophys */
@@ -4272,8 +4272,8 @@ Acked-by: jbeulich@novell.com
if (!PageHighMem(pte)) \
BUG_ON(HYPERVISOR_update_va_mapping( \
(unsigned long)__va(pfn << PAGE_SHIFT), \
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-07 15:38:07.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-07 15:38:23.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-07 15:38:07.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-07 15:38:23.000000000 +0100
@@ -26,9 +26,6 @@
#include <linux/spinlock.h>
#include <linux/sched.h>
@@ -4405,8 +4405,8 @@ Acked-by: jbeulich@novell.com
xen_l1_entry_update(ptep, __pte(0)); \
else \
*(ptep) = __pte(0); \
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-01-31 17:49:31.000000000 +0100
@@ -23,26 +23,11 @@
#define pud_present(pud) 1
@@ -4435,8 +4435,8 @@ Acked-by: jbeulich@novell.com
}
/* Rules for using set_pte: the pte being assigned *must* be
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/processor_32.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/processor_32.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/processor_32.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/processor_32.h 2011-01-31 17:49:31.000000000 +0100
@@ -89,7 +89,6 @@ struct cpuinfo_x86 {
#define X86_VENDOR_UMC 3
#define X86_VENDOR_NEXGEN 4
@@ -4482,8 +4482,8 @@ Acked-by: jbeulich@novell.com
/*
* Size of io_bitmap.
*/
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/system_32.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/system_32.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/system_32.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/system_32.h 2011-01-31 17:49:31.000000000 +0100
@@ -205,11 +205,6 @@ static inline unsigned long get_limit(un
*/
@@ -4512,8 +4512,8 @@ Acked-by: jbeulich@novell.com
extern unsigned long arch_align_stack(unsigned long sp);
extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/tlbflush_32.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/tlbflush_32.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/tlbflush_32.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/tlbflush_32.h 2011-01-31 17:49:31.000000000 +0100
@@ -91,7 +91,11 @@ struct tlb_state
DECLARE_PER_CPU(struct tlb_state, cpu_tlbstate);
#endif /* SMP */
@@ -4527,8 +4527,8 @@ Acked-by: jbeulich@novell.com
static inline void flush_tlb_pgtables(struct mm_struct *mm,
unsigned long start, unsigned long end)
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-01-31 17:49:31.000000000 +0100
@@ -23,9 +23,9 @@
* compile time, but to set the physical address only
* in the boot process.
@@ -4560,8 +4560,8 @@ Acked-by: jbeulich@novell.com
}
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-01-31 17:49:31.000000000 +0100
@@ -76,7 +76,7 @@ static inline void switch_mm(struct mm_s
if (likely(prev != next)) {
@@ -4580,8 +4580,8 @@ Acked-by: jbeulich@novell.com
mm_pin(next);
switch_mm(prev, next, NULL);
}
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 17:49:31.000000000 +0100
@@ -21,7 +21,7 @@ static inline void pmd_populate_kernel(s
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *pte)
@@ -4609,8 +4609,8 @@ Acked-by: jbeulich@novell.com
BUG_ON(HYPERVISOR_update_va_mapping(
(unsigned long)pud,
pfn_pte(virt_to_phys(pud)>>PAGE_SHIFT,
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-02-07 15:38:08.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-02-07 15:38:18.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-02-07 15:38:08.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-02-07 15:38:18.000000000 +0100
@@ -304,7 +304,7 @@ static inline pte_t ptep_get_and_clear_f
{
if (full) {
@@ -4701,8 +4701,8 @@ Acked-by: jbeulich@novell.com
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL
#define __HAVE_ARCH_PTEP_CLEAR_FLUSH
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/processor_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/processor_64.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/processor_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/processor_64.h 2011-01-31 17:49:31.000000000 +0100
@@ -83,7 +83,6 @@ struct cpuinfo_x86 {
#define X86_VENDOR_UMC 3
#define X86_VENDOR_NEXGEN 4
@@ -4751,8 +4751,8 @@ Acked-by: jbeulich@novell.com
static inline void serialize_cpu(void)
{
__asm__ __volatile__ ("cpuid" : : : "ax", "bx", "cx", "dx");
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/system_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/system_64.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/system_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/system_64.h 2011-01-31 17:49:31.000000000 +0100
@@ -79,12 +79,16 @@ static inline unsigned long read_cr0(voi
unsigned long cr0;
asm volatile("movq %%cr0,%0" : "=r" (cr0));
@@ -4813,8 +4813,8 @@ Acked-by: jbeulich@novell.com
#endif /* __KERNEL__ */
#define nop() __asm__ __volatile__ ("nop")
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/tlbflush_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/tlbflush_64.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/tlbflush_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/tlbflush_64.h 2011-01-31 17:49:31.000000000 +0100
@@ -89,7 +89,11 @@ static inline void flush_tlb_range(struc
#endif
@@ -4828,8 +4828,8 @@ Acked-by: jbeulich@novell.com
static inline void flush_tlb_pgtables(struct mm_struct *mm,
unsigned long start, unsigned long end)
---- head-2011-09-07.orig/arch/x86/include/asm/thread_info.h 2011-01-31 17:02:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/asm/thread_info.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/asm/thread_info.h 2011-01-31 17:02:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/asm/thread_info.h 2011-01-31 17:49:31.000000000 +0100
@@ -151,7 +151,8 @@ struct thread_info {
#define _TIF_WORK_CTXSW_PREV (_TIF_WORK_CTXSW|_TIF_USER_RETURN_NOTIFY)
#define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW|_TIF_DEBUG)
@@ -4840,8 +4840,8 @@ Acked-by: jbeulich@novell.com
#endif
#define PREEMPT_ACTIVE 0x10000000
---- head-2011-09-07.orig/arch/x86/include/asm/xen/interface.h 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/xen/interface.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/asm/xen/interface.h 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/xen/interface.h 2011-01-31 17:49:31.000000000 +0100
@@ -10,17 +10,20 @@
#define _ASM_X86_XEN_INTERFACE_H
@@ -4894,8 +4894,8 @@ Acked-by: jbeulich@novell.com
/*
* SEGMENT DESCRIPTOR TABLES
---- head-2011-09-07.orig/include/linux/elfnote.h 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/include/linux/elfnote.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/include/linux/elfnote.h 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/include/linux/elfnote.h 2011-01-31 17:49:31.000000000 +0100
@@ -52,7 +52,7 @@
4484:.balign 4 ; \
.popsection ;
@@ -4905,8 +4905,8 @@ Acked-by: jbeulich@novell.com
ELFNOTE_START(name, type, "") \
desc ; \
ELFNOTE_END
---- head-2011-09-07.orig/include/linux/page-flags.h 2011-09-07 15:19:40.000000000 +0200
-+++ head-2011-09-07/include/linux/page-flags.h 2011-09-07 15:27:19.000000000 +0200
+--- head-2011-09-23.orig/include/linux/page-flags.h 2011-09-07 15:19:40.000000000 +0200
++++ head-2011-09-23/include/linux/page-flags.h 2011-09-07 15:27:19.000000000 +0200
@@ -124,8 +124,15 @@ enum pageflags {
PG_fscache = PG_private_2, /* page backed by cache */
@@ -4935,8 +4935,8 @@ Acked-by: jbeulich@novell.com
#else
# define __PG_XEN (1 << PG_foreign)
#endif
---- head-2011-09-07.orig/include/xen/driver_util.h 2007-06-12 13:14:19.000000000 +0200
-+++ head-2011-09-07/include/xen/driver_util.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/include/xen/driver_util.h 2007-06-12 13:14:19.000000000 +0200
++++ head-2011-09-23/include/xen/driver_util.h 2011-01-31 17:49:31.000000000 +0100
@@ -1,14 +1,8 @@
+#ifndef __XEN_DRIVER_UTIL_H__
+#define __XEN_DRIVER_UTIL_H__
@@ -4955,8 +4955,8 @@ Acked-by: jbeulich@novell.com
-#endif /* __ASM_XEN_DRIVER_UTIL_H__ */
+#endif /* __XEN_DRIVER_UTIL_H__ */
---- head-2011-09-07.orig/include/xen/features.h 2011-09-12 12:13:45.000000000 +0200
-+++ head-2011-09-07/include/xen/features.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/include/xen/features.h 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/include/xen/features.h 2011-01-31 17:49:31.000000000 +0100
@@ -10,6 +10,7 @@
#define __XEN_FEATURES_H__
@@ -4971,8 +4971,8 @@ Acked-by: jbeulich@novell.com
-#endif /* __ASM_XEN_FEATURES_H__ */
+#endif /* __XEN_FEATURES_H__ */
---- head-2011-09-07.orig/include/xen/interface/arch-x86/xen.h 2011-03-17 13:50:24.000000000 +0100
-+++ head-2011-09-07/include/xen/interface/arch-x86/xen.h 2011-03-17 14:11:48.000000000 +0100
+--- head-2011-09-23.orig/include/xen/interface/arch-x86/xen.h 2011-03-17 13:50:24.000000000 +0100
++++ head-2011-09-23/include/xen/interface/arch-x86/xen.h 2011-03-17 14:11:48.000000000 +0100
@@ -50,6 +50,9 @@
#endif
#define set_xen_guest_handle(hnd, val) set_xen_guest_handle_raw(hnd, val)
@@ -4983,8 +4983,8 @@ Acked-by: jbeulich@novell.com
#if defined(__i386__)
#include "xen-x86_32.h"
#elif defined(__x86_64__)
---- head-2011-09-07.orig/include/xen/interface/event_channel.h 2011-01-31 15:14:12.000000000 +0100
-+++ head-2011-09-07/include/xen/interface/event_channel.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/include/xen/interface/event_channel.h 2011-01-31 15:14:12.000000000 +0100
++++ head-2011-09-23/include/xen/interface/event_channel.h 2011-01-31 17:49:31.000000000 +0100
@@ -250,6 +250,7 @@ struct evtchn_op {
struct evtchn_unmask unmask;
} u;
@@ -4993,8 +4993,8 @@ Acked-by: jbeulich@novell.com
typedef struct evtchn_op evtchn_op_t;
DEFINE_XEN_GUEST_HANDLE(evtchn_op_t);
---- head-2011-09-07.orig/include/xen/interface/io/netif.h 2011-01-31 15:14:12.000000000 +0100
-+++ head-2011-09-07/include/xen/interface/io/netif.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/include/xen/interface/io/netif.h 2011-01-31 15:14:12.000000000 +0100
++++ head-2011-09-23/include/xen/interface/io/netif.h 2011-01-31 17:49:31.000000000 +0100
@@ -183,8 +183,22 @@ typedef struct netif_rx_response netif_r
* Generate netif ring structures and types.
*/
@@ -5018,8 +5018,8 @@ Acked-by: jbeulich@novell.com
#define NETIF_RSP_DROPPED -2
#define NETIF_RSP_ERROR -1
---- head-2011-09-07.orig/include/xen/interface/memory.h 2011-01-31 15:14:12.000000000 +0100
-+++ head-2011-09-07/include/xen/interface/memory.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/include/xen/interface/memory.h 2011-01-31 15:14:12.000000000 +0100
++++ head-2011-09-23/include/xen/interface/memory.h 2011-01-31 17:49:31.000000000 +0100
@@ -88,6 +88,7 @@ struct xen_memory_reservation {
*/
domid_t domid;
@@ -5044,8 +5044,8 @@ Acked-by: jbeulich@novell.com
typedef struct xen_add_to_physmap xen_add_to_physmap_t;
DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
---- head-2011-09-07.orig/include/xen/interface/sched.h 2011-01-31 15:14:12.000000000 +0100
-+++ head-2011-09-07/include/xen/interface/sched.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/include/xen/interface/sched.h 2011-01-31 15:14:12.000000000 +0100
++++ head-2011-09-23/include/xen/interface/sched.h 2011-01-31 17:49:31.000000000 +0100
@@ -67,6 +67,7 @@
struct sched_shutdown {
unsigned int reason; /* SHUTDOWN_* */
@@ -5062,8 +5062,8 @@ Acked-by: jbeulich@novell.com
typedef struct sched_poll sched_poll_t;
DEFINE_XEN_GUEST_HANDLE(sched_poll_t);
---- head-2011-09-07.orig/include/xen/interface/version.h 2011-01-31 15:14:12.000000000 +0100
-+++ head-2011-09-07/include/xen/interface/version.h 2011-01-31 17:49:31.000000000 +0100
+--- head-2011-09-23.orig/include/xen/interface/version.h 2011-01-31 15:14:12.000000000 +0100
++++ head-2011-09-23/include/xen/interface/version.h 2011-01-31 17:49:31.000000000 +0100
@@ -36,6 +36,9 @@
/* arg == xen_extraversion_t. */
#define XENVER_extraversion 1
@@ -5091,8 +5091,8 @@ Acked-by: jbeulich@novell.com
#define XEN_CHANGESET_INFO_LEN (sizeof(xen_changeset_info_t))
#define XENVER_platform_parameters 5
---- head-2011-09-07.orig/include/xen/interface/xen.h 2011-09-07 15:18:35.000000000 +0200
-+++ head-2011-09-07/include/xen/interface/xen.h 2011-08-09 10:41:09.000000000 +0200
+--- head-2011-09-23.orig/include/xen/interface/xen.h 2011-09-07 15:18:35.000000000 +0200
++++ head-2011-09-23/include/xen/interface/xen.h 2011-08-09 10:41:09.000000000 +0200
@@ -32,7 +32,9 @@
#include <asm/pvclock-abi.h>
#endif
@@ -5155,8 +5155,8 @@ Acked-by: jbeulich@novell.com
typedef struct multicall_entry multicall_entry_t;
DEFINE_XEN_GUEST_HANDLE(multicall_entry_t);
---- head-2011-09-07.orig/include/xen/xenbus.h 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/include/xen/xenbus.h 2011-09-12 12:17:52.000000000 +0200
+--- head-2011-09-23.orig/include/xen/xenbus.h 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/include/xen/xenbus.h 2011-09-12 12:17:52.000000000 +0200
@@ -57,16 +57,20 @@ struct xenbus_watch
void (*callback)(struct xenbus_watch *,
const char **vec, unsigned int len);
diff --git a/patches.xen/xen3-patch-2.6.24 b/patches.xen/xen3-patch-2.6.24
index 62ace513ac..7cdbfdbafb 100644
--- a/patches.xen/xen3-patch-2.6.24
+++ b/patches.xen/xen3-patch-2.6.24
@@ -6,8 +6,8 @@ Automatically created from "patches.kernel.org/patch-2.6.24" by xen-port-patches
Acked-by: jbeulich@novell.com
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-07 15:25:51.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-07 15:36:37.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-07 15:25:51.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-07 15:36:37.000000000 +0200
@@ -92,11 +92,11 @@ config GENERIC_CMOS_UPDATE
config CLOCKSOURCE_WATCHDOG
@@ -116,8 +116,8 @@ Acked-by: jbeulich@novell.com
select HOTPLUG
default y
help
---- head-2011-09-07.orig/arch/x86/Makefile 2011-04-13 11:31:41.000000000 +0200
-+++ head-2011-09-07/arch/x86/Makefile 2011-02-01 14:11:04.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/Makefile 2011-04-13 11:31:41.000000000 +0200
++++ head-2011-09-23/arch/x86/Makefile 2011-02-01 14:11:04.000000000 +0100
@@ -158,8 +158,8 @@ BOOT_TARGETS = bzlilo bzdisk fdimage fdi
PHONY += bzImage vmlinuz $(BOOT_TARGETS)
@@ -138,8 +138,8 @@ Acked-by: jbeulich@novell.com
else
# Default kernel to build
all: bzImage
---- head-2011-09-07.orig/arch/x86/ia32/ia32entry-xen.S 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/ia32/ia32entry-xen.S 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/ia32/ia32entry-xen.S 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/ia32/ia32entry-xen.S 2011-01-31 17:56:27.000000000 +0100
@@ -125,20 +125,16 @@ sysenter_do_call:
jmp int_ret_from_sys_call
@@ -188,16 +188,16 @@ Acked-by: jbeulich@novell.com
jmp cstar_do_call
END(ia32_cstar_target)
---- head-2011-09-07.orig/arch/x86/kernel/Makefile 2011-09-07 15:25:48.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/Makefile 2011-09-07 15:36:34.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/Makefile 2011-09-07 15:25:48.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/Makefile 2011-09-07 15:36:34.000000000 +0200
@@ -120,4 +120,4 @@ endif
disabled-obj-$(CONFIG_XEN) := early-quirks.o hpet.o i8253.o i8259_$(BITS).o reboot.o \
smpboot_$(BITS).o tsc_$(BITS).o tsc_sync.o
disabled-obj-$(CONFIG_XEN_UNPRIVILEGED_GUEST) += mpparse_64.o
-%/head_64.o %/head_64.s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
+%/head_64.o %/head_64.s: asflags-$(CONFIG_XEN) :=
---- head-2011-09-07.orig/arch/x86/kernel/acpi/processor_extcntl_xen.c 2010-03-22 12:00:53.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/acpi/processor_extcntl_xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/acpi/processor_extcntl_xen.c 2010-03-22 12:00:53.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/acpi/processor_extcntl_xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -68,7 +68,7 @@ static int xen_cx_notifier(struct acpi_p
/* Get dependency relationships */
@@ -216,8 +216,8 @@ Acked-by: jbeulich@novell.com
kfree(buf);
return -EINVAL;
}
---- head-2011-09-07.orig/arch/x86/kernel/cpu/Makefile 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/Makefile 2011-06-30 16:31:56.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/Makefile 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/Makefile 2011-06-30 16:31:56.000000000 +0200
@@ -33,6 +33,8 @@ obj-$(CONFIG_MTRR) += mtrr/
obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o
@@ -227,8 +227,8 @@ Acked-by: jbeulich@novell.com
quiet_cmd_mkcapflags = MKCAP $@
cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@
---- head-2011-09-07.orig/arch/x86/kernel/cpu/common-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/cpu/common-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/common-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/cpu/common-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -214,7 +214,7 @@ static void __cpuinit get_cpu_vendor(str
static int __init x86_fxsr_setup(char * s)
@@ -248,8 +248,8 @@ Acked-by: jbeulich@novell.com
c->x86_clflush_size = 32;
memset(&c->x86_capability, 0, sizeof c->x86_capability);
---- head-2011-09-07.orig/arch/x86/kernel/cpu/intel.c 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/intel.c 2011-06-30 16:32:02.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/intel.c 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/intel.c 2011-06-30 16:32:02.000000000 +0200
@@ -302,6 +302,7 @@ static void __cpuinit srat_detect_node(s
#endif
}
@@ -282,8 +282,8 @@ Acked-by: jbeulich@novell.com
/* Work around errata */
srat_detect_node(c);
---- head-2011-09-07.orig/arch/x86/kernel/cpu/intel_cacheinfo.c 2011-06-30 16:01:36.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/intel_cacheinfo.c 2011-06-30 16:32:06.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/intel_cacheinfo.c 2011-06-30 16:01:36.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/intel_cacheinfo.c 2011-06-30 16:32:06.000000000 +0200
@@ -290,8 +290,9 @@ amd_cpuid4(int leaf, union _cpuid4_leaf_
eax->split.type = types[leaf];
eax->split.level = levels[leaf];
@@ -326,8 +326,8 @@ Acked-by: jbeulich@novell.com
break;
default:
break;
---- head-2011-09-07.orig/arch/x86/kernel/cpu/mcheck/mce_dom0.c 2011-08-15 10:44:20.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/mcheck/mce_dom0.c 2011-08-15 10:44:51.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/mcheck/mce_dom0.c 2011-08-15 10:44:20.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/mcheck/mce_dom0.c 2011-08-15 10:44:51.000000000 +0200
@@ -17,7 +17,7 @@ static int convert_log(struct mc_info *m
x86_mcinfo_lookup(mic, mi, MC_TYPE_GLOBAL);
if (mic == NULL)
@@ -364,8 +364,8 @@ Acked-by: jbeulich@novell.com
/* Log the machine checks left over from the previous reset. */
mce_dom0_interrupt(VIRQ_MCA, NULL);
---- head-2011-09-07.orig/arch/x86/kernel/e820_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/e820_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/e820_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/e820_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -52,6 +52,13 @@ struct resource code_resource = {
.flags = IORESOURCE_BUSY | IORESOURCE_MEM
};
@@ -427,8 +427,8 @@ Acked-by: jbeulich@novell.com
* memory space.
*/
last = 0x100000000ull;
---- head-2011-09-07.orig/arch/x86/kernel/e820_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/e820_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/e820_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/e820_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -24,7 +24,7 @@
#include <asm/page.h>
#include <asm/e820.h>
@@ -509,8 +509,8 @@ Acked-by: jbeulich@novell.com
+ max_pfn << PAGE_SHIFT) - *addr;
+ return i + 1;
+}
---- head-2011-09-07.orig/arch/x86/kernel/early_printk-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/early_printk-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/early_printk-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/early_printk-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -6,15 +6,10 @@
#include <asm/io.h>
#include <asm/processor.h>
@@ -544,8 +544,8 @@ Acked-by: jbeulich@novell.com
#endif
early_console = &early_vga_console;
} else if (!strncmp(buf, "simnow", 6)) {
---- head-2011-09-07.orig/arch/x86/kernel/entry_32-xen.S 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:06.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/entry_32-xen.S 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:06.000000000 +0200
@@ -254,6 +254,7 @@ check_userspace:
jb resume_kernel # not returning to v8086 or userspace
@@ -595,8 +595,8 @@ Acked-by: jbeulich@novell.com
+#include "syscall_table_32.S"
syscall_table_size=(.-sys_call_table)
---- head-2011-09-07.orig/arch/x86/kernel/entry_64-xen.S 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/entry_64-xen.S 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/entry_64-xen.S 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/entry_64-xen.S 2011-01-31 17:56:27.000000000 +0100
@@ -57,7 +57,7 @@
#include <xen/interface/arch-x86_64.h>
#include <xen/interface/features.h>
@@ -670,8 +670,8 @@ Acked-by: jbeulich@novell.com
call do_exit
CFI_ENDPROC
ENDPROC(child_rip)
---- head-2011-09-07.orig/arch/x86/kernel/fixup.c 2008-01-28 12:24:18.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/fixup.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/fixup.c 2008-01-28 12:24:18.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/fixup.c 2011-01-31 17:56:27.000000000 +0100
@@ -34,7 +34,7 @@
#include <linux/delay.h>
#include <linux/version.h>
@@ -681,8 +681,8 @@ Acked-by: jbeulich@novell.com
fastcall void do_fixup_4gb_segment(struct pt_regs *regs, long error_code)
{
---- head-2011-09-07.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:41:42.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head64-xen.c 2011-08-09 10:44:02.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:41:42.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head64-xen.c 2011-08-09 10:44:02.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * linux/arch/x86_64/kernel/head64.c -- prepare to run common code
@@ -739,8 +739,8 @@ Acked-by: jbeulich@novell.com
#endif
early_printk("Kernel alive\n");
---- head-2011-09-07.orig/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -427,7 +427,7 @@ static struct irq_cpu_info {
#define IRQ_ALLOWED(cpu, allowed_mask) cpu_isset(cpu, allowed_mask)
@@ -931,8 +931,8 @@ Acked-by: jbeulich@novell.com
#endif /* CONFIG_ACPI */
static int __init parse_disable_timer_pin_1(char *arg)
---- head-2011-09-07.orig/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -31,6 +31,7 @@
#include <linux/sysdev.h>
#include <linux/msi.h>
@@ -1176,8 +1176,8 @@ Acked-by: jbeulich@novell.com
#endif
#endif /* !CONFIG_XEN */
+
---- head-2011-09-07.orig/arch/x86/kernel/ioport_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ioport_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ioport_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ioport_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/i386/kernel/ioport.c
@@ -1185,8 +1185,8 @@ Acked-by: jbeulich@novell.com
* This contains the io-permission bitmap code - written by obz, with changes
* by Linus.
*/
---- head-2011-09-07.orig/arch/x86/kernel/ioport_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ioport_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ioport_64-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ioport_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/x86_64/kernel/ioport.c
@@ -1194,8 +1194,8 @@ Acked-by: jbeulich@novell.com
* This contains the io-permission bitmap code - written by obz, with changes
* by Linus.
*/
---- head-2011-09-07.orig/arch/x86/kernel/ldt_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ldt_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ldt_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ldt_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/i386/kernel/ldt.c
@@ -1257,8 +1257,8 @@ Acked-by: jbeulich@novell.com
out:
return error;
}
---- head-2011-09-07.orig/arch/x86/kernel/ldt_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ldt_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ldt_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ldt_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/x86_64/kernel/ldt.c
@@ -1337,8 +1337,8 @@ Acked-by: jbeulich@novell.com
out:
return error;
}
---- head-2011-09-07.orig/arch/x86/kernel/mpparse_32-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/mpparse_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/mpparse_32-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/mpparse_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -65,8 +65,10 @@ unsigned long mp_lapic_addr;
unsigned int def_to_bigsmp = 0;
@@ -1388,8 +1388,8 @@ Acked-by: jbeulich@novell.com
*/
for (i = 0; i < 16; i++) {
int idx;
---- head-2011-09-07.orig/arch/x86/kernel/mpparse_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/mpparse_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/mpparse_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/mpparse_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -54,9 +54,12 @@ int nr_ioapics;
unsigned long mp_lapic_addr = 0;
@@ -1454,8 +1454,8 @@ Acked-by: jbeulich@novell.com
processor.mpc_type = MP_PROCESSOR;
processor.mpc_apicid = id;
processor.mpc_apicver = 0;
---- head-2011-09-07.orig/arch/x86/kernel/pci-dma-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/pci-dma-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/pci-dma-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/pci-dma-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -13,14 +13,13 @@
#include <linux/pci.h>
#include <linux/module.h>
@@ -1548,8 +1548,8 @@ Acked-by: jbeulich@novell.com
if (mem && vaddr >= mem->virt_base && vaddr < (mem->virt_base + (mem->size << PAGE_SHIFT))) {
int page = (vaddr - mem->virt_base) >> PAGE_SHIFT;
---- head-2011-09-07.orig/arch/x86/kernel/process_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/i386/kernel/process.c
@@ -1676,8 +1676,8 @@ Acked-by: jbeulich@novell.com
show_trace(NULL, regs, &regs->esp);
}
---- head-2011-09-07.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:31:50.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_64-xen.c 2011-02-02 08:32:00.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:31:50.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_64-xen.c 2011-02-02 08:32:00.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/x86-64/kernel/process.c
@@ -1744,8 +1744,8 @@ Acked-by: jbeulich@novell.com
__switch_to(struct task_struct *prev_p, struct task_struct *next_p)
{
struct thread_struct *prev = &prev_p->thread,
---- head-2011-09-07.orig/arch/x86/kernel/quirks.c 2011-09-07 15:20:23.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/quirks.c 2011-09-07 15:36:26.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/quirks.c 2011-09-07 15:20:23.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/quirks.c 2011-09-07 15:36:26.000000000 +0200
@@ -4,8 +4,6 @@
#include <linux/pci.h>
#include <linux/irq.h>
@@ -1764,8 +1764,8 @@ Acked-by: jbeulich@novell.com
unsigned long force_hpet_address;
static enum {
---- head-2011-09-07.orig/arch/x86/kernel/setup64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/setup64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/setup64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -15,7 +15,6 @@
#include <linux/bootmem.h>
#include <linux/bitops.h>
@@ -1814,8 +1814,8 @@ Acked-by: jbeulich@novell.com
/*
* cpu_init() initializes state that is per-CPU. Some data is already
* initialized (naturally) in the bootstrap process, such as the GDT
---- head-2011-09-07.orig/arch/x86/kernel/setup_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/setup_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/setup_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/i386/kernel/setup.c
@@ -2072,8 +2072,8 @@ Acked-by: jbeulich@novell.com
#endif
#ifdef CONFIG_ACPI
---- head-2011-09-07.orig/arch/x86/kernel/setup_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/setup_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/setup_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,10 +1,5 @@
/*
- * linux/arch/x86-64/kernel/setup.c
@@ -2523,8 +2523,8 @@ Acked-by: jbeulich@novell.com
return c_start(m, pos);
}
---- head-2011-09-07.orig/arch/x86/kernel/smp_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/smp_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/smp_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/smp_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -72,7 +72,7 @@
*
* B stepping CPUs may hang. There are hardware work arounds
@@ -2576,8 +2576,8 @@ Acked-by: jbeulich@novell.com
irq_exit();
if (wait) {
---- head-2011-09-07.orig/arch/x86/kernel/smp_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/smp_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/smp_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/smp_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -167,6 +167,7 @@ asmlinkage void smp_invalidate_interrupt
out:
ack_APIC_irq();
@@ -2784,8 +2784,8 @@ Acked-by: jbeulich@novell.com
irq_exit();
if (wait) {
mb();
---- head-2011-09-07.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:22:42.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/time-xen.c 2011-08-23 13:45:52.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:22:42.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/time-xen.c 2011-08-23 13:45:52.000000000 +0200
@@ -1,6 +1,4 @@
/*
- * linux/arch/i386/kernel/time.c
@@ -2893,8 +2893,8 @@ Acked-by: jbeulich@novell.com
};
static int __init xen_sysctl_init(void)
{
---- head-2011-09-07.orig/arch/x86/kernel/traps_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/traps_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/traps_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/i386/traps.c
@@ -3137,8 +3137,8 @@ Acked-by: jbeulich@novell.com
/*
* NB. All these are "trap gates" (i.e. events_mask isn't set) except
---- head-2011-09-07.orig/arch/x86/kernel/traps_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/traps_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/traps_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/x86-64/traps.c
@@ -3291,8 +3291,8 @@ Acked-by: jbeulich@novell.com
get_debugreg(condition, 6);
if (notify_die(DIE_DEBUG, "debug", regs, condition, error_code,
---- head-2011-09-07.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,4 @@
/*
- * linux/arch/x86_64/kernel/vsyscall.c
@@ -3382,8 +3382,8 @@ Acked-by: jbeulich@novell.com
write_rdtscp_aux((node << 12) | cpu);
/* Store cpu number in limit so that it can be loaded quickly
---- head-2011-09-07.orig/arch/x86/mm/fault_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/fault_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/fault_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/fault_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -25,6 +25,7 @@
#include <linux/kprobes.h>
#include <linux/uaccess.h>
@@ -3565,8 +3565,8 @@ Acked-by: jbeulich@novell.com
goto no_context;
do_sigbus:
---- head-2011-09-07.orig/arch/x86/mm/fault_64-xen.c 2011-08-15 10:44:41.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/fault_64-xen.c 2011-07-26 09:28:01.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/fault_64-xen.c 2011-08-15 10:44:41.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/fault_64-xen.c 2011-07-26 09:28:01.000000000 +0200
@@ -25,6 +25,7 @@
#include <linux/kprobes.h>
#include <linux/uaccess.h>
@@ -3729,8 +3729,8 @@ Acked-by: jbeulich@novell.com
- return 1;
-}
-__setup("pagefaulttrace", enable_pagefaulttrace);
---- head-2011-09-07.orig/arch/x86/mm/hypervisor.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/hypervisor.c 2011-08-09 10:46:16.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/hypervisor.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/hypervisor.c 2011-08-09 10:46:16.000000000 +0200
@@ -71,8 +71,8 @@ static inline bool use_lazy_mmu_mode(voi
static void multicall_failed(const multicall_entry_t *mc, int rc)
@@ -3833,8 +3833,8 @@ Acked-by: jbeulich@novell.com
cr_mcl[i - 1].args[MULTI_UVMFLAGS_INDEX] = order
? UVMF_TLB_FLUSH|UVMF_ALL
: UVMF_INVLPG|UVMF_ALL;
---- head-2011-09-07.orig/arch/x86/mm/init_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/init_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -94,7 +94,14 @@ static pte_t * __init one_page_table_ini
#else
if (!(__pmd_val(*pmd) & _PAGE_PRESENT)) {
@@ -3917,8 +3917,8 @@ Acked-by: jbeulich@novell.com
}
/*
---- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/init_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -798,7 +798,7 @@ static void xen_finish_init_mapping(void
/* Setup the direct mapping of the physical memory at PAGE_OFFSET.
This runs before bootmem is initialized and gets pages directly from the
@@ -4005,8 +4005,8 @@ Acked-by: jbeulich@novell.com
+ return 0;
+}
+#endif
---- head-2011-09-07.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -17,9 +17,6 @@
#include <asm/pgalloc.h>
#include <asm/mmu_context.h>
@@ -4228,8 +4228,8 @@ Acked-by: jbeulich@novell.com
flush_map(&l);
---- head-2011-09-07.orig/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -6,6 +6,7 @@
#include <linux/kernel.h>
#include <linux/errno.h>
@@ -4256,8 +4256,8 @@ Acked-by: jbeulich@novell.com
{
memset(pmd, 0, PTRS_PER_PMD*sizeof(pmd_t));
}
---- head-2011-09-07.orig/arch/x86/pci/pcifront.c 2009-03-18 10:39:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/pci/pcifront.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/pci/pcifront.c 2009-03-18 10:39:31.000000000 +0100
++++ head-2011-09-23/arch/x86/pci/pcifront.c 2011-01-31 17:56:27.000000000 +0100
@@ -31,7 +31,7 @@ static int __init pcifront_x86_stub_init
if (raw_pci_ops)
return 0;
@@ -4267,8 +4267,8 @@ Acked-by: jbeulich@novell.com
/* Copied from arch/i386/pci/common.c */
pci_cache_line_size = 32 >> 2;
---- head-2011-09-07.orig/drivers/acpi/processor_core.c 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/processor_core.c 2011-06-30 16:32:20.000000000 +0200
+--- head-2011-09-23.orig/drivers/acpi/processor_core.c 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/drivers/acpi/processor_core.c 2011-06-30 16:32:20.000000000 +0200
@@ -176,11 +176,21 @@ int acpi_get_cpuid(acpi_handle handle, i
return apic_id;
@@ -4291,8 +4291,8 @@ Acked-by: jbeulich@novell.com
/* In UP kernel, only processor 0 is valid */
if (apic_id == 0)
return apic_id;
---- head-2011-09-07.orig/drivers/acpi/processor_extcntl.c 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/drivers/acpi/processor_extcntl.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/acpi/processor_extcntl.c 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/drivers/acpi/processor_extcntl.c 2011-01-31 17:56:27.000000000 +0100
@@ -95,7 +95,7 @@ int processor_notify_external(struct acp
ret = processor_extcntl_ops->hotplug(pr, type);
break;
@@ -4302,8 +4302,8 @@ Acked-by: jbeulich@novell.com
break;
}
---- head-2011-09-07.orig/drivers/acpi/processor_idle.c 2011-09-07 14:39:37.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/processor_idle.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/acpi/processor_idle.c 2011-09-07 14:39:37.000000000 +0200
++++ head-2011-09-23/drivers/acpi/processor_idle.c 2011-01-31 17:56:27.000000000 +0100
@@ -1081,6 +1081,14 @@ int acpi_processor_cst_has_changed(struc
if (!pr->flags.power_setup_done)
return -ENODEV;
@@ -4319,8 +4319,8 @@ Acked-by: jbeulich@novell.com
cpuidle_pause_and_lock();
cpuidle_disable_device(&pr->power.dev);
acpi_processor_get_power_info(pr);
---- head-2011-09-07.orig/drivers/char/tpm/tpm_xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/char/tpm/tpm_xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/char/tpm/tpm_xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/char/tpm/tpm_xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -104,9 +104,9 @@ void __exit tpmif_exit(void);
#define DPRINTK(fmt, args...) \
pr_debug("xen_tpm_fr (%s:%d) " fmt, __FUNCTION__, __LINE__, ##args)
@@ -4333,8 +4333,8 @@ Acked-by: jbeulich@novell.com
#define GRANT_INVALID_REF 0
---- head-2011-09-07.orig/drivers/cpuidle/Kconfig 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/drivers/cpuidle/Kconfig 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/cpuidle/Kconfig 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/drivers/cpuidle/Kconfig 2011-01-31 17:56:27.000000000 +0100
@@ -1,6 +1,7 @@
config CPU_IDLE
@@ -4343,8 +4343,8 @@ Acked-by: jbeulich@novell.com
default ACPI
help
CPU idle is a generic framework for supporting software-controlled
---- head-2011-09-07.orig/drivers/dma/Kconfig 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/drivers/dma/Kconfig 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/dma/Kconfig 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/drivers/dma/Kconfig 2011-01-31 17:56:27.000000000 +0100
@@ -61,7 +61,7 @@ config INTEL_IOATDMA
tristate "Intel I/OAT DMA support"
depends on PCI && X86
@@ -4354,15 +4354,15 @@ Acked-by: jbeulich@novell.com
select ASYNC_TX_DISABLE_PQ_VAL_DMA
select ASYNC_TX_DISABLE_XOR_VAL_DMA
help
---- head-2011-09-07.orig/drivers/dma/ioat/Makefile 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/drivers/dma/ioat/Makefile 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/dma/ioat/Makefile 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/drivers/dma/ioat/Makefile 2011-01-31 17:56:27.000000000 +0100
@@ -1,2 +1,3 @@
obj-$(CONFIG_INTEL_IOATDMA) += ioatdma.o
-ioatdma-y := pci.o dma.o dma_v2.o dma_v3.o dca.o
+dca-$(CONFIG_DCA) := dca.o
+ioatdma-y := pci.o dma.o dma_v2.o dma_v3.o $(dca-y) $(dca-m)
---- head-2011-09-07.orig/drivers/dma/ioat/dca.c 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/drivers/dma/ioat/dca.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/dma/ioat/dca.c 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/drivers/dma/ioat/dca.c 2011-01-31 17:56:27.000000000 +0100
@@ -682,3 +682,15 @@ ioat3_dca_init(struct pci_dev *pdev, voi
return dca;
@@ -4379,8 +4379,8 @@ Acked-by: jbeulich@novell.com
+ free_dca_provider(device->dca);
+ device->dca = NULL;
+}
---- head-2011-09-07.orig/drivers/dma/ioat/dma.h 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/drivers/dma/ioat/dma.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/dma/ioat/dma.h 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/drivers/dma/ioat/dma.h 2011-01-31 17:56:27.000000000 +0100
@@ -347,4 +347,22 @@ void ioat_kobject_del(struct ioatdma_dev
extern const struct sysfs_ops ioat_sysfs_ops;
extern struct ioat_sysfs_entry ioat_version_attr;
@@ -4404,8 +4404,8 @@ Acked-by: jbeulich@novell.com
+#endif
+
#endif /* IOATDMA_H */
---- head-2011-09-07.orig/drivers/dma/ioat/pci.c 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/drivers/dma/ioat/pci.c 2011-09-07 15:36:19.000000000 +0200
+--- head-2011-09-23.orig/drivers/dma/ioat/pci.c 2011-09-23 09:35:33.000000000 +0200
++++ head-2011-09-23/drivers/dma/ioat/pci.c 2011-09-07 15:36:19.000000000 +0200
@@ -29,7 +29,6 @@
#include <linux/module.h>
#include <linux/pci.h>
@@ -4427,8 +4427,8 @@ Acked-by: jbeulich@novell.com
ioat_dma_remove(device);
}
---- head-2011-09-07.orig/drivers/firmware/dell_rbu.c 2011-04-13 11:25:29.000000000 +0200
-+++ head-2011-09-07/drivers/firmware/dell_rbu.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/firmware/dell_rbu.c 2011-04-13 11:25:29.000000000 +0200
++++ head-2011-09-23/drivers/firmware/dell_rbu.c 2011-01-31 17:56:27.000000000 +0100
@@ -175,9 +175,8 @@ static int create_packet(void *data, siz
(unsigned long)packet_data_temp_buf, ordernum, 0)) {
free_pages((unsigned long)packet_data_temp_buf,
@@ -4441,8 +4441,8 @@ Acked-by: jbeulich@novell.com
retval = -ENOMEM;
spin_lock(&rbu_data.lock);
goto out_alloc_packet_array;
---- head-2011-09-07.orig/drivers/hwmon/coretemp-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/hwmon/coretemp-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/hwmon/coretemp-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/hwmon/coretemp-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -49,7 +49,7 @@ static struct coretemp_data *coretemp_up
struct pdev_entry {
struct list_head list;
@@ -4496,8 +4496,8 @@ Acked-by: jbeulich@novell.com
/* supported CPU not found, but report the unknown
family 6 CPU */
---- head-2011-09-07.orig/drivers/oprofile/cpu_buffer.c 2011-04-13 12:22:07.000000000 +0200
-+++ head-2011-09-07/drivers/oprofile/cpu_buffer.c 2011-04-13 12:44:01.000000000 +0200
+--- head-2011-09-23.orig/drivers/oprofile/cpu_buffer.c 2011-04-13 12:22:07.000000000 +0200
++++ head-2011-09-23/drivers/oprofile/cpu_buffer.c 2011-04-13 12:44:01.000000000 +0200
@@ -425,6 +425,39 @@ void oprofile_add_pc(unsigned long pc, i
log_sample(cpu_buf, pc, 0, is_kernel, event, NULL);
}
@@ -4538,8 +4538,8 @@ Acked-by: jbeulich@novell.com
void oprofile_add_trace(unsigned long pc)
{
struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(op_cpu_buffer);
---- head-2011-09-07.orig/drivers/pci/msi-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/pci/msi-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/pci/msi-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/pci/msi-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -260,6 +260,12 @@ static int msi_map_vector(struct pci_dev
map_irq.pirq : evtchn_map_pirq(-1, map_irq.pirq));
}
@@ -4598,8 +4598,8 @@ Acked-by: jbeulich@novell.com
dev->msix_enabled = 0;
}
EXPORT_SYMBOL(pci_disable_msix);
---- head-2011-09-07.orig/drivers/xen/balloon/balloon.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/balloon/balloon.c 2011-03-23 08:52:11.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/balloon/balloon.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/balloon/balloon.c 2011-03-23 08:52:11.000000000 +0100
@@ -123,10 +123,8 @@ static DECLARE_WORK(balloon_worker, ball
PAGE_TO_LIST(p)->prev = NULL; \
} while(0)
@@ -4631,8 +4631,8 @@ Acked-by: jbeulich@novell.com
return NOTIFY_DONE;
}
---- head-2011-09-07.orig/drivers/xen/blkback/blkback.c 2011-04-11 14:51:40.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/blkback.c 2011-04-11 15:01:24.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkback/blkback.c 2011-04-11 14:51:40.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkback/blkback.c 2011-09-23 09:47:08.000000000 +0200
@@ -278,13 +278,10 @@ static void __end_block_io_op(pending_re
}
}
@@ -4648,7 +4648,7 @@ Acked-by: jbeulich@novell.com
}
-@@ -665,7 +662,7 @@ static int __init blkif_init(void)
+@@ -664,7 +661,7 @@ static int __init blkif_init(void)
kfree(pending_reqs);
kfree(pending_grant_handles);
free_empty_pages_and_pagevec(pending_pages, mmap_pages);
@@ -4657,8 +4657,8 @@ Acked-by: jbeulich@novell.com
return -ENOMEM;
}
---- head-2011-09-07.orig/drivers/xen/blkback/blkback-pagemap.c 2009-06-09 15:01:37.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/blkback-pagemap.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blkback/blkback-pagemap.c 2009-06-09 15:01:37.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkback/blkback-pagemap.c 2011-01-31 17:56:27.000000000 +0100
@@ -38,8 +38,8 @@ blkback_pagemap_set(int idx, struct page
entry = blkback_pagemap + idx;
@@ -4688,8 +4688,8 @@ Acked-by: jbeulich@novell.com
BUG();
}
---- head-2011-09-07.orig/drivers/xen/blkback/vbd.c 2011-06-30 15:37:44.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/vbd.c 2011-06-30 16:32:27.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkback/vbd.c 2011-06-30 15:37:44.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkback/vbd.c 2011-06-30 16:32:27.000000000 +0200
@@ -133,18 +133,18 @@ void vbd_resize(blkif_t *blkif)
struct xenbus_device *dev = blkif->be->dev;
unsigned long long new_size = vbd_size(vbd);
@@ -4730,8 +4730,8 @@ Acked-by: jbeulich@novell.com
return;
abort:
xenbus_transaction_end(xbt, 1);
---- head-2011-09-07.orig/drivers/xen/blkback/xenbus.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkback/xenbus.c 2011-06-30 16:32:30.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkback/xenbus.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkback/xenbus.c 2011-06-30 16:32:30.000000000 +0200
@@ -294,10 +294,9 @@ static void backend_changed(struct xenbu
if ((be->major || be->minor) &&
@@ -4771,8 +4771,8 @@ Acked-by: jbeulich@novell.com
kfree(protocol);
/* Map the shared frame, irq etc. */
---- head-2011-09-07.orig/drivers/xen/blkfront/blkfront.c 2011-07-21 12:08:17.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkfront/blkfront.c 2011-07-21 12:16:23.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkfront/blkfront.c 2011-07-21 12:08:17.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkfront/blkfront.c 2011-07-21 12:16:23.000000000 +0200
@@ -233,7 +233,7 @@ static int setup_blkring(struct xenbus_d
SHARED_RING_INIT(sring);
FRONT_RING_INIT(&info->ring, sring, PAGE_SIZE);
@@ -4825,8 +4825,8 @@ Acked-by: jbeulich@novell.com
uptodate = -EOPNOTSUPP;
info->feature_barrier = 0;
xlvbd_barrier(info);
---- head-2011-09-07.orig/drivers/xen/blkfront/block.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkfront/block.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blkfront/block.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkfront/block.h 2011-01-31 17:56:27.000000000 +0100
@@ -59,7 +59,7 @@
#define DPRINTK(_f, _a...) pr_debug(_f, ## _a)
@@ -4836,8 +4836,8 @@ Acked-by: jbeulich@novell.com
#else
#define DPRINTK_IOCTL(_f, _a...) ((void)0)
#endif
---- head-2011-09-07.orig/drivers/xen/blkfront/vbd.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkfront/vbd.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blkfront/vbd.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkfront/vbd.c 2011-01-31 17:56:27.000000000 +0100
@@ -185,7 +185,8 @@ xlbd_alloc_major_info(int major, int min
return NULL;
}
@@ -4878,8 +4878,8 @@ Acked-by: jbeulich@novell.com
return -ENOSYS;
}
#endif
---- head-2011-09-07.orig/drivers/xen/blktap/blktap.c 2011-01-31 17:32:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap/blktap.c 2011-04-11 15:01:34.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap/blktap.c 2011-01-31 17:32:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap/blktap.c 2011-04-11 15:01:34.000000000 +0200
@@ -772,8 +772,8 @@ static int blktap_ioctl(struct inode *in
case BLKTAP_IOCTL_PRINT_IDXS:
{
@@ -4891,8 +4891,8 @@ Acked-by: jbeulich@novell.com
"| req_prod: %2d, rsp_prod: %2d\n",
info->ufe_ring.rsp_cons,
info->ufe_ring.req_prod_pvt,
---- head-2011-09-07.orig/drivers/xen/blktap/common.h 2011-04-11 14:51:59.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blktap/common.h 2011-04-11 15:01:35.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap/common.h 2011-04-11 14:51:59.000000000 +0200
++++ head-2011-09-23/drivers/xen/blktap/common.h 2011-04-11 15:01:35.000000000 +0200
@@ -40,7 +40,7 @@
#define DPRINTK(_f, _a...) pr_debug("(file=%s, line=%d) " _f, \
__FILE__ , __LINE__ , ## _a )
@@ -4902,8 +4902,8 @@ Acked-by: jbeulich@novell.com
struct backend_info;
---- head-2011-09-07.orig/drivers/xen/blktap/xenbus.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap/xenbus.c 2011-06-30 16:32:38.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap/xenbus.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap/xenbus.c 2011-06-30 16:32:38.000000000 +0200
@@ -356,8 +356,8 @@ static void tap_frontend_changed(struct
switch (frontend_state) {
case XenbusStateInitialising:
@@ -4929,8 +4929,8 @@ Acked-by: jbeulich@novell.com
kfree(protocol);
/* Map the shared frame, irq etc. */
---- head-2011-09-07.orig/drivers/xen/blktap2/control.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap2/control.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/control.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/control.c 2011-01-31 17:56:27.000000000 +0100
@@ -18,6 +18,7 @@ blktap_control_initialize_tap(struct blk
memset(tap, 0, sizeof(*tap));
set_bit(BLKTAP_CONTROL, &tap->dev_inuse);
@@ -4939,8 +4939,8 @@ Acked-by: jbeulich@novell.com
init_waitqueue_head(&tap->wq);
atomic_set(&tap->refcnt, 0);
---- head-2011-09-07.orig/drivers/xen/blktap2/device.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap2/device.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/device.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/device.c 2011-01-31 17:56:27.000000000 +0100
@@ -16,7 +16,7 @@
#include "../blkback/blkback-pagemap.h"
@@ -4994,8 +4994,8 @@ Acked-by: jbeulich@novell.com
goto out;
}
---- head-2011-09-07.orig/drivers/xen/console/console.c 2011-01-31 17:32:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/console/console.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/console/console.c 2011-01-31 17:32:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/console/console.c 2011-01-31 17:56:27.000000000 +0100
@@ -716,10 +716,10 @@ static int __init xencons_init(void)
tty_set_operations(xencons_driver, &xencons_ops);
@@ -5022,8 +5022,8 @@ Acked-by: jbeulich@novell.com
return 0;
}
---- head-2011-09-07.orig/drivers/xen/console/xencons_ring.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/console/xencons_ring.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/console/xencons_ring.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/console/xencons_ring.c 2011-01-31 17:56:27.000000000 +0100
@@ -125,7 +125,7 @@ int xencons_ring_init(void)
xen_start_info->console.domU.evtchn,
handle_input, 0, "xencons", NULL);
@@ -5033,8 +5033,8 @@ Acked-by: jbeulich@novell.com
return irq;
}
---- head-2011-09-07.orig/drivers/xen/core/cpu_hotplug.c 2011-01-24 12:06:05.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/cpu_hotplug.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/cpu_hotplug.c 2011-01-24 12:06:05.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/cpu_hotplug.c 2011-01-31 17:56:27.000000000 +0100
@@ -36,7 +36,7 @@ static void vcpu_hotplug(unsigned int cp
sprintf(dir, "cpu/%u", cpu);
err = xenbus_scanf(XBT_NIL, dir, "availability", "%s", state);
@@ -5084,8 +5084,8 @@ Acked-by: jbeulich@novell.com
rc = -EBUSY;
}
} else if (!cpu_isset(cpu, local_allowed_cpumask) ||
---- head-2011-09-07.orig/drivers/xen/core/evtchn.c 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/evtchn.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/evtchn.c 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/evtchn.c 2011-01-31 17:56:27.000000000 +0100
@@ -350,8 +350,8 @@ static int find_unbound_irq(void)
if (!warned) {
@@ -5118,16 +5118,16 @@ Acked-by: jbeulich@novell.com
irq, type_from_irq(irq), index_from_irq(irq), xen_pirq);
return -EINVAL;
}
---- head-2011-09-07.orig/drivers/xen/core/firmware.c 2007-06-22 09:08:06.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/firmware.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/firmware.c 2007-06-22 09:08:06.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/firmware.c 2011-01-31 17:56:27.000000000 +0100
@@ -1,4 +1,5 @@
#include <linux/kernel.h>
+#include <linux/string.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/edd.h>
---- head-2011-09-07.orig/drivers/xen/core/gnttab.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/gnttab.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/gnttab.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/gnttab.c 2011-01-31 17:56:27.000000000 +0100
@@ -691,7 +691,7 @@ int gnttab_resume(void)
resume_frames = alloc_xen_mmio(PAGE_SIZE * max_nr_gframes);
shared = ioremap(resume_frames, PAGE_SIZE * max_nr_gframes);
@@ -5137,8 +5137,8 @@ Acked-by: jbeulich@novell.com
return -1;
}
}
---- head-2011-09-07.orig/drivers/xen/core/machine_kexec.c 2009-07-13 14:25:35.000000000 +0200
-+++ head-2011-09-07/drivers/xen/core/machine_kexec.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/machine_kexec.c 2009-07-13 14:25:35.000000000 +0200
++++ head-2011-09-23/drivers/xen/core/machine_kexec.c 2011-01-31 17:56:27.000000000 +0100
@@ -29,6 +29,10 @@ void __init xen_machine_kexec_setup_reso
int k = 0;
int rc;
@@ -5178,8 +5178,8 @@ Acked-by: jbeulich@novell.com
void machine_shutdown(void)
{
/* do nothing */
---- head-2011-09-07.orig/drivers/xen/core/machine_reboot.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/machine_reboot.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/machine_reboot.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/machine_reboot.c 2011-01-31 17:56:27.000000000 +0100
@@ -204,8 +204,7 @@ int __xen_suspend(int fast_suspend, void
#if defined(__i386__) || defined(__x86_64__)
@@ -5190,8 +5190,8 @@ Acked-by: jbeulich@novell.com
return -EOPNOTSUPP;
}
#endif
---- head-2011-09-07.orig/drivers/xen/core/reboot.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/reboot.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/reboot.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/reboot.c 2011-01-31 17:56:27.000000000 +0100
@@ -82,14 +82,14 @@ static int xen_suspend(void *__unused)
daemonize("suspend");
err = set_cpus_allowed(current, cpumask_of_cpu(0));
@@ -5274,8 +5274,8 @@ Acked-by: jbeulich@novell.com
return err;
}
---- head-2011-09-07.orig/drivers/xen/core/smpboot.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/smpboot.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/smpboot.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/smpboot.c 2011-01-31 17:56:27.000000000 +0100
@@ -36,31 +36,20 @@ extern void failsafe_callback(void);
extern void system_call(void);
extern void smp_trap_init(trap_info_t *);
@@ -5423,8 +5423,8 @@ Acked-by: jbeulich@novell.com
cpu_set(cpu, cpu_online_map);
---- head-2011-09-07.orig/drivers/xen/fbfront/xenfb.c 2011-02-17 10:08:20.000000000 +0100
-+++ head-2011-09-07/drivers/xen/fbfront/xenfb.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/fbfront/xenfb.c 2011-02-17 10:08:20.000000000 +0100
++++ head-2011-09-23/drivers/xen/fbfront/xenfb.c 2011-01-31 17:56:27.000000000 +0100
@@ -240,8 +240,8 @@ static void xenfb_update_screen(struct x
mutex_unlock(&info->mm_lock);
@@ -5436,8 +5436,8 @@ Acked-by: jbeulich@novell.com
WARN_ON(1);
}
xenfb_do_update(info, x1, y1, x2 - x1, y2 - y1);
---- head-2011-09-07.orig/drivers/xen/fbfront/xenkbd.c 2011-05-23 11:08:11.000000000 +0200
-+++ head-2011-09-07/drivers/xen/fbfront/xenkbd.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/fbfront/xenkbd.c 2011-09-20 11:34:12.000000000 +0200
++++ head-2011-09-23/drivers/xen/fbfront/xenkbd.c 2011-01-31 17:56:27.000000000 +0100
@@ -80,8 +80,8 @@ static irqreturn_t input_handler(int rq,
input_report_key(dev, event->key.keycode,
event->key.pressed);
@@ -5449,8 +5449,8 @@ Acked-by: jbeulich@novell.com
break;
case XENKBD_TYPE_POS:
if (event->pos.rel_z)
---- head-2011-09-07.orig/drivers/xen/gntdev/gntdev.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/gntdev/gntdev.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/gntdev/gntdev.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/gntdev/gntdev.c 2011-01-31 17:56:27.000000000 +0100
@@ -378,14 +378,14 @@ static int __init gntdev_init(void)
struct class_device *device;
@@ -5663,8 +5663,8 @@ Acked-by: jbeulich@novell.com
"IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR must be at "
"the start of the VM area. vma->vm_start = "
"%#lx; vaddr = %#lx\n",
---- head-2011-09-07.orig/drivers/xen/netback/common.h 2011-04-11 14:52:16.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netback/common.h 2011-04-11 15:01:09.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/common.h 2011-04-11 14:52:16.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/common.h 2011-04-11 15:01:09.000000000 +0200
@@ -45,10 +45,8 @@
#define DPRINTK(_f, _a...) \
pr_debug("(file=%s, line=%d) " _f, \
@@ -5678,8 +5678,8 @@ Acked-by: jbeulich@novell.com
typedef struct netif_st {
/* Unique identifier for this interface. */
---- head-2011-09-07.orig/drivers/xen/netback/interface.c 2011-04-11 14:38:22.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netback/interface.c 2011-04-11 15:01:11.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/interface.c 2011-04-11 14:38:22.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/interface.c 2011-04-11 15:01:11.000000000 +0200
@@ -175,9 +175,13 @@ static const struct netif_stat {
{ "rx_gso_csum_fixups", offsetof(netif_t, rx_gso_csum_fixups) / sizeof(long) },
};
@@ -5705,8 +5705,8 @@ Acked-by: jbeulich@novell.com
.get_ethtool_stats = netbk_get_ethtool_stats,
.get_strings = netbk_get_strings,
};
---- head-2011-09-07.orig/drivers/xen/netback/netback.c 2011-04-11 14:38:25.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netback/netback.c 2011-04-11 15:01:12.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/netback.c 2011-04-11 14:38:25.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/netback.c 2011-04-11 15:01:12.000000000 +0200
@@ -364,8 +364,8 @@ static void xen_network_done_notify(void
{
static struct net_device *eth0_dev = NULL;
@@ -5772,8 +5772,8 @@ Acked-by: jbeulich@novell.com
return -ENOMEM;
}
---- head-2011-09-07.orig/drivers/xen/netback/xenbus.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/netback/xenbus.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/netback/xenbus.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/netback/xenbus.c 2011-01-31 17:56:27.000000000 +0100
@@ -163,11 +163,9 @@ fail:
* and vif variables to the environment, for the benefit of the vif-* hotplug
* scripts.
@@ -5824,8 +5824,8 @@ Acked-by: jbeulich@novell.com
xenbus_switch_state(dev, XenbusStateInitWait);
}
break;
---- head-2011-09-07.orig/drivers/xen/netfront/accel.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/netfront/accel.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/netfront/accel.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/netfront/accel.c 2011-01-31 17:56:27.000000000 +0100
@@ -40,10 +40,8 @@
#define DPRINTK(fmt, args...) \
pr_debug("netfront/accel (%s:%d) " fmt, \
@@ -5875,8 +5875,8 @@ Acked-by: jbeulich@novell.com
}
---- head-2011-09-07.orig/drivers/xen/netfront/netfront.c 2011-06-30 16:06:26.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netfront/netfront.c 2011-09-09 09:31:31.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netfront/netfront.c 2011-06-30 16:06:26.000000000 +0200
++++ head-2011-09-23/drivers/xen/netfront/netfront.c 2011-09-09 09:31:31.000000000 +0200
@@ -207,10 +207,8 @@ static inline grant_ref_t xennet_get_rx_
#define DPRINTK(fmt, args...) \
pr_debug("netfront (%s:%d) " fmt, \
@@ -6109,8 +6109,8 @@ Acked-by: jbeulich@novell.com
SET_NETDEV_DEV(netdev, &dev->dev);
np->netdev = netdev;
---- head-2011-09-07.orig/drivers/xen/netfront/netfront.h 2011-02-09 15:54:19.000000000 +0100
-+++ head-2011-09-07/drivers/xen/netfront/netfront.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/netfront/netfront.h 2011-02-09 15:54:19.000000000 +0100
++++ head-2011-09-23/drivers/xen/netfront/netfront.h 2011-01-31 17:56:27.000000000 +0100
@@ -155,6 +155,8 @@ struct netfront_info {
spinlock_t tx_lock;
spinlock_t rx_lock;
@@ -6120,123 +6120,8 @@ Acked-by: jbeulich@novell.com
unsigned int irq;
unsigned int copying_receiver;
unsigned int carrier;
---- head-2011-09-07.orig/drivers/xen/pciback/Makefile 2008-07-21 11:00:33.000000000 +0200
-+++ head-2011-09-07/drivers/xen/pciback/Makefile 2011-01-31 17:56:27.000000000 +0100
-@@ -12,6 +12,4 @@ pciback-$(CONFIG_XEN_PCIDEV_BACKEND_SLOT
- pciback-$(CONFIG_XEN_PCIDEV_BACKEND_PASS) += passthrough.o
- pciback-$(CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER) += controller.o
-
--ifeq ($(CONFIG_XEN_PCIDEV_BE_DEBUG),y)
--EXTRA_CFLAGS += -DDEBUG
--endif
-+ccflags-$(CONFIG_XEN_PCIDEV_BE_DEBUG) += -DDEBUG
---- head-2011-09-07.orig/drivers/xen/pciback/conf_space_capability_msi.c 2008-09-15 13:40:15.000000000 +0200
-+++ head-2011-09-07/drivers/xen/pciback/conf_space_capability_msi.c 2011-01-31 17:56:27.000000000 +0100
-@@ -17,7 +17,8 @@ int pciback_enable_msi(struct pciback_de
- status = pci_enable_msi(dev);
-
- if (status) {
-- printk("error enable msi for guest %x status %x\n", otherend, status);
-+ pr_err("error enable msi for guest %x status %x\n",
-+ otherend, status);
- op->value = 0;
- return XEN_PCI_ERR_op_failed;
- }
---- head-2011-09-07.orig/drivers/xen/pciback/conf_space_header.c 2011-01-31 17:32:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/conf_space_header.c 2011-01-31 17:56:27.000000000 +0100
-@@ -69,9 +69,9 @@ static int command_write(struct pci_dev
- pci_name(dev));
- err = pci_set_mwi(dev);
- if (err) {
-- printk(KERN_WARNING
-- "pciback: %s: cannot enable memory-write-invalidate (%d)\n",
-- pci_name(dev), err);
-+ pr_warning("pciback: %s: cannot enable"
-+ " memory-write-invalidate (%d)\n",
-+ pci_name(dev), err);
- value &= ~PCI_COMMAND_INVALIDATE;
- }
- }
-@@ -84,8 +84,8 @@ static int rom_write(struct pci_dev *dev
- struct pci_bar_info *bar = data;
-
- if (unlikely(!bar)) {
-- printk(KERN_WARNING "pciback: driver data not found for %s\n",
-- pci_name(dev));
-+ pr_warning("pciback: driver data not found for %s\n",
-+ pci_name(dev));
- return XEN_PCI_ERR_op_failed;
- }
-
-@@ -118,8 +118,8 @@ static int bar_write(struct pci_dev *dev
- struct pci_bar_info *bar = data;
-
- if (unlikely(!bar)) {
-- printk(KERN_WARNING "pciback: driver data not found for %s\n",
-- pci_name(dev));
-+ pr_warning("pciback: driver data not found for %s\n",
-+ pci_name(dev));
- return XEN_PCI_ERR_op_failed;
- }
-
-@@ -146,8 +146,8 @@ static int bar_read(struct pci_dev *dev,
- struct pci_bar_info *bar = data;
-
- if (unlikely(!bar)) {
-- printk(KERN_WARNING "pciback: driver data not found for %s\n",
-- pci_name(dev));
-+ pr_warning("pciback: driver data not found for %s\n",
-+ pci_name(dev));
- return XEN_PCI_ERR_op_failed;
- }
-
-@@ -368,7 +368,7 @@ int pciback_config_header_add_fields(str
-
- default:
- err = -EINVAL;
-- printk(KERN_ERR "pciback: %s: Unsupported header type %d!\n",
-+ pr_err("pciback: %s: Unsupported header type %d!\n",
- pci_name(dev), dev->hdr_type);
- break;
- }
---- head-2011-09-07.orig/drivers/xen/pciback/pci_stub.c 2011-03-02 12:00:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/pci_stub.c 2011-03-11 10:55:55.000000000 +0100
-@@ -470,15 +470,15 @@ static void pcistub_remove(struct pci_de
- found_psdev->pdev);
-
- if (found_psdev->pdev) {
-- printk(KERN_WARNING "pciback: ****** removing device "
-- "%s while still in-use! ******\n",
-- pci_name(found_psdev->dev));
-- printk(KERN_WARNING "pciback: ****** driver domain may "
-- "still access this device's i/o resources!\n");
-- printk(KERN_WARNING "pciback: ****** shutdown driver "
-- "domain before binding device\n");
-- printk(KERN_WARNING "pciback: ****** to other drivers "
-- "or domains\n");
-+ pr_warning("pciback: ****** removing device %s"
-+ " while still in-use! ******\n",
-+ pci_name(found_psdev->dev));
-+ pr_warning("pciback: ****** driver domain may still"
-+ " access this device's i/o resources!\n");
-+ pr_warning("pciback: ****** shutdown driver "
-+ "domain before binding device\n");
-+ pr_warning("pciback: ****** to other drivers "
-+ "or domains\n");
-
- pciback_release_pci_dev(found_psdev->pdev,
- found_psdev->dev);
-@@ -1261,7 +1261,7 @@ static int __init pcistub_init(void)
- return err;
-
- parse_error:
-- printk(KERN_ERR "pciback: Error parsing pci_devs_to_hide at \"%s\"\n",
-+ pr_err("pciback: Error parsing pci_devs_to_hide at \"%s\"\n",
- pci_devs_to_hide + pos);
- return -EINVAL;
- }
---- head-2011-09-07.orig/drivers/xen/pciback/slot.c 2009-03-18 10:39:32.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/slot.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xen-pciback/slot.c 2009-03-18 10:39:32.000000000 +0100
++++ head-2011-09-23/drivers/xen/xen-pciback/slot.c 2011-01-31 17:56:27.000000000 +0100
@@ -64,9 +64,9 @@ int pciback_add_pci_dev(struct pciback_d
for (bus = 0; bus < PCI_BUS_NBR; bus++)
for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
@@ -6250,35 +6135,8 @@ Acked-by: jbeulich@novell.com
slot_dev->slots[bus][slot] = dev;
goto unlock;
}
---- head-2011-09-07.orig/drivers/xen/pciback/vpci.c 2011-06-30 15:37:44.000000000 +0200
-+++ head-2011-09-07/drivers/xen/pciback/vpci.c 2011-01-31 17:56:27.000000000 +0100
-@@ -111,9 +111,9 @@ int pciback_add_pci_dev(struct pciback_d
- /* Assign to a new slot on the virtual PCI bus */
- for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
- if (list_empty(&vpci_dev->dev_list[slot])) {
-- printk(KERN_INFO
-- "pciback: vpci: %s: assign to virtual slot %d\n",
-- pci_name(dev), slot);
-+ pr_info("pciback: vpci: %s:"
-+ " assign to virtual slot %d\n",
-+ pci_name(dev), slot);
- list_add_tail(&dev_entry->list,
- &vpci_dev->dev_list[slot]);
- func = PCI_FUNC(dev->devfn);
---- head-2011-09-07.orig/drivers/xen/pciback/xenbus.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/xenbus.c 2011-01-31 17:56:27.000000000 +0100
-@@ -695,8 +695,7 @@ int __init pciback_xenbus_register(void)
- return -ENODEV;
- pciback_wq = create_workqueue("pciback_workqueue");
- if (!pciback_wq) {
-- printk(KERN_ERR "pciback_xenbus_register: create"
-- "pciback_workqueue failed\n");
-+ pr_err("pciback_xenbus_register: create workqueue failed\n");
- return -EFAULT;
- }
- return xenbus_register_backend(&xenbus_pciback_driver);
---- head-2011-09-07.orig/drivers/xen/pcifront/Makefile 2007-06-12 13:13:45.000000000 +0200
-+++ head-2011-09-07/drivers/xen/pcifront/Makefile 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/pcifront/Makefile 2007-06-12 13:13:45.000000000 +0200
++++ head-2011-09-23/drivers/xen/pcifront/Makefile 2011-01-31 17:56:27.000000000 +0100
@@ -2,6 +2,4 @@ obj-y += pcifront.o
pcifront-y := pci_op.o xenbus.o pci.o
@@ -6287,8 +6145,8 @@ Acked-by: jbeulich@novell.com
-EXTRA_CFLAGS += -DDEBUG
-endif
+ccflags-$(CONFIG_XEN_PCIDEV_FE_DEBUG) += -DDEBUG
---- head-2011-09-07.orig/drivers/xen/pcifront/pci_op.c 2011-01-31 17:32:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pcifront/pci_op.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/pcifront/pci_op.c 2011-01-31 17:32:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/pcifront/pci_op.c 2011-01-31 17:56:27.000000000 +0100
@@ -67,7 +67,7 @@ static void pcifront_init_sd(struct pcif
return; /* No resources, nothing to do */
@@ -6372,8 +6230,8 @@ Acked-by: jbeulich@novell.com
}
#endif /* CONFIG_PCI_MSI */
---- head-2011-09-07.orig/drivers/xen/scsiback/emulate.c 2011-02-02 12:19:11.000000000 +0100
-+++ head-2011-09-07/drivers/xen/scsiback/emulate.c 2011-02-08 10:04:09.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/scsiback/emulate.c 2011-09-22 14:33:35.000000000 +0200
++++ head-2011-09-23/drivers/xen/scsiback/emulate.c 2011-09-23 09:47:00.000000000 +0200
@@ -114,9 +114,10 @@ static void resp_not_supported_cmd(pendi
}
@@ -6471,14 +6329,14 @@ Acked-by: jbeulich@novell.com
@@ -247,7 +244,7 @@ static void __report_luns(pending_req_t
+ VSCSI_REPORT_LUNS_HEADER;
retry:
- if ((buff = kmalloc(alloc_len, GFP_KERNEL)) == NULL) {
+ if ((buff = kzalloc(alloc_len, GFP_KERNEL)) == NULL) {
- printk(KERN_ERR "scsiback:%s kmalloc err\n", __FUNCTION__);
+ pr_err("scsiback:%s kmalloc err\n", __FUNCTION__);
goto fail;
}
---- head-2011-09-07.orig/drivers/xen/scsiback/interface.c 2011-04-11 14:52:22.000000000 +0200
-+++ head-2011-09-07/drivers/xen/scsiback/interface.c 2011-04-11 15:00:59.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/scsiback/interface.c 2011-04-11 14:52:22.000000000 +0200
++++ head-2011-09-23/drivers/xen/scsiback/interface.c 2011-04-11 15:00:59.000000000 +0200
@@ -68,7 +68,7 @@ int scsiback_init_sring(struct vscsibk_i
int err;
@@ -6497,8 +6355,8 @@ Acked-by: jbeulich@novell.com
return -ENOMEM;
}
---- head-2011-09-07.orig/drivers/xen/scsiback/scsiback.c 2011-04-11 14:30:08.000000000 +0200
-+++ head-2011-09-07/drivers/xen/scsiback/scsiback.c 2011-04-11 15:01:00.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/scsiback/scsiback.c 2011-04-11 14:30:08.000000000 +0200
++++ head-2011-09-23/drivers/xen/scsiback/scsiback.c 2011-09-23 09:47:02.000000000 +0200
@@ -204,14 +204,14 @@ static void scsiback_print_status(char *
{
struct scsi_device *sdev = pending_req->sdev;
@@ -6668,7 +6526,7 @@ Acked-by: jbeulich@novell.com
scsiback_do_resp_with_sense(NULL, (DRIVER_ERROR << 24),
0, pending_req);
continue;
-@@ -721,7 +711,7 @@ out_of_memory:
+@@ -720,7 +710,7 @@ out_of_memory:
kfree(pending_reqs);
kfree(pending_grant_handles);
free_empty_pages_and_pagevec(pending_pages, mmap_pages);
@@ -6677,8 +6535,8 @@ Acked-by: jbeulich@novell.com
return -ENOMEM;
}
---- head-2011-09-07.orig/drivers/xen/scsiback/translate.c 2008-07-21 11:00:33.000000000 +0200
-+++ head-2011-09-07/drivers/xen/scsiback/translate.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/scsiback/translate.c 2008-07-21 11:00:33.000000000 +0200
++++ head-2011-09-23/drivers/xen/scsiback/translate.c 2011-01-31 17:56:27.000000000 +0100
@@ -62,8 +62,8 @@ int scsiback_add_translation_entry(struc
if ((entry->v.chn == v->chn) &&
(entry->v.tgt == v->tgt) &&
@@ -6699,8 +6557,8 @@ Acked-by: jbeulich@novell.com
err = -ENOMEM;
goto out;
}
---- head-2011-09-07.orig/drivers/xen/scsiback/xenbus.c 2011-06-30 16:05:16.000000000 +0200
-+++ head-2011-09-07/drivers/xen/scsiback/xenbus.c 2011-06-30 16:32:56.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/scsiback/xenbus.c 2011-06-30 16:05:16.000000000 +0200
++++ head-2011-09-23/drivers/xen/scsiback/xenbus.c 2011-06-30 16:32:56.000000000 +0200
@@ -101,14 +101,13 @@ struct scsi_device *scsiback_get_scsi_de
shost = scsi_host_lookup(phy->hst);
@@ -6758,8 +6616,8 @@ Acked-by: jbeulich@novell.com
scsiback_remove(dev);
return err;
---- head-2011-09-07.orig/drivers/xen/scsifront/scsifront.c 2011-02-08 10:03:55.000000000 +0100
-+++ head-2011-09-07/drivers/xen/scsifront/scsifront.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/scsifront/scsifront.c 2011-02-08 10:03:55.000000000 +0100
++++ head-2011-09-23/drivers/xen/scsifront/scsifront.c 2011-01-31 17:56:27.000000000 +0100
@@ -118,8 +118,8 @@ static void scsifront_gnttab_done(struct
for (i = 0; i < s->nr_segments; i++) {
if (unlikely(gnttab_query_foreign_access(
@@ -6840,8 +6698,8 @@ Acked-by: jbeulich@novell.com
off = 0;
ref_cnt++;
}
---- head-2011-09-07.orig/drivers/xen/scsifront/xenbus.c 2011-02-08 10:03:46.000000000 +0100
-+++ head-2011-09-07/drivers/xen/scsifront/xenbus.c 2011-02-08 10:04:06.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/scsifront/xenbus.c 2011-02-08 10:03:46.000000000 +0100
++++ head-2011-09-23/drivers/xen/scsifront/xenbus.c 2011-02-08 10:04:06.000000000 +0100
@@ -215,7 +215,7 @@ static int scsifront_probe(struct xenbus
if (IS_ERR(info->kthread)) {
err = PTR_ERR(info->kthread);
@@ -6869,8 +6727,8 @@ Acked-by: jbeulich@novell.com
scsi_device_put(sdev);
xenbus_printf(XBT_NIL, dev->nodename,
state_str, "%d", XenbusStateClosed);
---- head-2011-09-07.orig/drivers/xen/sfc_netback/accel_fwd.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netback/accel_fwd.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netback/accel_fwd.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netback/accel_fwd.c 2011-01-31 17:56:27.000000000 +0100
@@ -181,10 +181,11 @@ int netback_accel_fwd_add(const __u8 *ma
unsigned long flags;
cuckoo_hash_mac_key key = cuckoo_mac_to_key(mac);
@@ -6925,8 +6783,8 @@ Acked-by: jbeulich@novell.com
spin_lock_irqsave(&fwd_set->fwd_lock, flags);
/*
---- head-2011-09-07.orig/drivers/xen/sfc_netback/accel_msg.c 2008-02-20 09:32:49.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netback/accel_msg.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netback/accel_msg.c 2008-02-20 09:32:49.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netback/accel_msg.c 2011-01-31 17:56:27.000000000 +0100
@@ -57,11 +57,11 @@ static void netback_accel_msg_tx_localma
{
unsigned long lock_state;
@@ -6941,8 +6799,8 @@ Acked-by: jbeulich@novell.com
msg = net_accel_msg_start_send(bend->shared_page, &bend->to_domU,
&lock_state);
---- head-2011-09-07.orig/drivers/xen/sfc_netfront/accel_msg.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netfront/accel_msg.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netfront/accel_msg.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netfront/accel_msg.c 2011-01-31 17:56:27.000000000 +0100
@@ -41,11 +41,13 @@ static void vnic_start_interrupts(netfro
/* Prime our interrupt */
spin_lock_irqsave(&vnic->irq_enabled_lock, flags);
@@ -7023,8 +6881,8 @@ Acked-by: jbeulich@novell.com
}
else {
spin_unlock_irqrestore(&vnic->irq_enabled_lock, flags);
---- head-2011-09-07.orig/drivers/xen/sfc_netfront/accel_vi.c 2011-06-30 16:06:37.000000000 +0200
-+++ head-2011-09-07/drivers/xen/sfc_netfront/accel_vi.c 2011-06-30 16:33:02.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/sfc_netfront/accel_vi.c 2011-06-30 16:06:37.000000000 +0200
++++ head-2011-09-23/drivers/xen/sfc_netfront/accel_vi.c 2011-06-30 16:33:02.000000000 +0200
@@ -645,8 +645,10 @@ netfront_accel_vi_tx_post(netfront_accel
(cuckoo_hash_key *)(&key), &value);
@@ -7051,8 +6909,8 @@ Acked-by: jbeulich@novell.com
if (ip->protocol == IPPROTO_TCP) {
struct tcphdr *tcp = (struct tcphdr *)
---- head-2011-09-07.orig/drivers/xen/sfc_netutil/accel_msg_iface.c 2008-02-20 09:32:49.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netutil/accel_msg_iface.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netutil/accel_msg_iface.c 2008-02-20 09:32:49.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netutil/accel_msg_iface.c 2011-01-31 17:56:27.000000000 +0100
@@ -36,7 +36,7 @@
#else
#define NET_ACCEL_CHECK_MAGIC(_p, _errval) \
@@ -7062,8 +6920,8 @@ Acked-by: jbeulich@novell.com
__FUNCTION__, _p); \
return _errval; \
}
---- head-2011-09-07.orig/drivers/xen/sfc_netutil/accel_util.h 2008-02-20 09:32:49.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netutil/accel_util.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netutil/accel_util.h 2008-02-20 09:32:49.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netutil/accel_util.h 2011-01-31 17:56:27.000000000 +0100
@@ -63,9 +63,6 @@
DPRINTK("%s at %s:%d\n", #exp, __FILE__, __LINE__); \
} while(0)
@@ -7074,8 +6932,8 @@ Acked-by: jbeulich@novell.com
#include <xen/xenbus.h>
/*! Map a set of pages from another domain
---- head-2011-09-07.orig/drivers/xen/tpmback/interface.c 2011-04-11 14:52:30.000000000 +0200
-+++ head-2011-09-07/drivers/xen/tpmback/interface.c 2011-04-11 15:00:49.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/tpmback/interface.c 2011-04-11 14:52:30.000000000 +0200
++++ head-2011-09-23/drivers/xen/tpmback/interface.c 2011-04-11 15:00:49.000000000 +0200
@@ -50,7 +50,7 @@ static tpmif_t *alloc_tpmif(domid_t domi
out_of_memory:
if (tpmif != NULL)
@@ -7085,8 +6943,8 @@ Acked-by: jbeulich@novell.com
return ERR_PTR(-ENOMEM);
}
---- head-2011-09-07.orig/drivers/xen/tpmback/tpmback.c 2011-01-31 17:32:22.000000000 +0100
-+++ head-2011-09-07/drivers/xen/tpmback/tpmback.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/tpmback/tpmback.c 2011-01-31 17:32:22.000000000 +0100
++++ head-2011-09-23/drivers/xen/tpmback/tpmback.c 2011-01-31 17:56:27.000000000 +0100
@@ -908,8 +908,7 @@ static int __init tpmback_init(void)
int rc;
@@ -7106,8 +6964,8 @@ Acked-by: jbeulich@novell.com
return 0;
}
---- head-2011-09-07.orig/drivers/xen/usbback/usbback.c 2011-04-11 14:30:35.000000000 +0200
-+++ head-2011-09-07/drivers/xen/usbback/usbback.c 2011-04-11 15:00:38.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/usbback/usbback.c 2011-04-11 14:30:35.000000000 +0200
++++ head-2011-09-23/drivers/xen/usbback/usbback.c 2011-04-11 15:00:38.000000000 +0200
@@ -88,6 +88,8 @@ typedef struct {
static pending_req_t *pending_reqs;
static struct list_head pending_free;
@@ -7247,8 +7105,8 @@ Acked-by: jbeulich@novell.com
usbif->xenusbd = NULL;
usbif_put(usbif);
---- head-2011-09-07.orig/drivers/xen/usbback/usbstub.c 2011-03-11 10:54:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/usbback/usbstub.c 2011-03-11 10:55:46.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/usbback/usbstub.c 2011-03-11 10:54:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/usbback/usbstub.c 2011-03-11 10:55:46.000000000 +0100
@@ -150,7 +150,7 @@ static struct usbstub *usbstub_alloc(str
stub = kzalloc(sizeof(*stub), GFP_KERNEL);
@@ -7267,8 +7125,8 @@ Acked-by: jbeulich@novell.com
goto out;
}
---- head-2011-09-07.orig/drivers/xen/usbback/xenbus.c 2011-06-30 16:05:31.000000000 +0200
-+++ head-2011-09-07/drivers/xen/usbback/xenbus.c 2011-06-30 16:33:08.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/usbback/xenbus.c 2011-06-30 16:05:31.000000000 +0200
++++ head-2011-09-23/drivers/xen/usbback/xenbus.c 2011-06-30 16:33:08.000000000 +0200
@@ -240,9 +240,9 @@ static int connect_rings(usbif_t *usbif)
return err;
}
@@ -7293,8 +7151,8 @@ Acked-by: jbeulich@novell.com
xenbus_switch_state(dev, XenbusStateInitWait);
}
break;
---- head-2011-09-07.orig/drivers/xen/usbfront/usbfront.h 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/usbfront/usbfront.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/usbfront/usbfront.h 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/usbfront/usbfront.h 2011-01-31 17:56:27.000000000 +0100
@@ -82,6 +82,7 @@ struct urb_priv {
struct urb *urb;
int req_id; /* RING_REQUEST id for submitting */
@@ -7303,8 +7161,8 @@ Acked-by: jbeulich@novell.com
unsigned unlinked:1; /* dequeued marker */
};
---- head-2011-09-07.orig/drivers/xen/usbfront/usbfront-dbg.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/usbfront/usbfront-dbg.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/usbfront/usbfront-dbg.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/usbfront/usbfront-dbg.c 2011-01-31 17:56:27.000000000 +0100
@@ -91,8 +91,8 @@ static inline void create_debug_file(str
{
struct class_device *cldev = info_to_hcd(info)->self.class_dev;
@@ -7316,8 +7174,8 @@ Acked-by: jbeulich@novell.com
}
static inline void remove_debug_file(struct usbfront_info *info)
---- head-2011-09-07.orig/drivers/xen/usbfront/usbfront-hcd.c 2009-10-15 11:45:41.000000000 +0200
-+++ head-2011-09-07/drivers/xen/usbfront/usbfront-hcd.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/usbfront/usbfront-hcd.c 2009-10-15 11:45:41.000000000 +0200
++++ head-2011-09-23/drivers/xen/usbfront/usbfront-hcd.c 2011-01-31 17:56:27.000000000 +0100
@@ -114,7 +114,6 @@ static void xenhcd_stop(struct usb_hcd *
* non-error returns are promise to giveback the urb later
*/
@@ -7351,8 +7209,8 @@ Acked-by: jbeulich@novell.com
ret = xenhcd_unlink_urb(info, urbp);
done:
---- head-2011-09-07.orig/drivers/xen/usbfront/usbfront-q.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/usbfront/usbfront-q.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/usbfront/usbfront-q.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/usbfront/usbfront-q.c 2011-01-31 17:56:27.000000000 +0100
@@ -151,7 +151,7 @@ static int map_urb_for_request(struct us
ret = gnttab_alloc_grant_references(USBIF_MAX_SEGMENTS_PER_REQUEST, &gref_head);
@@ -7372,8 +7230,8 @@ Acked-by: jbeulich@novell.com
spin_lock(&info->lock);
}
---- head-2011-09-07.orig/drivers/xen/usbfront/xenbus.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/usbfront/xenbus.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/usbfront/xenbus.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/usbfront/xenbus.c 2011-01-31 17:56:27.000000000 +0100
@@ -395,7 +395,7 @@ static int __init usbfront_init(void)
xenhcd_urbp_cachep = kmem_cache_create("xenhcd_urb_priv",
sizeof(struct urb_priv), 0, 0, NULL);
@@ -7383,8 +7241,8 @@ Acked-by: jbeulich@novell.com
return -ENOMEM;
}
---- head-2011-09-07.orig/drivers/xen/util.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/util.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/util.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/util.c 2011-01-31 17:56:27.000000000 +0100
@@ -11,7 +11,7 @@ struct class *get_xen_class(void)
xen_class = class_create(THIS_MODULE, "xen");
@@ -7394,8 +7252,8 @@ Acked-by: jbeulich@novell.com
xen_class = NULL;
}
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 14:52:53.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 15:00:27.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 14:52:53.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 15:00:27.000000000 +0200
@@ -238,13 +238,13 @@ int xb_init_comms(void)
int err;
@@ -7423,8 +7281,8 @@ Acked-by: jbeulich@novell.com
return err;
}
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe.c 2011-06-30 16:10:35.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe.c 2011-06-30 16:33:16.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe.c 2011-06-30 16:10:35.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe.c 2011-06-30 16:33:16.000000000 +0200
@@ -112,13 +112,13 @@ static int frontend_bus_id(char bus_id[X
{
nodename = strchr(nodename, '/');
@@ -7645,8 +7503,8 @@ Acked-by: jbeulich@novell.com
seconds_waited += 5;
printk("%us...", 300 - seconds_waited);
if (seconds_waited == 300)
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:56:27.000000000 +0100
@@ -60,8 +60,7 @@
#include <xen/platform-compat.h>
#endif
@@ -7728,8 +7586,8 @@ Acked-by: jbeulich@novell.com
}
}
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:10:38.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:33:20.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:10:38.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:33:20.000000000 +0200
@@ -135,9 +135,8 @@ static int get_error(const char *errorst
for (i = 0; strcmp(errorstring, xsd_errors[i].errstring) != 0; i++) {
@@ -7778,8 +7636,8 @@ Acked-by: jbeulich@novell.com
if (kthread_should_stop())
break;
}
---- head-2011-09-07.orig/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 17:56:27.000000000 +0100
@@ -28,7 +28,6 @@
#include <xen/xenoprof.h>
#include <xen/interface/xen.h>
@@ -7809,8 +7667,8 @@ Acked-by: jbeulich@novell.com
return ret;
}
---- head-2011-09-07.orig/arch/x86/include/asm/acpi.h 2011-06-30 15:41:07.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/acpi.h 2011-08-23 14:04:36.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/acpi.h 2011-06-30 15:41:07.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/acpi.h 2011-08-23 14:04:36.000000000 +0200
@@ -31,7 +31,7 @@
#include <asm/mpspec.h>
#include <asm/trampoline.h>
@@ -7853,8 +7711,8 @@ Acked-by: jbeulich@novell.com
return max_cstate;
}
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/agp.h 2007-06-22 09:08:06.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/agp.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/agp.h 2007-06-22 09:08:06.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/agp.h 2011-01-31 17:56:27.000000000 +0100
@@ -1,20 +1,22 @@
-#ifndef AGP_H
-#define AGP_H 1
@@ -7904,15 +7762,15 @@ Acked-by: jbeulich@novell.com
/* Convert a physical address to an address suitable for the GART. */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/desc.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/desc.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "desc_32.h"
+#else
+# include "desc_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/desc_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/desc_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/desc_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/desc_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -34,6 +34,18 @@ static inline void clear_LDT(void)
put_cpu();
}
@@ -7969,7 +7827,7 @@ Acked-by: jbeulich@novell.com
static inline void set_tssldt_descriptor(void *ptr, unsigned long tss, unsigned type,
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/dma-mapping.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/dma-mapping.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "dma-mapping_32.h"
@@ -7977,7 +7835,7 @@ Acked-by: jbeulich@novell.com
+# include "dma-mapping_64.h"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "fixmap_32.h"
@@ -7985,7 +7843,7 @@ Acked-by: jbeulich@novell.com
+# include "fixmap_64.h"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypercall.h 2011-08-23 13:29:27.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypercall.h 2011-08-23 13:29:27.000000000 +0200
@@ -0,0 +1,429 @@
+/******************************************************************************
+ * hypercall.h
@@ -8416,8 +8274,8 @@ Acked-by: jbeulich@novell.com
+}
+
+#endif /* __HYPERCALL_H__ */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/hypercall_32.h 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypercall_32.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypercall_32.h 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypercall_32.h 2011-01-31 17:56:27.000000000 +0100
@@ -1,191 +1,10 @@
-/******************************************************************************
- * hypercall.h
@@ -8859,8 +8717,8 @@ Acked-by: jbeulich@novell.com
-
-
-#endif /* __HYPERCALL_H__ */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/hypercall_64.h 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypercall_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypercall_64.h 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypercall_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -1,198 +1,10 @@
-/******************************************************************************
- * hypercall.h
@@ -9312,8 +9170,8 @@ Acked-by: jbeulich@novell.com
-}
-
-#endif /* __HYPERCALL_H__ */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:27:38.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:27:38.000000000 +0200
@@ -38,12 +38,7 @@
#include <linux/version.h>
#include <linux/errno.h>
@@ -9336,7 +9194,7 @@ Acked-by: jbeulich@novell.com
#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/io.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/io.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "io_32.h"
@@ -9344,15 +9202,15 @@ Acked-by: jbeulich@novell.com
+# include "io_64.h"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irqflags.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irqflags.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "irqflags_32.h"
+#else
+# include "irqflags_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irqflags_32.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irqflags_32.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irqflags_32.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irqflags_32.h 2011-01-31 17:56:27.000000000 +0100
@@ -150,6 +150,23 @@ static inline int raw_irqs_disabled_flag
\
raw_irqs_disabled_flags(flags); \
@@ -9395,8 +9253,8 @@ Acked-by: jbeulich@novell.com
+#endif
+
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irqflags_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irqflags_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irqflags_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irqflags_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -116,6 +116,22 @@ static inline int raw_irqs_disabled_flag
})
@@ -9442,7 +9300,7 @@ Acked-by: jbeulich@novell.com
#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/maddr.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/maddr.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "maddr_32.h"
@@ -9450,7 +9308,7 @@ Acked-by: jbeulich@novell.com
+# include "maddr_64.h"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "mmu_context_32.h"
@@ -9458,7 +9316,7 @@ Acked-by: jbeulich@novell.com
+# include "mmu_context_64.h"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pci.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pci.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,100 @@
+#ifndef __x86_PCI_H
+#define __x86_PCI_H
@@ -9561,15 +9419,15 @@ Acked-by: jbeulich@novell.com
+
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgalloc.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgalloc.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "pgalloc_32.h"
+#else
+# include "pgalloc_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -115,6 +115,8 @@ static inline void pgd_list_del(pgd_t *p
spin_unlock(&pgd_lock);
}
@@ -9619,15 +9477,15 @@ Acked-by: jbeulich@novell.com
}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "pgtable_32.h"
+#else
+# include "pgtable_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-07 15:38:23.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-07 15:38:23.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-01-31 17:56:27.000000000 +0100
@@ -17,10 +17,7 @@
#include <asm/fixmap.h>
#include <linux/threads.h>
@@ -9649,8 +9507,8 @@ Acked-by: jbeulich@novell.com
void pgtable_cache_init(void);
void paging_init(void);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-02-07 15:38:18.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-02-07 15:38:18.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -9,7 +9,7 @@
* the x86-64 page table tree.
*/
@@ -9669,15 +9527,15 @@ Acked-by: jbeulich@novell.com
#define MODULES_END _AC(0xffffffffff000000, UL)
#define MODULES_LEN (MODULES_END - MODULES_VADDR)
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/processor.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/processor.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "processor_32.h"
+#else
+# include "processor_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/processor_32.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/processor_32.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/processor_32.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/processor_32.h 2011-01-31 17:56:27.000000000 +0100
@@ -70,17 +70,22 @@ struct cpuinfo_x86 {
char pad0;
int x86_power;
@@ -9786,8 +9644,8 @@ Acked-by: jbeulich@novell.com
#else
#define ASM_NOP1 GENERIC_NOP1
#define ASM_NOP2 GENERIC_NOP2
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/processor_64.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/processor_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/processor_64.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/processor_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -62,19 +62,26 @@ struct cpuinfo_x86 {
int x86_cache_alignment;
int x86_tlbsize; /* number of 4K pages in DTLB/ITLB combined(in pages)*/
@@ -9903,15 +9761,15 @@ Acked-by: jbeulich@novell.com
unsigned long edx)
{
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/smp.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/smp.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "smp_32.h"
+#else
+# include "smp_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/smp_32.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/smp_32.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/smp_32.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/smp_32.h 2011-01-31 17:56:27.000000000 +0100
@@ -11,7 +11,7 @@
#endif
@@ -9956,8 +9814,8 @@ Acked-by: jbeulich@novell.com
#define NO_PROC_ID 0xFF /* No processor magic marker */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/smp_64.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/smp_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/smp_64.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/smp_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -38,12 +38,11 @@ extern void smp_alloc_memory(void);
extern volatile unsigned long smp_invalidate_needed;
extern void lock_ipi_call_lock(void);
@@ -10017,7 +9875,7 @@ Acked-by: jbeulich@novell.com
#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/swiotlb.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/swiotlb.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "swiotlb_32.h"
@@ -10025,15 +9883,15 @@ Acked-by: jbeulich@novell.com
+# include_next <asm/swiotlb.h>
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/system.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/system.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "system_32.h"
+#else
+# include "system_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/system_32.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/system_32.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/system_32.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/system_32.h 2011-01-31 17:56:27.000000000 +0100
@@ -9,6 +9,7 @@
#include <asm/hypervisor.h>
@@ -10106,8 +9964,8 @@ Acked-by: jbeulich@novell.com
+void __show_registers(struct pt_regs *, int all);
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/system_64.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/system_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/system_64.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/system_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -11,8 +11,12 @@
#ifdef __KERNEL__
@@ -10176,15 +10034,15 @@ Acked-by: jbeulich@novell.com
#define set_mb(var, value) do { (void) xchg(&var, value); } while (0)
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/tlbflush.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/tlbflush.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "tlbflush_32.h"
+#else
+# include "tlbflush_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/tlbflush_32.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/tlbflush_32.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/tlbflush_32.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/tlbflush_32.h 2011-01-31 17:56:27.000000000 +0100
@@ -23,7 +23,6 @@
* - flush_tlb_page(vma, vmaddr) flushes one page
* - flush_tlb_range(vma, start, end) flushes a range of pages
@@ -10204,8 +10062,8 @@ Acked-by: jbeulich@novell.com
-}
-
#endif /* _I386_TLBFLUSH_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/tlbflush_64.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/tlbflush_64.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/tlbflush_64.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/tlbflush_64.h 2011-01-31 17:56:27.000000000 +0100
@@ -28,7 +28,6 @@
* - flush_tlb_page(vma, vmaddr) flushes one page
* - flush_tlb_range(vma, start, end) flushes a range of pages
@@ -10228,15 +10086,15 @@ Acked-by: jbeulich@novell.com
-
#endif /* _X8664_TLBFLUSH_H */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/xor.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/xor.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,5 @@
+#ifdef CONFIG_X86_32
+# include "../../xor_32.h"
+#else
+# include "xor_64.h"
+#endif
---- head-2011-09-07.orig/arch/x86/include/asm/mmu.h 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/mmu.h 2011-06-30 16:30:20.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/mmu.h 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/mmu.h 2011-06-30 16:30:20.000000000 +0200
@@ -16,6 +16,9 @@ typedef struct {
/* True if mm supports a task running in 32 bit compatibility mode. */
unsigned short ia32_compat;
@@ -10247,8 +10105,8 @@ Acked-by: jbeulich@novell.com
struct mutex lock;
void *vdso;
---- head-2011-09-07.orig/include/linux/kexec.h 2011-04-13 11:25:29.000000000 +0200
-+++ head-2011-09-07/include/linux/kexec.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/include/linux/kexec.h 2011-04-13 11:25:29.000000000 +0200
++++ head-2011-09-23/include/linux/kexec.h 2011-01-31 17:56:27.000000000 +0100
@@ -205,8 +205,15 @@ extern struct kimage *kexec_crash_image;
#define VMCOREINFO_BYTES (4096)
#define VMCOREINFO_NOTE_NAME "VMCOREINFO"
@@ -10265,8 +10123,8 @@ Acked-by: jbeulich@novell.com
/* Location of a reserved region to hold the crash kernel.
*/
---- head-2011-09-07.orig/include/linux/oprofile.h 2011-09-07 15:19:35.000000000 +0200
-+++ head-2011-09-07/include/linux/oprofile.h 2011-04-13 12:44:12.000000000 +0200
+--- head-2011-09-23.orig/include/linux/oprofile.h 2011-09-07 15:19:35.000000000 +0200
++++ head-2011-09-23/include/linux/oprofile.h 2011-04-13 12:44:12.000000000 +0200
@@ -130,6 +130,8 @@ void oprofile_add_ext_hw_sample(unsigned
* backtrace. */
void oprofile_add_pc(unsigned long pc, int is_kernel, unsigned long event);
@@ -10276,8 +10134,8 @@ Acked-by: jbeulich@novell.com
/* add a backtrace entry, to be called from the ->backtrace callback */
void oprofile_add_trace(unsigned long eip);
---- head-2011-09-07.orig/include/linux/sysctl.h 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/include/linux/sysctl.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/include/linux/sysctl.h 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/include/linux/sysctl.h 2011-01-31 17:56:27.000000000 +0100
@@ -59,6 +59,7 @@ enum
CTL_BUS=8, /* Busses */
CTL_ABI=9, /* Binary emulation */
@@ -10286,8 +10144,8 @@ Acked-by: jbeulich@novell.com
CTL_ARLAN=254, /* arlan wireless driver */
CTL_S390DBF=5677, /* s390 debug */
CTL_SUNRPC=7249, /* sunrpc debug */
---- head-2011-09-07.orig/include/xen/cpu_hotplug.h 2007-08-16 18:07:01.000000000 +0200
-+++ head-2011-09-07/include/xen/cpu_hotplug.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/include/xen/cpu_hotplug.h 2007-08-16 18:07:01.000000000 +0200
++++ head-2011-09-23/include/xen/cpu_hotplug.h 2011-01-31 17:56:27.000000000 +0100
@@ -25,8 +25,8 @@ void cpu_bringup(void);
static inline int smp_suspend(void)
{
@@ -10299,8 +10157,8 @@ Acked-by: jbeulich@novell.com
return -EOPNOTSUPP;
}
return 0;
---- head-2011-09-07.orig/include/xen/gnttab.h 2010-09-23 15:39:04.000000000 +0200
-+++ head-2011-09-07/include/xen/gnttab.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/include/xen/gnttab.h 2010-09-23 15:39:04.000000000 +0200
++++ head-2011-09-23/include/xen/gnttab.h 2011-01-31 17:56:27.000000000 +0100
@@ -172,11 +172,11 @@ gnttab_set_replace_op(struct gnttab_unma
BUG_ON(__ret); \
} \
@@ -10329,8 +10187,8 @@ Acked-by: jbeulich@novell.com
__func__, current->comm, (__HCarg_p)->status); \
}
---- head-2011-09-07.orig/include/xen/hvm.h 2011-01-31 15:14:12.000000000 +0100
-+++ head-2011-09-07/include/xen/hvm.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/include/xen/hvm.h 2011-01-31 15:14:12.000000000 +0100
++++ head-2011-09-23/include/xen/hvm.h 2011-01-31 17:56:27.000000000 +0100
@@ -13,8 +13,7 @@ static inline unsigned long hvm_get_para
xhv.index = idx;
r = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv);
@@ -10341,8 +10199,8 @@ Acked-by: jbeulich@novell.com
return 0;
}
return xhv.value;
---- head-2011-09-07.orig/include/xen/net-util.h 2011-02-09 15:53:07.000000000 +0100
-+++ head-2011-09-07/include/xen/net-util.h 2011-02-09 15:55:10.000000000 +0100
+--- head-2011-09-23.orig/include/xen/net-util.h 2011-02-09 15:53:07.000000000 +0100
++++ head-2011-09-23/include/xen/net-util.h 2011-02-09 15:55:10.000000000 +0100
@@ -51,7 +51,7 @@ static inline int skb_checksum_setup(str
break;
default:
@@ -10352,8 +10210,8 @@ Acked-by: jbeulich@novell.com
"TCP/UDP packet, dropping a protocol"
" %d packet\n", iph->protocol);
goto out;
---- head-2011-09-07.orig/include/xen/pcifront.h 2007-06-18 08:38:13.000000000 +0200
-+++ head-2011-09-07/include/xen/pcifront.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/include/xen/pcifront.h 2007-06-18 08:38:13.000000000 +0200
++++ head-2011-09-23/include/xen/pcifront.h 2011-01-31 17:56:27.000000000 +0100
@@ -12,13 +12,11 @@
#ifndef __ia64__
@@ -10391,7 +10249,7 @@ Acked-by: jbeulich@novell.com
struct pcifront_sd *sd)
{
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/include/xen/sysctl.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/include/xen/sysctl.h 2011-01-31 17:56:27.000000000 +0100
@@ -0,0 +1,11 @@
+#ifndef _XEN_SYSCTL_H
+#define _XEN_SYSCTL_H
@@ -10404,8 +10262,8 @@ Acked-by: jbeulich@novell.com
+};
+
+#endif /* _XEN_SYSCTL_H */
---- head-2011-09-07.orig/include/xen/xenbus.h 2011-04-11 14:54:41.000000000 +0200
-+++ head-2011-09-07/include/xen/xenbus.h 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/include/xen/xenbus.h 2011-09-12 12:17:52.000000000 +0200
++++ head-2011-09-23/include/xen/xenbus.h 2011-01-31 17:56:27.000000000 +0100
@@ -107,7 +107,7 @@ struct xenbus_driver {
int (*suspend)(struct xenbus_device *dev);
int (*suspend_cancel)(struct xenbus_device *dev);
@@ -10415,8 +10273,8 @@ Acked-by: jbeulich@novell.com
struct device_driver driver;
int (*read_otherend_details)(struct xenbus_device *dev);
int (*is_ready)(struct xenbus_device *dev);
---- head-2011-09-07.orig/kernel/kexec.c 2011-04-28 11:09:21.000000000 +0200
-+++ head-2011-09-07/kernel/kexec.c 2011-04-28 11:10:13.000000000 +0200
+--- head-2011-09-23.orig/kernel/kexec.c 2011-04-28 11:09:21.000000000 +0200
++++ head-2011-09-23/kernel/kexec.c 2011-04-28 11:10:13.000000000 +0200
@@ -48,7 +48,11 @@ note_buf_t __percpu *crash_notes;
/* vmcoreinfo stuff */
@@ -10466,8 +10324,8 @@ Acked-by: jbeulich@novell.com
VMCOREINFO_SYMBOL(_stext);
VMCOREINFO_SYMBOL(vmlist);
---- head-2011-09-07.orig/kernel/sysctl_binary.c 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/kernel/sysctl_binary.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/kernel/sysctl_binary.c 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/kernel/sysctl_binary.c 2011-01-31 17:56:27.000000000 +0100
@@ -873,6 +873,14 @@ static const struct bin_table bin_bus_ta
};
@@ -10493,8 +10351,8 @@ Acked-by: jbeulich@novell.com
/* CTL_ARLAN "arlan" no longer used */
{ CTL_DIR, CTL_S390DBF, "s390dbf", bin_s390dbf_table },
{ CTL_DIR, CTL_SUNRPC, "sunrpc", bin_sunrpc_table },
---- head-2011-09-07.orig/kernel/sysctl_check.c 2011-09-09 09:28:48.000000000 +0200
-+++ head-2011-09-07/kernel/sysctl_check.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/kernel/sysctl_check.c 2011-09-23 09:35:34.000000000 +0200
++++ head-2011-09-23/kernel/sysctl_check.c 2011-01-31 17:56:27.000000000 +0100
@@ -4,6 +4,7 @@
#include <linux/sunrpc/debug.h>
#include <linux/string.h>
@@ -10503,8 +10361,8 @@ Acked-by: jbeulich@novell.com
static int sysctl_depth(struct ctl_table *table)
---- head-2011-09-07.orig/lib/swiotlb-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/lib/swiotlb-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head-2011-09-23.orig/lib/swiotlb-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/lib/swiotlb-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -27,7 +27,7 @@
#include <asm/uaccess.h>
#include <xen/gnttab.h>
diff --git a/patches.xen/xen3-patch-2.6.25 b/patches.xen/xen3-patch-2.6.25
index 27ce860634..5168e16f8d 100644
--- a/patches.xen/xen3-patch-2.6.25
+++ b/patches.xen/xen3-patch-2.6.25
@@ -19353,17 +19353,6 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
}
return copy;
---- head-2011-09-07.orig/drivers/xen/pciback/pci_stub.c 2011-03-11 10:55:55.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/pci_stub.c 2011-01-31 18:01:51.000000000 +0100
-@@ -493,7 +493,7 @@ static void pcistub_remove(struct pci_de
- }
- }
-
--static const struct pci_device_id pcistub_ids[] = {
-+static DEFINE_PCI_DEVICE_TABLE(pcistub_ids) = {
- {
- .vendor = PCI_ANY_ID,
- .device = PCI_ANY_ID,
--- head-2011-09-07.orig/drivers/xen/scsifront/scsifront.c 2011-01-31 17:56:27.000000000 +0100
+++ head-2011-09-07/drivers/xen/scsifront/scsifront.c 2011-01-31 18:01:51.000000000 +0100
@@ -260,19 +260,19 @@ static int map_data_for_request(struct v
diff --git a/patches.xen/xen3-patch-2.6.26 b/patches.xen/xen3-patch-2.6.26
index 66090f24da..0ff045c013 100644
--- a/patches.xen/xen3-patch-2.6.26
+++ b/patches.xen/xen3-patch-2.6.26
@@ -15871,85 +15871,6 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
spin_unlock_bh(&np->rx_lock);
}
---- head-2011-09-07.orig/drivers/xen/pciback/pci_stub.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/pci_stub.c 2011-01-31 18:07:35.000000000 +0100
-@@ -5,7 +5,9 @@
- * Chris Bookholt <hap10@epoch.ncsc.mil>
- */
- #include <linux/module.h>
-+#include <linux/gfp.h>
- #include <linux/init.h>
-+#include <linux/kernel.h>
- #include <linux/rwsem.h>
- #include <linux/list.h>
- #include <linux/spinlock.h>
-@@ -507,34 +509,46 @@ static void kill_domain_by_device(struct
- {
- struct xenbus_transaction xbt;
- int err;
-- char nodename[1024];
-+ char *nodename;
-
-- if (!psdev)
-+ if (!psdev) {
- dev_err(&psdev->dev->dev,
- "device is NULL when do AER recovery/kill_domain\n");
-- sprintf(nodename, "/local/domain/0/backend/pci/%d/0",
-- psdev->pdev->xdev->otherend_id);
-- nodename[strlen(nodename)] = '\0';
--
--again:
-- err = xenbus_transaction_start(&xbt);
-- if (err)
-- {
-- dev_err(&psdev->dev->dev,
-- "error %d when start xenbus transaction\n", err);
- return;
- }
-- /*PV AER handlers will set this flag*/
-- xenbus_printf(xbt, nodename, "aerState" , "aerfail" );
-- err = xenbus_transaction_end(xbt, 0);
-- if (err)
-- {
-- if (err == -EAGAIN)
-- goto again;
-+
-+ nodename = kasprintf(GFP_KERNEL,
-+ "/local/domain/0/backend/pci/%d/0",
-+ psdev->pdev->xdev->otherend_id);
-+ if (!nodename) {
- dev_err(&psdev->dev->dev,
-- "error %d when end xenbus transaction\n", err);
-+ "not enough memory\n");
- return;
- }
-+
-+ do {
-+ err = xenbus_transaction_start(&xbt);
-+ if (err) {
-+ dev_err(&psdev->dev->dev,
-+ "error %d starting xenbus transaction\n", err);
-+ break;
-+ }
-+
-+ /* PV AER handlers will set this flag */
-+ xenbus_printf(xbt, nodename, "aerState" , "aerfail" );
-+
-+ err = xenbus_transaction_end(xbt, 0);
-+ switch (err) {
-+ default:
-+ dev_err(&psdev->dev->dev,
-+ "error %d ending xenbus transaction\n", err);
-+ break;
-+ case 0:
-+ case -EAGAIN:
-+ break;
-+ }
-+ } while (err == -EAGAIN);
-+ kfree(nodename);
- }
-
- /* For each aer recovery step error_detected, mmio_enabled, etc, front_end and
--- head-2011-09-07.orig/drivers/xen/privcmd/privcmd.c 2011-01-31 17:29:16.000000000 +0100
+++ head-2011-09-07/drivers/xen/privcmd/privcmd.c 2011-01-31 18:07:35.000000000 +0100
@@ -401,15 +401,13 @@ static long privcmd_ioctl(struct file *f
diff --git a/patches.xen/xen3-patch-2.6.27 b/patches.xen/xen3-patch-2.6.27
index 7cac4c58f0..87a58c873c 100644
--- a/patches.xen/xen3-patch-2.6.27
+++ b/patches.xen/xen3-patch-2.6.27
@@ -11,8 +11,8 @@ Removed adjustments NO_HZ -> NO_HZ || NO_IDLE_HZ from kernel/{hr,}timer.c,
as they would get removed again by xen-clockevents (and really shouldn't
have been needed - see SLE11 SPn).
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-07 15:42:56.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-07 15:44:49.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-07 15:42:56.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-07 15:44:49.000000000 +0200
@@ -1456,7 +1456,7 @@ config MTRR
config MTRR_SANITIZER
def_bool y
@@ -22,8 +22,8 @@ have been needed - see SLE11 SPn).
---help---
Convert MTRR layout from continuous to discrete, so X drivers can
add writeback entries.
---- head-2011-09-07.orig/arch/x86/Kconfig.debug 2011-06-30 16:33:56.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig.debug 2011-06-30 16:39:08.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig.debug 2011-06-30 16:33:56.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig.debug 2011-06-30 16:39:08.000000000 +0200
@@ -25,6 +25,7 @@ config STRICT_DEVMEM
config X86_VERBOSE_BOOTUP
bool "Enable verbose x86 bootup info messages"
@@ -40,8 +40,8 @@ have been needed - see SLE11 SPn).
config X86_DECODER_SELFTEST
bool "x86 instruction decoder selftest"
---- head-2011-09-07.orig/arch/x86/Makefile 2011-02-01 14:11:04.000000000 +0100
-+++ head-2011-09-07/arch/x86/Makefile 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/Makefile 2011-02-01 14:11:04.000000000 +0100
++++ head-2011-09-23/arch/x86/Makefile 2011-02-01 14:38:38.000000000 +0100
@@ -117,8 +117,8 @@ endif
KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
@@ -53,8 +53,8 @@ have been needed - see SLE11 SPn).
KBUILD_CFLAGS += $(mflags-y)
KBUILD_AFLAGS += $(mflags-y)
---- head-2011-09-07.orig/arch/x86/ia32/ia32entry-xen.S 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/ia32/ia32entry-xen.S 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:38:38.000000000 +0100
@@ -15,6 +15,16 @@
#include <asm/irqflags.h>
#include <linux/linkage.h>
@@ -296,8 +296,8 @@ have been needed - see SLE11 SPn).
+ .quad sys_pipe2
+ .quad sys_inotify_init1
ia32_syscall_end:
---- head-2011-09-07.orig/arch/x86/kernel/Makefile 2011-09-07 15:42:59.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/Makefile 2011-09-07 15:44:53.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/Makefile 2011-09-07 15:42:59.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/Makefile 2011-09-07 15:44:53.000000000 +0200
@@ -113,9 +113,11 @@ ifeq ($(CONFIG_X86_64),y)
obj-$(CONFIG_PCI_MMCONFIG) += mmconf-fam10h_64.o
obj-y += vsmp_64.o
@@ -313,8 +313,8 @@ have been needed - see SLE11 SPn).
+ i8259.o irqinit_$(BITS).o pci-swiotlb_64.o reboot.o smpboot.o \
+ tlb_$(BITS).o tsc.o tsc_sync.o vsmp_64.o
+disabled-obj-$(CONFIG_XEN_UNPRIVILEGED_GUEST) += probe_roms_32.o
---- head-2011-09-07.orig/arch/x86/kernel/acpi/boot.c 2011-03-11 10:59:02.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/acpi/boot.c 2011-04-13 13:47:31.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/acpi/boot.c 2011-03-11 10:59:02.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/acpi/boot.c 2011-04-13 13:47:31.000000000 +0200
@@ -1343,6 +1343,7 @@ static int __init dmi_disable_acpi(const
return 0;
}
@@ -358,8 +358,8 @@ have been needed - see SLE11 SPn).
/*
* If acpi_disabled, bail out
---- head-2011-09-07.orig/arch/x86/kernel/amd_nb.c 2011-09-09 15:35:18.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/amd_nb.c 2011-04-13 13:47:56.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/amd_nb.c 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/amd_nb.c 2011-04-13 13:47:56.000000000 +0200
@@ -15,6 +15,10 @@ static u32 *flush_words;
const struct pci_device_id amd_nb_misc_ids[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_K8_NB_MISC) },
@@ -371,8 +371,8 @@ have been needed - see SLE11 SPn).
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) },
{}
};
---- head-2011-09-07.orig/arch/x86/kernel/apic/apic-xen.c 2011-02-24 15:45:13.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/apic/apic-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/apic/apic-xen.c 2011-02-24 15:45:13.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/apic/apic-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -59,7 +59,10 @@ static cpumask_t timer_bcast_ipi;
/*
* Debug level, exported for io_apic.c
@@ -385,8 +385,8 @@ have been needed - see SLE11 SPn).
#ifndef CONFIG_XEN
static int modern_apic(void)
---- head-2011-09-07.orig/arch/x86/kernel/cpu/amd.c 2011-09-09 15:35:18.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/amd.c 2011-06-30 16:40:20.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/amd.c 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/amd.c 2011-06-30 16:40:20.000000000 +0200
@@ -592,6 +592,7 @@ static void __cpuinit init_amd(struct cp
fam10h_check_enable_mmcfg();
}
@@ -403,8 +403,8 @@ have been needed - see SLE11 SPn).
/*
* Family 0x12 and above processors have APIC timer
---- head-2011-09-07.orig/arch/x86/kernel/cpu/bugs_64.c 2011-09-09 15:35:18.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/bugs_64.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/bugs_64.c 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/bugs_64.c 2011-02-01 14:38:38.000000000 +0100
@@ -20,6 +20,7 @@ void __init check_bugs(void)
#endif
alternative_instructions();
@@ -419,8 +419,8 @@ have been needed - see SLE11 SPn).
set_memory_4k((unsigned long)__va(0), 1);
+#endif
}
---- head-2011-09-07.orig/arch/x86/kernel/cpu/common-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/cpu/common-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/common-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/cpu/common-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -13,6 +13,7 @@
#include <asm/mtrr.h>
#include <asm/mce.h>
@@ -484,7 +484,7 @@ have been needed - see SLE11 SPn).
if (!have_cpuid_p()) {
/*
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/kernel/cpu/common_64-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/cpu/common_64-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -0,0 +1,777 @@
+#include <linux/init.h>
+#include <linux/kernel.h>
@@ -1264,8 +1264,8 @@ have been needed - see SLE11 SPn).
+ uv_cpu_init();
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/kernel/e820-xen.c 2011-02-01 14:38:38.000000000 +0100
-@@ -0,0 +1,1553 @@
++++ head-2011-09-23/arch/x86/kernel/e820-xen.c 2011-09-23 15:48:48.000000000 +0200
+@@ -0,0 +1,1559 @@
+/*
+ * Handle the memory map.
+ * The functions here do the job until bootmem takes over.
@@ -1311,11 +1311,14 @@ have been needed - see SLE11 SPn).
+ * next kernel with full memory.
+ */
+struct e820map e820;
-+#ifndef CONFIG_XEN
++#if !defined(CONFIG_XEN)
+struct e820map e820_saved;
-+#else
++#elif defined(CONFIG_XEN_PRIVILEGED_GUEST)
+static struct e820map machine_e820;
-+#define e820_saved machine_e820
++# define e820_saved machine_e820
++#else
++# define machine_e820 e820
++# define e820_saved e820
+#endif
+
+/* For PCI or other memory-mapped resources */
@@ -1765,18 +1768,21 @@ have been needed - see SLE11 SPn).
+ return e820_update_range_map(&e820, start, size, old_type, new_type);
+}
+
++#ifndef CONFIG_XEN_UNPRIVILEGED_GUEST
+static u64 __init e820_update_range_saved(u64 start, u64 size,
+ unsigned old_type, unsigned new_type)
+{
+#ifdef CONFIG_XEN
-+ if (is_initial_xendomain())
-+ return e820_update_range_map(&machine_e820,
-+ phys_to_machine(start), size,
-+ old_type, new_type);
-+#endif
++ if (!is_initial_xendomain())
++ return 0;
++ return e820_update_range_map(&machine_e820, phys_to_machine(start),
++ size, old_type, new_type);
++#else
+ return e820_update_range_map(&e820_saved, start, size, old_type,
+ new_type);
++#endif
+}
++#endif
+
+/* make e820 not cover the range */
+u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type,
@@ -1827,6 +1833,7 @@ have been needed - see SLE11 SPn).
+ printk(KERN_INFO "modified physical RAM map:\n");
+ _e820_print_map(&e820, "modified");
+}
++#ifndef CONFIG_XEN_UNPRIVILEGED_GUEST
+static void __init update_e820_saved(void)
+{
+ int nr_map;
@@ -1836,6 +1843,7 @@ have been needed - see SLE11 SPn).
+ return;
+ e820_saved.nr_map = nr_map;
+}
++#endif
+
+#ifdef CONFIG_XEN
+#define e820 machine_e820
@@ -2339,6 +2347,7 @@ have been needed - see SLE11 SPn).
+ return -1ULL;
+}
+
++#ifndef CONFIG_XEN_UNPRIVILEGED_GUEST
+/*
+ * pre allocated 4k and reserved it in e820
+ */
@@ -2349,12 +2358,14 @@ have been needed - see SLE11 SPn).
+ u64 start;
+#ifdef CONFIG_XEN
+ unsigned int order = get_order(sizet);
++ int rc;
++ unsigned long max_initmap_pfn;
+
-+ if (is_initial_xendomain()) {
-+ sizet = PAGE_SIZE << order;
-+ if (align < PAGE_SIZE)
-+ align = PAGE_SIZE;
-+ }
++ if (!is_initial_xendomain())
++ return 0;
++ sizet = PAGE_SIZE << order;
++ if (align < PAGE_SIZE)
++ align = PAGE_SIZE;
+#endif
+ for (start = startt; ; start += size) {
+ start = find_e820_area_size(start, &size, align);
@@ -2381,36 +2392,28 @@ have been needed - see SLE11 SPn).
+ if (addr < start)
+ return 0;
+#ifdef CONFIG_XEN
-+ if (is_initial_xendomain()) {
-+ int rc;
-+ unsigned long max_initmap_pfn;
-+
-+ max_initmap_pfn = ALIGN(PFN_UP(__pa(xen_start_info->pt_base))
-+ + xen_start_info->nr_pt_frames
-+ + 1 + (1 << (19 - PAGE_SHIFT)),
-+ 1UL << (22 - PAGE_SHIFT));
++ max_initmap_pfn = ALIGN(PFN_UP(__pa(xen_start_info->pt_base))
++ + xen_start_info->nr_pt_frames
++ + 1 + (1 << (19 - PAGE_SHIFT)),
++ 1UL << (22 - PAGE_SHIFT));
+#ifdef CONFIG_X86_32
-+ if ((addr >> PAGE_SHIFT)
-+ < max(max_initmap_pfn, max_pfn_mapped))
-+ rc = xen_create_contiguous_region((unsigned long)
-+ __va(addr),
-+ order, 32);
++ if ((addr >> PAGE_SHIFT)
++ < max(max_initmap_pfn, max_pfn_mapped))
++ rc = xen_create_contiguous_region((unsigned long)__va(addr),
++ order, 32);
+#else
-+ if ((addr >> PAGE_SHIFT) < max_pfn_mapped)
-+ rc = xen_create_contiguous_region((unsigned long)
-+ __va(addr),
-+ order, 32);
-+ else if ((addr >> PAGE_SHIFT) < max_initmap_pfn)
-+ rc = xen_create_contiguous_region(__START_KERNEL_map
-+ + addr,
-+ order, 32);
++ if ((addr >> PAGE_SHIFT) < max_pfn_mapped)
++ rc = xen_create_contiguous_region((unsigned long)__va(addr),
++ order, 32);
++ else if ((addr >> PAGE_SHIFT) < max_initmap_pfn)
++ rc = xen_create_contiguous_region(__START_KERNEL_map + addr,
++ order, 32);
+#endif
-+ else
-+ rc = early_create_contiguous_region(addr >> PAGE_SHIFT,
-+ order, 32);
-+ if (rc)
-+ return 0;
-+ }
++ else
++ rc = early_create_contiguous_region(addr >> PAGE_SHIFT,
++ order, 32);
++ if (rc)
++ return 0;
+#endif
+ e820_update_range(addr, sizet, E820_RAM, E820_RESERVED);
+ e820_update_range_saved(addr, sizet, E820_RAM, E820_RESERVED);
@@ -2420,6 +2423,7 @@ have been needed - see SLE11 SPn).
+
+ return addr;
+}
++#endif
+
+#ifdef CONFIG_X86_32
+# ifdef CONFIG_X86_PAE
@@ -2809,6 +2813,7 @@ have been needed - see SLE11 SPn).
+ char *who;
+
+ who = _memory_setup();
++#ifndef CONFIG_XEN_UNPRIVILEGED_GUEST
+#ifdef CONFIG_XEN
+ if (is_initial_xendomain()) {
+ printk(KERN_INFO "Xen-provided machine memory map:\n");
@@ -2816,10 +2821,11 @@ have been needed - see SLE11 SPn).
+ } else
+#endif
+ memcpy(&e820_saved, &e820, sizeof(struct e820map));
++#endif
+ printk(KERN_INFO "Xen-provided physical RAM map:\n");
+ _e820_print_map(&e820, who);
+}
---- head-2011-09-07.orig/arch/x86/kernel/e820_32-xen.c 2011-01-31 18:07:35.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/e820_32-xen.c 2011-01-31 18:07:35.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,860 +0,0 @@
-#include <linux/kernel.h>
@@ -3682,7 +3688,7 @@ have been needed - see SLE11 SPn).
- print_memory_map("modified");
-}
-#endif
---- head-2011-09-07.orig/arch/x86/kernel/e820_64-xen.c 2011-01-31 18:07:35.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/e820_64-xen.c 2011-01-31 18:07:35.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,1052 +0,0 @@
-/*
@@ -4737,8 +4743,8 @@ have been needed - see SLE11 SPn).
- max_pfn << PAGE_SHIFT) - *addr;
- return i + 1;
-}
---- head-2011-09-07.orig/arch/x86/kernel/early_printk-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/early_printk-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -225,7 +225,7 @@ static struct console simnow_console = {
static struct console *early_console = &early_vga_console;
static int early_console_initialized;
@@ -4748,8 +4754,8 @@ have been needed - see SLE11 SPn).
{
char buf[512];
int n;
---- head-2011-09-07.orig/arch/x86/kernel/entry_32-xen.S 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:27.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/entry_32-xen.S 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:27.000000000 +0200
@@ -51,15 +51,26 @@
#include <asm/percpu.h>
#include <asm/dwarf2.h>
@@ -5047,9 +5053,9 @@ have been needed - see SLE11 SPn).
cmpl $nr_syscalls,%eax
jb syscall_call
jmp syscall_exit
---- head-2011-09-07.orig/arch/x86/kernel/entry_64.S 2011-09-09 15:32:34.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/entry_64.S 2011-09-09 15:36:25.000000000 +0200
-@@ -1247,7 +1247,7 @@ ENTRY(arch_unwind_init_running)
+--- head-2011-09-23.orig/arch/x86/kernel/entry_64.S 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/entry_64.S 2011-09-13 14:19:04.000000000 +0200
+@@ -1251,7 +1251,7 @@ ENTRY(arch_unwind_init_running)
END(arch_unwind_init_running)
#endif
@@ -5058,7 +5064,7 @@ have been needed - see SLE11 SPn).
zeroentry xen_hypervisor_callback xen_do_hypervisor_callback
/*
-@@ -1347,7 +1347,7 @@ END(xen_failsafe_callback)
+@@ -1351,7 +1351,7 @@ END(xen_failsafe_callback)
apicinterrupt XEN_HVM_EVTCHN_CALLBACK \
xen_hvm_callback_vector xen_evtchn_do_upcall
@@ -5067,8 +5073,8 @@ have been needed - see SLE11 SPn).
/*
* Some functions should be protected against kprobes
---- head-2011-09-07.orig/arch/x86/kernel/entry_64-xen.S 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/entry_64-xen.S 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/entry_64-xen.S 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/entry_64-xen.S 2011-02-01 14:38:38.000000000 +0100
@@ -53,12 +53,124 @@
#include <asm/hw_irq.h>
#include <asm/page.h>
@@ -5506,8 +5512,8 @@ have been needed - see SLE11 SPn).
paranoidentry do_stack_segment */
errorentry do_stack_segment
/* jmp paranoid_exit1
---- head-2011-09-07.orig/arch/x86/kernel/fixup.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/fixup.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/fixup.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/fixup.c 2011-02-01 14:38:38.000000000 +0100
@@ -33,6 +33,7 @@
#include <linux/kernel.h>
#include <linux/delay.h>
@@ -5517,7 +5523,7 @@ have been needed - see SLE11 SPn).
#define DP(_f, _args...) pr_alert(" " _f "\n" , ## _args )
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/kernel/head-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/head-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -0,0 +1,57 @@
+#include <linux/kernel.h>
+#include <linux/init.h>
@@ -5577,7 +5583,7 @@ have been needed - see SLE11 SPn).
+#endif
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/kernel/head32-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/head32-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -0,0 +1,56 @@
+/*
+ * linux/arch/i386/kernel/head32.c -- prepare to run common code
@@ -5635,8 +5641,8 @@ have been needed - see SLE11 SPn).
+
+ start_kernel();
+}
---- head-2011-09-07.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:53:20.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head64-xen.c 2011-08-09 10:54:49.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:53:20.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head64-xen.c 2011-08-09 10:54:49.000000000 +0200
@@ -32,7 +32,26 @@
#include <asm/e820.h>
#include <asm/bios_ebda.h>
@@ -5796,8 +5802,8 @@ have been needed - see SLE11 SPn).
/*
* At this point everything still needed from the boot loader
---- head-2011-09-07.orig/arch/x86/kernel/head_32-xen.S 2011-08-09 10:53:18.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head_32-xen.S 2011-08-09 10:54:53.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head_32-xen.S 2011-08-09 10:53:18.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head_32-xen.S 2011-08-09 10:54:53.000000000 +0200
@@ -62,8 +62,6 @@ ENTRY(startup_32)
movb %cl,X86_MASK
movl %edx,X86_CAPABILITY
@@ -5807,8 +5813,8 @@ have been needed - see SLE11 SPn).
xorl %eax,%eax # Clear GS
movl %eax,%gs
---- head-2011-09-07.orig/arch/x86/kernel/head_64-xen.S 2011-08-09 10:41:44.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head_64-xen.S 2011-08-09 10:54:52.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head_64-xen.S 2011-08-09 10:41:44.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head_64-xen.S 2011-08-09 10:54:52.000000000 +0200
@@ -93,53 +93,6 @@ NEXT_PAGE(hypercall_page)
#undef NEXT_PAGE
@@ -5863,8 +5869,8 @@ have been needed - see SLE11 SPn).
.section .bss.page_aligned, "aw", @nobits
.align PAGE_SIZE
ENTRY(empty_zero_page)
---- head-2011-09-07.orig/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/io_apic_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/io_apic_32-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/io_apic_32-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -25,6 +25,7 @@
#include <linux/init.h>
#include <linux/delay.h>
@@ -7489,8 +7495,8 @@ have been needed - see SLE11 SPn).
+ }
+}
+#endif
---- head-2011-09-07.orig/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/io_apic_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/io_apic_64-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/io_apic_64-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -45,6 +45,7 @@
#include <asm/proto.h>
#include <asm/acpi.h>
@@ -8254,8 +8260,8 @@ have been needed - see SLE11 SPn).
} else {
ioapic_phys = (unsigned long)
alloc_bootmem_pages(PAGE_SIZE);
---- head-2011-09-07.orig/arch/x86/kernel/ldt-xen.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ldt-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ldt-xen.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ldt-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -20,9 +20,9 @@
#include <asm/mmu_context.h>
@@ -8290,8 +8296,8 @@ have been needed - see SLE11 SPn).
preempt_enable();
#endif
}
---- head-2011-09-07.orig/arch/x86/kernel/machine_kexec_32.c 2011-01-31 14:54:00.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/machine_kexec_32.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/machine_kexec_32.c 2011-01-31 14:54:00.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/machine_kexec_32.c 2011-02-01 14:38:38.000000000 +0100
@@ -131,6 +131,8 @@ void machine_kexec_setup_load_arg(xen_ke
xki->page_list[PA_PTE_0] = __ma(kexec_pte0);
xki->page_list[PA_PTE_1] = __ma(kexec_pte1);
@@ -8301,8 +8307,8 @@ have been needed - see SLE11 SPn).
}
int __init machine_kexec_setup_resources(struct resource *hypervisor,
---- head-2011-09-07.orig/arch/x86/kernel/microcode-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/microcode-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/microcode-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/microcode-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -5,13 +5,14 @@
* 2006 Shaohua Li <shaohua.li@intel.com>
*
@@ -8367,8 +8373,8 @@ have been needed - see SLE11 SPn).
return 0;
}
---- head-2011-09-07.orig/arch/x86/kernel/mpparse-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/mpparse-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -25,6 +25,9 @@
#include <asm/proto.h>
#include <asm/acpi.h>
@@ -9578,8 +9584,8 @@ have been needed - see SLE11 SPn).
-#endif /* CONFIG_X86_IO_APIC */
-#endif /* CONFIG_ACPI */
+late_initcall(update_mp_table);
---- head-2011-09-07.orig/arch/x86/kernel/pci-dma-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/pci-dma-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -5,13 +5,13 @@
#include <asm/proto.h>
@@ -9935,8 +9941,8 @@ have been needed - see SLE11 SPn).
no_iommu_init();
return 0;
---- head-2011-09-07.orig/arch/x86/kernel/pci-nommu-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/pci-nommu-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/pci-nommu-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/pci-nommu-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -84,18 +84,12 @@ static int nommu_dma_supported(struct de
return 1;
}
@@ -9957,8 +9963,8 @@ have been needed - see SLE11 SPn).
};
void __init no_iommu_init(void)
---- head-2011-09-07.orig/arch/x86/kernel/probe_roms.c 2011-09-09 15:35:18.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/probe_roms.c 2011-09-07 15:45:16.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/probe_roms.c 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/probe_roms.c 2011-09-07 15:45:16.000000000 +0200
@@ -232,7 +232,7 @@ void __init probe_roms(void)
upper = system_rom_resource.start;
@@ -9968,8 +9974,8 @@ have been needed - see SLE11 SPn).
if (romsignature(rom)) {
length = resource_size(&extension_rom_resource);
if (romchecksum(rom, length)) {
---- head-2011-09-07.orig/arch/x86/kernel/process-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process-xen.c 2011-03-03 15:59:49.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process-xen.c 2011-03-03 15:59:49.000000000 +0100
@@ -6,6 +6,13 @@
#include <linux/sched.h>
#include <linux/module.h>
@@ -10231,8 +10237,8 @@ have been needed - see SLE11 SPn).
return -1;
boot_option_idle_override = 1;
---- head-2011-09-07.orig/arch/x86/kernel/process_32-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_32-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_32-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -59,15 +59,11 @@
#include <asm/tlbflush.h>
#include <asm/cpu.h>
@@ -10336,8 +10342,8 @@ have been needed - see SLE11 SPn).
}
tick_nohz_restart_sched_tick();
preempt_enable_no_resched();
---- head-2011-09-07.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:32:46.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_64-xen.c 2011-02-02 08:34:01.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:32:46.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_64-xen.c 2011-02-02 08:34:01.000000000 +0100
@@ -64,15 +64,6 @@ asmlinkage extern void ret_from_fork(voi
unsigned long kernel_thread_flags = CLONE_VM | CLONE_UNTRACED;
@@ -10520,8 +10526,8 @@ have been needed - see SLE11 SPn).
if (gsindex)
rdmsrl(MSR_KERNEL_GS_BASE, base);
else
---- head-2011-09-07.orig/arch/x86/kernel/setup-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/setup-xen.c 2011-06-10 11:59:07.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/setup-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/setup-xen.c 2011-06-10 11:59:07.000000000 +0200
@@ -1,143 +1,1126 @@
-#include <linux/kernel.h>
+/*
@@ -11739,7 +11745,7 @@ have been needed - see SLE11 SPn).
+ return NOTIFY_DONE;
+}
+#endif /* !CONFIG_XEN */
---- head-2011-09-07.orig/arch/x86/kernel/setup64-xen.c 2011-01-31 18:07:35.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup64-xen.c 2011-01-31 18:07:35.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,370 +0,0 @@
-/*
@@ -12112,7 +12118,7 @@ have been needed - see SLE11 SPn).
- if (is_uv_system())
- uv_cpu_init();
-}
---- head-2011-09-07.orig/arch/x86/kernel/setup_32-xen.c 2011-03-04 15:07:31.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup_32-xen.c 2011-03-04 15:07:31.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,1153 +0,0 @@
-/*
@@ -13268,7 +13274,7 @@ have been needed - see SLE11 SPn).
-}
-
-subsys_initcall(request_standard_resources);
---- head-2011-09-07.orig/arch/x86/kernel/setup_64-xen.c 2011-01-31 18:07:35.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup_64-xen.c 2011-01-31 18:07:35.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,1442 +0,0 @@
-/*
@@ -14713,8 +14719,8 @@ have been needed - see SLE11 SPn).
- return 1;
-}
-__setup("clearcpuid=", setup_disablecpuid);
---- head-2011-09-07.orig/arch/x86/kernel/smp-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/smp-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/smp-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/smp-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -121,132 +121,14 @@ void xen_smp_send_reschedule(int cpu)
send_IPI_mask(cpumask_of_cpu(cpu), RESCHEDULE_VECTOR);
}
@@ -14912,8 +14918,8 @@ have been needed - see SLE11 SPn).
return IRQ_HANDLED;
}
---- head-2011-09-07.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:49:22.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/time-xen.c 2011-07-11 11:50:40.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:49:22.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/time-xen.c 2011-07-11 11:50:40.000000000 +0200
@@ -522,7 +522,7 @@ irqreturn_t timer_interrupt(int irq, voi
/* Keep nmi watchdog up to date */
@@ -14943,8 +14949,8 @@ have been needed - see SLE11 SPn).
cpu_clear(cpu, nohz_cpu_mask);
j = jiffies + 1;
}
---- head-2011-09-07.orig/arch/x86/kernel/traps_32-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/traps_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps_32-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/traps_32-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -1,5 +1,6 @@
/*
* Copyright (C) 1991, 1992 Linus Torvalds
@@ -15521,8 +15527,8 @@ have been needed - see SLE11 SPn).
unsigned long base = (kesp - uesp) & -THREAD_SIZE;
unsigned long new_kesp = kesp - base;
unsigned long lim_pages = (new_kesp | (THREAD_SIZE - 1)) >> PAGE_SHIFT;
---- head-2011-09-07.orig/arch/x86/kernel/traps_64-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/traps_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps_64-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/traps_64-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -10,73 +10,56 @@
* 'Traps.c' handles hardware traps and faults after we have saved some
* state in 'entry.S'.
@@ -16483,8 +16489,8 @@ have been needed - see SLE11 SPn).
static int __init code_bytes_setup(char *s)
{
code_bytes = simple_strtoul(s, NULL, 0);
---- head-2011-09-07.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/vsyscall_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/vsyscall_64-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -42,7 +42,8 @@
#include <asm/topology.h>
#include <asm/vgtod.h>
@@ -16525,8 +16531,8 @@ have been needed - see SLE11 SPn).
hotcpu_notifier(cpu_vsyscall_notifier, 0);
return 0;
}
---- head-2011-09-07.orig/arch/x86/mach-xen/setup.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/mach-xen/setup.c 2011-09-07 15:45:25.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mach-xen/setup.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/mach-xen/setup.c 2011-09-07 15:45:25.000000000 +0200
@@ -17,6 +17,8 @@
#include <xen/interface/callback.h>
#include <xen/interface/memory.h>
@@ -16690,8 +16696,8 @@ have been needed - see SLE11 SPn).
}
+#endif
}
---- head-2011-09-07.orig/arch/x86/mm/Makefile 2011-06-30 15:40:00.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/Makefile 2011-04-13 13:48:19.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/Makefile 2011-06-30 15:40:00.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/Makefile 2011-04-13 13:48:19.000000000 +0200
@@ -28,6 +28,7 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o
obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
@@ -16700,8 +16706,8 @@ have been needed - see SLE11 SPn).
obj-$(CONFIG_HAVE_MEMBLOCK) += memblock.o
---- head-2011-09-07.orig/arch/x86/mm/dump_pagetables-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/dump_pagetables-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/dump_pagetables-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/dump_pagetables-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -45,7 +45,7 @@ static struct addr_marker address_marker
{ 0, "User Space" },
#ifdef CONFIG_X86_64
@@ -16749,8 +16755,8 @@ have been needed - see SLE11 SPn).
if (pgd_large(*start) || !pgd_present(*start))
note_page(m, &st, __pgprot(prot), 1);
---- head-2011-09-07.orig/arch/x86/mm/fault-xen.c 2011-07-26 09:29:47.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/fault-xen.c 2011-07-26 09:29:55.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/fault-xen.c 2011-07-26 09:29:47.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/fault-xen.c 2011-07-26 09:29:55.000000000 +0200
@@ -10,6 +10,7 @@
#include <linux/string.h>
#include <linux/types.h>
@@ -16951,8 +16957,8 @@ have been needed - see SLE11 SPn).
}
#endif
}
---- head-2011-09-07.orig/arch/x86/mm/hypervisor.c 2011-08-09 10:50:48.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/hypervisor.c 2011-08-09 10:57:04.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/hypervisor.c 2011-08-09 10:50:48.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/hypervisor.c 2011-08-09 10:57:04.000000000 +0200
@@ -502,7 +502,7 @@ static int __init init_contig_order(void
return 0;
@@ -17082,8 +17088,8 @@ have been needed - see SLE11 SPn).
+ maddr_t mach_gp = virt_to_machine(gdt + entry);
+ return HYPERVISOR_update_descriptor(mach_gp, *(const u64*)desc);
}
---- head-2011-09-07.orig/arch/x86/mm/init_32-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/init_32-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_32-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -54,6 +54,7 @@
unsigned int __VMALLOC_RESERVE = 128 << 20;
@@ -17913,8 +17919,8 @@ have been needed - see SLE11 SPn).
+{
+ return reserve_bootmem(phys, len, flags);
+}
---- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/init_64-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_64-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -21,6 +21,7 @@
#include <linux/swap.h>
#include <linux/smp.h>
@@ -19283,8 +19289,8 @@ have been needed - see SLE11 SPn).
}
return 0;
}
---- head-2011-09-07.orig/arch/x86/mm/ioremap-xen.c 2011-02-07 15:39:13.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/ioremap-xen.c 2011-02-07 15:40:39.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/ioremap-xen.c 2011-02-07 15:39:13.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/ioremap-xen.c 2011-02-07 15:40:39.000000000 +0100
@@ -13,6 +13,7 @@
#include <linux/pfn.h>
#include <linux/slab.h>
@@ -19457,8 +19463,8 @@ have been needed - see SLE11 SPn).
return 1;
}
---- head-2011-09-07.orig/arch/x86/mm/pageattr-xen.c 2011-03-23 09:53:18.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pageattr-xen.c 2011-03-23 09:54:23.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pageattr-xen.c 2011-03-23 09:53:18.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pageattr-xen.c 2011-03-23 09:54:23.000000000 +0100
@@ -34,6 +34,47 @@ struct cpa_data {
unsigned force_split : 1;
};
@@ -19673,8 +19679,8 @@ have been needed - see SLE11 SPn).
return _set_memory_wb(addr, numpages);
}
---- head-2011-09-07.orig/arch/x86/mm/pat-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pat-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pat-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pat-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -12,6 +12,8 @@
#include <linux/gfp.h>
#include <linux/fs.h>
@@ -20384,8 +20390,8 @@ have been needed - see SLE11 SPn).
+late_initcall(pat_memtype_list_init);
+
+#endif /* CONFIG_DEBUG_FS */
---- head-2011-09-07.orig/arch/x86/mm/pgtable-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pgtable-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pgtable-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pgtable-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -4,6 +4,7 @@
#include <asm/pgalloc.h>
#include <asm/pgtable.h>
@@ -20753,8 +20759,8 @@ have been needed - see SLE11 SPn).
+ set_pte_vaddr(address, pte);
+ fixmaps_set++;
+}
---- head-2011-09-07.orig/arch/x86/mm/pgtable_32-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pgtable_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pgtable_32-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pgtable_32-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -25,51 +25,49 @@
#include <xen/features.h>
#include <asm/hypervisor.h>
@@ -20935,8 +20941,8 @@ have been needed - see SLE11 SPn).
void make_lowmem_page_readonly(void *va, unsigned int feature)
{
pte_t *pte;
---- head-2011-09-07.orig/arch/x86/pci/amd_bus.c 2011-09-09 15:35:18.000000000 +0200
-+++ head-2011-09-07/arch/x86/pci/amd_bus.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/pci/amd_bus.c 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/arch/x86/pci/amd_bus.c 2011-02-01 14:38:38.000000000 +0100
@@ -350,6 +350,7 @@ static int __init early_fill_mp_bus_info
#define ENABLE_CF8_EXT_CFG (1ULL << 46)
@@ -20984,8 +20990,53 @@ have been needed - see SLE11 SPn).
if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
return 0;
---- head-2011-09-07.orig/arch/x86/vdso/Makefile 2011-09-07 15:37:23.000000000 +0200
-+++ head-2011-09-07/arch/x86/vdso/Makefile 2011-09-07 15:45:31.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/pci/mmconfig-shared.c 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/arch/x86/pci/mmconfig-shared.c 2011-07-06 12:20:45.000000000 +0200
+@@ -21,6 +21,10 @@
+ #include <asm/pci_x86.h>
+ #include <asm/acpi.h>
+
++#ifdef CONFIG_XEN
++#include <xen/interface/physdev.h>
++#endif
++
+ #define PREFIX "PCI: "
+
+ /* Indicate if the mmcfg resources have been placed into the resource table. */
+@@ -471,6 +475,31 @@ static int __init is_mmconf_reserved(che
+ }
+ }
+
++#ifdef CONFIG_XEN
++ if (!with_e820) {
++ struct physdev_pci_mmcfg_reserved r = {
++ .address = cfg->address,
++ .segment = cfg->segment,
++ .start_bus = cfg->start_bus,
++ .end_bus = cfg->end_bus,
++ .flags = valid ? XEN_PCI_MMCFG_RESERVED : 0
++ };
++ int rc;
++
++ rc = HYPERVISOR_physdev_op(PHYSDEVOP_pci_mmcfg_reserved, &r);
++ switch (rc) {
++ case 0: case -ENOSYS:
++ break;
++ default:
++ pr_warn(PREFIX "Failed to report MMCONFIG reservation"
++ " state for %04x [bus%02x-%02x] to hypervisor"
++ " (%d)\n",
++ cfg->segment, cfg->start_bus, cfg->end_bus,
++ rc);
++ }
++ }
++#endif
++
+ return valid;
+ }
+
+--- head-2011-09-23.orig/arch/x86/vdso/Makefile 2011-09-07 15:37:23.000000000 +0200
++++ head-2011-09-23/arch/x86/vdso/Makefile 2011-09-07 15:45:31.000000000 +0200
@@ -79,9 +79,7 @@ obj-$(VDSO32-y) += vdso32-syms.lds
vdso32.so-$(VDSO32-y) += int80
vdso32.so-$(CONFIG_COMPAT) += syscall
@@ -20997,8 +21048,8 @@ have been needed - see SLE11 SPn).
vdso32-images = $(vdso32.so-y:%=vdso32-%.so)
---- head-2011-09-07.orig/arch/x86/vdso/vdso32.S 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/arch/x86/vdso/vdso32.S 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/vdso/vdso32.S 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/arch/x86/vdso/vdso32.S 2011-02-01 14:38:38.000000000 +0100
@@ -9,7 +9,7 @@ vdso32_int80_end:
.globl vdso32_syscall_start, vdso32_syscall_end
@@ -21025,8 +21076,8 @@ have been needed - see SLE11 SPn).
-#endif
-
__FINIT
---- head-2011-09-07.orig/arch/x86/vdso/vdso32-setup-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/vdso/vdso32-setup-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/vdso/vdso32-setup-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/vdso/vdso32-setup-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -195,50 +195,28 @@ static __init void relocate_vdso(Elf32_E
}
}
@@ -21160,8 +21211,8 @@ have been needed - see SLE11 SPn).
}
memcpy(syscall_page, vsyscall, vsyscall_len);
---- head-2011-09-07.orig/arch/x86/xen/Kconfig 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/arch/x86/xen/Kconfig 2011-04-28 11:12:57.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/xen/Kconfig 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/arch/x86/xen/Kconfig 2011-04-28 11:12:57.000000000 +0200
@@ -31,14 +31,14 @@ config XEN_PVHVM
config XEN_MAX_DOMAIN_MEMORY
int
@@ -21179,8 +21230,8 @@ have been needed - see SLE11 SPn).
select HIBERNATE_CALLBACKS
default y
---- head-2011-09-07.orig/drivers/acpi/processor_core.c 2011-06-30 16:32:20.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/processor_core.c 2011-09-06 09:24:07.000000000 +0200
+--- head-2011-09-23.orig/drivers/acpi/processor_core.c 2011-06-30 16:32:20.000000000 +0200
++++ head-2011-09-23/drivers/acpi/processor_core.c 2011-09-06 09:24:07.000000000 +0200
@@ -299,19 +299,31 @@ acpi_processor_eval_pdc(acpi_handle hand
{
acpi_status status = AE_OK;
@@ -21214,8 +21265,8 @@ have been needed - see SLE11 SPn).
}
status = acpi_evaluate_object(handle, "_PDC", pdc_in, NULL);
---- head-2011-09-07.orig/drivers/acpi/processor_driver.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/acpi/processor_driver.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/acpi/processor_driver.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/acpi/processor_driver.c 2011-02-01 14:38:38.000000000 +0100
@@ -512,10 +512,12 @@ static int __cpuinit acpi_processor_add(
per_cpu(processors, pr->id) = pr;
#endif
@@ -21243,8 +21294,8 @@ have been needed - see SLE11 SPn).
if (pr->cdev) {
sysfs_remove_link(&device->dev.kobj, "thermal_cooling");
---- head-2011-09-07.orig/drivers/acpi/processor_perflib.c 2011-06-30 16:02:05.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/processor_perflib.c 2011-06-30 16:41:01.000000000 +0200
+--- head-2011-09-23.orig/drivers/acpi/processor_perflib.c 2011-06-30 16:02:05.000000000 +0200
++++ head-2011-09-23/drivers/acpi/processor_perflib.c 2011-06-30 16:41:01.000000000 +0200
@@ -183,6 +183,12 @@ int acpi_processor_ppc_has_changed(struc
{
int ret;
@@ -21258,8 +21309,8 @@ have been needed - see SLE11 SPn).
if (ignore_ppc) {
/*
* Only when it is notification event, the _OST object
---- head-2011-09-07.orig/drivers/char/tpm/tpm_vtpm.c 2011-01-31 14:53:38.000000000 +0100
-+++ head-2011-09-07/drivers/char/tpm/tpm_vtpm.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/char/tpm/tpm_vtpm.c 2011-01-31 14:53:38.000000000 +0100
++++ head-2011-09-23/drivers/char/tpm/tpm_vtpm.c 2011-02-01 14:38:38.000000000 +0100
@@ -347,7 +347,7 @@ static int _vtpm_send_queued(struct tpm_
{
int rc;
@@ -21269,8 +21320,8 @@ have been needed - see SLE11 SPn).
unsigned char buffer[1];
struct vtpm_state *vtpms;
vtpms = (struct vtpm_state *)chip_get_private(chip);
---- head-2011-09-07.orig/drivers/dma/ioat/dma.h 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/dma/ioat/dma.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/dma/ioat/dma.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/dma/ioat/dma.h 2011-02-01 14:38:38.000000000 +0100
@@ -363,6 +363,7 @@ __ioat_dca_init(struct pci_dev *pdev, vo
}
#define ioat_dca_init __ioat_dca_init
@@ -21279,8 +21330,8 @@ have been needed - see SLE11 SPn).
#endif
#endif /* IOATDMA_H */
---- head-2011-09-07.orig/drivers/hwmon/coretemp-xen.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/drivers/hwmon/coretemp-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/hwmon/coretemp-xen.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/drivers/hwmon/coretemp-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -360,10 +360,11 @@ static int coretemp_device_add(unsigned
if (err)
goto exit_entry_free;
@@ -21295,8 +21346,8 @@ have been needed - see SLE11 SPn).
/* supported CPU not found, but report the unknown
family 6 CPU */
---- head-2011-09-07.orig/drivers/pci/msi-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/pci/msi-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/pci/msi-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/pci/msi-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -53,12 +53,10 @@ arch_msi_check_device(struct pci_dev *de
return 0;
}
@@ -21399,16 +21450,16 @@ have been needed - see SLE11 SPn).
return -EINVAL;
}
---- head-2011-09-07.orig/drivers/xen/Makefile 2011-02-28 15:13:33.000000000 +0100
-+++ head-2011-09-07/drivers/xen/Makefile 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/Makefile 2011-02-28 15:13:33.000000000 +0100
++++ head-2011-09-23/drivers/xen/Makefile 2011-02-01 14:38:38.000000000 +0100
@@ -1,4 +1,4 @@
-obj-$(CONFIG_PARAVIRT_XEN) += grant-table.o features.o events.o
+obj-$(CONFIG_PARAVIRT_XEN) += grant-table.o features.o events.o manage.o
xen-balloon-$(CONFIG_PARAVIRT_XEN) := balloon.o
xen-balloon-$(CONFIG_XEN) := balloon/
---- head-2011-09-07.orig/drivers/xen/balloon/balloon.c 2011-03-23 08:52:11.000000000 +0100
-+++ head-2011-09-07/drivers/xen/balloon/balloon.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/balloon/balloon.c 2011-03-23 08:52:11.000000000 +0100
++++ head-2011-09-23/drivers/xen/balloon/balloon.c 2011-02-01 14:38:38.000000000 +0100
@@ -82,7 +82,7 @@ struct balloon_stats balloon_stats;
/* We increase/decrease in batches which fit in a page */
static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
@@ -21418,8 +21469,8 @@ have been needed - see SLE11 SPn).
#define inc_totalhigh_pages() (totalhigh_pages++)
#define dec_totalhigh_pages() (totalhigh_pages--)
#else
---- head-2011-09-07.orig/drivers/xen/balloon/sysfs.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/drivers/xen/balloon/sysfs.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/balloon/sysfs.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/drivers/xen/balloon/sysfs.c 2011-02-01 14:38:38.000000000 +0100
@@ -45,6 +45,7 @@
#define BALLOON_SHOW(name, format, args...) \
@@ -21447,8 +21498,8 @@ have been needed - see SLE11 SPn).
{
char memstring[64], *endchar;
unsigned long long target_bytes;
---- head-2011-09-07.orig/drivers/xen/blktap/blktap.c 2011-06-30 16:35:35.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blktap/blktap.c 2011-06-30 16:41:05.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blktap/blktap.c 2011-06-30 16:35:35.000000000 +0200
++++ head-2011-09-23/drivers/xen/blktap/blktap.c 2011-06-30 16:41:05.000000000 +0200
@@ -56,6 +56,7 @@
#include <linux/gfp.h>
#include <linux/poll.h>
@@ -21476,8 +21527,8 @@ have been needed - see SLE11 SPn).
} else {
/* this is bad, but not fatal */
WPRINTK("blktap: sysfs xen_class not created\n");
---- head-2011-09-07.orig/drivers/xen/blktap2/device.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap2/device.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/device.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/device.c 2011-02-01 14:38:38.000000000 +0100
@@ -3,6 +3,7 @@
#include <linux/cdrom.h>
#include <linux/hdreg.h>
@@ -21486,8 +21537,8 @@ have been needed - see SLE11 SPn).
#include <asm/tlbflush.h>
#include <scsi/scsi.h>
---- head-2011-09-07.orig/drivers/xen/blktap2/sysfs.c 2011-03-11 10:58:58.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap2/sysfs.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/sysfs.c 2011-03-11 10:58:58.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/sysfs.c 2011-02-01 14:38:38.000000000 +0100
@@ -307,8 +307,8 @@ blktap_sysfs_create(struct blktap *tap)
ring = &tap->ring;
@@ -21499,8 +21550,8 @@ have been needed - see SLE11 SPn).
if (IS_ERR(dev))
return PTR_ERR(dev);
---- head-2011-09-07.orig/drivers/xen/char/mem.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/char/mem.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/char/mem.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/char/mem.c 2011-02-01 14:38:38.000000000 +0100
@@ -35,7 +35,7 @@ static inline int uncached_access(struct
static inline int range_is_allowed(unsigned long pfn, unsigned long size)
@@ -21522,8 +21573,8 @@ have been needed - see SLE11 SPn).
};
static int xen_mmap_mem(struct file * file, struct vm_area_struct * vma)
---- head-2011-09-07.orig/drivers/xen/console/console.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/console/console.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/console/console.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/console/console.c 2011-02-01 14:38:38.000000000 +0100
@@ -431,9 +431,7 @@ static void __xencons_tx_flush(void)
if (work_done && (xencons_tty != NULL)) {
@@ -21546,8 +21597,8 @@ have been needed - see SLE11 SPn).
tty->closing = 0;
spin_lock_irqsave(&xencons_lock, flags);
xencons_tty = NULL;
---- head-2011-09-07.orig/drivers/xen/core/evtchn.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/evtchn.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/evtchn.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/evtchn.c 2011-02-01 14:38:38.000000000 +0100
@@ -126,7 +126,11 @@ static int irq_bindcount[NR_IRQS];
#ifdef CONFIG_SMP
@@ -21644,8 +21695,8 @@ have been needed - see SLE11 SPn).
/* No event channels are 'live' right now. */
for (i = 0; i < NR_EVENT_CHANNELS; i++)
---- head-2011-09-07.orig/drivers/xen/core/gnttab.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/gnttab.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/gnttab.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/gnttab.c 2011-02-01 14:38:38.000000000 +0100
@@ -448,6 +448,7 @@ static int map_pte_fn(pte_t *pte, struct
return 0;
}
@@ -21773,8 +21824,8 @@ have been needed - see SLE11 SPn).
return 0;
ini_nomem:
---- head-2011-09-07.orig/drivers/xen/core/machine_kexec.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/machine_kexec.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/machine_kexec.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/machine_kexec.c 2011-02-01 14:38:38.000000000 +0100
@@ -57,8 +57,7 @@ void __init xen_machine_kexec_setup_reso
/* allocate xen_phys_cpus */
@@ -21829,8 +21880,8 @@ have been needed - see SLE11 SPn).
void __init xen_machine_kexec_register_resources(struct resource *res)
{
int k;
---- head-2011-09-07.orig/drivers/xen/core/machine_reboot.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/machine_reboot.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/machine_reboot.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/machine_reboot.c 2011-02-01 14:38:38.000000000 +0100
@@ -52,6 +52,7 @@ void machine_power_off(void)
HYPERVISOR_shutdown(SHUTDOWN_poweroff);
}
@@ -21870,8 +21921,8 @@ have been needed - see SLE11 SPn).
return 0;
}
+#endif
---- head-2011-09-07.orig/drivers/xen/core/reboot.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/reboot.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/reboot.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/reboot.c 2011-02-01 14:38:38.000000000 +0100
@@ -28,17 +28,12 @@ MODULE_LICENSE("Dual BSD/GPL");
/* Ignore multiple shutdown requests. */
static int shutting_down = SHUTDOWN_INVALID;
@@ -21944,8 +21995,8 @@ have been needed - see SLE11 SPn).
static int setup_shutdown_watcher(void)
{
---- head-2011-09-07.orig/drivers/xen/core/smpboot.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/smpboot.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/smpboot.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/smpboot.c 2011-02-01 14:38:38.000000000 +0100
@@ -27,6 +27,7 @@
extern irqreturn_t smp_reschedule_interrupt(int, void *);
@@ -22081,8 +22132,8 @@ have been needed - see SLE11 SPn).
prefill_possible_map();
}
---- head-2011-09-07.orig/drivers/xen/core/spinlock.c 2011-03-15 16:52:48.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/spinlock.c 2011-03-15 16:51:35.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/spinlock.c 2011-03-15 16:52:48.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/spinlock.c 2011-03-15 16:51:35.000000000 +0100
@@ -5,6 +5,10 @@
* portions of this file.
*/
@@ -22217,8 +22268,8 @@ have been needed - see SLE11 SPn).
EXPORT_SYMBOL(xen_spin_kick);
+
+#endif /* TICKET_SHIFT */
---- head-2011-09-07.orig/drivers/xen/fbfront/xenfb.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/fbfront/xenfb.c 2011-02-17 10:11:23.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/fbfront/xenfb.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/fbfront/xenfb.c 2011-02-17 10:11:23.000000000 +0100
@@ -18,6 +18,7 @@
* frame buffer.
*/
@@ -22270,16 +22321,16 @@ have been needed - see SLE11 SPn).
+MODULE_DESCRIPTION("Xen virtual framebuffer device frontend");
MODULE_LICENSE("GPL");
---- head-2011-09-07.orig/drivers/xen/fbfront/xenkbd.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/fbfront/xenkbd.c 2011-05-23 11:10:58.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/fbfront/xenkbd.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/fbfront/xenkbd.c 2011-05-23 11:10:58.000000000 +0200
@@ -363,4 +363,5 @@ static void __exit xenkbd_cleanup(void)
module_init(xenkbd_init);
module_exit(xenkbd_cleanup);
+MODULE_DESCRIPTION("Xen virtual keyboard/pointer device frontend");
MODULE_LICENSE("GPL");
---- head-2011-09-07.orig/drivers/xen/gntdev/gntdev.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/gntdev/gntdev.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/gntdev/gntdev.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/gntdev/gntdev.c 2011-02-01 14:38:38.000000000 +0100
@@ -400,7 +400,7 @@ static int __init gntdev_init(void)
}
@@ -22289,8 +22340,8 @@ have been needed - see SLE11 SPn).
if (IS_ERR(device)) {
pr_err("Error creating gntdev device in xen_class\n");
pr_err("gntdev created, major number = %d\n", gntdev_major);
---- head-2011-09-07.orig/drivers/xen/netback/netback.c 2011-04-11 15:01:12.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netback/netback.c 2011-04-11 15:03:06.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/netback.c 2011-04-11 15:01:12.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/netback.c 2011-04-11 15:03:06.000000000 +0200
@@ -36,7 +36,7 @@
#include "common.h"
@@ -22309,8 +22360,8 @@ have been needed - see SLE11 SPn).
static struct pending_tx_info {
netif_tx_request_t req;
---- head-2011-09-07.orig/drivers/xen/netfront/accel.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/netfront/accel.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/netfront/accel.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/netfront/accel.c 2011-02-01 14:38:38.000000000 +0100
@@ -28,6 +28,7 @@
* IN THE SOFTWARE.
*/
@@ -22319,8 +22370,8 @@ have been needed - see SLE11 SPn).
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/list.h>
---- head-2011-09-07.orig/drivers/xen/netfront/netfront.c 2011-06-30 16:35:25.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netfront/netfront.c 2011-06-30 16:41:13.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netfront/netfront.c 2011-06-30 16:35:25.000000000 +0200
++++ head-2011-09-23/drivers/xen/netfront/netfront.c 2011-06-30 16:41:13.000000000 +0200
@@ -639,7 +639,7 @@ static int network_open(struct net_devic
}
spin_unlock_bh(&np->rx_lock);
@@ -22330,19 +22381,8 @@ have been needed - see SLE11 SPn).
return 0;
}
---- head-2011-09-07.orig/drivers/xen/pciback/conf_space_header.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/pciback/conf_space_header.c 2011-08-09 10:54:33.000000000 +0200
-@@ -179,7 +179,7 @@ static inline void read_dev_bar(struct p
-
- bar_info->val = res[pos].start |
- (res[pos].flags & PCI_REGION_FLAG_MASK);
-- bar_info->len_val = res[pos].end - res[pos].start + 1;
-+ bar_info->len_val = resource_size(res + pos);
- }
-
- static void *bar_init(struct pci_dev *dev, int offset)
---- head-2011-09-07.orig/drivers/xen/sfc_netback/accel.h 2010-01-18 15:23:12.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netback/accel.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netback/accel.h 2010-01-18 15:23:12.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netback/accel.h 2011-02-01 14:38:38.000000000 +0100
@@ -25,6 +25,7 @@
#ifndef NETBACK_ACCEL_H
#define NETBACK_ACCEL_H
@@ -22351,8 +22391,8 @@ have been needed - see SLE11 SPn).
#include <linux/slab.h>
#include <linux/ip.h>
#include <linux/tcp.h>
---- head-2011-09-07.orig/drivers/xen/sfc_netfront/accel.h 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netfront/accel.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netfront/accel.h 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netfront/accel.h 2011-02-01 14:38:38.000000000 +0100
@@ -35,6 +35,7 @@
#include <xen/evtchn.h>
@@ -22361,8 +22401,8 @@ have been needed - see SLE11 SPn).
#include <linux/list.h>
enum netfront_accel_post_status {
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_client.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_client.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_client.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_client.c 2011-02-01 14:38:38.000000000 +0100
@@ -149,7 +149,7 @@ int xenbus_watch_pathfmt(struct xenbus_d
char *path;
@@ -22372,8 +22412,8 @@ have been needed - see SLE11 SPn).
va_end(ap);
if (!path) {
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 15:00:27.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 15:03:17.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 15:00:27.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 15:03:17.000000000 +0200
@@ -250,14 +250,11 @@ int xb_init_comms(void)
intf->rsp_cons = intf->rsp_prod;
}
@@ -22411,8 +22451,8 @@ have been needed - see SLE11 SPn).
return 0;
}
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_dev.c 2011-06-30 16:10:32.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_dev.c 2011-06-30 16:41:18.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_dev.c 2011-06-30 16:10:32.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_dev.c 2011-06-30 16:41:18.000000000 +0200
@@ -158,8 +158,7 @@ static void queue_flush(struct xenbus_de
int err)
{
@@ -22423,8 +22463,8 @@ have been needed - see SLE11 SPn).
wake_up(&u->read_waitq);
} else
while (!list_empty(queue)) {
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe.c 2011-06-10 11:53:57.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe.c 2011-06-10 11:54:17.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe.c 2011-06-10 11:53:57.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe.c 2011-06-10 11:54:17.000000000 +0200
@@ -36,6 +36,7 @@
__FUNCTION__, __LINE__, ##args)
@@ -22433,8 +22473,8 @@ have been needed - see SLE11 SPn).
#include <linux/err.h>
#include <linux/string.h>
#include <linux/ctype.h>
---- head-2011-09-07.orig/fs/aio.c 2011-04-13 12:51:57.000000000 +0200
-+++ head-2011-09-07/fs/aio.c 2011-04-13 13:48:30.000000000 +0200
+--- head-2011-09-23.orig/fs/aio.c 2011-04-13 12:51:57.000000000 +0200
++++ head-2011-09-23/fs/aio.c 2011-04-13 13:48:30.000000000 +0200
@@ -1296,7 +1296,7 @@ static int make_aio_fd(struct kioctx *io
int fd;
struct file *file;
@@ -22444,8 +22484,8 @@ have been needed - see SLE11 SPn).
if (fd < 0)
return fd;
---- head-2011-09-07.orig/include/Kbuild 2011-09-09 15:35:18.000000000 +0200
-+++ head-2011-09-07/include/Kbuild 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/include/Kbuild 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/include/Kbuild 2011-02-01 14:38:38.000000000 +0100
@@ -8,5 +8,6 @@ header-y += mtd/
header-y += rdma/
header-y += video/
@@ -22453,8 +22493,8 @@ have been needed - see SLE11 SPn).
+header-y += xen/public/
header-y += xen/
header-y += scsi/
---- head-2011-09-07.orig/include/asm-generic/pgtable.h 2011-03-11 10:54:24.000000000 +0100
-+++ head-2011-09-07/include/asm-generic/pgtable.h 2011-03-11 10:59:22.000000000 +0100
+--- head-2011-09-23.orig/include/asm-generic/pgtable.h 2011-03-11 10:54:24.000000000 +0100
++++ head-2011-09-23/include/asm-generic/pgtable.h 2011-03-11 10:59:22.000000000 +0100
@@ -156,10 +156,6 @@ static inline void pmdp_set_wrprotect(st
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
#endif
@@ -22466,8 +22506,8 @@ have been needed - see SLE11 SPn).
#ifndef __HAVE_ARCH_PMDP_SPLITTING_FLUSH
extern pmd_t pmdp_splitting_flush(struct vm_area_struct *vma,
unsigned long address,
---- head-2011-09-07.orig/arch/x86/include/asm/kexec.h 2011-04-13 11:31:41.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/kexec.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/asm/kexec.h 2011-04-13 11:31:41.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/kexec.h 2011-02-01 14:38:38.000000000 +0100
@@ -5,8 +5,21 @@
# define PA_CONTROL_PAGE 0
# define VA_CONTROL_PAGE 1
@@ -22490,8 +22530,8 @@ have been needed - see SLE11 SPn).
#else
# define PA_CONTROL_PAGE 0
# define VA_CONTROL_PAGE 1
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/desc.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/desc.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:38:38.000000000 +0100
@@ -31,11 +31,17 @@ extern struct desc_ptr idt_descr;
extern gate_desc idt_table[];
#endif
@@ -22560,8 +22600,8 @@ have been needed - see SLE11 SPn).
/*
* This routine sets up an interrupt gate at directory privilege level 3.
*/
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:38:38.000000000 +0100
@@ -7,7 +7,58 @@
# include "fixmap_64.h"
#endif
@@ -22621,8 +22661,8 @@ have been needed - see SLE11 SPn).
+ return __virt_to_fix(vaddr);
+}
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-02-01 14:38:38.000000000 +0100
@@ -58,10 +58,17 @@ enum fixed_addresses {
#ifdef CONFIG_X86_LOCAL_APIC
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
@@ -22740,8 +22780,8 @@ have been needed - see SLE11 SPn).
-
#endif /* !__ASSEMBLY__ */
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:38:38.000000000 +0100
@@ -12,6 +12,7 @@
#define _ASM_FIXMAP_64_H
@@ -22841,8 +22881,8 @@ have been needed - see SLE11 SPn).
-}
-
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:38:38.000000000 +0100
@@ -73,6 +73,9 @@ struct page *kmap_atomic_to_page(void *p
#define flush_cache_kmaps() do { } while (0)
@@ -22853,8 +22893,8 @@ have been needed - see SLE11 SPn).
void clear_highpage(struct page *);
static inline void clear_user_highpage(struct page *page, unsigned long vaddr)
{
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/hypercall.h 2011-08-23 13:29:27.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypercall.h 2011-08-23 13:33:05.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypercall.h 2011-08-23 13:29:27.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypercall.h 2011-08-23 13:33:05.000000000 +0200
@@ -339,9 +339,19 @@ static inline int __must_check
HYPERVISOR_grant_table_op(
unsigned int cmd, void *uop, unsigned int count)
@@ -22876,8 +22916,8 @@ have been needed - see SLE11 SPn).
}
static inline int __must_check
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:32:43.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:33:08.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:32:43.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:33:08.000000000 +0200
@@ -35,7 +35,6 @@
#include <linux/types.h>
@@ -22925,8 +22965,8 @@ have been needed - see SLE11 SPn).
#if defined(CONFIG_X86_64)
#define MULTI_UVMFLAGS_INDEX 2
#define MULTI_UVMDOMID_INDEX 3
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/io.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/io.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:38:38.000000000 +0100
@@ -3,20 +3,140 @@
#define ARCH_HAS_IOREMAP_WC
@@ -23074,7 +23114,7 @@ have been needed - see SLE11 SPn).
+
#endif /* _ASM_X86_IO_H */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:27:18.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:27:18.000000000 +0100
@@ -0,0 +1,52 @@
+#ifndef _ASM_IRQ_VECTORS_H
+#define _ASM_IRQ_VECTORS_H
@@ -23128,8 +23168,8 @@ have been needed - see SLE11 SPn).
+#define NR_IRQ_VECTORS NR_IRQS
+
+#endif /* _ASM_IRQ_VECTORS_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:38:38.000000000 +0100
@@ -118,7 +118,7 @@ static inline void halt(void)
#ifndef CONFIG_X86_64
@@ -23194,8 +23234,8 @@ have been needed - see SLE11 SPn).
#else
# define TRACE_IRQS_ON
# define TRACE_IRQS_OFF
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context.h 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:38:38.000000000 +0100
@@ -1,5 +1,42 @@
+#ifndef __ASM_X86_MMU_CONTEXT_H
+#define __ASM_X86_MMU_CONTEXT_H
@@ -23239,8 +23279,8 @@ have been needed - see SLE11 SPn).
+
+
+#endif /* __ASM_X86_MMU_CONTEXT_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:38:38.000000000 +0100
@@ -1,32 +1,6 @@
#ifndef __I386_SCHED_H
#define __I386_SCHED_H
@@ -23285,8 +23325,8 @@ have been needed - see SLE11 SPn).
-} while (0)
-
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-02-01 14:38:38.000000000 +0100
@@ -1,23 +1,6 @@
#ifndef __X86_64_MMU_CONTEXT_H
#define __X86_64_MMU_CONTEXT_H
@@ -23334,8 +23374,8 @@ have been needed - see SLE11 SPn).
-}
-
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pci.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pci.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:38:38.000000000 +0100
@@ -21,6 +21,8 @@ struct pci_sysdata {
#endif
};
@@ -23345,8 +23385,8 @@ have been needed - see SLE11 SPn).
/* scan a bus after allocating a pci_sysdata for it */
extern struct pci_bus *pci_scan_bus_on_node(int busno, struct pci_ops *ops,
int node);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgalloc.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgalloc.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgalloc.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgalloc.h 2011-02-01 14:38:38.000000000 +0100
@@ -7,6 +7,9 @@
#include <asm/io.h> /* for phys_to_virt and page_to_pseudophys */
@@ -23357,8 +23397,8 @@ have been needed - see SLE11 SPn).
static inline void paravirt_alloc_pte(struct mm_struct *mm, unsigned long pfn) {}
static inline void paravirt_alloc_pmd(struct mm_struct *mm, unsigned long pfn) {}
static inline void paravirt_alloc_pmd_clone(unsigned long pfn, unsigned long clonepfn,
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:52:33.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:54:13.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:52:33.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:54:13.000000000 +0100
@@ -13,11 +13,12 @@
#define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
#define _PAGE_BIT_PAT 7 /* on 4KB pages */
@@ -23782,8 +23822,8 @@ have been needed - see SLE11 SPn).
#endif /* __ASSEMBLY__ */
#endif /* _ASM_X86_PGTABLE_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:52:36.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:54:10.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:52:36.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:54:10.000000000 +0100
@@ -14,11 +14,11 @@
#define pmd_ERROR(e) \
printk("%s:%d: bad pmd %p(%016Lx pfn %08Lx).\n", \
@@ -23819,8 +23859,8 @@ have been needed - see SLE11 SPn).
/* Find an entry in the second-level page table.. */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:38:38.000000000 +0100
@@ -89,10 +89,10 @@ extern unsigned long pg0[];
/* pmd_present doesn't just test the _PAGE_PRESENT bit since wr.p.t.
can temporarily clear it. */
@@ -23870,8 +23910,8 @@ have been needed - see SLE11 SPn).
#if defined(CONFIG_HIGHPTE)
#define pte_offset_map(dir, address) \
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:52:37.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:54:07.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:52:37.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:54:07.000000000 +0100
@@ -23,6 +23,8 @@ extern void xen_init_pt(void);
extern pud_t level3_kernel_pgt[512];
extern pud_t level3_ident_pgt[512];
@@ -23952,8 +23992,8 @@ have been needed - see SLE11 SPn).
#define pmd_page(pmd) (pfn_to_page(pmd_val((pmd)) >> PAGE_SHIFT))
#define pmd_index(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:42:13.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:44:23.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:42:13.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:44:23.000000000 +0100
@@ -144,7 +144,7 @@ extern __u32 cleared_cpu_caps[NCAPINTS
#ifdef CONFIG_SMP
DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info);
@@ -24028,8 +24068,8 @@ have been needed - see SLE11 SPn).
extern void enable_sep_cpu(void);
extern int sysenter_setup(void);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/smp.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/smp.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:38:38.000000000 +0100
@@ -25,25 +25,18 @@ extern cpumask_t cpu_initialized;
extern void (*mtrr_hook)(void);
extern void zap_low_mappings(void);
@@ -24149,8 +24189,8 @@ have been needed - see SLE11 SPn).
-extern void unlock_ipi_call_lock(void);
#endif /* __ASSEMBLY__ */
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:18.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:29.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:18.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:29.000000000 +0200
@@ -42,6 +42,8 @@
# define UNLOCK_LOCK_PREFIX
#endif
@@ -24428,8 +24468,8 @@ have been needed - see SLE11 SPn).
static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock)
{
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/spinlock_types.h 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/spinlock_types.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/spinlock_types.h 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/spinlock_types.h 2011-02-01 14:38:38.000000000 +0100
@@ -11,6 +11,10 @@ typedef union {
unsigned int slock;
struct {
@@ -24449,8 +24489,8 @@ have been needed - see SLE11 SPn).
};
} raw_spinlock_t;
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/system.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/system.h 2011-03-03 15:58:55.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/system.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/system.h 2011-03-03 15:58:55.000000000 +0100
@@ -68,10 +68,12 @@ do { \
[next] "d" (next)); \
} while (0)
@@ -24513,8 +24553,8 @@ have been needed - see SLE11 SPn).
/*
* Force strict CPU ordering.
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/xor_64.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/xor_64.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/xor_64.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/xor_64.h 2011-02-01 14:38:38.000000000 +0100
@@ -1,3 +1,6 @@
+#ifndef ASM_X86__XOR_64_H
+#define ASM_X86__XOR_64_H
@@ -24528,7 +24568,7 @@ have been needed - see SLE11 SPn).
#define XOR_SELECT_TEMPLATE(FASTEST) (&xor_block_sse)
+
+#endif /* ASM_X86__XOR_64_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/irq_vectors.h 2008-09-25 13:55:32.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/irq_vectors.h 2008-09-25 13:55:32.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,125 +0,0 @@
-/*
@@ -24656,7 +24696,7 @@ have been needed - see SLE11 SPn).
-#define NR_IRQ_VECTORS NR_IRQS
-
-#endif /* _ASM_IRQ_VECTORS_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/setup_arch_post.h 2007-06-12 13:14:13.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/setup_arch_post.h 2007-06-12 13:14:13.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,63 +0,0 @@
-/**
@@ -24722,7 +24762,7 @@ have been needed - see SLE11 SPn).
-#endif
-#endif
-}
---- head-2011-09-07.orig/arch/x86/include/mach-xen/setup_arch_pre.h 2007-06-12 13:14:13.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/setup_arch_pre.h 2007-06-12 13:14:13.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-/* Hook to call BIOS initialisation function */
@@ -24730,8 +24770,8 @@ have been needed - see SLE11 SPn).
-#define ARCH_SETUP machine_specific_arch_setup();
-
-static void __init machine_specific_arch_setup(void);
---- head-2011-09-07.orig/arch/x86/include/asm/traps.h 2011-09-09 15:35:18.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/traps.h 2011-09-07 15:45:44.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/traps.h 2011-09-23 15:36:45.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/traps.h 2011-09-07 15:45:44.000000000 +0200
@@ -40,6 +40,9 @@ asmlinkage void alignment_check(void);
asmlinkage void machine_check(void);
#endif /* CONFIG_X86_MCE */
@@ -24752,8 +24792,8 @@ have been needed - see SLE11 SPn).
#endif
static inline int get_si_code(unsigned long condition)
---- head-2011-09-07.orig/include/linux/page-flags.h 2011-09-07 15:42:47.000000000 +0200
-+++ head-2011-09-07/include/linux/page-flags.h 2011-09-07 15:45:52.000000000 +0200
+--- head-2011-09-23.orig/include/linux/page-flags.h 2011-09-07 15:42:47.000000000 +0200
++++ head-2011-09-23/include/linux/page-flags.h 2011-09-07 15:45:52.000000000 +0200
@@ -124,12 +124,12 @@ enum pageflags {
PG_fscache = PG_private_2, /* page backed by cache */
@@ -24782,8 +24822,8 @@ have been needed - see SLE11 SPn).
PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved)
PAGEFLAG(SwapBacked, swapbacked) __CLEARPAGEFLAG(SwapBacked, swapbacked)
---- head-2011-09-07.orig/include/xen/interface/memory.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/include/xen/interface/memory.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/include/xen/interface/memory.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/include/xen/interface/memory.h 2011-02-01 14:38:38.000000000 +0100
@@ -88,6 +88,7 @@ struct xen_memory_reservation {
*/
domid_t domid;
@@ -24820,8 +24860,30 @@ have been needed - see SLE11 SPn).
typedef struct xen_add_to_physmap xen_add_to_physmap_t;
DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
---- head-2011-09-07.orig/include/xen/interface/platform.h 2011-08-08 12:54:10.000000000 +0200
-+++ head-2011-09-07/include/xen/interface/platform.h 2011-08-19 11:46:44.000000000 +0200
+--- head-2011-09-23.orig/include/xen/interface/physdev.h 2011-03-17 13:50:24.000000000 +0100
++++ head-2011-09-23/include/xen/interface/physdev.h 2011-07-05 17:23:43.000000000 +0200
+@@ -251,6 +251,19 @@ struct physdev_get_free_pirq {
+ typedef struct physdev_get_free_pirq physdev_get_free_pirq_t;
+ DEFINE_XEN_GUEST_HANDLE(physdev_get_free_pirq_t);
+
++#define XEN_PCI_MMCFG_RESERVED 0x1
++
++#define PHYSDEVOP_pci_mmcfg_reserved 24
++struct physdev_pci_mmcfg_reserved {
++ uint64_t address;
++ uint16_t segment;
++ uint8_t start_bus;
++ uint8_t end_bus;
++ uint32_t flags;
++};
++typedef struct physdev_pci_mmcfg_reserved physdev_pci_mmcfg_reserved_t;
++DEFINE_XEN_GUEST_HANDLE(physdev_pci_mmcfg_reserved_t);
++
+ /*
+ * Notify that some PIRQ-bound event channels have been unmasked.
+ * ** This command is obsolete since interface version 0x00030202 and is **
+--- head-2011-09-23.orig/include/xen/interface/platform.h 2011-08-08 12:54:10.000000000 +0200
++++ head-2011-09-23/include/xen/interface/platform.h 2011-08-19 11:46:44.000000000 +0200
@@ -304,6 +304,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletim
#define XEN_PM_CX 0
#define XEN_PM_PX 1
@@ -24838,16 +24900,16 @@ have been needed - see SLE11 SPn).
} u;
};
typedef struct xenpf_set_processor_pminfo xenpf_set_processor_pminfo_t;
---- head-2011-09-07.orig/include/xen/public/Kbuild 2011-01-31 14:31:28.000000000 +0100
-+++ head-2011-09-07/include/xen/public/Kbuild 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/include/xen/public/Kbuild 2011-01-31 14:31:28.000000000 +0100
++++ head-2011-09-23/include/xen/public/Kbuild 2011-02-01 14:38:38.000000000 +0100
@@ -1 +1,5 @@
+header-y += evtchn.h
+header-y += gntdev.h
header-y += iomulti.h
+header-y += privcmd.h
+header-y += xenbus.h
---- head-2011-09-07.orig/include/xen/public/privcmd.h 2010-01-18 15:23:12.000000000 +0100
-+++ head-2011-09-07/include/xen/public/privcmd.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/include/xen/public/privcmd.h 2010-01-18 15:23:12.000000000 +0100
++++ head-2011-09-23/include/xen/public/privcmd.h 2011-02-01 14:38:38.000000000 +0100
@@ -35,10 +35,6 @@
#include <linux/types.h>
@@ -24859,8 +24921,8 @@ have been needed - see SLE11 SPn).
typedef struct privcmd_hypercall
{
__u64 op;
---- head-2011-09-07.orig/include/xen/public/xenbus.h 2009-05-29 10:25:53.000000000 +0200
-+++ head-2011-09-07/include/xen/public/xenbus.h 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/include/xen/public/xenbus.h 2009-05-29 10:25:53.000000000 +0200
++++ head-2011-09-23/include/xen/public/xenbus.h 2011-02-01 14:38:38.000000000 +0100
@@ -35,10 +35,6 @@
#include <linux/types.h>
@@ -24872,8 +24934,8 @@ have been needed - see SLE11 SPn).
typedef struct xenbus_alloc {
domid_t dom;
__u32 port;
---- head-2011-09-07.orig/kernel/kexec.c 2011-04-28 11:10:13.000000000 +0200
-+++ head-2011-09-07/kernel/kexec.c 2011-04-28 11:12:45.000000000 +0200
+--- head-2011-09-23.orig/kernel/kexec.c 2011-04-28 11:10:13.000000000 +0200
++++ head-2011-09-23/kernel/kexec.c 2011-04-28 11:12:45.000000000 +0200
@@ -50,7 +50,7 @@ note_buf_t __percpu *crash_notes;
static unsigned char vmcoreinfo_data[VMCOREINFO_BYTES];
u32
@@ -24883,8 +24945,8 @@ have been needed - see SLE11 SPn).
#endif
vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4];
size_t vmcoreinfo_size;
---- head-2011-09-07.orig/lib/swiotlb-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/lib/swiotlb-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/lib/swiotlb-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/lib/swiotlb-xen.c 2011-02-01 14:38:38.000000000 +0100
@@ -788,7 +788,7 @@ swiotlb_sync_sg_for_device(struct device
}
@@ -24894,8 +24956,8 @@ have been needed - see SLE11 SPn).
{
return (dma_addr == virt_to_bus(io_tlb_overflow_buffer));
}
---- head-2011-09-07.orig/mm/mprotect.c 2011-01-31 17:29:16.000000000 +0100
-+++ head-2011-09-07/mm/mprotect.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/mm/mprotect.c 2011-01-31 17:29:16.000000000 +0100
++++ head-2011-09-23/mm/mprotect.c 2011-02-01 14:38:38.000000000 +0100
@@ -97,8 +97,6 @@ static inline void change_pmd_range(stru
}
if (pmd_none_or_clear_bad(pmd))
diff --git a/patches.xen/xen3-patch-2.6.28 b/patches.xen/xen3-patch-2.6.28
index b9c1b3c257..d85509e51f 100644
--- a/patches.xen/xen3-patch-2.6.28
+++ b/patches.xen/xen3-patch-2.6.28
@@ -7,8 +7,8 @@ Patch-mainline: 2.6.28
Acked-by: Jeff Mahoney <jeffm@suse.com>
Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches.py
---- head-2011-09-07.orig/arch/ia64/Kconfig 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/ia64/Kconfig 2011-09-07 15:50:17.000000000 +0200
+--- head-2011-09-23.orig/arch/ia64/Kconfig 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/ia64/Kconfig 2011-09-07 15:50:17.000000000 +0200
@@ -234,7 +234,7 @@ config IA64_HP_SIM
config IA64_XEN_GUEST
bool "Xen guest"
@@ -18,8 +18,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
help
Build a kernel that runs on Xen guest domain. At this moment only
16KB page size in supported.
---- head-2011-09-07.orig/arch/ia64/Makefile 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/ia64/Makefile 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/ia64/Makefile 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/ia64/Makefile 2011-02-01 14:39:24.000000000 +0100
@@ -55,7 +55,7 @@ core-$(CONFIG_IA64_XEN_GUEST) += arch/ia
core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/
core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/
@@ -29,8 +29,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
drivers-$(CONFIG_PCI) += arch/ia64/pci/
drivers-$(CONFIG_IA64_HP_SIM) += arch/ia64/hp/sim/
---- head-2011-09-07.orig/arch/ia64/include/asm/xen/hypervisor.h 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/ia64/include/asm/xen/hypervisor.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/ia64/include/asm/xen/hypervisor.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/ia64/include/asm/xen/hypervisor.h 2011-02-01 14:39:24.000000000 +0100
@@ -40,7 +40,7 @@
#include <xen/xen.h>
#include <asm/xen/hypercall.h>
@@ -40,8 +40,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
extern struct shared_info *HYPERVISOR_shared_info;
extern struct start_info *xen_start_info;
---- head-2011-09-07.orig/arch/ia64/include/asm/xen/interface.h 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/ia64/include/asm/xen/interface.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/ia64/include/asm/xen/interface.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/ia64/include/asm/xen/interface.h 2011-02-01 14:39:24.000000000 +0100
@@ -56,29 +56,21 @@
#ifndef _ASM_IA64_XEN_INTERFACE_H
#define _ASM_IA64_XEN_INTERFACE_H
@@ -88,8 +88,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#ifndef __ASSEMBLY__
---- head-2011-09-07.orig/arch/ia64/kernel/asm-offsets.c 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/ia64/kernel/asm-offsets.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/ia64/kernel/asm-offsets.c 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/ia64/kernel/asm-offsets.c 2011-02-01 14:39:24.000000000 +0100
@@ -290,7 +290,7 @@ void foo(void)
DEFINE(IA64_ITC_LASTCYCLE_OFFSET,
offsetof (struct itc_jitter_data_t, itc_lastcycle));
@@ -99,8 +99,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
BLANK();
DEFINE(XEN_NATIVE_ASM, XEN_NATIVE);
---- head-2011-09-07.orig/arch/ia64/xen/Kconfig 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/ia64/xen/Kconfig 2011-02-02 15:36:46.000000000 +0100
+--- head-2011-09-23.orig/arch/ia64/xen/Kconfig 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/ia64/xen/Kconfig 2011-02-02 15:36:46.000000000 +0100
@@ -2,7 +2,7 @@
# This Kconfig describes xen/ia64 options
#
@@ -122,8 +122,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
- depends on XEN
+ depends on PARAVIRT_XEN
bool
---- head-2011-09-07.orig/arch/ia64/xen/xcom_hcall.c 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/ia64/xen/xcom_hcall.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/ia64/xen/xcom_hcall.c 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/ia64/xen/xcom_hcall.c 2011-02-01 14:39:24.000000000 +0100
@@ -343,7 +343,7 @@ xencommize_memory_reservation(struct xen
int
xencomm_hypercall_memory_op(unsigned int cmd, void *arg)
@@ -133,8 +133,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
struct xen_memory_reservation *xmr = NULL;
int rc;
struct xencomm_handle *desc;
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-07 15:44:49.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-07 15:50:06.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-07 15:44:49.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-07 15:50:06.000000000 +0200
@@ -1019,7 +1019,7 @@ config MICROCODE
config MICROCODE_INTEL
@@ -180,8 +180,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
---help---
Use PAT attributes to setup page level cache control.
---- head-2011-09-07.orig/arch/x86/Kconfig.cpu 2011-09-07 15:19:03.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig.cpu 2011-09-07 15:50:07.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig.cpu 2011-09-07 15:19:03.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig.cpu 2011-09-07 15:50:07.000000000 +0200
@@ -448,7 +448,7 @@ config CPU_SUP_INTEL
config CPU_SUP_CYRIX_32
default y
@@ -200,8 +200,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
---help---
This enables detection, tunings and quirks for UMC processors
---- head-2011-09-07.orig/arch/x86/Makefile 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/Makefile 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/Makefile 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/Makefile 2011-02-01 14:39:24.000000000 +0100
@@ -117,7 +117,7 @@ endif
KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
@@ -220,8 +220,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
ifdef CONFIG_X86_64
LDFLAGS_vmlinux := -e startup_64
---- head-2011-09-07.orig/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:39:24.000000000 +0100
@@ -39,11 +39,11 @@
.endm
@@ -330,8 +330,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
.quad sys_getgroups16 /* 80 */
.quad sys_setgroups16
.quad sys32_old_select
---- head-2011-09-07.orig/arch/x86/include/asm/agp.h 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/agp.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/asm/agp.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/agp.h 2011-02-01 14:39:24.000000000 +0100
@@ -15,6 +15,9 @@
#define map_page_into_agp(page) set_pages_uc(page, 1)
#define unmap_page_from_agp(page) set_pages_wb(page, 1)
@@ -342,8 +342,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
/*
* Could use CLFLUSH here if the cpu supports it. But then it would
* need to be called for each cacheline of the whole page so it may
---- head-2011-09-07.orig/arch/x86/include/asm/cpufeature.h 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/cpufeature.h 2011-06-30 16:47:42.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/cpufeature.h 2011-09-23 09:40:45.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/cpufeature.h 2011-06-30 16:47:42.000000000 +0200
@@ -284,7 +284,11 @@ extern const char * const x86_power_flag
#define cpu_has_xmm4_1 boot_cpu_has(X86_FEATURE_XMM4_1)
#define cpu_has_xmm4_2 boot_cpu_has(X86_FEATURE_XMM4_2)
@@ -356,8 +356,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#define cpu_has_hypervisor boot_cpu_has(X86_FEATURE_HYPERVISOR)
#define cpu_has_pclmulqdq boot_cpu_has(X86_FEATURE_PCLMULQDQ)
#define cpu_has_perfctr_core boot_cpu_has(X86_FEATURE_PERFCTR_CORE)
---- head-2011-09-07.orig/arch/x86/include/asm/hw_irq.h 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/hw_irq.h 2011-09-07 15:49:58.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/hw_irq.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/hw_irq.h 2011-09-07 15:49:58.000000000 +0200
@@ -151,6 +151,7 @@ extern void smp_error_interrupt(struct p
extern asmlinkage void smp_irq_move_cleanup_interrupt(void);
#endif
@@ -379,8 +379,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif
extern void (*__initconst interrupt[NR_VECTORS-FIRST_EXTERNAL_VECTOR])(void);
---- head-2011-09-07.orig/arch/x86/include/asm/mc146818rtc.h 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/mc146818rtc.h 2011-07-15 12:38:27.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/mc146818rtc.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/mc146818rtc.h 2011-07-15 12:38:27.000000000 +0200
@@ -14,7 +14,7 @@
#define RTC_ALWAYS_BCD 1 /* RTC operates in binary mode */
#endif
@@ -390,8 +390,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
/*
* This lock provides nmi access to the CMOS/RTC registers. It has some
* special properties. It is owned by a CPU and stores the index register
---- head-2011-09-07.orig/arch/x86/include/asm/segment.h 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/segment.h 2011-04-13 13:50:26.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/segment.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/segment.h 2011-04-13 13:50:26.000000000 +0200
@@ -188,7 +188,9 @@
#define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
#define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3)
@@ -403,8 +403,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#define get_kernel_rpl() 0
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/agp.h 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/agp.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/agp.h 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/agp.h 2011-02-01 14:39:24.000000000 +0100
@@ -21,6 +21,23 @@
/* only a fallback: xen_destroy_contiguous_region uses PAGE_KERNEL */ \
set_pages_wb(page, 1))
@@ -435,8 +435,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_AGP_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _ASM_DESC_H_
-#define _ASM_DESC_H_
@@ -512,8 +512,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_DESC_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/dma-mapping.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/dma-mapping.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/dma-mapping.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/dma-mapping.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,17 +1,12 @@
-#ifndef _ASM_DMA_MAPPING_H_
+#ifndef _ASM_X86_DMA_MAPPING_H_
@@ -538,8 +538,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* _ASM_DMA_MAPPING_H_ */
+#endif /* _ASM_X86_DMA_MAPPING_H_ */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _ASM_FIXMAP_H
-#define _ASM_FIXMAP_H
@@ -565,8 +565,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
}
-#endif
+#endif /* _ASM_X86_FIXMAP_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-02-01 14:39:24.000000000 +0100
@@ -10,8 +10,8 @@
* Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
*/
@@ -619,8 +619,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif /* !__ASSEMBLY__ */
-#endif
+#endif /* _ASM_X86_FIXMAP_32_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:39:24.000000000 +0100
@@ -8,8 +8,8 @@
* Copyright (C) 1998 Ingo Molnar
*/
@@ -685,8 +685,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_FIXMAP_64_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:39:24.000000000 +0100
@@ -15,8 +15,8 @@
* Copyright (C) 1999 Ingo Molnar <mingo@redhat.com>
*/
@@ -720,8 +720,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* _ASM_HIGHMEM_H */
+#endif /* _ASM_X86_HIGHMEM_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:39:24.000000000 +0100
@@ -5,20 +5,6 @@
#include <linux/compiler.h>
@@ -781,8 +781,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:27:18.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:31:50.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:27:18.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:31:50.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _ASM_IRQ_VECTORS_H
-#define _ASM_IRQ_VECTORS_H
@@ -799,8 +799,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* _ASM_IRQ_VECTORS_H */
+#endif /* _ASM_X86_IRQ_VECTORS_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:39:24.000000000 +0100
@@ -157,23 +157,6 @@ static inline int raw_irqs_disabled_flag
raw_irqs_disabled_flags(flags); \
})
@@ -825,8 +825,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#else
#ifdef CONFIG_X86_64
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/maddr.h 2011-08-09 10:52:22.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/maddr.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/maddr.h 2011-08-09 10:52:22.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/maddr.h 2011-02-01 14:39:24.000000000 +0100
@@ -59,10 +59,10 @@ static inline unsigned long mfn_to_pfn(u
/* The array access can fail (e.g., device space beyond end of RAM). */
@@ -840,8 +840,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
" jmp 2b\n"
".previous\n"
_ASM_EXTABLE(1b,3b)
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef __ASM_X86_MMU_CONTEXT_H
-#define __ASM_X86_MMU_CONTEXT_H
@@ -856,8 +856,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* __ASM_X86_MMU_CONTEXT_H */
+#endif /* _ASM_X86_MMU_CONTEXT_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef __I386_SCHED_H
-#define __I386_SCHED_H
@@ -872,8 +872,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_MMU_CONTEXT_32_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef __X86_64_MMU_CONTEXT_H
-#define __X86_64_MMU_CONTEXT_H
@@ -888,8 +888,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_MMU_CONTEXT_64_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef __x86_PCI_H
-#define __x86_PCI_H
@@ -913,16 +913,16 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_PCI_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgalloc.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgalloc.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgalloc.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgalloc.h 2011-02-01 14:39:24.000000000 +0100
@@ -149,4 +149,4 @@ extern void __pud_free_tlb(struct mmu_ga
#endif /* PAGETABLE_LEVELS > 3 */
#endif /* PAGETABLE_LEVELS > 2 */
-#endif /* _ASM_X86_PGALLOC_H */
+#endif /* _ASM_X86_PGALLOC_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:54:13.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:56:09.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:54:13.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:56:09.000000000 +0100
@@ -14,11 +14,11 @@
#define _PAGE_BIT_PAT 7 /* on 4KB pages */
#define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */
@@ -1041,8 +1041,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* _ASM_X86_PGTABLE_H */
+#endif /* _ASM_X86_PGTABLE_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:54:10.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:56:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:54:10.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:56:12.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _I386_PGTABLE_3LEVEL_H
-#define _I386_PGTABLE_3LEVEL_H
@@ -1095,8 +1095,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* _I386_PGTABLE_3LEVEL_H */
+#endif /* _ASM_X86_PGTABLE_3LEVEL_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable-3level-defs.h 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable-3level-defs.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable-3level-defs.h 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable-3level-defs.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _I386_PGTABLE_3LEVEL_DEFS_H
-#define _I386_PGTABLE_3LEVEL_DEFS_H
@@ -1111,8 +1111,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* _I386_PGTABLE_3LEVEL_DEFS_H */
+#endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _I386_PGTABLE_H
-#define _I386_PGTABLE_H
@@ -1154,8 +1154,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* _I386_PGTABLE_H */
+#endif /* _ASM_X86_PGTABLE_32_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:54:07.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:56:14.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:54:07.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:56:14.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _X86_64_PGTABLE_H
-#define _X86_64_PGTABLE_H
@@ -1203,8 +1203,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* _X86_64_PGTABLE_H */
+#endif /* _ASM_X86_PGTABLE_64_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:44:23.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:45:14.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:44:23.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:45:14.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef __ASM_X86_PROCESSOR_H
-#define __ASM_X86_PROCESSOR_H
@@ -1380,8 +1380,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_PROCESSOR_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _ASM_X86_SMP_H_
-#define _ASM_X86_SMP_H_
@@ -1559,8 +1559,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif /* __ASSEMBLY__ */
-#endif
+#endif /* _ASM_X86_SMP_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:29.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:42.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:29.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:42.000000000 +0200
@@ -1,5 +1,5 @@
-#ifndef _X86_SPINLOCK_H_
-#define _X86_SPINLOCK_H_
@@ -1575,8 +1575,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_SPINLOCK_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/spinlock_types.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/spinlock_types.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/spinlock_types.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/spinlock_types.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef __ASM_SPINLOCK_TYPES_H
-#define __ASM_SPINLOCK_TYPES_H
@@ -1591,8 +1591,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_SPINLOCK_TYPES_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/system.h 2011-03-03 15:58:55.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/system.h 2011-03-03 16:01:23.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/system.h 2011-03-03 15:58:55.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/system.h 2011-03-03 16:01:23.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef _ASM_X86_SYSTEM_H_
-#define _ASM_X86_SYSTEM_H_
@@ -1619,8 +1619,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_SYSTEM_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/tlbflush.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/tlbflush.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/tlbflush.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/tlbflush.h 2011-02-01 14:39:24.000000000 +0100
@@ -63,6 +63,10 @@ static inline void flush_tlb_range(struc
__flush_tlb();
}
@@ -1645,8 +1645,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif
#endif /* SMP */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/vga.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/vga.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/vga.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/vga.h 2011-02-01 14:39:24.000000000 +0100
@@ -4,8 +4,8 @@
* (c) 1998 Martin Mares <mj@ucw.cz>
*/
@@ -1664,8 +1664,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif
+#endif /* _ASM_X86_VGA_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/xor.h 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/xor.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/xor.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/xor.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
#ifdef CONFIG_X86_32
-# include "../../xor_32.h"
@@ -1673,8 +1673,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#else
# include "xor_64.h"
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/xor_64.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/xor_64.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/xor_64.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/xor_64.h 2011-02-01 14:39:24.000000000 +0100
@@ -1,5 +1,5 @@
-#ifndef ASM_X86__XOR_64_H
-#define ASM_X86__XOR_64_H
@@ -1689,8 +1689,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* ASM_X86__XOR_64_H */
+#endif /* _ASM_X86_XOR_64_H */
---- head-2011-09-07.orig/arch/x86/kernel/Makefile 2011-09-07 15:44:53.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/Makefile 2011-09-07 15:49:50.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/Makefile 2011-09-07 15:44:53.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/Makefile 2011-09-07 15:49:50.000000000 +0200
@@ -117,7 +117,7 @@ ifeq ($(CONFIG_X86_64),y)
time_64-$(CONFIG_XEN) += time_32.o
endif
@@ -1702,8 +1702,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+ hpet.o i8253.o i8259.o irqinit_$(BITS).o pci-swiotlb_64.o reboot.o \
+ smpboot.o tlb_$(BITS).o tsc.o tsc_sync.o uv_%.o vsmp_64.o
disabled-obj-$(CONFIG_XEN_UNPRIVILEGED_GUEST) += probe_roms_32.o
---- head-2011-09-07.orig/arch/x86/kernel/apic/apic-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/apic/apic-xen.c 2011-02-24 15:49:32.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/apic/apic-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/apic/apic-xen.c 2011-02-24 15:49:32.000000000 +0100
@@ -1,60 +1,13 @@
/*
- * Local APIC handling, local APIC timers
@@ -1826,8 +1826,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif
return 0;
---- head-2011-09-07.orig/arch/x86/kernel/cpu/topology.c 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/topology.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/topology.c 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/topology.c 2011-02-01 14:39:24.000000000 +0100
@@ -28,7 +28,7 @@
*/
void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c)
@@ -1837,8 +1837,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
unsigned int eax, ebx, ecx, edx, sub_index;
unsigned int ht_mask_width, core_plus_mask_width;
unsigned int core_select_mask, core_level_siblings;
---- head-2011-09-07.orig/arch/x86/kernel/cpu/common-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/cpu/common-xen.c 2011-03-17 14:40:32.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/common-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/cpu/common-xen.c 2011-03-17 14:40:32.000000000 +0100
@@ -1,33 +1,73 @@
#include <linux/init.h>
+#include <linux/kernel.h>
@@ -3231,7 +3231,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+
+
#endif
---- head-2011-09-07.orig/arch/x86/kernel/cpu/common_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/common_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,777 +0,0 @@
-#include <linux/init.h>
@@ -4011,8 +4011,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
- if (is_uv_system())
- uv_cpu_init();
-}
---- head-2011-09-07.orig/arch/x86/kernel/dumpstack_64.c 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/dumpstack_64.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/dumpstack_64.c 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/dumpstack_64.c 2011-02-01 14:39:24.000000000 +0100
@@ -21,6 +21,7 @@
#define N_EXCEPTION_STACKS_END \
(N_EXCEPTION_STACKS + DEBUG_STKSZ/EXCEPTION_STKSZ - 2)
@@ -4042,9 +4042,9 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
return NULL;
}
---- head-2011-09-07.orig/arch/x86/kernel/e820-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/e820-xen.c 2011-02-01 14:39:24.000000000 +0100
-@@ -167,6 +167,9 @@ static void __init _e820_print_map(const
+--- head-2011-09-23.orig/arch/x86/kernel/e820-xen.c 2011-09-23 15:48:48.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/e820-xen.c 2011-09-23 15:50:45.000000000 +0200
+@@ -170,6 +170,9 @@ static void __init _e820_print_map(const
case E820_NVS:
printk(KERN_CONT "(ACPI NVS)\n");
break;
@@ -4054,7 +4054,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
default:
printk(KERN_CONT "type %u\n", e820->map[i].type);
break;
-@@ -1399,6 +1402,7 @@ static inline const char *e820_type_to_s
+@@ -1403,6 +1406,7 @@ static inline const char *e820_type_to_s
case E820_RAM: return "System RAM";
case E820_ACPI: return "ACPI Tables";
case E820_NVS: return "ACPI Non-volatile Storage";
@@ -4062,7 +4062,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
default: return "reserved";
}
}
-@@ -1410,6 +1414,7 @@ static inline const char *e820_type_to_s
+@@ -1414,6 +1418,7 @@ static inline const char *e820_type_to_s
/*
* Mark e820 reserved areas as busy for the resource manager.
*/
@@ -4070,7 +4070,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
void __init e820_reserve_resources(void)
{
int i;
-@@ -1417,20 +1422,28 @@ void __init e820_reserve_resources(void)
+@@ -1421,20 +1426,28 @@ void __init e820_reserve_resources(void)
u64 end;
res = alloc_bootmem_low(sizeof(struct resource) * e820.nr_map);
@@ -4104,7 +4104,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
res++;
}
-@@ -1442,6 +1455,19 @@ void __init e820_reserve_resources(void)
+@@ -1446,6 +1459,19 @@ void __init e820_reserve_resources(void)
}
}
@@ -4124,8 +4124,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#undef e820
#ifndef CONFIG_XEN
---- head-2011-09-07.orig/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -3,10 +3,18 @@
#include <linux/init.h>
#include <linux/string.h>
@@ -4956,8 +4956,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
}
+
early_param("earlyprintk", setup_early_printk);
---- head-2011-09-07.orig/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:27.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:36.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:27.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:36.000000000 +0200
@@ -700,7 +700,7 @@ ENTRY(interrupt)
ENTRY(irq_entries_start)
RING0_INT_FRAME
@@ -5067,8 +5067,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#include <asm/alternative-asm.h>
---- head-2011-09-07.orig/arch/x86/kernel/entry_64-xen.S 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/entry_64-xen.S 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/entry_64-xen.S 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/entry_64-xen.S 2011-02-01 14:39:24.000000000 +0100
@@ -66,35 +66,9 @@
.code64
@@ -5158,8 +5158,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#ifdef CONFIG_X86_MCE
/* runs on exception stack */
---- head-2011-09-07.orig/arch/x86/kernel/fixup.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/fixup.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/fixup.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/fixup.c 2011-02-01 14:39:24.000000000 +0100
@@ -37,7 +37,7 @@
#define DP(_f, _args...) pr_alert(" " _f "\n" , ## _args )
@@ -5169,8 +5169,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
{
static unsigned long printed = 0;
char info[100];
---- head-2011-09-07.orig/arch/x86/kernel/head-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/head-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/head-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/head-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -36,6 +36,7 @@ void __init reserve_ebda_region(void)
/* start of EBDA area */
@@ -5179,8 +5179,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
/* Fixup: bios puts an EBDA in the top 64K segment */
/* of conventional memory, but does not adjust lowmem. */
---- head-2011-09-07.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:54:49.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head64-xen.c 2011-08-09 10:57:40.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:54:49.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head64-xen.c 2011-08-09 10:57:40.000000000 +0200
@@ -148,12 +148,11 @@ void __init x86_64_start_kernel(char * r
load_idt((const struct desc_ptr *)&idt_descr);
#endif
@@ -5197,7 +5197,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/kernel/apic/io_apic-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/apic/io_apic-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -0,0 +1,3937 @@
+/*
+ * Intel IO-APIC support for multi-Pentium hosts.
@@ -9136,7 +9136,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+ * IO APICS that are mapped in on a BAR in PCI space. */
+late_initcall(ioapic_insert_resources);
+#endif /* !CONFIG_XEN */
---- head-2011-09-07.orig/arch/x86/kernel/io_apic_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/io_apic_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,2985 +0,0 @@
-/*
@@ -12124,7 +12124,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
- }
-}
-#endif
---- head-2011-09-07.orig/arch/x86/kernel/io_apic_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/io_apic_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,2448 +0,0 @@
-/*
@@ -14575,8 +14575,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
- * IO APICS that are mapped in on a BAR in PCI space. */
-late_initcall(ioapic_insert_resources);
-#endif /* !CONFIG_XEN */
---- head-2011-09-07.orig/arch/x86/kernel/ioport-xen.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ioport-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ioport-xen.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ioport-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -14,6 +14,7 @@
#include <linux/slab.h>
#include <linux/thread_info.h>
@@ -14585,8 +14585,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#include <xen/interface/physdev.h>
/* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */
---- head-2011-09-07.orig/arch/x86/kernel/apic/ipi-xen.c 2011-02-21 13:56:33.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/apic/ipi-xen.c 2011-02-21 13:56:51.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/apic/ipi-xen.c 2011-02-21 13:56:33.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/apic/ipi-xen.c 2011-02-21 13:56:51.000000000 +0100
@@ -57,7 +57,4 @@ void send_IPI_mask_sequence(cpumask_t ma
send_IPI_mask_bitmask(mask, vector);
}
@@ -14596,7 +14596,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-
#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/kernel/irq-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/irq-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -0,0 +1,200 @@
+/*
+ * Common interrupt code for 32 and 64 bit
@@ -14798,8 +14798,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+#endif
+ return sum;
+}
---- head-2011-09-07.orig/arch/x86/kernel/ldt-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ldt-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ldt-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ldt-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -18,6 +18,7 @@
#include <asm/ldt.h>
#include <asm/desc.h>
@@ -14808,7 +14808,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#ifdef CONFIG_SMP
static void flush_ldt(void *current_mm)
---- head-2011-09-07.orig/arch/x86/kernel/microcode-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/microcode-xen.c 2011-02-01 14:38:38.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,214 +0,0 @@
-/*
@@ -15026,7 +15026,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-module_init(microcode_init)
-module_exit(microcode_exit)
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/kernel/microcode_core-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/microcode_core-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -0,0 +1,225 @@
+/*
+ * Intel CPU Microcode Update Driver for Linux
@@ -15253,8 +15253,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+
+module_init(microcode_init);
+module_exit(microcode_exit);
---- head-2011-09-07.orig/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -410,7 +410,9 @@ static int __init smp_read_mpc(struct mp
generic_bigsmp_probe();
#endif
@@ -15275,8 +15275,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n",
mpf->mpf_specification);
#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32) && !defined(CONFIG_XEN)
---- head-2011-09-07.orig/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -41,11 +41,12 @@ EXPORT_SYMBOL(bad_dma_address);
/* Dummy device used for NULL arguments (normally ISA). Better would
be probably a smaller DMA mask, but this is bug-to-bug compatible
@@ -15555,8 +15555,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
static int __init pci_iommu_init(void)
{
calgary_iommu_init();
---- head-2011-09-07.orig/arch/x86/kernel/pci-nommu-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/pci-nommu-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/pci-nommu-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/pci-nommu-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -5,6 +5,7 @@
#include <xen/gnttab.h>
@@ -15594,8 +15594,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
.map_single = gnttab_map_single,
.unmap_single = gnttab_unmap_single,
.map_sg = gnttab_map_sg,
---- head-2011-09-07.orig/arch/x86/kernel/process-xen.c 2011-03-03 15:59:49.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process-xen.c 2011-03-03 16:00:33.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process-xen.c 2011-03-03 15:59:49.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process-xen.c 2011-03-03 16:00:33.000000000 +0100
@@ -151,7 +151,8 @@ static void mwait_idle(void)
static void poll_idle(void)
{
@@ -15606,8 +15606,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
}
#ifndef CONFIG_XEN
---- head-2011-09-07.orig/arch/x86/kernel/process_32-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_32-xen.c 2011-02-02 08:34:28.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_32-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_32-xen.c 2011-02-02 08:34:28.000000000 +0100
@@ -37,6 +37,7 @@
#include <linux/tick.h>
#include <linux/percpu.h>
@@ -15804,8 +15804,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
}
/*
---- head-2011-09-07.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:34:01.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_64-xen.c 2011-02-02 08:34:22.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:34:01.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_64-xen.c 2011-02-02 08:34:22.000000000 +0100
@@ -40,25 +40,23 @@
#include <linux/kdebug.h>
#include <linux/tick.h>
@@ -16214,8 +16214,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
base = task->thread.gs;
ret = put_user(base, (unsigned long __user *)addr);
break;
---- head-2011-09-07.orig/arch/x86/kernel/setup-xen.c 2011-06-10 11:59:07.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/setup-xen.c 2011-03-03 16:22:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/setup-xen.c 2011-06-10 11:59:07.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/setup-xen.c 2011-03-03 16:22:12.000000000 +0100
@@ -261,6 +261,9 @@ unsigned long saved_video_mode;
#define RAMDISK_LOAD_FLAG 0x4000
@@ -16590,8 +16590,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
kvm_guest_init();
e820_reserve_resources();
---- head-2011-09-07.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:50:40.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/time-xen.c 2011-07-11 11:52:03.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:50:40.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/time-xen.c 2011-07-11 11:52:03.000000000 +0200
@@ -41,6 +41,7 @@
#include <asm/delay.h>
@@ -16636,7 +16636,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
time_before_eq(j, jiffies))) {
cpu_clear(cpu, nohz_cpu_mask);
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/kernel/traps-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/traps-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -0,0 +1,1022 @@
+/*
+ * Copyright (C) 1991, 1992 Linus Torvalds
@@ -17660,7 +17660,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+ trap_ctxt[t->vector].address = t->address;
+ }
+}
---- head-2011-09-07.orig/arch/x86/kernel/traps_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps_32-xen.c 2011-02-01 14:38:38.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,1222 +0,0 @@
-/*
@@ -18885,7 +18885,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
- return 1;
-}
-__setup("code_bytes=", code_bytes_setup);
---- head-2011-09-07.orig/arch/x86/kernel/traps_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps_64-xen.c 2011-02-01 14:38:38.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,1238 +0,0 @@
-/*
@@ -20126,8 +20126,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
- return 1;
-}
-__setup("code_bytes=", code_bytes_setup);
---- head-2011-09-07.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/vsyscall_64-xen.c 2011-09-08 16:10:13.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/vsyscall_64-xen.c 2011-09-08 16:10:13.000000000 +0200
@@ -301,10 +301,6 @@ static int __init vsyscall_init(void)
BUG_ON((unsigned long) &vgetcpu != VSYSCALL_ADDR(__NR_vgetcpu));
#ifdef CONFIG_XEN
@@ -20139,8 +20139,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif
#ifdef CONFIG_SYSCTL
register_sysctl_table(kernel_root_table2);
---- head-2011-09-07.orig/arch/x86/mm/dump_pagetables-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/dump_pagetables-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/dump_pagetables-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/dump_pagetables-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -160,8 +160,8 @@ static void note_page(struct seq_file *m
* we have now. "break" is either changing perms, levels or
* address space marker.
@@ -20152,8 +20152,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
if (!st->level) {
/* First entry */
---- head-2011-09-07.orig/arch/x86/mm/fault-xen.c 2011-07-26 09:29:55.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/fault-xen.c 2011-07-26 09:30:04.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/fault-xen.c 2011-07-26 09:29:55.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/fault-xen.c 2011-07-26 09:30:04.000000000 +0200
@@ -35,6 +35,7 @@
#include <asm/tlbflush.h>
#include <asm/proto.h>
@@ -20297,8 +20297,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
const pgd_t *pgd_ref = pgd_offset_k(address);
unsigned long flags;
struct page *page;
---- head-2011-09-07.orig/arch/x86/mm/highmem_32-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/highmem_32-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/highmem_32-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/highmem_32-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -137,6 +137,7 @@ void *kmap_atomic_pfn(unsigned long pfn,
return (void*) vaddr;
@@ -20307,8 +20307,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
struct page *kmap_atomic_to_page(void *ptr)
{
---- head-2011-09-07.orig/arch/x86/mm/init_32-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_32-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/init_32-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_32-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -34,6 +34,7 @@
#include <linux/scatterlist.h>
@@ -20528,8 +20528,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
save_pg_dir();
zap_low_mappings();
---- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_64-xen.c 2011-06-30 16:48:00.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/init_64-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_64-xen.c 2011-06-30 16:48:00.000000000 +0200
@@ -34,6 +34,7 @@
#include <linux/nmi.h>
@@ -21038,7 +21038,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
void free_init_pages(char *what, unsigned long begin, unsigned long end)
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/mm/iomap_32-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/iomap_32-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -0,0 +1,61 @@
+/*
+ * Copyright © 2008 Ingo Molnar
@@ -21101,8 +21101,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+ pagefault_enable();
+}
+EXPORT_SYMBOL_GPL(iounmap_atomic);
---- head-2011-09-07.orig/arch/x86/mm/ioremap-xen.c 2011-02-07 15:40:39.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/ioremap-xen.c 2011-02-07 15:41:07.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/ioremap-xen.c 2011-02-07 15:40:39.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/ioremap-xen.c 2011-02-07 15:41:07.000000000 +0100
@@ -25,20 +25,51 @@
#ifdef CONFIG_X86_64
@@ -21485,8 +21485,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
}
void __this_fixmap_does_not_exist(void)
---- head-2011-09-07.orig/arch/x86/mm/pageattr-xen.c 2011-03-23 09:54:23.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pageattr-xen.c 2011-03-23 09:56:00.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pageattr-xen.c 2011-03-23 09:54:23.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pageattr-xen.c 2011-03-23 09:56:00.000000000 +0100
@@ -25,15 +25,27 @@
* The current flushing context - we pass it instead of 5 arguments:
*/
@@ -22255,8 +22255,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#ifdef CONFIG_HIBERNATION
bool kernel_page_present(struct page *page)
---- head-2011-09-07.orig/arch/x86/mm/pat-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pat-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pat-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pat-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -7,24 +7,24 @@
* Loosely based on earlier PAT patchset from Eric Biederman and Andi Kleen.
*/
@@ -22556,8 +22556,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
-#endif /* CONFIG_DEBUG_FS */
+#endif /* CONFIG_DEBUG_FS && CONFIG_X86_PAT */
---- head-2011-09-07.orig/arch/x86/mm/pgtable-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pgtable-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pgtable-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pgtable-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -129,7 +129,7 @@ void __pud_free_tlb(struct mmu_gather *t
static void _pin_lock(struct mm_struct *mm, int lock) {
if (lock)
@@ -22588,8 +22588,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
{
unsigned long flags; /* can be called from interrupt context */
---- head-2011-09-07.orig/arch/x86/mm/pgtable_32-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pgtable_32-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pgtable_32-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pgtable_32-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -122,7 +122,6 @@ void __init reserve_top_address(unsigned
printk(KERN_INFO "Reserving virtual address space above 0x%08x\n",
(int)-reserve);
@@ -22608,8 +22608,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
return 0;
}
early_param("vmalloc", parse_vmalloc);
---- head-2011-09-07.orig/arch/x86/xen/Kconfig 2011-04-28 11:12:57.000000000 +0200
-+++ head-2011-09-07/arch/x86/xen/Kconfig 2011-04-28 11:13:15.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/xen/Kconfig 2011-04-28 11:12:57.000000000 +0200
++++ head-2011-09-23/arch/x86/xen/Kconfig 2011-04-28 11:13:15.000000000 +0200
@@ -44,7 +44,7 @@ config XEN_SAVE_RESTORE
config XEN_DEBUG_FS
@@ -22619,8 +22619,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
default n
help
Enable statistics output and various tuning options in debugfs.
---- head-2011-09-07.orig/drivers/acpi/acpica/hwsleep.c 2011-01-31 17:01:49.000000000 +0100
-+++ head-2011-09-07/drivers/acpi/acpica/hwsleep.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/acpi/acpica/hwsleep.c 2011-01-31 17:01:49.000000000 +0100
++++ head-2011-09-23/drivers/acpi/acpica/hwsleep.c 2011-02-01 14:39:24.000000000 +0100
@@ -396,8 +396,7 @@ acpi_status asmlinkage acpi_enter_sleep_
err = acpi_notify_hypervisor_state(sleep_state,
PM1Acontrol, PM1Bcontrol);
@@ -22631,8 +22631,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
return_ACPI_STATUS(AE_ERROR);
}
#endif
---- head-2011-09-07.orig/drivers/acpi/processor_core.c 2011-09-06 09:24:07.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/processor_core.c 2011-08-10 11:19:02.000000000 +0200
+--- head-2011-09-23.orig/drivers/acpi/processor_core.c 2011-09-06 09:24:07.000000000 +0200
++++ head-2011-09-23/drivers/acpi/processor_core.c 2011-08-10 11:19:02.000000000 +0200
@@ -164,15 +164,19 @@ exit:
int acpi_get_cpuid(acpi_handle handle, int type, u32 acpi_id)
@@ -22658,8 +22658,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
return apic_id;
#ifdef CONFIG_SMP
---- head-2011-09-07.orig/drivers/acpi/processor_driver.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/acpi/processor_driver.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/acpi/processor_driver.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/acpi/processor_driver.c 2011-02-01 14:39:24.000000000 +0100
@@ -326,7 +326,8 @@ static int acpi_processor_get_info(struc
if (pr->id == -1) {
if (ACPI_FAILURE
@@ -22670,8 +22670,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
return -ENODEV;
}
}
---- head-2011-09-07.orig/drivers/acpi/processor_extcntl.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/acpi/processor_extcntl.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/acpi/processor_extcntl.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/acpi/processor_extcntl.c 2011-02-01 14:39:24.000000000 +0100
@@ -30,7 +30,6 @@
#include <acpi/processor.h>
@@ -22680,8 +22680,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#define ACPI_PROCESSOR_CLASS "processor"
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
ACPI_MODULE_NAME("processor_extcntl")
---- head-2011-09-07.orig/drivers/char/agp/generic.c 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/drivers/char/agp/generic.c 2011-04-28 11:13:24.000000000 +0200
+--- head-2011-09-23.orig/drivers/char/agp/generic.c 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/drivers/char/agp/generic.c 2011-04-28 11:13:24.000000000 +0200
@@ -1228,7 +1228,7 @@ int agp_generic_alloc_pages(struct agp_b
}
@@ -22700,8 +22700,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif
for (i = 0; i < mem->page_count; i++) {
---- head-2011-09-07.orig/drivers/firmware/dmi_scan.c 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/drivers/firmware/dmi_scan.c 2011-02-17 10:11:37.000000000 +0100
+--- head-2011-09-23.orig/drivers/firmware/dmi_scan.c 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/drivers/firmware/dmi_scan.c 2011-02-17 10:11:37.000000000 +0100
@@ -482,6 +482,11 @@ static bool dmi_matches(const struct dmi
{
int i;
@@ -22714,8 +22714,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
WARN(!dmi_initialized, KERN_ERR "dmi check: not initialized yet.\n");
for (i = 0; i < ARRAY_SIZE(dmi->matches); i++) {
---- head-2011-09-07.orig/drivers/idle/Kconfig 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/drivers/idle/Kconfig 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/idle/Kconfig 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/drivers/idle/Kconfig 2011-02-01 14:39:24.000000000 +0100
@@ -10,7 +10,7 @@ config INTEL_IDLE
processors intel_idle does not support.
@@ -22725,8 +22725,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
config I7300_IDLE_IOAT_CHANNEL
bool
---- head-2011-09-07.orig/drivers/pci/msi-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/pci/msi-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/pci/msi-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/pci/msi-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -266,8 +266,16 @@ static int msi_map_vector(struct pci_dev
* dev->irq in dom0 will be 'Xen pirq' if this device belongs to
* to another domain, and will be 'Linux irq' if it belongs to dom0.
@@ -22771,8 +22771,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+ return;
+ msi_acpi_init();
+}
---- head-2011-09-07.orig/drivers/pci/probe.c 2011-09-08 16:08:57.000000000 +0200
-+++ head-2011-09-07/drivers/pci/probe.c 2011-09-07 15:49:22.000000000 +0200
+--- head-2011-09-23.orig/drivers/pci/probe.c 2011-09-23 09:40:45.000000000 +0200
++++ head-2011-09-23/drivers/pci/probe.c 2011-09-07 15:49:22.000000000 +0200
@@ -1181,6 +1181,11 @@ static void pci_init_capabilities(struct
/* Vital Product Data */
pci_vpd_pci22_init(dev);
@@ -22785,8 +22785,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
/* Alternative Routing-ID Forwarding */
pci_enable_ari(dev);
---- head-2011-09-07.orig/drivers/xen/Kconfig 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/Kconfig 2011-09-07 15:49:07.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-07 15:49:07.000000000 +0200
@@ -344,9 +344,6 @@ config XEN_SMPBOOT
def_bool y
depends on SMP && !PPC_XEN
@@ -22807,8 +22807,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
config XEN_TMEM
bool
default y if (CLEANCACHE || FRONTSWAP)
---- head-2011-09-07.orig/drivers/xen/Makefile 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/xen/Makefile 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/Makefile 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/xen/Makefile 2011-02-01 14:39:24.000000000 +0100
@@ -1,4 +1,5 @@
obj-$(CONFIG_PARAVIRT_XEN) += grant-table.o features.o events.o manage.o
+xen-hotplug-$(CONFIG_PARAVIRT_XEN) := cpu_hotplug.o
@@ -22823,8 +22823,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
obj-$(CONFIG_XEN_XENCOMM) += xencomm.o
obj-$(CONFIG_XEN_BALLOON) += $(xen-balloon-y)
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += blkback/
---- head-2011-09-07.orig/drivers/xen/blkback/vbd.c 2011-06-30 16:32:27.000000000 +0200
-+++ head-2011-09-07/drivers/xen/blkback/vbd.c 2011-06-30 16:48:21.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkback/vbd.c 2011-06-30 16:32:27.000000000 +0200
++++ head-2011-09-23/drivers/xen/blkback/vbd.c 2011-06-30 16:48:21.000000000 +0200
@@ -96,7 +96,8 @@ int vbd_create(blkif_t *blkif, blkif_vde
void vbd_free(struct vbd *vbd)
{
@@ -22835,8 +22835,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
vbd->bdev = NULL;
}
---- head-2011-09-07.orig/drivers/xen/blkfront/blkfront.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkfront/blkfront.c 2011-07-21 12:17:38.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/blkfront/blkfront.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkfront/blkfront.c 2011-07-21 12:17:38.000000000 +0200
@@ -342,6 +342,7 @@ static void connect(struct blkfront_info
return;
pr_info("Setting capacity to %Lu\n", sectors);
@@ -22923,8 +22923,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif
}
}
---- head-2011-09-07.orig/drivers/xen/blkfront/block.h 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkfront/block.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blkfront/block.h 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkfront/block.h 2011-02-01 14:39:24.000000000 +0100
@@ -123,10 +123,17 @@ struct blkfront_info
extern spinlock_t blkif_io_lock;
@@ -22943,8 +22943,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
extern int blkif_getgeo(struct block_device *, struct hd_geometry *);
extern int blkif_check(dev_t dev);
extern int blkif_revalidate(dev_t dev);
---- head-2011-09-07.orig/drivers/xen/blktap2/device.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blktap2/device.c 2011-02-07 14:14:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blktap2/device.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/xen/blktap2/device.c 2011-02-07 14:14:26.000000000 +0100
@@ -36,10 +36,10 @@ dev_to_blktap(struct blktap_device *dev)
}
@@ -23010,8 +23010,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
return -ENOENT;
}
---- head-2011-09-07.orig/drivers/xen/core/evtchn.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/evtchn.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/evtchn.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/evtchn.c 2011-02-01 14:39:24.000000000 +0100
@@ -149,7 +149,7 @@ static void bind_evtchn_to_cpu(unsigned
BUG_ON(!test_bit(chn, s->evtchn_mask));
@@ -23082,8 +23082,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
set_irq_chip_and_handler_name(i, &dynirq_chip,
handle_fasteoi_irq, "fasteoi");
}
---- head-2011-09-07.orig/drivers/xen/core/smpboot.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/smpboot.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/smpboot.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/smpboot.c 2011-02-01 14:39:24.000000000 +0100
@@ -25,10 +25,6 @@
#include <xen/cpu_hotplug.h>
#include <xen/xenbus.h>
@@ -23125,8 +23125,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
void __init smp_cpus_done(unsigned int max_cpus)
{
}
---- head-2011-09-07.orig/drivers/xen/netfront/netfront.c 2011-06-30 16:41:13.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netfront/netfront.c 2011-06-30 16:48:32.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netfront/netfront.c 2011-06-30 16:41:13.000000000 +0200
++++ head-2011-09-23/drivers/xen/netfront/netfront.c 2011-06-30 16:48:32.000000000 +0200
@@ -954,7 +954,7 @@ static int network_start_xmit(struct sk_
return 0;
}
@@ -23136,8 +23136,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
if (unlikely(frags > MAX_SKB_FRAGS + 1)) {
pr_alert("xennet: skb rides the rocket: %d frags\n", frags);
dump_stack();
---- head-2011-09-07.orig/drivers/xen/scsifront/scsifront.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/drivers/xen/scsifront/scsifront.c 2011-02-08 10:04:41.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/scsifront/scsifront.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/drivers/xen/scsifront/scsifront.c 2011-02-08 10:04:41.000000000 +0100
@@ -352,7 +352,7 @@ static int scsifront_queuecommand(struct
memset(ring_req->cmnd, 0, VSCSIIF_MAX_COMMAND_SIZE);
@@ -23156,8 +23156,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
ring_req->nr_segments = 0;
scsifront_do_request(info);
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe.h 2011-01-31 17:49:31.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe.h 2011-01-31 17:49:31.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe.h 2011-02-01 14:39:24.000000000 +0100
@@ -40,6 +40,11 @@
#define XEN_BUS_ID_SIZE BUS_ID_SIZE
#endif
@@ -23170,8 +23170,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#if defined(CONFIG_XEN_BACKEND) || defined(CONFIG_XEN_BACKEND_MODULE)
extern void xenbus_backend_suspend(int (*fn)(struct device *, void *));
extern void xenbus_backend_resume(int (*fn)(struct device *, void *));
---- head-2011-09-07.orig/include/xen/cpu_hotplug.h 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/include/xen/cpu_hotplug.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/include/xen/cpu_hotplug.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/include/xen/cpu_hotplug.h 2011-02-01 14:39:24.000000000 +0100
@@ -15,8 +15,6 @@ void init_xenbus_allowed_cpumask(void);
int smp_suspend(void);
void smp_resume(void);
@@ -23181,8 +23181,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#else /* !defined(CONFIG_HOTPLUG_CPU) */
#define cpu_up_check(cpu) (0)
---- head-2011-09-07.orig/lib/swiotlb-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/lib/swiotlb-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/lib/swiotlb-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/lib/swiotlb-xen.c 2011-02-01 14:39:24.000000000 +0100
@@ -57,7 +57,6 @@ enum dma_sync_target {
int swiotlb_force;
@@ -23391,8 +23391,8 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
sync_single(hwdev, bus_to_virt(sg->dma_address),
sg->dma_length, dir, target);
}
---- head-2011-09-07.orig/mm/vmalloc.c 2011-09-07 15:25:31.000000000 +0200
-+++ head-2011-09-07/mm/vmalloc.c 2011-09-07 15:49:31.000000000 +0200
+--- head-2011-09-23.orig/mm/vmalloc.c 2011-09-07 15:25:31.000000000 +0200
++++ head-2011-09-23/mm/vmalloc.c 2011-09-07 15:49:31.000000000 +0200
@@ -523,6 +523,8 @@ static void vmap_debug_free_range(unsign
#ifdef CONFIG_DEBUG_PAGEALLOC
vunmap_page_range(start, end);
diff --git a/patches.xen/xen3-patch-2.6.29 b/patches.xen/xen3-patch-2.6.29
index d0e0765109..def85c9026 100644
--- a/patches.xen/xen3-patch-2.6.29
+++ b/patches.xen/xen3-patch-2.6.29
@@ -7,8 +7,8 @@ Patch-mainline: 2.6.29
Acked-by: Jeff Mahoney <jeffm@suse.com>
Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches.py
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-07 15:50:06.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-07 15:51:03.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-07 15:50:06.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-07 15:51:03.000000000 +0200
@@ -323,7 +323,6 @@ config X86_XEN
select X86_PAE
select X86_UP_APIC if !SMP && XEN_PRIVILEGED_GUEST
@@ -43,8 +43,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
---help---
This option enables a workaround that fixes a source of
spurious interrupts. This is recommended when threaded
---- head-2011-09-07.orig/arch/x86/Makefile 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/Makefile 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/Makefile 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/Makefile 2011-02-01 14:42:26.000000000 +0100
@@ -158,8 +158,8 @@ BOOT_TARGETS = bzlilo bzdisk fdimage fdi
PHONY += bzImage vmlinuz $(BOOT_TARGETS)
@@ -56,8 +56,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
ifdef CONFIG_X86_64
LDFLAGS_vmlinux := -e startup_64
---- head-2011-09-07.orig/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:42:26.000000000 +0100
@@ -363,9 +363,9 @@ ENTRY(ia32_syscall)
orl $TS_COMPAT,TI_status(%r10)
testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
@@ -81,8 +81,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
END(ia32_syscall)
ia32_badsys:
---- head-2011-09-07.orig/arch/x86/include/asm/hw_irq.h 2011-09-07 15:49:58.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/hw_irq.h 2011-09-07 15:51:08.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/hw_irq.h 2011-09-07 15:49:58.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/hw_irq.h 2011-09-07 15:51:08.000000000 +0200
@@ -168,7 +168,9 @@ extern irqreturn_t smp_call_function_sin
#endif
#endif
@@ -93,8 +93,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
typedef int vector_irq_t[NR_VECTORS];
DECLARE_PER_CPU(vector_irq_t, vector_irq);
---- head-2011-09-07.orig/arch/x86/include/asm/hypervisor.h 2011-09-12 11:54:53.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/hypervisor.h 2011-04-13 13:52:09.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/hypervisor.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/hypervisor.h 2011-04-13 13:52:09.000000000 +0200
@@ -60,3 +60,7 @@ static inline bool hypervisor_x2apic_ava
}
@@ -103,8 +103,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
+#ifdef HAVE_XEN_PLATFORM_COMPAT_H
+#include_next <asm/hypervisor.h>
+#endif
---- head-2011-09-07.orig/arch/x86/include/asm/kexec.h 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/asm/kexec.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/asm/kexec.h 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/include/asm/kexec.h 2011-02-01 14:42:26.000000000 +0100
@@ -12,13 +12,10 @@
/*
* The hypervisor interface implicitly requires that all entries (except
@@ -122,8 +122,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
# endif /* CONFIG_XEN */
#else
# define PA_CONTROL_PAGE 0
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:42:26.000000000 +0100
@@ -342,16 +342,14 @@ static inline void set_intr_gate(unsigne
_set_gate(n, GATE_INTERRUPT, addr, 0, 0, __KERNEL_CS);
}
@@ -145,8 +145,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
if (first_system_vector > vector)
first_system_vector = vector;
} else
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:42:26.000000000 +0100
@@ -16,7 +16,6 @@
#include <asm/apicdef.h>
#include <asm/page.h>
@@ -167,8 +167,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#ifdef CONFIG_PARAVIRT
FIX_PARAVIRT_BOOTMAP,
#else
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:42:26.000000000 +0100
@@ -79,6 +79,7 @@ static inline void clear_user_highpage(s
clear_highpage(page);
}
@@ -177,8 +177,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#define __HAVE_ARCH_CLEAR_USER_HIGHPAGE
void copy_highpage(struct page *to, struct page *from);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:33:08.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:33:43.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:33:08.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:33:43.000000000 +0200
@@ -63,6 +63,8 @@ extern start_info_t *xen_start_info;
#define is_initial_xendomain() 0
#endif
@@ -197,8 +197,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
int __must_check xen_multi_update_va_mapping(unsigned long va, pte_t,
unsigned long flags);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:42:26.000000000 +0100
@@ -4,6 +4,7 @@
#define ARCH_HAS_IOREMAP_WC
@@ -265,8 +265,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
extern void early_ioremap_reset(void);
extern void __iomem *early_ioremap(unsigned long offset, unsigned long size);
extern void __iomem *early_memremap(unsigned long offset, unsigned long size);
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:31:50.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:32:00.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:31:50.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:32:00.000000000 +0100
@@ -24,6 +24,8 @@
#define LAST_VM86_IRQ 15
#define invalid_vm86_irq(irq) ((irq) < 3 || (irq) > 15)
@@ -288,8 +288,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
# else
# define NR_PIRQS (NR_VECTORS + 32 * MAX_IO_APICS)
# endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:42:26.000000000 +0100
@@ -3,10 +3,9 @@
static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
@@ -331,8 +331,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) {
/* We were in lazy tlb mode and leave_mm disabled
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pci.h 2011-02-01 14:42:26.000000000 +0100
@@ -22,6 +22,8 @@ struct pci_sysdata {
};
@@ -376,8 +376,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#endif
#endif /* _ASM_X86_PCI_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:56:09.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:56:52.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:56:09.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:56:52.000000000 +0100
@@ -22,12 +22,10 @@
#define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */
@@ -513,8 +513,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#define __HAVE_PHYS_MEM_ACCESS_PROT
struct file;
pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:56:12.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:56:49.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:56:12.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:56:49.000000000 +0100
@@ -146,6 +146,7 @@ static inline int pte_none(pte_t pte)
#define PTE_FILE_MAX_BITS 32
@@ -523,8 +523,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#define __swp_type(x) (((x).val) & 0x1f)
#define __swp_offset(x) ((x).val >> 5)
#define __swp_entry(type, offset) ((swp_entry_t){(type) | (offset) << 5})
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-01 14:42:26.000000000 +0100
@@ -107,15 +107,6 @@ extern unsigned long pg0[];
#endif
@@ -541,8 +541,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
* Conversion functions: convert a page and protection to a page entry,
* and a page entry and page directory to the page they refer to.
*/
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:56:14.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:56:46.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:56:14.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:56:46.000000000 +0100
@@ -144,8 +144,8 @@ static inline void xen_pgd_clear(pgd_t *
#define PGDIR_SIZE (_AC(1, UL) << PGDIR_SHIFT)
#define PGDIR_MASK (~(PGDIR_SIZE - 1))
@@ -576,8 +576,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#define __swp_type(x) (((x).val >> (_PAGE_BIT_PRESENT + 1)) \
& ((1U << SWP_TYPE_BITS) - 1))
#define __swp_offset(x) ((x).val >> SWP_OFFSET_SHIFT)
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:45:14.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:45:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:45:14.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:45:38.000000000 +0100
@@ -121,6 +121,7 @@ struct cpuinfo_x86 {
/* Index into per_cpu list: */
u16 cpu_index;
@@ -626,8 +626,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
static inline void update_debugctlmsr(unsigned long debugctlmsr)
{
#ifndef CONFIG_X86_DEBUGCTLMSR
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/smp.h 2011-02-01 14:42:26.000000000 +0100
@@ -18,9 +18,26 @@
#include <asm/pda.h>
#include <asm/thread_info.h>
@@ -724,8 +724,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
#else
static inline void prefill_possible_map(void)
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:42.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:50.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:42.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/spinlock.h 2011-07-12 11:14:50.000000000 +0200
@@ -341,6 +341,7 @@ static inline int __raw_spin_is_contende
{
return __raw_spin(is_contended)(lock);
@@ -734,8 +734,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
static __always_inline void __raw_spin_lock(raw_spinlock_t *lock)
{
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/system.h 2011-03-03 16:01:23.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/system.h 2011-03-03 16:05:49.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/system.h 2011-03-03 16:01:23.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/system.h 2011-03-03 16:05:49.000000000 +0100
@@ -18,12 +18,12 @@
# define AT_VECTOR_SIZE_ARCH 1
#endif
@@ -760,8 +760,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/*
* Force strict CPU ordering.
* And yes, this is required on UP too when we're talking
---- head-2011-09-07.orig/arch/x86/include/asm/thread_info.h 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/asm/thread_info.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/asm/thread_info.h 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/arch/x86/include/asm/thread_info.h 2011-02-01 14:42:26.000000000 +0100
@@ -154,7 +154,7 @@ struct thread_info {
#else
@@ -771,8 +771,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#endif
#define _TIF_WORK_CTXSW_PREV (_TIF_WORK_CTXSW|_TIF_USER_RETURN_NOTIFY)
#define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW|_TIF_DEBUG)
---- head-2011-09-07.orig/arch/x86/kernel/apic/apic-xen.c 2011-02-24 15:49:32.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/apic/apic-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/apic/apic-xen.c 2011-02-24 15:49:32.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/apic/apic-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -32,7 +32,7 @@ static int __init apic_set_verbosity(cha
else if (strcmp("verbose", arg) == 0)
apic_verbosity = APIC_VERBOSE;
@@ -782,8 +782,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
" use apic=verbose or apic=debug\n", arg);
return -EINVAL;
}
---- head-2011-09-07.orig/arch/x86/kernel/cpu/Makefile 2011-06-30 16:31:56.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/Makefile 2011-06-30 16:48:54.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/Makefile 2011-06-30 16:31:56.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/Makefile 2011-06-30 16:48:54.000000000 +0200
@@ -33,7 +33,7 @@ obj-$(CONFIG_MTRR) += mtrr/
obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o
@@ -793,8 +793,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
quiet_cmd_mkcapflags = MKCAP $@
cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@
---- head-2011-09-07.orig/arch/x86/kernel/cpu/common-xen.c 2011-03-17 14:40:32.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/cpu/common-xen.c 2011-03-17 14:41:35.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/common-xen.c 2011-03-17 14:40:32.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/cpu/common-xen.c 2011-03-17 14:41:35.000000000 +0100
@@ -38,17 +38,45 @@
#include <asm/proto.h>
#include <asm/sections.h>
@@ -906,8 +906,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
printk(KERN_WARNING "CPU#%d already initialized!\n", cpu);
for (;;) local_irq_enable();
}
---- head-2011-09-07.orig/arch/x86/kernel/cpu/intel.c 2011-06-30 16:32:02.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/cpu/intel.c 2011-04-13 13:52:09.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/intel.c 2011-06-30 16:32:02.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/cpu/intel.c 2011-04-13 13:52:09.000000000 +0200
@@ -36,10 +36,15 @@ static void __cpuinit early_init_intel(s
rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
@@ -924,8 +924,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
}
---- head-2011-09-07.orig/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -33,7 +33,7 @@ struct mtrr_ops generic_mtrr_ops = {
struct mtrr_ops *mtrr_if = &generic_mtrr_ops;
@@ -935,9 +935,9 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
static u64 tom2;
---- head-2011-09-07.orig/arch/x86/kernel/e820-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/e820-xen.c 2011-02-01 14:42:26.000000000 +0100
-@@ -719,6 +719,27 @@ void __init e820_mark_nosave_regions(uns
+--- head-2011-09-23.orig/arch/x86/kernel/e820-xen.c 2011-09-23 15:50:45.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/e820-xen.c 2011-09-23 15:50:53.000000000 +0200
+@@ -727,6 +727,27 @@ void __init e820_mark_nosave_regions(uns
}
}
#endif
@@ -965,7 +965,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#endif
/*
-@@ -734,22 +755,6 @@ struct early_res {
+@@ -742,22 +763,6 @@ struct early_res {
static struct early_res early_res[MAX_EARLY_RES] __initdata = {
#ifndef CONFIG_XEN
{ 0, PAGE_SIZE, "BIOS data page" }, /* BIOS data page */
@@ -988,8 +988,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#endif
{}
};
---- head-2011-09-07.orig/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/early_printk-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -904,49 +904,6 @@ static struct console early_dbgp_console
};
#endif
@@ -1060,8 +1060,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#ifdef CONFIG_EARLY_PRINTK_DBGP
} else if (!strncmp(buf, "dbgp", 4)) {
if (early_dbgp_init(buf+4) < 0)
---- head-2011-09-07.orig/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:36.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:43.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:36.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/entry_32-xen.S 2011-04-26 09:10:43.000000000 +0200
@@ -690,28 +690,37 @@ END(syscall_badsys)
27:;
@@ -1720,8 +1720,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
+ * End of kprobes section
+ */
+ .popsection
---- head-2011-09-07.orig/arch/x86/kernel/entry_64-xen.S 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/entry_64-xen.S 2011-09-07 17:54:40.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/entry_64-xen.S 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/entry_64-xen.S 2011-09-07 17:54:40.000000000 +0200
@@ -14,15 +14,15 @@
*
* NOTE: This code handles signal-recognition, which happens every time
@@ -3365,8 +3365,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
+ * End of kprobes section
+ */
+ .popsection
---- head-2011-09-07.orig/arch/x86/kernel/head-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/head-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/head-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/head-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -36,7 +36,6 @@ void __init reserve_ebda_region(void)
/* start of EBDA area */
@@ -3375,8 +3375,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/* Fixup: bios puts an EBDA in the top 64K segment */
/* of conventional memory, but does not adjust lowmem. */
---- head-2011-09-07.orig/arch/x86/kernel/head32-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/head32-xen.c 2011-05-09 11:39:13.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head32-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/head32-xen.c 2011-05-09 11:39:13.000000000 +0200
@@ -11,9 +11,12 @@
#include <asm/setup.h>
#include <asm/sections.h>
@@ -3390,8 +3390,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS");
#ifndef CONFIG_XEN
---- head-2011-09-07.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:57:40.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/head64-xen.c 2011-08-09 10:58:06.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/head64-xen.c 2011-08-09 10:57:40.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/head64-xen.c 2011-08-09 10:58:06.000000000 +0200
@@ -31,9 +31,10 @@
#include <asm/kdebug.h>
#include <asm/e820.h>
@@ -3413,8 +3413,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS");
reserve_early(round_up(__pa_symbol(&_end), PAGE_SIZE),
---- head-2011-09-07.orig/arch/x86/kernel/apic/io_apic-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/apic/io_apic-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/apic/io_apic-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/apic/io_apic-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -112,102 +112,276 @@ static int __init parse_noapic(char *str
}
early_param("noapic", parse_noapic);
@@ -5388,8 +5388,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
ioapic_res = ioapic_setup_resources();
for (i = 0; i < nr_ioapics; i++) {
if (smp_found_config) {
---- head-2011-09-07.orig/arch/x86/kernel/ioport-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ioport-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ioport-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ioport-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -36,7 +36,7 @@ static void set_bitmap(unsigned long *bi
*/
asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
@@ -5399,8 +5399,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
struct physdev_set_iobitmap set_iobitmap;
if ((from + num <= from) || (from + num > IO_BITMAP_BITS))
---- head-2011-09-07.orig/arch/x86/kernel/apic/ipi-xen.c 2011-02-21 13:56:51.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/apic/ipi-xen.c 2011-02-21 13:56:59.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/apic/ipi-xen.c 2011-02-21 13:56:51.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/apic/ipi-xen.c 2011-02-21 13:56:59.000000000 +0100
@@ -40,21 +40,29 @@ void send_IPI_self(int vector)
__send_IPI_shortcut(APIC_DEST_SELF, vector);
}
@@ -5439,8 +5439,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
+}
+
#endif
---- head-2011-09-07.orig/arch/x86/kernel/irq-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/irq-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/irq-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/irq-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -5,10 +5,11 @@
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
@@ -5573,8 +5573,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#ifndef CONFIG_SMP
seq_printf(p, "%10u ", kstat_irqs(i));
#else
---- head-2011-09-07.orig/arch/x86/kernel/ldt-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/ldt-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/ldt-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/ldt-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -12,8 +12,8 @@
#include <linux/mm.h>
#include <linux/smp.h>
@@ -5585,8 +5585,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#include <asm/system.h>
#include <asm/ldt.h>
#include <asm/desc.h>
---- head-2011-09-07.orig/arch/x86/kernel/machine_kexec_32.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/machine_kexec_32.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/machine_kexec_32.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/machine_kexec_32.c 2011-02-01 14:42:26.000000000 +0100
@@ -46,6 +46,17 @@ static int machine_kexec_alloc_page_tabl
{
image->arch.pgd = (pgd_t *)get_zeroed_page(GFP_KERNEL);
@@ -5620,8 +5620,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
if (image->type == KEXEC_TYPE_DEFAULT)
xki->page_list[PA_SWAP_PAGE] = page_to_phys(image->swap_page);
---- head-2011-09-07.orig/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/mpparse-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -2,7 +2,7 @@
* Intel Multiprocessor Specification 1.1 and 1.4
* compliant MP-table parsing routines.
@@ -6449,8 +6449,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
mpc = mpc_new;
/* check if we can modify that */
if (mpc_new_bus - mpf->mpf_physptr) {
---- head-2011-09-07.orig/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/pci-dma-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -6,6 +6,7 @@
#include <asm/proto.h>
#include <asm/dma.h>
@@ -6537,8 +6537,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
forbid_dac = 1;
}
}
---- head-2011-09-07.orig/arch/x86/kernel/process-xen.c 2011-03-03 16:00:33.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process-xen.c 2011-03-03 16:05:57.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process-xen.c 2011-03-03 16:00:33.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process-xen.c 2011-03-03 16:05:57.000000000 +0100
@@ -1,13 +1,17 @@
#include <linux/errno.h>
#include <linux/kernel.h>
@@ -6656,8 +6656,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
mark_tsc_unstable("TSC halt in AMD C1E");
printk(KERN_INFO "System has AMD C1E enabled\n");
set_cpu_cap(&boot_cpu_data, X86_FEATURE_AMDC1E);
---- head-2011-09-07.orig/arch/x86/kernel/process_32-xen.c 2011-02-02 08:34:28.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_32-xen.c 2011-02-02 08:36:38.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_32-xen.c 2011-02-02 08:34:28.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_32-xen.c 2011-02-02 08:36:38.000000000 +0100
@@ -38,11 +38,13 @@
#include <linux/percpu.h>
#include <linux/prctl.h>
@@ -6850,8 +6850,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
filename = getname((char __user *) regs.bx);
error = PTR_ERR(filename);
---- head-2011-09-07.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:34:22.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/process_64-xen.c 2011-02-02 08:36:43.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/process_64-xen.c 2011-02-02 08:34:22.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/process_64-xen.c 2011-02-02 08:36:43.000000000 +0100
@@ -42,6 +42,8 @@
#include <linux/prctl.h>
#include <linux/uaccess.h>
@@ -6985,8 +6985,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
__switch_to(struct task_struct *prev_p, struct task_struct *next_p)
{
struct thread_struct *prev = &prev_p->thread;
---- head-2011-09-07.orig/arch/x86/kernel/setup-xen.c 2011-03-03 16:22:12.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/setup-xen.c 2011-06-10 12:03:38.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/setup-xen.c 2011-03-03 16:22:12.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/setup-xen.c 2011-06-10 12:03:38.000000000 +0200
@@ -93,11 +93,13 @@
#include <asm/desc.h>
#include <asm/dma.h>
@@ -7243,8 +7243,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
kvm_guest_init();
---- head-2011-09-07.orig/arch/x86/kernel/smp-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/smp-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/smp-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/smp-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -1,7 +1,7 @@
/*
* Intel SMP support routines.
@@ -7327,8 +7327,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
return IRQ_HANDLED;
}
---- head-2011-09-07.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:52:03.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/time-xen.c 2011-07-11 11:52:09.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/kernel/time-xen.c 2011-07-11 11:52:03.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/time-xen.c 2011-07-11 11:52:09.000000000 +0200
@@ -517,11 +517,7 @@ irqreturn_t timer_interrupt(int irq, voi
struct vcpu_runstate_info runstate;
@@ -7434,8 +7434,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/* No locking required. Interrupts are disabled on all CPUs. */
void time_resume(void)
---- head-2011-09-07.orig/arch/x86/kernel/traps-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/kernel/traps-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/traps-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/kernel/traps-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -20,7 +20,6 @@
#include <linux/module.h>
#include <linux/ptrace.h>
@@ -7663,8 +7663,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
#else
math_state_restore();
---- head-2011-09-07.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-09-08 16:10:13.000000000 +0200
-+++ head-2011-09-07/arch/x86/kernel/vsyscall_64-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-09-08 16:10:13.000000000 +0200
++++ head-2011-09-23/arch/x86/kernel/vsyscall_64-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -17,6 +17,9 @@
* want per guest time just set the kernel.vsyscall64 sysctl to 0.
*/
@@ -7692,8 +7692,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
base = __vsyscall_gtod_data.clock.cycle_last;
mask = __vsyscall_gtod_data.clock.mask;
mult = __vsyscall_gtod_data.clock.mult;
---- head-2011-09-07.orig/arch/x86/mm/fault-xen.c 2011-07-26 09:30:04.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/fault-xen.c 2011-07-26 09:30:12.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/fault-xen.c 2011-07-26 09:30:04.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/fault-xen.c 2011-07-26 09:30:12.000000000 +0200
@@ -53,7 +53,7 @@
static inline int kmmio_fault(struct pt_regs *regs, unsigned long addr)
@@ -7830,8 +7830,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
do_sigbus:
up_read(&mm->mmap_sem);
---- head-2011-09-07.orig/arch/x86/mm/hypervisor.c 2011-08-09 10:57:04.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/hypervisor.c 2011-03-23 09:56:58.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/hypervisor.c 2011-08-09 10:57:04.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/hypervisor.c 2011-03-23 09:56:58.000000000 +0100
@@ -78,12 +78,12 @@ static void multicall_failed(const multi
BUG();
}
@@ -7904,8 +7904,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
void xen_l1_entry_update(pte_t *ptr, pte_t val)
---- head-2011-09-07.orig/arch/x86/mm/init_32-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/init_32-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/init_32-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/init_32-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -71,7 +71,7 @@ static unsigned long __initdata table_to
static int __initdata after_init_bootmem;
@@ -8119,8 +8119,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
#endif
---- head-2011-09-07.orig/arch/x86/mm/init_64-xen.c 2011-06-30 16:48:00.000000000 +0200
-+++ head-2011-09-07/arch/x86/mm/init_64-xen.c 2011-06-30 16:49:02.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/mm/init_64-xen.c 2011-06-30 16:48:00.000000000 +0200
++++ head-2011-09-23/arch/x86/mm/init_64-xen.c 2011-06-30 16:49:02.000000000 +0200
@@ -847,7 +847,7 @@ static void __init init_gbpages(void)
#endif
}
@@ -8166,8 +8166,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
pci_iommu_alloc();
/* clear_bss() already clear the empty_zero_page */
---- head-2011-09-07.orig/arch/x86/mm/iomap_32-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/iomap_32-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/iomap_32-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/iomap_32-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -17,9 +17,21 @@
*/
@@ -8206,8 +8206,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
idx = type + KM_TYPE_NR*smp_processor_id();
vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
pgprot_val(prot) |= _PAGE_IOMAP;
---- head-2011-09-07.orig/arch/x86/mm/ioremap-xen.c 2011-02-07 15:41:07.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/ioremap-xen.c 2011-02-07 15:41:20.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/ioremap-xen.c 2011-02-07 15:41:07.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/ioremap-xen.c 2011-02-07 15:41:20.000000000 +0100
@@ -274,25 +274,6 @@ int page_is_ram(unsigned long pagenr)
return 0;
}
@@ -8283,8 +8283,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
static void __init __early_set_fixmap(enum fixed_addresses idx,
unsigned long phys, pgprot_t flags)
---- head-2011-09-07.orig/arch/x86/mm/pageattr-xen.c 2011-03-23 09:56:00.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pageattr-xen.c 2011-03-23 09:56:37.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pageattr-xen.c 2011-03-23 09:56:00.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pageattr-xen.c 2011-03-23 09:56:37.000000000 +0100
@@ -524,22 +524,28 @@ static int split_large_page(pte_t *kpte,
set_pte(&pbase[i], pfn_pte_ma(mfn, ref_prot));
@@ -8431,8 +8431,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
out:
return ret;
}
---- head-2011-09-07.orig/arch/x86/mm/pat-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/mm/pat-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/mm/pat-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/mm/pat-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -11,6 +11,7 @@
#include <linux/bootmem.h>
#include <linux/debugfs.h>
@@ -8779,8 +8779,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_PAT)
/* get Nth element of the linked list */
---- head-2011-09-07.orig/arch/x86/pci/pcifront.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/arch/x86/pci/pcifront.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/pci/pcifront.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/arch/x86/pci/pcifront.c 2011-02-01 14:42:26.000000000 +0100
@@ -8,8 +8,8 @@
#include <linux/init.h>
#include <linux/pci.h>
@@ -8791,8 +8791,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
static int pcifront_enable_irq(struct pci_dev *dev)
{
---- head-2011-09-07.orig/arch/x86/vdso/vdso32-setup-xen.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/arch/x86/vdso/vdso32-setup-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/vdso/vdso32-setup-xen.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/arch/x86/vdso/vdso32-setup-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -349,7 +349,7 @@ int __init sysenter_setup(void)
}
@@ -8802,8 +8802,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
{
struct mm_struct *mm = current->mm;
unsigned long addr;
---- head-2011-09-07.orig/drivers/acpi/Kconfig 2011-06-30 15:35:53.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/Kconfig 2011-06-30 16:49:10.000000000 +0200
+--- head-2011-09-23.orig/drivers/acpi/Kconfig 2011-09-23 09:45:08.000000000 +0200
++++ head-2011-09-23/drivers/acpi/Kconfig 2011-06-30 16:49:10.000000000 +0200
@@ -184,7 +184,7 @@ config ACPI_DOCK
config ACPI_PROCESSOR
tristate "Processor"
@@ -8813,8 +8813,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
default y
help
This driver installs ACPI as the idle handler for Linux and uses
---- head-2011-09-07.orig/drivers/acpi/processor_core.c 2011-08-10 11:19:02.000000000 +0200
-+++ head-2011-09-07/drivers/acpi/processor_core.c 2011-08-10 11:19:21.000000000 +0200
+--- head-2011-09-23.orig/drivers/acpi/processor_core.c 2011-08-10 11:19:02.000000000 +0200
++++ head-2011-09-23/drivers/acpi/processor_core.c 2011-08-10 11:19:21.000000000 +0200
@@ -191,7 +191,7 @@ int acpi_get_cpuid(acpi_handle handle, i
* stub enforcing a 1:1 mapping, we keep it undefined to catch bad
* uses. Return as if there was a 1:1 mapping.
@@ -8824,8 +8824,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
return apic_id;
#endif
#else
---- head-2011-09-07.orig/drivers/acpi/processor_idle.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/acpi/processor_idle.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/acpi/processor_idle.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/acpi/processor_idle.c 2011-02-01 14:42:26.000000000 +0100
@@ -125,6 +125,7 @@ static struct dmi_system_id __cpuinitdat
};
@@ -8892,8 +8892,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
int acpi_processor_cst_has_changed(struct acpi_processor *pr)
{
int ret = 0;
---- head-2011-09-07.orig/drivers/gpu/drm/i915/i915_drv.c 2011-09-12 11:54:53.000000000 +0200
-+++ head-2011-09-07/drivers/gpu/drm/i915/i915_drv.c 2011-09-07 15:50:50.000000000 +0200
+--- head-2011-09-23.orig/drivers/gpu/drm/i915/i915_drv.c 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/drivers/gpu/drm/i915/i915_drv.c 2011-09-07 15:50:50.000000000 +0200
@@ -822,7 +822,7 @@ static struct drm_driver driver = {
.open = drm_open,
.release = drm_release,
@@ -8903,8 +8903,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
.poll = drm_poll,
.fasync = drm_fasync,
.read = drm_read,
---- head-2011-09-07.orig/drivers/gpu/drm/i915/i915_drv.h 2011-09-12 11:54:53.000000000 +0200
-+++ head-2011-09-07/drivers/gpu/drm/i915/i915_drv.h 2011-09-07 15:50:53.000000000 +0200
+--- head-2011-09-23.orig/drivers/gpu/drm/i915/i915_drv.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/drivers/gpu/drm/i915/i915_drv.h 2011-09-07 15:50:53.000000000 +0200
@@ -1187,6 +1187,11 @@ int __must_check i915_add_request(struct
struct drm_i915_gem_request *request);
int __must_check i915_wait_request(struct intel_ring_buffer *ring,
@@ -8917,8 +8917,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
int __must_check
i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj,
---- head-2011-09-07.orig/drivers/gpu/drm/i915/i915_gem.c 2011-09-12 11:54:53.000000000 +0200
-+++ head-2011-09-07/drivers/gpu/drm/i915/i915_gem.c 2011-06-30 16:49:42.000000000 +0200
+--- head-2011-09-23.orig/drivers/gpu/drm/i915/i915_gem.c 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/drivers/gpu/drm/i915/i915_gem.c 2011-06-30 16:49:42.000000000 +0200
@@ -1170,6 +1170,17 @@ i915_gem_mmap_ioctl(struct drm_device *d
return 0;
}
@@ -8937,8 +8937,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/**
* i915_gem_fault - fault a page into the GTT
* vma: VMA in question
---- head-2011-09-07.orig/drivers/oprofile/buffer_sync.c 2011-06-30 16:01:00.000000000 +0200
-+++ head-2011-09-07/drivers/oprofile/buffer_sync.c 2011-06-30 16:49:47.000000000 +0200
+--- head-2011-09-23.orig/drivers/oprofile/buffer_sync.c 2011-06-30 16:01:00.000000000 +0200
++++ head-2011-09-23/drivers/oprofile/buffer_sync.c 2011-06-30 16:49:47.000000000 +0200
@@ -539,7 +539,6 @@ void sync_buffer(int cpu)
int cpu_mode = CPU_MODE_KERNEL;
sync_buffer_state state = sb_buffer_start;
@@ -8977,8 +8977,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#endif
if (op_cpu_buffer_get_size(&entry))
add_data(&entry, mm);
---- head-2011-09-07.orig/drivers/oprofile/cpu_buffer.c 2011-04-13 12:53:16.000000000 +0200
-+++ head-2011-09-07/drivers/oprofile/cpu_buffer.c 2011-04-13 13:52:09.000000000 +0200
+--- head-2011-09-23.orig/drivers/oprofile/cpu_buffer.c 2011-04-13 12:53:16.000000000 +0200
++++ head-2011-09-23/drivers/oprofile/cpu_buffer.c 2011-04-13 13:52:09.000000000 +0200
@@ -427,34 +427,15 @@ void oprofile_add_pc(unsigned long pc, i
#ifdef CONFIG_XEN
@@ -9043,8 +9043,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
current_domain = domain_id;
---- head-2011-09-07.orig/drivers/pci/msi-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/drivers/pci/msi-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/pci/msi-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/drivers/pci/msi-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -724,30 +724,21 @@ void pci_no_msi(void)
pci_msi_enable = 0;
}
@@ -9088,8 +9088,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
- return;
- msi_acpi_init();
-}
---- head-2011-09-07.orig/drivers/xen/Kconfig 2011-09-07 15:49:07.000000000 +0200
-+++ head-2011-09-07/drivers/xen/Kconfig 2011-09-07 15:50:34.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/Kconfig 2011-09-07 15:49:07.000000000 +0200
++++ head-2011-09-23/drivers/xen/Kconfig 2011-09-07 15:50:34.000000000 +0200
@@ -440,6 +440,7 @@ config XEN_BACKEND
config XENFS
@@ -9098,8 +9098,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
default y
help
The xen filesystem provides a way for domains to share
---- head-2011-09-07.orig/drivers/xen/Makefile 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/drivers/xen/Makefile 2011-02-24 14:09:54.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/Makefile 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/drivers/xen/Makefile 2011-02-24 14:09:54.000000000 +0100
@@ -15,6 +15,7 @@ obj-$(CONFIG_XEN) += features.o $(xen-
obj-$(CONFIG_HOTPLUG_CPU) += $(xen-hotplug-y)
obj-$(CONFIG_XEN_XENCOMM) += xencomm.o
@@ -9108,8 +9108,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += blkback/
obj-$(CONFIG_XEN_BLKDEV_TAP) += blktap/
obj-$(CONFIG_XEN_BLKDEV_TAP2) += blktap2/ blktap2-new/
---- head-2011-09-07.orig/drivers/xen/balloon/sysfs.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/xen/balloon/sysfs.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/balloon/sysfs.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/xen/balloon/sysfs.c 2011-02-01 14:42:26.000000000 +0100
@@ -67,7 +67,7 @@ static ssize_t store_target_kb(struct sy
struct sysdev_attribute *attr,
const char *buf, size_t count)
@@ -9173,8 +9173,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
};
static struct attribute *balloon_info_attrs[] = {
---- head-2011-09-07.orig/drivers/xen/blkfront/vbd.c 2011-01-31 18:07:35.000000000 +0100
-+++ head-2011-09-07/drivers/xen/blkfront/vbd.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/blkfront/vbd.c 2011-01-31 18:07:35.000000000 +0100
++++ head-2011-09-23/drivers/xen/blkfront/vbd.c 2011-02-01 14:42:26.000000000 +0100
@@ -305,6 +305,10 @@ xlvbd_init_blk_queue(struct gendisk *gd,
if (rq == NULL)
return -1;
@@ -9186,8 +9186,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/* Hard sector size and max sectors impersonate the equiv. hardware. */
blk_queue_hardsect_size(rq, sector_size);
blk_queue_max_sectors(rq, 512);
---- head-2011-09-07.orig/drivers/xen/core/cpu_hotplug.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/cpu_hotplug.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/cpu_hotplug.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/cpu_hotplug.c 2011-02-01 14:42:26.000000000 +0100
@@ -11,10 +11,10 @@
* Set of CPUs that remote admin software will allow us to bring online.
* Notified to us via xenbus.
@@ -9257,8 +9257,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
+ BUG();
+ cpumask_setall(local_allowed_cpumask);
}
---- head-2011-09-07.orig/drivers/xen/core/evtchn.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/evtchn.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/evtchn.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/evtchn.c 2011-02-01 14:42:26.000000000 +0100
@@ -36,6 +36,7 @@
#include <linux/sched.h>
#include <linux/kernel_stat.h>
@@ -9746,8 +9746,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
if (!identity_mapped_irq(i))
continue;
---- head-2011-09-07.orig/drivers/xen/core/machine_reboot.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/machine_reboot.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/machine_reboot.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/machine_reboot.c 2011-02-01 14:42:26.000000000 +0100
@@ -19,6 +19,9 @@
#include <xen/interface/vcpu.h>
@@ -9789,8 +9789,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
return 0;
}
---- head-2011-09-07.orig/drivers/xen/core/smpboot.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/drivers/xen/core/smpboot.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/core/smpboot.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/drivers/xen/core/smpboot.c 2011-02-01 14:42:26.000000000 +0100
@@ -33,11 +33,7 @@ extern void failsafe_callback(void);
extern void system_call(void);
extern void smp_trap_init(trap_info_t *);
@@ -9908,8 +9908,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
preempt_enable_no_resched();
VOID(HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL));
#ifdef CONFIG_HOTPLUG_CPU
---- head-2011-09-07.orig/drivers/xen/netback/interface.c 2011-04-11 15:01:11.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netback/interface.c 2011-04-11 15:03:53.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/interface.c 2011-04-11 15:01:11.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/interface.c 2011-04-11 15:03:53.000000000 +0200
@@ -224,6 +224,15 @@ static struct ethtool_ops network_ethtoo
.get_strings = netbk_get_strings,
};
@@ -9938,8 +9938,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
netif_set_features(netif);
---- head-2011-09-07.orig/drivers/xen/netback/loopback.c 2011-01-31 17:32:29.000000000 +0100
-+++ head-2011-09-07/drivers/xen/netback/loopback.c 2011-03-01 11:52:05.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/netback/loopback.c 2011-01-31 17:32:29.000000000 +0100
++++ head-2011-09-23/drivers/xen/netback/loopback.c 2011-03-01 11:52:05.000000000 +0100
@@ -155,7 +155,6 @@ static int loopback_start_xmit(struct sk
skb->pkt_type = PACKET_HOST; /* overridden by eth_type_trans() */
@@ -9977,8 +9977,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
dev->tx_queue_len = 0;
dev->features = (NETIF_F_HIGHDMA |
---- head-2011-09-07.orig/drivers/xen/netback/netback.c 2011-04-11 15:03:06.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netback/netback.c 2011-04-11 15:03:55.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netback/netback.c 2011-04-11 15:03:06.000000000 +0200
++++ head-2011-09-23/drivers/xen/netback/netback.c 2011-04-11 15:03:55.000000000 +0200
@@ -365,7 +365,7 @@ static void xen_network_done_notify(void
static struct net_device *eth0_dev = NULL;
if (unlikely(eth0_dev == NULL))
@@ -9996,8 +9996,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
out:
---- head-2011-09-07.orig/drivers/xen/netfront/netfront.c 2011-06-30 16:48:32.000000000 +0200
-+++ head-2011-09-07/drivers/xen/netfront/netfront.c 2011-09-09 09:31:57.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/netfront/netfront.c 2011-06-30 16:48:32.000000000 +0200
++++ head-2011-09-23/drivers/xen/netfront/netfront.c 2011-09-09 09:31:57.000000000 +0200
@@ -634,7 +634,7 @@ static int network_open(struct net_devic
if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx)){
netfront_accelerator_call_stop_napi_irq(np, dev);
@@ -10088,8 +10088,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
send_fake_arp(dev);
return NOTIFY_DONE;
---- head-2011-09-07.orig/drivers/xen/sfc_netfront/accel_msg.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/sfc_netfront/accel_msg.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/sfc_netfront/accel_msg.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/sfc_netfront/accel_msg.c 2011-02-01 14:42:26.000000000 +0100
@@ -47,7 +47,7 @@ static void vnic_start_interrupts(netfro
netfront_accel_disable_net_interrupts(vnic);
vnic->irq_enabled = 0;
@@ -10108,8 +10108,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
else {
spin_unlock_irqrestore(&vnic->irq_enabled_lock, flags);
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_client.c 2011-02-01 14:38:38.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_client.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_client.c 2011-02-01 14:38:38.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_client.c 2011-02-01 14:42:26.000000000 +0100
@@ -169,7 +169,6 @@ EXPORT_SYMBOL_GPL(xenbus_watch_pathfmt);
/**
* xenbus_switch_state
@@ -10127,8 +10127,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
* closedown of this driver and its peer.
*/
void xenbus_dev_fatal(struct xenbus_device *dev, int err, const char *fmt, ...)
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe.c 2011-06-10 11:54:17.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe.c 2011-06-30 16:49:58.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe.c 2011-06-10 11:54:17.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe.c 2011-06-30 16:49:58.000000000 +0200
@@ -42,6 +42,7 @@
#include <linux/ctype.h>
#include <linux/fcntl.h>
@@ -10262,8 +10262,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
return 0;
err:
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe.h 2011-02-07 14:42:39.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe.h 2011-02-07 14:42:39.000000000 +0100
@@ -43,6 +43,8 @@
#ifdef CONFIG_PARAVIRT_XEN
#define is_running_on_xen() xen_domain()
@@ -10273,8 +10273,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#endif
#if defined(CONFIG_XEN_BACKEND) || defined(CONFIG_XEN_BACKEND_MODULE)
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_probe_backend.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_probe_backend.c 2011-02-01 14:42:26.000000000 +0100
@@ -36,6 +36,7 @@
__FUNCTION__, __LINE__, ##args)
@@ -10314,8 +10314,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
},
.dev = {
.bus_id = "xen-backend",
---- head-2011-09-07.orig/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:33:20.000000000 +0200
-+++ head-2011-09-07/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:50:01.000000000 +0200
+--- head-2011-09-23.orig/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:33:20.000000000 +0200
++++ head-2011-09-23/drivers/xen/xenbus/xenbus_xs.c 2011-06-30 16:50:01.000000000 +0200
@@ -225,6 +225,9 @@ void *xenbus_dev_request_and_reply(struc
return ret;
@@ -10326,8 +10326,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/* Send message to xs, get kmalloc'ed reply. ERR_PTR() on error. */
static void *xs_talkv(struct xenbus_transaction t,
---- head-2011-09-07.orig/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/drivers/xen/xenoprof/xenoprofile.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/drivers/xen/xenoprof/xenoprofile.c 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/drivers/xen/xenoprof/xenoprofile.c 2011-02-01 14:42:26.000000000 +0100
@@ -49,7 +49,7 @@ static int xenoprof_enabled = 0;
static int xenoprof_is_primary = 0;
static int active_defined;
@@ -10352,8 +10352,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
ret = HYPERVISOR_xenoprof_op(XENOPROF_reserve_counters, NULL);
---- head-2011-09-07.orig/include/acpi/processor.h 2011-06-30 15:37:24.000000000 +0200
-+++ head-2011-09-07/include/acpi/processor.h 2011-04-13 13:52:09.000000000 +0200
+--- head-2011-09-23.orig/include/acpi/processor.h 2011-06-30 15:37:24.000000000 +0200
++++ head-2011-09-23/include/acpi/processor.h 2011-04-13 13:52:09.000000000 +0200
@@ -91,13 +91,24 @@ struct acpi_processor_cx {
};
@@ -10379,8 +10379,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
};
/* Performance Management */
---- head-2011-09-07.orig/include/xen/cpu_hotplug.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/include/xen/cpu_hotplug.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/include/xen/cpu_hotplug.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/include/xen/cpu_hotplug.h 2011-02-01 14:42:26.000000000 +0100
@@ -5,7 +5,7 @@
#include <linux/cpumask.h>
@@ -10390,8 +10390,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#endif
#if defined(CONFIG_HOTPLUG_CPU)
---- head-2011-09-07.orig/include/xen/evtchn.h 2011-01-31 18:01:51.000000000 +0100
-+++ head-2011-09-07/include/xen/evtchn.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/include/xen/evtchn.h 2011-01-31 18:01:51.000000000 +0100
++++ head-2011-09-23/include/xen/evtchn.h 2011-02-01 14:42:26.000000000 +0100
@@ -48,6 +48,18 @@
* LOW-LEVEL DEFINITIONS
*/
@@ -10411,8 +10411,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/*
* Dynamically bind an event source to an IRQ-like callback handler.
* On some platforms this may not be implemented via the Linux IRQ subsystem.
---- head-2011-09-07.orig/include/xen/xenbus.h 2011-01-31 17:56:27.000000000 +0100
-+++ head-2011-09-07/include/xen/xenbus.h 2011-09-12 11:58:31.000000000 +0200
+--- head-2011-09-23.orig/include/xen/xenbus.h 2011-01-31 17:56:27.000000000 +0100
++++ head-2011-09-23/include/xen/xenbus.h 2011-09-12 11:58:31.000000000 +0200
@@ -327,7 +327,9 @@ void xenbus_dev_error(struct xenbus_devi
void xenbus_dev_fatal(struct xenbus_device *dev, int err, const char *fmt,
...) __attribute__((__format__(__printf__, 3, 4)));
@@ -10423,8 +10423,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
const char *xenbus_strstate(enum xenbus_state state);
int xenbus_dev_is_online(struct xenbus_device *dev);
---- head-2011-09-07.orig/lib/swiotlb-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/lib/swiotlb-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/lib/swiotlb-xen.c 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/lib/swiotlb-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -8,6 +8,7 @@
* Copyright (C) 2000, 2003 Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
diff --git a/patches.xen/xen3-patch-2.6.30 b/patches.xen/xen3-patch-2.6.30
index 00d16290be..d4095c9030 100644
--- a/patches.xen/xen3-patch-2.6.30
+++ b/patches.xen/xen3-patch-2.6.30
@@ -7,8 +7,8 @@ Patch-mainline: 2.6.30
Acked-by: Jeff Mahoney <jeffm@suse.com>
Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches.py
---- head-2011-09-07.orig/arch/ia64/include/asm/xen/hypervisor.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/ia64/include/asm/xen/hypervisor.h 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/ia64/include/asm/xen/hypervisor.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/ia64/include/asm/xen/hypervisor.h 2011-02-01 14:44:12.000000000 +0100
@@ -34,13 +34,13 @@
#define _ASM_IA64_XEN_HYPERVISOR_H
@@ -24,8 +24,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
extern struct shared_info *HYPERVISOR_shared_info;
extern struct start_info *xen_start_info;
---- head-2011-09-07.orig/arch/ia64/kernel/vmlinux.lds.S 2011-09-09 09:28:46.000000000 +0200
-+++ head-2011-09-07/arch/ia64/kernel/vmlinux.lds.S 2011-04-13 13:53:28.000000000 +0200
+--- head-2011-09-23.orig/arch/ia64/kernel/vmlinux.lds.S 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/ia64/kernel/vmlinux.lds.S 2011-04-13 13:53:28.000000000 +0200
@@ -183,7 +183,7 @@ SECTIONS {
__start_gate_section = .;
*(.data..gate)
@@ -35,8 +35,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
. = ALIGN(PAGE_SIZE);
__xen_start_gate_section = .;
*(.data..gate.xen)
---- head-2011-09-07.orig/arch/x86/Kconfig 2011-09-07 15:51:03.000000000 +0200
-+++ head-2011-09-07/arch/x86/Kconfig 2011-09-07 15:54:36.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/Kconfig 2011-09-07 15:51:03.000000000 +0200
++++ head-2011-09-23/arch/x86/Kconfig 2011-09-07 15:54:36.000000000 +0200
@@ -49,8 +49,8 @@ config X86
select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_DMA_API_DEBUG
@@ -91,8 +91,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
bool "Reroute for broken boot IRQs"
depends on X86_IO_APIC && !XEN
---- head-2011-09-07.orig/arch/x86/Makefile 2011-02-01 14:42:26.000000000 +0100
-+++ head-2011-09-07/arch/x86/Makefile 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/Makefile 2011-02-01 14:42:26.000000000 +0100
++++ head-2011-09-23/arch/x86/Makefile 2011-02-01 14:44:12.000000000 +0100
@@ -116,10 +116,6 @@ endif
# prevent gcc from generating any FP code by mistake
KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
@@ -116,8 +116,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
PHONY += install
install:
---- head-2011-09-07.orig/arch/x86/boot/Makefile 2011-06-30 15:39:28.000000000 +0200
-+++ head-2011-09-07/arch/x86/boot/Makefile 2011-06-30 17:03:24.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/boot/Makefile 2011-06-30 15:39:28.000000000 +0200
++++ head-2011-09-23/arch/x86/boot/Makefile 2011-06-30 17:03:24.000000000 +0200
@@ -197,6 +197,12 @@ $(obj)/vmlinux-stripped: OBJCOPYFLAGS :=
$(obj)/vmlinux-stripped: vmlinux FORCE
$(call if_changed,objcopy)
@@ -132,8 +132,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
- sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $(obj)/bzImage \
+ sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $(obj)/$(bzImage) \
System.map "$(INSTALL_PATH)"
---- head-2011-09-07.orig/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:42:26.000000000 +0100
-+++ head-2011-09-07/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:42:26.000000000 +0100
++++ head-2011-09-23/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:44:12.000000000 +0100
@@ -502,7 +502,7 @@ ia32_sys_call_table:
.quad sys32_olduname
.quad sys_umask /* 60 */
@@ -150,8 +150,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
+ .quad compat_sys_preadv
+ .quad compat_sys_pwritev
ia32_syscall_end:
---- head-2011-09-07.orig/arch/x86/include/asm/kexec.h 2011-02-01 14:42:26.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/asm/kexec.h 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/asm/kexec.h 2011-02-01 14:42:26.000000000 +0100
++++ head-2011-09-23/arch/x86/include/asm/kexec.h 2011-02-01 14:44:12.000000000 +0100
@@ -21,8 +21,14 @@
# define PA_CONTROL_PAGE 0
# define VA_CONTROL_PAGE 1
@@ -167,8 +167,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
#endif
# define KEXEC_CONTROL_CODE_MAX_SIZE 2048
---- head-2011-09-07.orig/arch/x86/include/asm/page_64_types.h 2011-09-09 09:28:46.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/asm/page_64_types.h 2011-04-13 13:53:28.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/asm/page_64_types.h 2011-09-23 15:36:44.000000000 +0200
++++ head-2011-09-23/arch/x86/include/asm/page_64_types.h 2011-04-13 13:53:28.000000000 +0200
@@ -69,7 +69,15 @@ extern void init_extra_mapping_wb(unsign
#endif /* !__ASSEMBLY__ */
@@ -185,8 +185,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
#endif
#endif /* _ASM_X86_PAGE_64_DEFS_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:42:26.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:42:26.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/desc.h 2011-02-01 14:44:12.000000000 +0100
@@ -39,7 +39,7 @@ extern gate_desc idt_table[];
struct gdt_page {
struct desc_struct gdt[GDT_ENTRIES];
@@ -234,8 +234,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
BUG();
}
#endif
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/fixmap.h 2011-02-01 14:44:12.000000000 +0100
@@ -1,11 +1,154 @@
+/*
+ * fixmap.h: compile-time virtual memory allocation
@@ -412,7 +412,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
}
+#endif /* !__ASSEMBLY__ */
#endif /* _ASM_X86_FIXMAP_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-02-01 14:39:24.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,125 +0,0 @@
-/*
@@ -540,7 +540,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
-
-#endif /* !__ASSEMBLY__ */
-#endif /* _ASM_X86_FIXMAP_32_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-02-01 14:42:26.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,90 +0,0 @@
-/*
@@ -633,8 +633,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
-#define FIXADDR_USER_END (FIXADDR_USER_START + PAGE_SIZE)
-
-#endif /* _ASM_X86_FIXMAP_64_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:42:26.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:42:26.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/highmem.h 2011-02-01 14:44:12.000000000 +0100
@@ -62,6 +62,7 @@ void *kmap_atomic_prot(struct page *page
void *kmap_atomic(struct page *page, enum km_type type);
void kunmap_atomic(void *kvaddr, enum km_type type);
@@ -643,8 +643,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
struct page *kmap_atomic_to_page(void *ptr);
#define kmap_atomic_pte(page, type) \
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:33:43.000000000 +0200
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:34:21.000000000 +0200
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:33:43.000000000 +0200
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/hypervisor.h 2011-08-23 13:34:21.000000000 +0200
@@ -38,9 +38,10 @@
#include <linux/errno.h>
#include <xen/interface/xen.h>
@@ -691,8 +691,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
#if 0 /* All uses are in places potentially called asynchronously, but
* asynchronous code should rather not make use of lazy mode at all.
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:42:26.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:42:26.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/io.h 2011-02-01 14:44:12.000000000 +0100
@@ -5,6 +5,10 @@
#include <linux/compiler.h>
@@ -868,7 +868,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
#endif /* _ASM_X86_IO_H */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/ipi.h 2011-02-01 14:44:12.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/ipi.h 2011-02-01 14:44:12.000000000 +0100
@@ -0,0 +1,13 @@
+#ifndef _ASM_X86_IPI_H
+#define _ASM_X86_IPI_H
@@ -883,8 +883,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
+void xen_send_IPI_self(int vector);
+
+#endif /* _ASM_X86_IPI_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irqflags.h 2011-02-01 14:44:12.000000000 +0100
@@ -94,7 +94,7 @@ static inline void halt(void)
#ifdef CONFIG_X86_64
@@ -902,8 +902,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
call evtchn_do_upcall ; \
add $4,%esp ; \
jmp ret_from_intr
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:32:00.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:33:07.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:32:00.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/irq_vectors.h 2011-02-15 17:33:07.000000000 +0100
@@ -2,29 +2,46 @@
#define _ASM_X86_IRQ_VECTORS_H
@@ -1015,8 +1015,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
+#define NR_IRQS (NR_PIRQS + NR_DYNIRQS)
#endif /* _ASM_X86_IRQ_VECTORS_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:39:24.000000000 +0100
-+++ head-2011-09-07/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:44:12.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:39:24.000000000 +0100
++++ head-2011-09-23/arch/x86/include/mach-xen/asm/mmu_context.h 2011-02-01 14:44:12.000000000 +0100
@@ -26,11 +26,117 @@ static inline void xen_activate_mm(struc
int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
void destroy_context(struct mm_struct *mm);
@@ -1155,7 +1155,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
+#endif
#endif /* _ASM_X86_MMU_CONTEXT_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:42:26.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-02-01 14:42:26.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,83 +0,0 @@
-#ifndef _ASM_X86_MMU_CONTEXT_32_H
@@ -1241,7 +1241,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
- asm("movl %0,%%gs": :"r" (0));
-
-#endif /* _ASM_X86_MMU_CONTEXT_32_H */
---- head-2011-09-07.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-02-01 14:39:24.000000000 +0100
+--- head-2011-09-23.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-02-01 14:39:24.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,106 +0,0 @@
-#ifndef _ASM_X86_MMU_CONTEXT_64_H
@@ -1351,13 +1351,13 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
-
-#endif /* _ASM_X86_MMU_CONTEXT_64_H */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000