Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2013-06-05 15:41:12 +0200
committerJan Beulich <jbeulich@suse.com>2013-06-05 15:41:12 +0200
commit4967b19cee8107ad36c1d4384a771a17b8f3c022 (patch)
treee9996e275b6ce5a4d4f59928b6c25bfac0610f2b
parent8f640b210c680c28dda4bd4cd59f590159f23d16 (diff)
- Update Xen patches to 3.10-rc4.
- use vCPU time info registration to support vread_pvclock(). - Delete patches.xen/xen-netback-nr-irqs. - config.conf: Re-enable Xen flavors. - Update x86 config files.
-rw-r--r--config.conf8
-rw-r--r--config/i386/debug4
-rw-r--r--config/i386/default2
-rw-r--r--config/i386/desktop4
-rw-r--r--config/i386/ec2124
-rw-r--r--config/i386/pae4
-rw-r--r--config/i386/trace4
-rw-r--r--config/i386/xen244
-rw-r--r--config/x86_64/debug4
-rw-r--r--config/x86_64/default4
-rw-r--r--config/x86_64/desktop4
-rw-r--r--config/x86_64/ec2135
-rw-r--r--config/x86_64/trace4
-rw-r--r--config/x86_64/xen266
-rw-r--r--patches.xen/ipv6-no-autoconf8
-rw-r--r--patches.xen/pci-guestdev66
-rw-r--r--patches.xen/pci-reserve14
-rw-r--r--patches.xen/xen-balloon-max-target14
-rw-r--r--patches.xen/xen-blkback-multi-page-ring6
-rw-r--r--patches.xen/xen-blkfront-cdrom42
-rw-r--r--patches.xen/xen-blkfront-hvm-no-cdrom10
-rw-r--r--patches.xen/xen-blkfront-multi-page-ring18
-rw-r--r--patches.xen/xen-blkif-op-packet42
-rw-r--r--patches.xen/xen-blkif-protocol-fallback-hack6
-rw-r--r--patches.xen/xen-blktap-write-barriers12
-rw-r--r--patches.xen/xen-clockevents42
-rw-r--r--patches.xen/xen-cpufreq-report8
-rw-r--r--patches.xen/xen-cxgb38
-rw-r--r--patches.xen/xen-dcdbas8
-rw-r--r--patches.xen/xen-ipi-per-cpu-irq26
-rw-r--r--patches.xen/xen-mem-hotplug63
-rw-r--r--patches.xen/xen-multi-page-ring10
-rw-r--r--patches.xen/xen-netback-generalize588
-rw-r--r--patches.xen/xen-netback-kernel-threads130
-rw-r--r--patches.xen/xen-netback-multiple-tasklets64
-rw-r--r--patches.xen/xen-netback-notify-multi317
-rw-r--r--patches.xen/xen-netback-nr-irqs61
-rw-r--r--patches.xen/xen-pcpu-hotplug12
-rw-r--r--patches.xen/xen-unpriv-build80
-rw-r--r--patches.xen/xen-virq-per-cpu-irq18
-rw-r--r--patches.xen/xen-x86-EFI102
-rw-r--r--patches.xen/xen-x86-bigmem12
-rw-r--r--patches.xen/xen-x86-bzImage16
-rw-r--r--patches.xen/xen-x86-dcr-fallback4
-rw-r--r--patches.xen/xen-x86-no-lapic28
-rw-r--r--patches.xen/xen-x86-panic-no-reboot6
-rw-r--r--patches.xen/xen-x86-pcpu33
-rw-r--r--patches.xen/xen-x86-per-cpu-vcpu-info18
-rw-r--r--patches.xen/xen-x86-pmd-handling28
-rw-r--r--patches.xen/xen-x86_64-note-init-p2m26
-rw-r--r--patches.xen/xen-x86_64-pgd-alloc-order12
-rw-r--r--patches.xen/xen-x86_64-pgd-pin6
-rw-r--r--patches.xen/xen-x86_64-unmapped-initrd14
-rw-r--r--patches.xen/xen-x86_64-vread-pvclock250
-rw-r--r--patches.xen/xen3-010-acpi_initrd_override_tables.patch8
-rw-r--r--patches.xen/xen3-auto-arch-i386.diff18
-rw-r--r--patches.xen/xen3-auto-arch-x86.diff22
-rw-r--r--patches.xen/xen3-auto-arch-x86_64.diff6
-rw-r--r--patches.xen/xen3-auto-common.diff327
-rw-r--r--patches.xen/xen3-auto-xen-arch.diff3
-rw-r--r--patches.xen/xen3-auto-xen-kconfig.diff98
-rw-r--r--patches.xen/xen3-fixup-arch-x8621
-rw-r--r--patches.xen/xen3-fixup-common24
-rw-r--r--patches.xen/xen3-fixup-kconfig8
-rw-r--r--patches.xen/xen3-fixup-xen220
-rw-r--r--patches.xen/xen3-patch-2.6.1828
-rw-r--r--patches.xen/xen3-patch-2.6.1926
-rw-r--r--patches.xen/xen3-patch-2.6.2024
-rw-r--r--patches.xen/xen3-patch-2.6.2112
-rw-r--r--patches.xen/xen3-patch-2.6.2252
-rw-r--r--patches.xen/xen3-patch-2.6.2346
-rw-r--r--patches.xen/xen3-patch-2.6.24112
-rw-r--r--patches.xen/xen3-patch-2.6.251318
-rw-r--r--patches.xen/xen3-patch-2.6.26280
-rw-r--r--patches.xen/xen3-patch-2.6.2772
-rw-r--r--patches.xen/xen3-patch-2.6.28100
-rw-r--r--patches.xen/xen3-patch-2.6.29215
-rw-r--r--patches.xen/xen3-patch-2.6.30112
-rw-r--r--patches.xen/xen3-patch-2.6.31351
-rw-r--r--patches.xen/xen3-patch-2.6.32145
-rw-r--r--patches.xen/xen3-patch-2.6.33108
-rw-r--r--patches.xen/xen3-patch-2.6.3457
-rw-r--r--patches.xen/xen3-patch-2.6.3542
-rw-r--r--patches.xen/xen3-patch-2.6.3690
-rw-r--r--patches.xen/xen3-patch-2.6.37192
-rw-r--r--patches.xen/xen3-patch-2.6.3848
-rw-r--r--patches.xen/xen3-patch-2.6.39107
-rw-r--r--patches.xen/xen3-patch-3.051
-rw-r--r--patches.xen/xen3-patch-3.187
-rw-r--r--patches.xen/xen3-patch-3.10-rc42144
-rw-r--r--patches.xen/xen3-patch-3.292
-rw-r--r--patches.xen/xen3-patch-3.393
-rw-r--r--patches.xen/xen3-patch-3.4105
-rw-r--r--patches.xen/xen3-patch-3.550
-rw-r--r--patches.xen/xen3-patch-3.661
-rw-r--r--patches.xen/xen3-patch-3.796
-rw-r--r--patches.xen/xen3-patch-3.8120
-rw-r--r--patches.xen/xen3-patch-3.9234
-rw-r--r--patches.xen/xen3-patch-3.9.139
-rw-r--r--patches.xen/xen3-stack-unwind4
-rw-r--r--patches.xen/xen3-x86_64-unwind-annotations12
-rw-r--r--series.conf244
102 files changed, 6502 insertions, 4261 deletions
diff --git a/config.conf b/config.conf
index a2020ed03f..a8f177e559 100644
--- a/config.conf
+++ b/config.conf
@@ -12,8 +12,8 @@
+i386 i386/desktop
+i386 i386/pae
+i386 -syms i386/debug
-#+i386 i386/xen
-#+i386 -syms i386/ec2
++i386 i386/xen
++i386 -syms i386/ec2
+i386 i386/vanilla
+i386 -syms i386/trace
@@ -24,8 +24,8 @@
+x86_64 x86_64/default
+x86_64 x86_64/desktop
-#+x86_64 x86_64/xen
-#+x86_64 -syms x86_64/ec2
++x86_64 x86_64/xen
++x86_64 -syms x86_64/ec2
+x86_64 -syms x86_64/debug
+x86_64 x86_64/vanilla
+x86_64 -syms x86_64/trace
diff --git a/config/i386/debug b/config/i386/debug
index 66f1a7452e..d06e3c19e3 100644
--- a/config/i386/debug
+++ b/config/i386/debug
@@ -330,6 +330,7 @@ CONFIG_FREEZER=y
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
+# CONFIG_X86_XEN is not set
CONFIG_X86_BIGSMP=y
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_GOLDFISH is not set
@@ -347,8 +348,7 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_PARAVIRT_XEN is not set
CONFIG_KVM_GUEST=y
# CONFIG_LGUEST_GUEST is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
diff --git a/config/i386/default b/config/i386/default
index e4b5808e6b..14c8ca518e 100644
--- a/config/i386/default
+++ b/config/i386/default
@@ -332,6 +332,7 @@ CONFIG_FREEZER=y
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
+# CONFIG_X86_XEN is not set
CONFIG_X86_BIGSMP=y
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_GOLDFISH is not set
@@ -349,7 +350,6 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
CONFIG_KVM_GUEST=y
# CONFIG_LGUEST_GUEST is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
diff --git a/config/i386/desktop b/config/i386/desktop
index 6bcee41750..565bdc5594 100644
--- a/config/i386/desktop
+++ b/config/i386/desktop
@@ -333,6 +333,7 @@ CONFIG_FREEZER=y
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
+# CONFIG_X86_XEN is not set
CONFIG_X86_BIGSMP=y
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_GOLDFISH is not set
@@ -350,8 +351,7 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_PARAVIRT_XEN is not set
CONFIG_KVM_GUEST=y
# CONFIG_LGUEST_GUEST is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
diff --git a/config/i386/ec2 b/config/i386/ec2
index 6181d6894e..e17a3818e5 100644
--- a/config/i386/ec2
+++ b/config/i386/ec2
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.9.3 Kernel Configuration
+# Linux/i386 3.10.0-rc4 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -18,7 +18,6 @@ CONFIG_GENERIC_HWEIGHT=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -84,6 +83,9 @@ CONFIG_GENERIC_CMOS_UPDATE=y
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
@@ -156,14 +158,14 @@ CONFIG_RD_LZO=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
-# CONFIG_EXPERT is not set
CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HOTPLUG=y
+# CONFIG_EXPERT is not set
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
-CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
@@ -414,6 +416,7 @@ CONFIG_PM=y
CONFIG_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
CONFIG_HAVE_AOUT=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_MISC=m
@@ -452,6 +455,7 @@ CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IP_TUNNEL=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
@@ -843,7 +847,6 @@ CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
CONFIG_X25=m
CONFIG_LAPB=m
CONFIG_PHONET=m
@@ -918,9 +921,12 @@ CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
+# CONFIG_BATMAN_ADV_NC is not set
CONFIG_BATMAN_ADV_DEBUG=y
# CONFIG_OPENVSWITCH is not set
CONFIG_VSOCKETS=m
+CONFIG_NETLINK_MMAP=y
+CONFIG_NETLINK_DIAG=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
@@ -1033,8 +1039,10 @@ CONFIG_BLK_DEV_RBD=m
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
+CONFIG_DUMMY_IRQ=m
# CONFIG_ATMEL_SSC is not set
# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_SRAM is not set
# CONFIG_C2PORT is not set
#
@@ -1070,6 +1078,10 @@ CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_EDEBUG is not set
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=m
@@ -1106,6 +1118,7 @@ CONFIG_IFB=m
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_LOADBALANCE=m
CONFIG_MACVLAN=m
@@ -1247,8 +1260,6 @@ CONFIG_FIX_EARLYCON_MEM=y
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
@@ -1265,6 +1276,11 @@ CONFIG_TCG_XEN=m
CONFIG_CRASHER=m
# CONFIG_I2C is not set
# CONFIG_SPI is not set
+
+#
+# Qualcomm MSM SSBI bus support
+#
+# CONFIG_SSBI is not set
# CONFIG_HSI is not set
#
@@ -1345,11 +1361,13 @@ CONFIG_BCMA_POSSIBLE=y
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_SM501 is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_TMIO is not set
-# CONFIG_ABX500_CORE is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
@@ -1372,7 +1390,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_WMT_GE_ROPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
@@ -1410,10 +1427,6 @@ CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_LOGO is not set
-
-#
-# Bootsplash configuration
-#
# CONFIG_SOUND is not set
#
@@ -1427,6 +1440,56 @@ CONFIG_HID_GENERIC=m
#
# Special HID drivers
#
+CONFIG_HID_A4TECH=m
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=m
+# CONFIG_HID_AUREAL is not set
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+CONFIG_HID_EZKEY=m
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_TWINHAN is not set
+CONFIG_HID_KENSINGTON=m
+# CONFIG_HID_LCPOWER is not set
+CONFIG_HID_LOGITECH=m
+# CONFIG_HID_LOGITECH_DJ is not set
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_PS3REMOTE is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
# CONFIG_USB_ARCH_HAS_XHCI is not set
@@ -1434,24 +1497,21 @@ CONFIG_USB_SUPPORT=y
# CONFIG_USB_ARCH_HAS_HCD is not set
#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+# USB port drivers
#
-# CONFIG_OMAP_USB3 is not set
-# CONFIG_OMAP_CONTROL_USB is not set
+# CONFIG_USB_PHY is not set
# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
+CONFIG_VIRT_DRIVERS=y
#
# Microsoft Hyper-V guest support
@@ -1497,7 +1557,7 @@ CONFIG_XEN_SELFBALLOONING=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_TMEM=y
+CONFIG_XEN_TMEM=m
CONFIG_XEN_PRIVCMD=y
# CONFIG_STAGING is not set
# CONFIG_X86_PLATFORM_DEVICES is not set
@@ -1510,13 +1570,13 @@ CONFIG_XEN_PRIVCMD=y
#
# Rpmsg drivers
#
-CONFIG_VIRT_DRIVERS=y
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_PWM is not set
# CONFIG_IPACK_BUS is not set
+# CONFIG_RESET_CONTROLLER is not set
#
# File systems
@@ -1547,6 +1607,7 @@ CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
CONFIG_GFS2_FS=m
# CONFIG_GFS2_FS_LOCKING_DLM is not set
@@ -1559,6 +1620,8 @@ CONFIG_OCFS2_FS_STATS=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
CONFIG_NILFS2_FS=m
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
@@ -1830,7 +1893,8 @@ CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
# CONFIG_DEBUG_WRITECOUNT is not set
@@ -1865,6 +1929,8 @@ CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
CONFIG_PM_NOTIFIER_ERROR_INJECT=m
# CONFIG_FAULT_INJECTION is not set
CONFIG_LATENCYTOP=y
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
@@ -1882,6 +1948,7 @@ CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
@@ -1891,6 +1958,7 @@ CONFIG_FTRACE=y
# CONFIG_SCHED_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
CONFIG_TRACER_SNAPSHOT=y
+CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
@@ -1901,6 +1969,7 @@ CONFIG_UPROBE_EVENT=y
CONFIG_PROBE_EVENTS=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
CONFIG_RBTREE_TEST=m
CONFIG_INTERVAL_TREE_TEST=m
# CONFIG_BUILD_DOCSRC is not set
@@ -1911,6 +1980,7 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
+# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
CONFIG_STRICT_DEVMEM=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1919,7 +1989,7 @@ CONFIG_DEBUG_RODATA=y
# CONFIG_DEBUG_RODATA_TEST is not set
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_NX_TEST is not set
-# CONFIG_IOMMU_STRESS is not set
+# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
@@ -1932,7 +2002,6 @@ CONFIG_IO_DELAY_0X80=y
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_CPA_DEBUG is not set
CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
#
# Security options
@@ -2024,6 +2093,7 @@ CONFIG_CRYPTO_XTS=m
#
# Hash modes
#
+CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_HMAC=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m
diff --git a/config/i386/pae b/config/i386/pae
index 006c345ad5..7eeb6e332a 100644
--- a/config/i386/pae
+++ b/config/i386/pae
@@ -335,6 +335,7 @@ CONFIG_FREEZER=y
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
+# CONFIG_X86_XEN is not set
CONFIG_X86_BIGSMP=y
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_GOLDFISH is not set
@@ -352,8 +353,7 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_PARAVIRT_XEN is not set
CONFIG_KVM_GUEST=y
# CONFIG_LGUEST_GUEST is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
diff --git a/config/i386/trace b/config/i386/trace
index 8aead408f9..a23eea5c01 100644
--- a/config/i386/trace
+++ b/config/i386/trace
@@ -336,6 +336,7 @@ CONFIG_FREEZER=y
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
+# CONFIG_X86_XEN is not set
CONFIG_X86_BIGSMP=y
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_GOLDFISH is not set
@@ -353,8 +354,7 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_PARAVIRT_XEN is not set
CONFIG_KVM_GUEST=y
# CONFIG_LGUEST_GUEST is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
diff --git a/config/i386/xen b/config/i386/xen
index e08c20f807..aa22cd15a6 100644
--- a/config/i386/xen
+++ b/config/i386/xen
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.9.3 Kernel Configuration
+# Linux/i386 3.10.0-rc4 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -17,12 +17,10 @@ CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_GPIO=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -97,6 +95,9 @@ CONFIG_GENERIC_CMOS_UPDATE=y
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
@@ -169,19 +170,19 @@ CONFIG_RD_LZO=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
-# CONFIG_EXPERT is not set
CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HOTPLUG=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+# CONFIG_EXPERT is not set
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
-CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
@@ -190,6 +191,7 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
+CONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
@@ -199,7 +201,6 @@ CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
@@ -465,10 +466,9 @@ CONFIG_ACPI_CUSTOM_DSDT_FILE=""
CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_DEBUG=y
-# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
@@ -547,8 +547,6 @@ CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_PCCARD_NONSTATIC=y
CONFIG_HOTPLUG_PCI=m
-CONFIG_HOTPLUG_PCI_ACPI=m
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
@@ -559,6 +557,7 @@ CONFIG_RAPIDIO_DISC_TIMEOUT=30
CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS=y
CONFIG_RAPIDIO_DMA_ENGINE=y
CONFIG_RAPIDIO_DEBUG=y
+CONFIG_RAPIDIO_ENUM_BASIC=m
CONFIG_RAPIDIO_TSI57X=y
CONFIG_RAPIDIO_CPS_XX=y
CONFIG_RAPIDIO_TSI568=y
@@ -571,6 +570,7 @@ CONFIG_RAPIDIO_TSI500=y
CONFIG_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
CONFIG_HAVE_AOUT=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_MISC=m
@@ -609,6 +609,7 @@ CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IP_TUNNEL=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
@@ -1006,7 +1007,6 @@ CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
CONFIG_X25=m
CONFIG_LAPB=m
CONFIG_PHONET=m
@@ -1082,9 +1082,12 @@ CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
+# CONFIG_BATMAN_ADV_NC is not set
CONFIG_BATMAN_ADV_DEBUG=y
CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
+CONFIG_NETLINK_MMAP=y
+CONFIG_NETLINK_DIAG=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
@@ -1261,7 +1264,6 @@ CONFIG_NFC=m
CONFIG_NFC_NCI=m
CONFIG_NFC_HCI=m
CONFIG_NFC_SHDLC=y
-CONFIG_NFC_LLCP=y
#
# Near Field Communication (NFC) devices
@@ -1315,8 +1317,6 @@ CONFIG_MTD_AR7_PARTS=m
#
# User Modules And Translation Layers
#
-CONFIG_MTD_CHAR=m
-CONFIG_HAVE_MTD_OTP=y
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
@@ -1405,25 +1405,15 @@ CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
#
-CONFIG_MTD_DOC2000=m
-CONFIG_MTD_DOC2001=m
-CONFIG_MTD_DOC2001PLUS=m
CONFIG_MTD_DOCG3=m
CONFIG_BCH_CONST_M=14
CONFIG_BCH_CONST_T=4
-CONFIG_MTD_DOCPROBE=m
-CONFIG_MTD_DOCECC=m
-CONFIG_MTD_DOCPROBE_ADVANCED=y
-CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
-CONFIG_MTD_DOCPROBE_HIGH=y
-CONFIG_MTD_DOCPROBE_55AA=y
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
CONFIG_MTD_NAND=m
CONFIG_MTD_NAND_BCH=m
CONFIG_MTD_NAND_ECC_BCH=y
CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_MUSEUM_IDS=y
# CONFIG_MTD_NAND_DENALI is not set
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_RICOH=m
@@ -1443,7 +1433,6 @@ CONFIG_MTD_ONENAND_VERIFY_WRITE=y
CONFIG_MTD_ONENAND_GENERIC=m
CONFIG_MTD_ONENAND_OTP=y
CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_ONENAND_SIM=m
#
# LPDDR flash memory drivers
@@ -1538,6 +1527,7 @@ CONFIG_BLK_DEV_RSXX=m
CONFIG_SENSORS_LIS3LV02D=m
CONFIG_AD525X_DPOT=m
CONFIG_AD525X_DPOT_I2C=m
+CONFIG_DUMMY_IRQ=m
CONFIG_IBM_ASM=m
CONFIG_PHANTOM=m
CONFIG_SGI_IOC4=m
@@ -1563,6 +1553,7 @@ CONFIG_BMP085=y
CONFIG_BMP085_I2C=m
CONFIG_PCH_PHUB=m
CONFIG_USB_SWITCH_FSA9480=m
+# CONFIG_SRAM is not set
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@@ -1587,7 +1578,7 @@ CONFIG_SENSORS_LIS3_I2C=m
# Altera FPGA firmware download module
#
CONFIG_ALTERA_STAPL=m
-CONFIG_INTEL_MEI=m
+CONFIG_INTEL_MEI=y
CONFIG_INTEL_MEI_ME=y
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -1681,6 +1672,7 @@ CONFIG_SCSI_MPT3SAS_MAX_SGE=128
# CONFIG_SCSI_MPT3SAS_LOGGING is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_SCSI_FLASHPOINT=y
@@ -1852,6 +1844,10 @@ CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_EDEBUG is not set
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=m
@@ -1924,6 +1920,7 @@ CONFIG_IFB=m
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_LOADBALANCE=m
CONFIG_MACVLAN=m
@@ -2122,6 +2119,7 @@ CONFIG_YELLOWFIN=m
CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_QLA3XXX=m
CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
CONFIG_NETXEN_NIC=m
CONFIG_NET_VENDOR_REALTEK=y
@@ -2155,8 +2153,6 @@ CONFIG_STMMAC_PLATFORM=y
CONFIG_STMMAC_PCI=y
# CONFIG_STMMAC_DEBUG_FS is not set
# CONFIG_STMMAC_DA is not set
-CONFIG_STMMAC_RING=y
-# CONFIG_STMMAC_CHAINED is not set
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
@@ -2236,6 +2232,7 @@ CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_AX88179_178A=m
@@ -2315,6 +2312,7 @@ CONFIG_ATH6KL=m
CONFIG_ATH6KL_SDIO=m
CONFIG_ATH6KL_USB=m
# CONFIG_ATH6KL_DEBUG is not set
+# CONFIG_ATH6KL_TRACING is not set
CONFIG_AR5523=m
CONFIG_WIL6210=m
CONFIG_WIL6210_ISR_COR=y
@@ -2370,6 +2368,7 @@ CONFIG_LIBIPW_DEBUG=y
CONFIG_IWLWIFI=m
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
#
# Debugging Options
@@ -2422,6 +2421,7 @@ CONFIG_RT2800USB=m
CONFIG_RT2800USB_RT33XX=y
CONFIG_RT2800USB_RT35XX=y
CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
CONFIG_RT2800USB_UNKNOWN=y
CONFIG_RT2800_LIB=m
CONFIG_RT2X00_LIB_MMIO=m
@@ -2439,6 +2439,7 @@ CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
CONFIG_RTL8192DE=m
CONFIG_RTL8723AE=m
+CONFIG_RTL8188EE=m
CONFIG_RTL8192CU=m
CONFIG_RTL8192C_COMMON=m
CONFIG_WL_TI=y
@@ -2623,7 +2624,7 @@ CONFIG_ISDN_HDLC=m
# Input device support
#
CONFIG_INPUT=y
-CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_MATRIXKMAP=m
@@ -2664,6 +2665,7 @@ CONFIG_KEYBOARD_OPENCORES=m
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_KEYBOARD_SUNKBD=m
CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYBOARD_CROS_EC=m
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
@@ -2805,6 +2807,7 @@ CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_IMS_PCU=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
@@ -3022,6 +3025,11 @@ CONFIG_I2C_STUB=m
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set
+
+#
+# Qualcomm MSM SSBI bus support
+#
+CONFIG_SSBI=m
CONFIG_HSI=m
CONFIG_HSI_BOARDINFO=y
@@ -3131,6 +3139,7 @@ CONFIG_W1_MASTER_GPIO=m
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
CONFIG_W1_SLAVE_DS2413=m
CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
@@ -3181,6 +3190,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7X10=m
CONFIG_SENSORS_ADT7410=m
CONFIG_SENSORS_ADT7411=m
CONFIG_SENSORS_ADT7462=m
@@ -3226,6 +3236,7 @@ CONFIG_SENSORS_LTC4151=m
CONFIG_SENSORS_LTC4215=m
CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95234=m
CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_MAX16065=m
@@ -3237,6 +3248,7 @@ CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
@@ -3400,31 +3412,36 @@ CONFIG_BCMA_DRIVER_GPIO=y
# Multifunction device drivers
#
CONFIG_MFD_CORE=m
-# CONFIG_MFD_SM501 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_I2C=m
+# CONFIG_MFD_MC13XXX_I2C is not set
CONFIG_HTC_PASIC3=m
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+# CONFIG_MFD_JANZ_CMODIO is not set
+CONFIG_MFD_VIPERBOARD=m
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
# CONFIG_UCB1400_CORE is not set
-CONFIG_MFD_LM3533=m
+# CONFIG_MFD_RDC321X is not set
+CONFIG_MFD_RTSX_PCI=m
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
+CONFIG_MFD_TI_AM335X_TSCADC=m
# CONFIG_TPS6105X is not set
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
# CONFIG_MFD_TPS65217 is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13XXX_I2C is not set
-# CONFIG_ABX500_CORE is not set
-CONFIG_MFD_CS5535=m
+# CONFIG_MFD_TPS65912 is not set
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_LM3533=m
# CONFIG_MFD_TIMBERDALE is not set
-CONFIG_LPC_SCH=m
-CONFIG_LPC_ICH=m
-# CONFIG_MFD_RDC321X is not set
-# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_TMIO is not set
CONFIG_MFD_VX855=m
-CONFIG_MFD_WL1273_CORE=m
-CONFIG_MFD_VIPERBOARD=m
-# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=m
@@ -3610,7 +3627,6 @@ CONFIG_DVB_USB_FRIIO=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
CONFIG_DVB_USB_V2=m
-CONFIG_DVB_USB_CYPRESS_FIRMWARE=m
CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_AF9035=m
CONFIG_DVB_USB_ANYSEE=m
@@ -3761,11 +3777,13 @@ CONFIG_MEDIA_COMMON_OPTIONS=y
CONFIG_VIDEO_CX2341X=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_TVEEPROM=m
+CONFIG_CYPRESS_FIRMWARE=m
CONFIG_DVB_B2C2_FLEXCOP=m
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
+# CONFIG_SMS_SIANO_DEBUGFS is not set
#
# Media ancillary drivers (tuners, sensors, i2c, frontends)
@@ -3784,9 +3802,11 @@ CONFIG_VIDEO_TEA6420=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_CS5345=m
CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_UDA1342=m
CONFIG_VIDEO_WM8775=m
CONFIG_VIDEO_WM8739=m
CONFIG_VIDEO_VP27SMPX=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
#
# RDS decoders
@@ -3804,6 +3824,9 @@ CONFIG_VIDEO_KS0127=m
CONFIG_VIDEO_SAA7110=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
CONFIG_VIDEO_VPX3220=m
#
@@ -3823,6 +3846,7 @@ CONFIG_VIDEO_ADV7175=m
#
# Camera sensor devices
#
+CONFIG_VIDEO_OV7640=m
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_MT9V011=m
@@ -3892,6 +3916,8 @@ CONFIG_MEDIA_TUNER_TDA18212=m
CONFIG_MEDIA_TUNER_E4000=m
CONFIG_MEDIA_TUNER_FC2580=m
CONFIG_MEDIA_TUNER_TUA9001=m
+CONFIG_MEDIA_TUNER_IT913X=m
+CONFIG_MEDIA_TUNER_R820T=m
#
# Multistandard (satellite) frontends
@@ -4072,6 +4098,7 @@ CONFIG_DRM_UDL=m
CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
CONFIG_DRM_CIRRUS_QEMU=m
+# CONFIG_DRM_QXL is not set
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_HDMI=y
@@ -4088,7 +4115,6 @@ CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=m
-# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_HECUBA=m
CONFIG_FB_SVGALIB=m
@@ -4220,11 +4246,6 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_LOGO is not set
-
-#
-# Bootsplash configuration
-#
-CONFIG_BOOTSPLASH=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
@@ -4417,7 +4438,8 @@ CONFIG_AC97_BUS=m
#
# HID support
#
-CONFIG_HID=m
+CONFIG_HID=y
+# CONFIG_HID_BATTERY_STRENGTH is not set
CONFIG_HIDRAW=y
CONFIG_UHID=m
CONFIG_HID_GENERIC=m
@@ -4425,21 +4447,22 @@ CONFIG_HID_GENERIC=m
#
# Special HID drivers
#
-CONFIG_HID_A4TECH=m
+CONFIG_HID_A4TECH=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
+CONFIG_HID_APPLE=y
+CONFIG_HID_APPLEIR=m
CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
+CONFIG_HID_BELKIN=y
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CYPRESS=m
+CONFIG_HID_CYPRESS=y
CONFIG_HID_DRAGONRISE=m
CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
-CONFIG_HID_EZKEY=m
+CONFIG_HID_EZKEY=y
CONFIG_HID_HOLTEK=m
CONFIG_HOLTEK_FF=y
CONFIG_HID_KEYTOUCH=m
@@ -4449,18 +4472,18 @@ CONFIG_HID_WALTOP=m
CONFIG_HID_GYRATION=m
CONFIG_HID_ICADE=m
CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
+CONFIG_HID_KENSINGTON=y
CONFIG_HID_LCPOWER=m
CONFIG_HID_LENOVO_TPKBD=m
-CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH=y
CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
CONFIG_HID_MULTITOUCH=m
CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
@@ -4523,10 +4546,9 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
#
# Miscellaneous USB options
#
+CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
-# CONFIG_USB_DWC3 is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4542,6 +4564,7 @@ CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_ISP1760_HCD=m
@@ -4549,7 +4572,6 @@ CONFIG_USB_ISP1362_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_SSB=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
-CONFIG_USB_EHCI_HCD_PLATFORM=m
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -4563,10 +4585,6 @@ CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
CONFIG_USB_HCD_BCMA=m
CONFIG_USB_HCD_SSB=m
-CONFIG_USB_CHIPIDEA=m
-# CONFIG_USB_CHIPIDEA_HOST is not set
-# CONFIG_USB_CHIPIDEA_DEBUG is not set
-CONFIG_USB_CHIPIDEA_PCI=y
#
# USB Device Class drivers
@@ -4605,6 +4623,10 @@ CONFIG_USB_STORAGE_ENE_UB6250=m
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
+# CONFIG_USB_DWC3 is not set
+CONFIG_USB_CHIPIDEA=m
+# CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_CHIPIDEA_PCI=y
#
# USB port drivers
@@ -4664,6 +4686,7 @@ CONFIG_USB_SERIAL_OPTICON=m
CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
CONFIG_USB_SERIAL_XSENS_MT=m
CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_WISHBONE=m
CONFIG_USB_SERIAL_ZTE=m
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_QT2=m
@@ -4695,27 +4718,22 @@ CONFIG_USB_ISIGHTFW=m
CONFIG_USB_YUREX=m
CONFIG_USB_EZUSB_FX2=m
CONFIG_USB_HSIC_USB3503=m
-
-#
-# USB Physical Layer drivers
-#
-# CONFIG_OMAP_USB3 is not set
-# CONFIG_OMAP_CONTROL_USB is not set
-CONFIG_USB_ISP1301=m
-CONFIG_USB_RCAR_PHY=m
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_USB_PHY=y
# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_OMAP_CONTROL_USB is not set
+# CONFIG_OMAP_USB3 is not set
+# CONFIG_SAMSUNG_USBPHY is not set
+# CONFIG_SAMSUNG_USB2PHY is not set
+# CONFIG_SAMSUNG_USB3PHY is not set
+# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_USB_ISP1301=m
+CONFIG_USB_RCAR_PHY=m
+# CONFIG_USB_GADGET is not set
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
@@ -4784,6 +4802,7 @@ CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP55XX_COMMON=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_LP5562=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
CONFIG_LEDS_PCA9633=m
@@ -4796,11 +4815,11 @@ CONFIG_LEDS_TCA6507=m
CONFIG_LEDS_LM355x=m
CONFIG_LEDS_OT200=m
CONFIG_LEDS_BLINKM=m
-CONFIG_LEDS_TRIGGERS=y
#
# LED Triggers
#
+CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
@@ -4813,6 +4832,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# iptables trigger is under Netfilter config (LED target)
#
CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
# CONFIG_ACCESSIBILITY is not set
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
@@ -4837,6 +4857,7 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y
CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SRPT=m
CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
@@ -4942,6 +4963,7 @@ CONFIG_INTEL_IOATDMA=m
CONFIG_TIMB_DMA=m
CONFIG_PCH_DMA=m
CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ACPI=y
#
# DMA Clients
@@ -4964,6 +4986,7 @@ CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
+CONFIG_VIRT_DRIVERS=y
#
# Microsoft Hyper-V guest support
@@ -5030,7 +5053,7 @@ CONFIG_XEN_SELFBALLOONING=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_TMEM=y
+CONFIG_XEN_TMEM=m
CONFIG_XEN_PCIDEV_BACKEND=m
#
@@ -5078,9 +5101,9 @@ CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
CONFIG_DX_SEP=m
+CONFIG_ZSMALLOC=y
CONFIG_ZRAM=m
# CONFIG_ZRAM_DEBUG is not set
-CONFIG_ZSMALLOC=y
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
@@ -5125,15 +5148,8 @@ CONFIG_DT3155_CCIR=y
CONFIG_DT3155_STREAMING=y
CONFIG_VIDEO_GO7007=m
CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_LOADER=m
CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
-CONFIG_VIDEO_GO7007_OV7640=m
-CONFIG_VIDEO_GO7007_SAA7113=m
-CONFIG_VIDEO_GO7007_SAA7115=m
-CONFIG_VIDEO_GO7007_TW9903=m
-CONFIG_VIDEO_GO7007_UDA1342=m
-CONFIG_VIDEO_GO7007_SONY_TUNER=m
-CONFIG_VIDEO_GO7007_TW2804=m
-CONFIG_SOLO6X10=m
CONFIG_LIRC_STAGING=y
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IGORPLUGUSB=m
@@ -5165,6 +5181,8 @@ CONFIG_CED1401=m
CONFIG_DGRP=m
CONFIG_FIREWIRE_SERIAL=m
CONFIG_ZCACHE=y
+# CONFIG_ZCACHE_DEBUG is not set
+# CONFIG_USB_DWC2 is not set
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -5224,7 +5242,6 @@ CONFIG_CLKBLD_I8253=y
#
# Rpmsg drivers
#
-CONFIG_VIRT_DRIVERS=y
# CONFIG_PM_DEVFREQ is not set
CONFIG_EXTCON=m
@@ -5256,15 +5273,13 @@ CONFIG_PWM=y
CONFIG_IPACK_BUS=m
CONFIG_BOARD_TPCI200=m
CONFIG_SERIAL_IPOCTAL=m
+# CONFIG_RESET_CONTROLLER is not set
#
# Firmware Drivers
#
CONFIG_EDD=m
-# CONFIG_EDD_OFF is not set
CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_EFI_VARS=m
-# CONFIG_EFI_VARS_PSTORE is not set
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
CONFIG_DMIID=y
@@ -5274,6 +5289,12 @@ CONFIG_ISCSI_IBFT=m
# CONFIG_GOOGLE_FIRMWARE is not set
#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=m
+# CONFIG_EFI_VARS_PSTORE is not set
+
+#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
@@ -5302,6 +5323,7 @@ CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
CONFIG_GFS2_FS=m
# CONFIG_GFS2_FS_LOCKING_DLM is not set
@@ -5314,6 +5336,8 @@ CONFIG_OCFS2_FS_STATS=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
CONFIG_NILFS2_FS=m
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
@@ -5450,6 +5474,7 @@ CONFIG_F2FS_FS=m
CONFIG_F2FS_STAT_FS=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_EFIVAR_FS=m
CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
@@ -5652,6 +5677,8 @@ CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
CONFIG_PM_NOTIFIER_ERROR_INJECT=m
# CONFIG_FAULT_INJECTION is not set
CONFIG_LATENCYTOP=y
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
@@ -5679,6 +5706,7 @@ CONFIG_FTRACE=y
# CONFIG_SCHED_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
CONFIG_TRACER_SNAPSHOT=y
+CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
@@ -5689,6 +5717,7 @@ CONFIG_UPROBE_EVENT=y
CONFIG_PROBE_EVENTS=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
CONFIG_RBTREE_TEST=m
CONFIG_INTERVAL_TREE_TEST=m
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
@@ -5701,6 +5730,7 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
+# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_STRICT_DEVMEM is not set
CONFIG_EARLY_PRINTK=y
@@ -5711,7 +5741,7 @@ CONFIG_DEBUG_RODATA=y
# CONFIG_DEBUG_RODATA_TEST is not set
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_NX_TEST is not set
-# CONFIG_IOMMU_STRESS is not set
+# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
@@ -5724,7 +5754,6 @@ CONFIG_IO_DELAY_0X80=y
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_CPA_DEBUG is not set
CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
#
@@ -5771,8 +5800,6 @@ CONFIG_ASYNC_MEMCPY=m
CONFIG_ASYNC_XOR=m
CONFIG_ASYNC_PQ=m
CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
-CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
CONFIG_CRYPTO=y
#
@@ -5825,6 +5852,7 @@ CONFIG_CRYPTO_XTS=m
#
# Hash modes
#
+CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m
diff --git a/config/x86_64/debug b/config/x86_64/debug
index 5fbd8a1524..e20a66c5f1 100644
--- a/config/x86_64/debug
+++ b/config/x86_64/debug
@@ -340,6 +340,7 @@ CONFIG_SMP=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_EXTENDED_PLATFORM=y
+# CONFIG_X86_64_XEN is not set
# CONFIG_X86_NUMACHIP is not set
# CONFIG_X86_VSMP is not set
CONFIG_X86_UV=y
@@ -349,8 +350,7 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_PARAVIRT_XEN is not set
CONFIG_KVM_GUEST=y
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
diff --git a/config/x86_64/default b/config/x86_64/default
index 92b7f96341..8f7cb35290 100644
--- a/config/x86_64/default
+++ b/config/x86_64/default
@@ -345,6 +345,7 @@ CONFIG_SMP=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_EXTENDED_PLATFORM=y
+# CONFIG_X86_64_XEN is not set
# CONFIG_X86_NUMACHIP is not set
# CONFIG_X86_VSMP is not set
CONFIG_X86_UV=y
@@ -354,8 +355,7 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_PARAVIRT_XEN is not set
CONFIG_KVM_GUEST=y
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
diff --git a/config/x86_64/desktop b/config/x86_64/desktop
index fe9954afc6..1d7311348c 100644
--- a/config/x86_64/desktop
+++ b/config/x86_64/desktop
@@ -343,6 +343,7 @@ CONFIG_SMP=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_EXTENDED_PLATFORM=y
+# CONFIG_X86_64_XEN is not set
# CONFIG_X86_NUMACHIP is not set
# CONFIG_X86_VSMP is not set
CONFIG_X86_UV=y
@@ -352,8 +353,7 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_PARAVIRT_XEN is not set
CONFIG_KVM_GUEST=y
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
diff --git a/config/x86_64/ec2 b/config/x86_64/ec2
index 6f8e993f2e..c9b6ecee44 100644
--- a/config/x86_64/ec2
+++ b/config/x86_64/ec2
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.9.3 Kernel Configuration
+# Linux/x86_64 3.10.0-rc4 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -20,7 +20,6 @@ CONFIG_GENERIC_HWEIGHT=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -76,6 +75,7 @@ CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -86,6 +86,10 @@ CONFIG_GENERIC_CMOS_UPDATE=y
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
@@ -160,14 +164,14 @@ CONFIG_RD_LZO=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
-# CONFIG_EXPERT is not set
CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HOTPLUG=y
+# CONFIG_EXPERT is not set
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
-CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
@@ -306,6 +310,7 @@ CONFIG_FREEZER=y
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_64_XEN=y
+CONFIG_PARAVIRT_CLOCK=y
CONFIG_NO_BOOTMEM=y
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
@@ -396,6 +401,7 @@ CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
@@ -440,6 +446,7 @@ CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IP_TUNNEL=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
@@ -684,7 +691,7 @@ CONFIG_IP_VS_NQ=m
#
# IPVS SH scheduler
#
-CONFIG_IP_VS_SH_TAB_BITS=12
+CONFIG_IP_VS_SH_TAB_BITS=8
#
# IPVS application helper
@@ -831,7 +838,6 @@ CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
CONFIG_X25=m
CONFIG_LAPB=m
CONFIG_PHONET=m
@@ -906,9 +912,12 @@ CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
+# CONFIG_BATMAN_ADV_NC is not set
CONFIG_BATMAN_ADV_DEBUG=y
# CONFIG_OPENVSWITCH is not set
CONFIG_VSOCKETS=m
+CONFIG_NETLINK_MMAP=y
+CONFIG_NETLINK_DIAG=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
@@ -1023,8 +1032,10 @@ CONFIG_BLK_DEV_RBD=m
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
+CONFIG_DUMMY_IRQ=m
# CONFIG_ATMEL_SSC is not set
# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_SRAM is not set
# CONFIG_C2PORT is not set
#
@@ -1060,6 +1071,10 @@ CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_EDEBUG is not set
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=m
@@ -1096,6 +1111,7 @@ CONFIG_IFB=m
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_LOADBALANCE=m
CONFIG_MACVLAN=m
@@ -1237,8 +1253,6 @@ CONFIG_FIX_EARLYCON_MEM=y
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_MWAVE is not set
CONFIG_RAW_DRIVER=m
@@ -1253,6 +1267,11 @@ CONFIG_TCG_XEN=m
CONFIG_CRASHER=m
# CONFIG_I2C is not set
# CONFIG_SPI is not set
+
+#
+# Qualcomm MSM SSBI bus support
+#
+# CONFIG_SSBI is not set
# CONFIG_HSI is not set
#
@@ -1332,11 +1351,13 @@ CONFIG_BCMA_POSSIBLE=y
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_SM501 is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_TMIO is not set
-# CONFIG_ABX500_CORE is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
@@ -1359,7 +1380,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_WMT_GE_ROPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
@@ -1397,10 +1417,6 @@ CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_LOGO is not set
-
-#
-# Bootsplash configuration
-#
# CONFIG_SOUND is not set
#
@@ -1414,6 +1430,56 @@ CONFIG_HID_GENERIC=m
#
# Special HID drivers
#
+CONFIG_HID_A4TECH=m
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=m
+# CONFIG_HID_AUREAL is not set
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+CONFIG_HID_EZKEY=m
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_TWINHAN is not set
+CONFIG_HID_KENSINGTON=m
+# CONFIG_HID_LCPOWER is not set
+CONFIG_HID_LOGITECH=m
+# CONFIG_HID_LOGITECH_DJ is not set
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_PS3REMOTE is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
# CONFIG_USB_ARCH_HAS_XHCI is not set
@@ -1421,24 +1487,21 @@ CONFIG_USB_SUPPORT=y
# CONFIG_USB_ARCH_HAS_HCD is not set
#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+# USB port drivers
#
-# CONFIG_OMAP_USB3 is not set
-# CONFIG_OMAP_CONTROL_USB is not set
+# CONFIG_USB_PHY is not set
# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
+CONFIG_VIRT_DRIVERS=y
#
# Microsoft Hyper-V guest support
@@ -1484,7 +1547,7 @@ CONFIG_XEN_SELFBALLOONING=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_TMEM=y
+CONFIG_XEN_TMEM=m
CONFIG_XEN_PRIVCMD=y
# CONFIG_STAGING is not set
# CONFIG_X86_PLATFORM_DEVICES is not set
@@ -1497,13 +1560,13 @@ CONFIG_XEN_PRIVCMD=y
#
# Rpmsg drivers
#
-CONFIG_VIRT_DRIVERS=y
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_PWM is not set
# CONFIG_IPACK_BUS is not set
+# CONFIG_RESET_CONTROLLER is not set
#
# File systems
@@ -1534,6 +1597,7 @@ CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
CONFIG_GFS2_FS=m
# CONFIG_GFS2_FS_LOCKING_DLM is not set
@@ -1546,6 +1610,8 @@ CONFIG_OCFS2_FS_STATS=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
CONFIG_NILFS2_FS=m
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
@@ -1816,7 +1882,8 @@ CONFIG_STACKTRACE=y
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
# CONFIG_DEBUG_WRITECOUNT is not set
@@ -1851,6 +1918,8 @@ CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
CONFIG_PM_NOTIFIER_ERROR_INJECT=m
# CONFIG_FAULT_INJECTION is not set
CONFIG_LATENCYTOP=y
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
@@ -1869,6 +1938,7 @@ CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
@@ -1878,6 +1948,7 @@ CONFIG_FTRACE=y
# CONFIG_SCHED_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
CONFIG_TRACER_SNAPSHOT=y
+CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
@@ -1888,6 +1959,7 @@ CONFIG_UPROBE_EVENT=y
CONFIG_PROBE_EVENTS=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
CONFIG_RBTREE_TEST=m
CONFIG_INTERVAL_TREE_TEST=m
# CONFIG_BUILD_DOCSRC is not set
@@ -1898,6 +1970,7 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
+# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
CONFIG_STRICT_DEVMEM=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1907,7 +1980,6 @@ CONFIG_DEBUG_RODATA=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_NX_TEST is not set
# CONFIG_DEBUG_TLBFLUSH is not set
-# CONFIG_IOMMU_STRESS is not set
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
@@ -1920,7 +1992,6 @@ CONFIG_IO_DELAY_0X80=y
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_CPA_DEBUG is not set
CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
#
# Security options
@@ -2012,6 +2083,7 @@ CONFIG_CRYPTO_XTS=m
#
# Hash modes
#
+CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_HMAC=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m
@@ -2020,7 +2092,6 @@ CONFIG_CRYPTO_VMAC=m
# Digest
#
CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32C_X86_64=y
CONFIG_CRYPTO_CRC32C_INTEL=m
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
@@ -2034,6 +2105,8 @@ CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
@@ -2051,9 +2124,11 @@ CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_BLOWFISH_COMMON=m
CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_BLOWFISH_AVX2_X86_64=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAMELLIA_X86_64=m
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
CONFIG_CRYPTO_CAST_COMMON=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST5_AVX_X86_64=m
@@ -2068,12 +2143,14 @@ CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
CONFIG_CRYPTO_TEA=m
# CONFIG_CRYPTO_TWOFISH is not set
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_TWOFISH_AVX2_X86_64=m
#
# Compression
diff --git a/config/x86_64/trace b/config/x86_64/trace
index 9de670ec54..4b010b495e 100644
--- a/config/x86_64/trace
+++ b/config/x86_64/trace
@@ -346,6 +346,7 @@ CONFIG_SMP=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_EXTENDED_PLATFORM=y
+# CONFIG_X86_64_XEN is not set
# CONFIG_X86_NUMACHIP is not set
# CONFIG_X86_VSMP is not set
CONFIG_X86_UV=y
@@ -355,8 +356,7 @@ CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_PARAVIRT_SPINLOCKS is not set
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_PARAVIRT_XEN is not set
CONFIG_KVM_GUEST=y
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
diff --git a/config/x86_64/xen b/config/x86_64/xen
index d38f0ba38f..95d9f22383 100644
--- a/config/x86_64/xen
+++ b/config/x86_64/xen
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.9.3 Kernel Configuration
+# Linux/x86_64 3.10.0-rc4 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -18,12 +18,10 @@ CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_GPIO=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -88,6 +86,7 @@ CONFIG_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -98,15 +97,19 @@ CONFIG_GENERIC_CMOS_UPDATE=y
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+# CONFIG_NO_HZ_IDLE is not set
+CONFIG_NO_HZ_FULL=y
+CONFIG_NO_HZ_FULL_ALL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
#
# CPU/Task time and stats accounting
#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
@@ -120,13 +123,16 @@ CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
CONFIG_RCU_STALL_COMMON=y
-# CONFIG_RCU_USER_QS is not set
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_RCU_USER_QS=y
+CONFIG_CONTEXT_TRACKING_FORCE=y
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_RCU_NOCB_CPU is not set
+CONFIG_RCU_NOCB_CPU=y
+CONFIG_RCU_NOCB_CPU_ALL=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
@@ -172,19 +178,19 @@ CONFIG_RD_LZO=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
-# CONFIG_EXPERT is not set
CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HOTPLUG=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+# CONFIG_EXPERT is not set
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
-CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
@@ -193,6 +199,7 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
+CONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
@@ -202,7 +209,6 @@ CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
@@ -325,6 +331,7 @@ CONFIG_X86_MPPARSE=y
CONFIG_X86_64_XEN=y
# CONFIG_X86_INTEL_LPSS is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_PARAVIRT_CLOCK=y
CONFIG_NO_BOOTMEM=y
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
@@ -448,10 +455,9 @@ CONFIG_ACPI_CUSTOM_DSDT_FILE=""
CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_DEBUG=y
-# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
@@ -521,8 +527,6 @@ CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_PCCARD_NONSTATIC=y
CONFIG_HOTPLUG_PCI=m
-CONFIG_HOTPLUG_PCI_ACPI=m
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
@@ -533,6 +537,7 @@ CONFIG_RAPIDIO_DISC_TIMEOUT=30
CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS=y
CONFIG_RAPIDIO_DMA_ENGINE=y
CONFIG_RAPIDIO_DEBUG=y
+CONFIG_RAPIDIO_ENUM_BASIC=m
CONFIG_RAPIDIO_TSI57X=y
CONFIG_RAPIDIO_CPS_XX=y
CONFIG_RAPIDIO_TSI568=y
@@ -546,6 +551,7 @@ CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
@@ -591,6 +597,7 @@ CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IP_TUNNEL=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
@@ -988,7 +995,6 @@ CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
CONFIG_X25=m
CONFIG_LAPB=m
CONFIG_PHONET=m
@@ -1064,9 +1070,12 @@ CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
+# CONFIG_BATMAN_ADV_NC is not set
CONFIG_BATMAN_ADV_DEBUG=y
CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
+CONFIG_NETLINK_MMAP=y
+CONFIG_NETLINK_DIAG=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
@@ -1242,7 +1251,6 @@ CONFIG_NFC=m
CONFIG_NFC_NCI=m
CONFIG_NFC_HCI=m
CONFIG_NFC_SHDLC=y
-CONFIG_NFC_LLCP=y
#
# Near Field Communication (NFC) devices
@@ -1297,8 +1305,6 @@ CONFIG_MTD_AR7_PARTS=m
#
# User Modules And Translation Layers
#
-CONFIG_MTD_CHAR=m
-CONFIG_HAVE_MTD_OTP=y
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
@@ -1386,25 +1392,15 @@ CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
#
-CONFIG_MTD_DOC2000=m
-CONFIG_MTD_DOC2001=m
-CONFIG_MTD_DOC2001PLUS=m
CONFIG_MTD_DOCG3=m
CONFIG_BCH_CONST_M=14
CONFIG_BCH_CONST_T=4
-CONFIG_MTD_DOCPROBE=m
-CONFIG_MTD_DOCECC=m
-CONFIG_MTD_DOCPROBE_ADVANCED=y
-CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
-CONFIG_MTD_DOCPROBE_HIGH=y
-CONFIG_MTD_DOCPROBE_55AA=y
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
CONFIG_MTD_NAND=m
CONFIG_MTD_NAND_BCH=m
CONFIG_MTD_NAND_ECC_BCH=y
CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_MUSEUM_IDS=y
# CONFIG_MTD_NAND_DENALI is not set
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_RICOH=m
@@ -1423,7 +1419,6 @@ CONFIG_MTD_ONENAND_VERIFY_WRITE=y
CONFIG_MTD_ONENAND_GENERIC=m
CONFIG_MTD_ONENAND_OTP=y
CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_ONENAND_SIM=m
#
# LPDDR flash memory drivers
@@ -1517,6 +1512,7 @@ CONFIG_BLK_DEV_RSXX=m
CONFIG_SENSORS_LIS3LV02D=m
CONFIG_AD525X_DPOT=m
CONFIG_AD525X_DPOT_I2C=m
+CONFIG_DUMMY_IRQ=m
CONFIG_IBM_ASM=m
CONFIG_PHANTOM=m
CONFIG_SGI_IOC4=m
@@ -1542,6 +1538,7 @@ CONFIG_BMP085=y
CONFIG_BMP085_I2C=m
CONFIG_PCH_PHUB=m
CONFIG_USB_SWITCH_FSA9480=m
+# CONFIG_SRAM is not set
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@@ -1566,7 +1563,7 @@ CONFIG_SENSORS_LIS3_I2C=m
# Altera FPGA firmware download module
#
CONFIG_ALTERA_STAPL=m
-CONFIG_INTEL_MEI=m
+CONFIG_INTEL_MEI=y
CONFIG_INTEL_MEI_ME=y
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -1659,6 +1656,7 @@ CONFIG_SCSI_MPT3SAS_MAX_SGE=128
# CONFIG_SCSI_MPT3SAS_LOGGING is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_LIBFC=m
@@ -1826,6 +1824,10 @@ CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_EDEBUG is not set
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=m
@@ -1898,6 +1900,7 @@ CONFIG_IFB=m
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_LOADBALANCE=m
CONFIG_MACVLAN=m
@@ -2097,6 +2100,7 @@ CONFIG_YELLOWFIN=m
CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_QLA3XXX=m
CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
CONFIG_NETXEN_NIC=m
CONFIG_NET_VENDOR_REALTEK=y
@@ -2130,8 +2134,6 @@ CONFIG_STMMAC_PLATFORM=y
CONFIG_STMMAC_PCI=y
# CONFIG_STMMAC_DEBUG_FS is not set
# CONFIG_STMMAC_DA is not set
-CONFIG_STMMAC_RING=y
-# CONFIG_STMMAC_CHAINED is not set
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
@@ -2211,6 +2213,7 @@ CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_AX88179_178A=m
@@ -2290,6 +2293,7 @@ CONFIG_ATH6KL=m
CONFIG_ATH6KL_SDIO=m
CONFIG_ATH6KL_USB=m
# CONFIG_ATH6KL_DEBUG is not set
+# CONFIG_ATH6KL_TRACING is not set
CONFIG_AR5523=m
CONFIG_WIL6210=m
CONFIG_WIL6210_ISR_COR=y
@@ -2345,6 +2349,7 @@ CONFIG_LIBIPW_DEBUG=y
CONFIG_IWLWIFI=m
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
#
# Debugging Options
@@ -2397,6 +2402,7 @@ CONFIG_RT2800USB=m
CONFIG_RT2800USB_RT33XX=y
CONFIG_RT2800USB_RT35XX=y
CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
CONFIG_RT2800USB_UNKNOWN=y
CONFIG_RT2800_LIB=m
CONFIG_RT2X00_LIB_MMIO=m
@@ -2414,6 +2420,7 @@ CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
CONFIG_RTL8192DE=m
CONFIG_RTL8723AE=m
+CONFIG_RTL8188EE=m
CONFIG_RTL8192CU=m
CONFIG_RTL8192C_COMMON=m
CONFIG_WL_TI=y
@@ -2598,7 +2605,7 @@ CONFIG_ISDN_HDLC=m
# Input device support
#
CONFIG_INPUT=y
-CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_MATRIXKMAP=m
@@ -2639,6 +2646,7 @@ CONFIG_KEYBOARD_OPENCORES=m
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_KEYBOARD_SUNKBD=m
CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYBOARD_CROS_EC=m
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
@@ -2779,6 +2787,7 @@ CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_IMS_PCU=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
@@ -2987,6 +2996,11 @@ CONFIG_I2C_STUB=m
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set
+
+#
+# Qualcomm MSM SSBI bus support
+#
+CONFIG_SSBI=m
CONFIG_HSI=m
CONFIG_HSI_BOARDINFO=y
@@ -3096,6 +3110,7 @@ CONFIG_W1_MASTER_GPIO=m
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
CONFIG_W1_SLAVE_DS2413=m
CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
@@ -3146,6 +3161,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7X10=m
CONFIG_SENSORS_ADT7410=m
CONFIG_SENSORS_ADT7411=m
CONFIG_SENSORS_ADT7462=m
@@ -3191,6 +3207,7 @@ CONFIG_SENSORS_LTC4151=m
CONFIG_SENSORS_LTC4215=m
CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95234=m
CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_MAX16065=m
@@ -3202,6 +3219,7 @@ CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
@@ -3363,31 +3381,36 @@ CONFIG_BCMA_DRIVER_GPIO=y
# Multifunction device drivers
#
CONFIG_MFD_CORE=m
-# CONFIG_MFD_SM501 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_I2C=m
+# CONFIG_MFD_MC13XXX_I2C is not set
CONFIG_HTC_PASIC3=m
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+# CONFIG_MFD_JANZ_CMODIO is not set
+CONFIG_MFD_VIPERBOARD=m
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
# CONFIG_UCB1400_CORE is not set
-CONFIG_MFD_LM3533=m
+# CONFIG_MFD_RDC321X is not set
+CONFIG_MFD_RTSX_PCI=m
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
+CONFIG_MFD_TI_AM335X_TSCADC=m
# CONFIG_TPS6105X is not set
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
# CONFIG_MFD_TPS65217 is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13XXX_I2C is not set
-# CONFIG_ABX500_CORE is not set
-CONFIG_MFD_CS5535=m
+# CONFIG_MFD_TPS65912 is not set
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_LM3533=m
# CONFIG_MFD_TIMBERDALE is not set
-CONFIG_LPC_SCH=m
-CONFIG_LPC_ICH=m
-# CONFIG_MFD_RDC321X is not set
-# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_TMIO is not set
CONFIG_MFD_VX855=m
-CONFIG_MFD_WL1273_CORE=m
-CONFIG_MFD_VIPERBOARD=m
-# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=m
@@ -3573,7 +3596,6 @@ CONFIG_DVB_USB_FRIIO=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
CONFIG_DVB_USB_V2=m
-CONFIG_DVB_USB_CYPRESS_FIRMWARE=m
CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_AF9035=m
CONFIG_DVB_USB_ANYSEE=m
@@ -3724,11 +3746,13 @@ CONFIG_MEDIA_COMMON_OPTIONS=y
CONFIG_VIDEO_CX2341X=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_TVEEPROM=m
+CONFIG_CYPRESS_FIRMWARE=m
CONFIG_DVB_B2C2_FLEXCOP=m
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
+# CONFIG_SMS_SIANO_DEBUGFS is not set
#
# Media ancillary drivers (tuners, sensors, i2c, frontends)
@@ -3747,9 +3771,11 @@ CONFIG_VIDEO_TEA6420=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_CS5345=m
CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_UDA1342=m
CONFIG_VIDEO_WM8775=m
CONFIG_VIDEO_WM8739=m
CONFIG_VIDEO_VP27SMPX=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
#
# RDS decoders
@@ -3767,6 +3793,9 @@ CONFIG_VIDEO_KS0127=m
CONFIG_VIDEO_SAA7110=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
CONFIG_VIDEO_VPX3220=m
#
@@ -3786,6 +3815,7 @@ CONFIG_VIDEO_ADV7175=m
#
# Camera sensor devices
#
+CONFIG_VIDEO_OV7640=m
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_MT9V011=m
@@ -3855,6 +3885,8 @@ CONFIG_MEDIA_TUNER_TDA18212=m
CONFIG_MEDIA_TUNER_E4000=m
CONFIG_MEDIA_TUNER_FC2580=m
CONFIG_MEDIA_TUNER_TUA9001=m
+CONFIG_MEDIA_TUNER_IT913X=m
+CONFIG_MEDIA_TUNER_R820T=m
#
# Multistandard (satellite) frontends
@@ -4029,6 +4061,7 @@ CONFIG_DRM_UDL=m
CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
CONFIG_DRM_CIRRUS_QEMU=m
+# CONFIG_DRM_QXL is not set
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_HDMI=y
@@ -4045,7 +4078,6 @@ CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=m
-# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_HECUBA=m
CONFIG_FB_SVGALIB=m
@@ -4170,11 +4202,6 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_LOGO is not set
-
-#
-# Bootsplash configuration
-#
-CONFIG_BOOTSPLASH=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
@@ -4366,7 +4393,8 @@ CONFIG_AC97_BUS=m
#
# HID support
#
-CONFIG_HID=m
+CONFIG_HID=y
+# CONFIG_HID_BATTERY_STRENGTH is not set
CONFIG_HIDRAW=y
CONFIG_UHID=m
CONFIG_HID_GENERIC=m
@@ -4374,21 +4402,22 @@ CONFIG_HID_GENERIC=m
#
# Special HID drivers
#
-CONFIG_HID_A4TECH=m
+CONFIG_HID_A4TECH=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
+CONFIG_HID_APPLE=y
+CONFIG_HID_APPLEIR=m
CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
+CONFIG_HID_BELKIN=y
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CYPRESS=m
+CONFIG_HID_CYPRESS=y
CONFIG_HID_DRAGONRISE=m
CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
-CONFIG_HID_EZKEY=m
+CONFIG_HID_EZKEY=y
CONFIG_HID_HOLTEK=m
CONFIG_HOLTEK_FF=y
CONFIG_HID_KEYTOUCH=m
@@ -4398,18 +4427,18 @@ CONFIG_HID_WALTOP=m
CONFIG_HID_GYRATION=m
CONFIG_HID_ICADE=m
CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
+CONFIG_HID_KENSINGTON=y
CONFIG_HID_LCPOWER=m
CONFIG_HID_LENOVO_TPKBD=m
-CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH=y
CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
CONFIG_HID_MULTITOUCH=m
CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
@@ -4472,10 +4501,9 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
#
# Miscellaneous USB options
#
+CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
-# CONFIG_USB_DWC3 is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4491,6 +4519,7 @@ CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_ISP1760_HCD=m
@@ -4498,7 +4527,6 @@ CONFIG_USB_ISP1362_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_SSB=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
-CONFIG_USB_EHCI_HCD_PLATFORM=m
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -4512,10 +4540,6 @@ CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
CONFIG_USB_HCD_BCMA=m
CONFIG_USB_HCD_SSB=m
-CONFIG_USB_CHIPIDEA=m
-# CONFIG_USB_CHIPIDEA_HOST is not set
-# CONFIG_USB_CHIPIDEA_DEBUG is not set
-CONFIG_USB_CHIPIDEA_PCI=y
#
# USB Device Class drivers
@@ -4554,6 +4578,10 @@ CONFIG_USB_STORAGE_ENE_UB6250=m
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
+# CONFIG_USB_DWC3 is not set
+CONFIG_USB_CHIPIDEA=m
+# CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_CHIPIDEA_PCI=y
#
# USB port drivers
@@ -4613,6 +4641,7 @@ CONFIG_USB_SERIAL_OPTICON=m
CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
CONFIG_USB_SERIAL_XSENS_MT=m
CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_WISHBONE=m
CONFIG_USB_SERIAL_ZTE=m
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_QT2=m
@@ -4644,27 +4673,22 @@ CONFIG_USB_ISIGHTFW=m
CONFIG_USB_YUREX=m
CONFIG_USB_EZUSB_FX2=m
CONFIG_USB_HSIC_USB3503=m
-
-#
-# USB Physical Layer drivers
-#
-# CONFIG_OMAP_USB3 is not set
-# CONFIG_OMAP_CONTROL_USB is not set
-CONFIG_USB_ISP1301=m
-CONFIG_USB_RCAR_PHY=m
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_USB_PHY=y
# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_OMAP_CONTROL_USB is not set
+# CONFIG_OMAP_USB3 is not set
+# CONFIG_SAMSUNG_USBPHY is not set
+# CONFIG_SAMSUNG_USB2PHY is not set
+# CONFIG_SAMSUNG_USB3PHY is not set
+# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_USB_ISP1301=m
+CONFIG_USB_RCAR_PHY=m
+# CONFIG_USB_GADGET is not set
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
@@ -4731,6 +4755,7 @@ CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP55XX_COMMON=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_LP5562=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
CONFIG_LEDS_PCA9633=m
@@ -4743,11 +4768,11 @@ CONFIG_LEDS_TCA6507=m
CONFIG_LEDS_LM355x=m
CONFIG_LEDS_OT200=m
CONFIG_LEDS_BLINKM=m
-CONFIG_LEDS_TRIGGERS=y
#
# LED Triggers
#
+CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
@@ -4760,6 +4785,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# iptables trigger is under Netfilter config (LED target)
#
CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
# CONFIG_ACCESSIBILITY is not set
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
@@ -4785,6 +4811,7 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y
CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SRPT=m
CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
@@ -4886,6 +4913,7 @@ CONFIG_INTEL_IOATDMA=m
CONFIG_TIMB_DMA=m
CONFIG_PCH_DMA=m
CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ACPI=y
#
# DMA Clients
@@ -4908,6 +4936,7 @@ CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
+CONFIG_VIRT_DRIVERS=y
#
# Microsoft Hyper-V guest support
@@ -4974,7 +5003,7 @@ CONFIG_XEN_SELFBALLOONING=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_TMEM=y
+CONFIG_XEN_TMEM=m
CONFIG_XEN_PCIDEV_BACKEND=m
#
@@ -5022,9 +5051,9 @@ CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
CONFIG_DX_SEP=m
+CONFIG_ZSMALLOC=y
CONFIG_ZRAM=m
# CONFIG_ZRAM_DEBUG is not set
-CONFIG_ZSMALLOC=y
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
@@ -5069,15 +5098,8 @@ CONFIG_DT3155_CCIR=y
CONFIG_DT3155_STREAMING=y
CONFIG_VIDEO_GO7007=m
CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_LOADER=m
CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
-CONFIG_VIDEO_GO7007_OV7640=m
-CONFIG_VIDEO_GO7007_SAA7113=m
-CONFIG_VIDEO_GO7007_SAA7115=m
-CONFIG_VIDEO_GO7007_TW9903=m
-CONFIG_VIDEO_GO7007_UDA1342=m
-CONFIG_VIDEO_GO7007_SONY_TUNER=m
-CONFIG_VIDEO_GO7007_TW2804=m
-CONFIG_SOLO6X10=m
CONFIG_LIRC_STAGING=y
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IGORPLUGUSB=m
@@ -5109,6 +5131,8 @@ CONFIG_CED1401=m
CONFIG_DGRP=m
CONFIG_FIREWIRE_SERIAL=m
CONFIG_ZCACHE=y
+# CONFIG_ZCACHE_DEBUG is not set
+# CONFIG_USB_DWC2 is not set
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -5167,7 +5191,6 @@ CONFIG_CLKBLD_I8253=y
#
# Rpmsg drivers
#
-CONFIG_VIRT_DRIVERS=y
# CONFIG_PM_DEVFREQ is not set
CONFIG_EXTCON=m
@@ -5200,15 +5223,13 @@ CONFIG_PWM=y
CONFIG_IPACK_BUS=m
CONFIG_BOARD_TPCI200=m
CONFIG_SERIAL_IPOCTAL=m
+# CONFIG_RESET_CONTROLLER is not set
#
# Firmware Drivers
#
CONFIG_EDD=m
-# CONFIG_EDD_OFF is not set
CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_EFI_VARS=m
-# CONFIG_EFI_VARS_PSTORE is not set
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
CONFIG_DMIID=y
@@ -5218,6 +5239,12 @@ CONFIG_ISCSI_IBFT=m
# CONFIG_GOOGLE_FIRMWARE is not set
#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=m
+# CONFIG_EFI_VARS_PSTORE is not set
+
+#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
@@ -5246,6 +5273,7 @@ CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
CONFIG_GFS2_FS=m
# CONFIG_GFS2_FS_LOCKING_DLM is not set
@@ -5258,6 +5286,8 @@ CONFIG_OCFS2_FS_STATS=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
CONFIG_NILFS2_FS=m
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
@@ -5395,6 +5425,7 @@ CONFIG_F2FS_FS=m
CONFIG_F2FS_STAT_FS=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_EFIVAR_FS=m
CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
@@ -5596,6 +5627,8 @@ CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
CONFIG_PM_NOTIFIER_ERROR_INJECT=m
# CONFIG_FAULT_INJECTION is not set
CONFIG_LATENCYTOP=y
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
@@ -5624,6 +5657,7 @@ CONFIG_FTRACE=y
# CONFIG_SCHED_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
CONFIG_TRACER_SNAPSHOT=y
+CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
@@ -5634,6 +5668,7 @@ CONFIG_UPROBE_EVENT=y
CONFIG_PROBE_EVENTS=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
CONFIG_RBTREE_TEST=m
CONFIG_INTERVAL_TREE_TEST=m
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
@@ -5646,6 +5681,7 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
+# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_STRICT_DEVMEM is not set
CONFIG_EARLY_PRINTK=y
@@ -5657,7 +5693,6 @@ CONFIG_DEBUG_RODATA=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_NX_TEST is not set
# CONFIG_DEBUG_TLBFLUSH is not set
-# CONFIG_IOMMU_STRESS is not set
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
@@ -5670,7 +5705,6 @@ CONFIG_IO_DELAY_0X80=y
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_CPA_DEBUG is not set
CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
#
@@ -5717,8 +5751,6 @@ CONFIG_ASYNC_MEMCPY=m
CONFIG_ASYNC_XOR=m
CONFIG_ASYNC_PQ=m
CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
-CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
CONFIG_CRYPTO=y
#
@@ -5771,6 +5803,7 @@ CONFIG_CRYPTO_XTS=m
#
# Hash modes
#
+CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m
@@ -5779,7 +5812,6 @@ CONFIG_CRYPTO_VMAC=m
# Digest
#
CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32C_X86_64=y
CONFIG_CRYPTO_CRC32C_INTEL=m
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
@@ -5793,6 +5825,8 @@ CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
@@ -5810,9 +5844,11 @@ CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_BLOWFISH_COMMON=m
CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_BLOWFISH_AVX2_X86_64=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAMELLIA_X86_64=m
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
CONFIG_CRYPTO_CAST_COMMON=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST5_AVX_X86_64=m
@@ -5827,12 +5863,14 @@ CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
CONFIG_CRYPTO_TEA=m
# CONFIG_CRYPTO_TWOFISH is not set
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_TWOFISH_AVX2_X86_64=m
#
# Compression
diff --git a/patches.xen/ipv6-no-autoconf b/patches.xen/ipv6-no-autoconf
index ac3afe75b5..f71effb7b1 100644
--- a/patches.xen/ipv6-no-autoconf
+++ b/patches.xen/ipv6-no-autoconf
@@ -15,9 +15,9 @@ This patch makes autoconf (DAD and router discovery) depend on the
interface's ability to do multicast. Turning off multicast for an
interface before bringing it up will suppress autoconfiguration.
---- head.orig/net/ipv6/addrconf.c 2013-04-26 09:59:54.000000000 +0200
-+++ head/net/ipv6/addrconf.c 2013-04-26 10:02:13.000000000 +0200
-@@ -3085,6 +3085,7 @@ static void addrconf_dad_start(struct in
+--- head.orig/net/ipv6/addrconf.c 2013-05-23 08:56:51.000000000 +0200
++++ head/net/ipv6/addrconf.c 2013-05-23 15:36:32.000000000 +0200
+@@ -3184,6 +3184,7 @@ static void addrconf_dad_start(struct in
goto out;
if (dev->flags&(IFF_NOARP|IFF_LOOPBACK) ||
@@ -25,7 +25,7 @@ interface before bringing it up will suppress autoconfiguration.
idev->cnf.accept_dad < 1 ||
!(ifp->flags&IFA_F_TENTATIVE) ||
ifp->flags & IFA_F_NODAD) {
-@@ -3187,6 +3188,7 @@ static void addrconf_dad_completed(struc
+@@ -3286,6 +3287,7 @@ static void addrconf_dad_completed(struc
if (ipv6_accept_ra(ifp->idev) &&
ifp->idev->cnf.rtr_solicits > 0 &&
(dev->flags&IFF_LOOPBACK) == 0 &&
diff --git a/patches.xen/pci-guestdev b/patches.xen/pci-guestdev
index 7c7c126339..0d7f189d26 100644
--- a/patches.xen/pci-guestdev
+++ b/patches.xen/pci-guestdev
@@ -10,9 +10,27 @@ Acked-by: jbeulich@novell.com
3.8/drivers/acpi/scan.c (pnp.unique_id handling now present)
---- head.orig/Documentation/kernel-parameters.txt 2013-05-10 14:14:39.000000000 +0200
-+++ head/Documentation/kernel-parameters.txt 2013-04-26 10:02:44.000000000 +0200
-@@ -950,6 +950,24 @@ bytes respectively. Such letter suffixes
+---
+ Documentation/kernel-parameters.txt | 22
+ drivers/acpi/pci_root.c | 70 ++
+ drivers/pci/Kconfig | 14
+ drivers/pci/Makefile | 4
+ drivers/pci/guestdev.c | 882 +++++++++++++++++++++++++++++++++++
+ drivers/pci/iomulti.c | 899 ++++++++++++++++++++++++++++++++++++
+ drivers/pci/iomulti.h | 122 ++++
+ drivers/pci/pci-iomul.c | 440 +++++++++++++++++
+ drivers/pci/pci.c | 2
+ drivers/pci/pci.h | 8
+ include/linux/acpi.h | 2
+ include/linux/pci.h | 6
+ include/uapi/xen/Kbuild | 1
+ include/uapi/xen/public/Kbuild | 1
+ include/uapi/xen/public/iomulti.h | 50 ++
+ 15 files changed, 2522 insertions(+), 1 deletion(-)
+
+--- head.orig/Documentation/kernel-parameters.txt 2013-05-23 08:57:01.000000000 +0200
++++ head/Documentation/kernel-parameters.txt 2013-05-23 15:36:49.000000000 +0200
+@@ -978,6 +978,24 @@ bytes respectively. Such letter suffixes
Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
Default: 1024
@@ -37,7 +55,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.
-@@ -2618,6 +2636,10 @@ bytes respectively. Such letter suffixes
+@@ -2679,6 +2697,10 @@ bytes respectively. Such letter suffixes
Run specified binary instead of /init from the ramdisk,
used for early userspace startup. See initrd.
@@ -48,9 +66,9 @@ 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.orig/drivers/acpi/pci_root.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/acpi/pci_root.c 2013-04-26 10:02:39.000000000 +0200
-@@ -406,6 +406,41 @@ out:
+--- head.orig/drivers/acpi/pci_root.c 2013-06-04 11:48:43.000000000 +0200
++++ head/drivers/acpi/pci_root.c 2013-06-04 13:47:47.000000000 +0200
+@@ -374,6 +374,41 @@ out:
}
EXPORT_SYMBOL(acpi_pci_osc_control_set);
@@ -92,7 +110,7 @@ Acked-by: jbeulich@novell.com
static int acpi_pci_root_add(struct acpi_device *device,
const struct acpi_device_id *not_used)
{
-@@ -562,6 +597,13 @@ static int acpi_pci_root_add(struct acpi
+@@ -529,6 +564,13 @@ static int acpi_pci_root_add(struct acpi
"(_OSC support mask: 0x%02x)\n", flags);
}
@@ -106,7 +124,7 @@ Acked-by: jbeulich@novell.com
pci_acpi_add_bus_pm_notifier(device, root->bus);
if (device->wakeup.flags.run_wake)
device_set_run_wake(root->bus->bridge, true);
-@@ -762,3 +804,31 @@ void __init acpi_pci_root_hp_init(void)
+@@ -718,3 +760,31 @@ void __init acpi_pci_root_hp_init(void)
printk(KERN_DEBUG "Found %d acpi root devices\n", num);
}
@@ -138,7 +156,7 @@ Acked-by: jbeulich@novell.com
+ return FALSE;
+}
+#endif
---- head.orig/drivers/pci/Kconfig 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/pci/Kconfig 2012-12-11 04:30:57.000000000 +0100
+++ head/drivers/pci/Kconfig 2012-10-22 16:26:32.000000000 +0200
@@ -43,6 +43,20 @@ config PCI_REALLOC_ENABLE_AUTO
@@ -161,7 +179,7 @@ Acked-by: jbeulich@novell.com
config PCI_STUB
tristate "PCI Stub driver"
depends on PCI
---- head.orig/drivers/pci/Makefile 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/pci/Makefile 2013-02-19 00:58:34.000000000 +0100
+++ head/drivers/pci/Makefile 2011-01-31 14:31:28.000000000 +0100
@@ -7,6 +7,10 @@ obj-y += access.o bus.o probe.o host-br
irq.o vpd.o setup-bus.o
@@ -2086,9 +2104,9 @@ 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.orig/drivers/pci/pci.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/pci/pci.c 2013-05-10 14:15:42.000000000 +0200
-@@ -3761,7 +3761,7 @@ void pci_reassigndev_resource_alignment(
+--- head.orig/drivers/pci/pci.c 2013-05-23 08:56:16.000000000 +0200
++++ head/drivers/pci/pci.c 2013-05-23 15:37:06.000000000 +0200
+@@ -3760,7 +3760,7 @@ void pci_reassigndev_resource_alignment(
/* check if specified PCI is target device to reassign */
align = pci_specified_resource_alignment(dev);
@@ -2097,9 +2115,9 @@ Acked-by: jbeulich@novell.com
return;
if (dev->hdr_type == PCI_HEADER_TYPE_NORMAL &&
---- head.orig/drivers/pci/pci.h 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/pci/pci.h 2013-03-21 11:44:58.000000000 +0100
-@@ -315,4 +315,12 @@ static inline int pci_dev_specific_reset
+--- head.orig/drivers/pci/pci.h 2013-05-23 08:56:16.000000000 +0200
++++ head/drivers/pci/pci.h 2013-05-23 15:37:09.000000000 +0200
+@@ -312,4 +312,12 @@ static inline int pci_dev_specific_reset
}
#endif
@@ -2555,9 +2573,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.orig/include/linux/acpi.h 2013-05-10 14:14:39.000000000 +0200
-+++ head/include/linux/acpi.h 2013-01-08 08:46:56.000000000 +0100
-@@ -284,6 +284,8 @@ int acpi_check_region(resource_size_t st
+--- head.orig/include/linux/acpi.h 2013-05-23 08:57:01.000000000 +0200
++++ head/include/linux/acpi.h 2013-05-23 15:37:27.000000000 +0200
+@@ -275,6 +275,8 @@ int acpi_check_region(resource_size_t st
int acpi_resources_are_enforced(void);
@@ -2566,9 +2584,9 @@ Acked-by: jbeulich@novell.com
#ifdef CONFIG_HIBERNATION
void __init acpi_no_s4_hw_signature(void);
#endif
---- head.orig/include/linux/pci.h 2013-05-10 14:14:39.000000000 +0200
-+++ head/include/linux/pci.h 2013-04-26 10:02:31.000000000 +0200
-@@ -1862,4 +1862,10 @@ static inline struct eeh_dev *pci_dev_to
+--- head.orig/include/linux/pci.h 2013-05-23 08:56:44.000000000 +0200
++++ head/include/linux/pci.h 2013-05-23 15:37:32.000000000 +0200
+@@ -1884,4 +1884,10 @@ static inline struct eeh_dev *pci_dev_to
*/
struct pci_dev *pci_find_upstream_pcie_bridge(struct pci_dev *pdev);
@@ -2579,7 +2597,7 @@ Acked-by: jbeulich@novell.com
+#endif
+
#endif /* LINUX_PCI_H */
---- head.orig/include/uapi/xen/Kbuild 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/uapi/xen/Kbuild 2012-12-11 04:30:57.000000000 +0100
+++ head/include/uapi/xen/Kbuild 2012-10-22 16:25:23.000000000 +0200
@@ -1,3 +1,4 @@
# UAPI Header export list
diff --git a/patches.xen/pci-reserve b/patches.xen/pci-reserve
index 7a37e8505d..61e68404cc 100644
--- a/patches.xen/pci-reserve
+++ b/patches.xen/pci-reserve
@@ -8,9 +8,9 @@ by PCI hotplug.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Acked-by: jbeulich@novell.com
---- head.orig/Documentation/kernel-parameters.txt 2013-04-26 10:02:44.000000000 +0200
-+++ head/Documentation/kernel-parameters.txt 2013-04-26 10:02:50.000000000 +0200
-@@ -2332,6 +2332,13 @@ bytes respectively. Such letter suffixes
+--- head.orig/Documentation/kernel-parameters.txt 2013-05-23 15:36:49.000000000 +0200
++++ head/Documentation/kernel-parameters.txt 2013-05-23 15:37:41.000000000 +0200
+@@ -2380,6 +2380,13 @@ bytes respectively. Such letter suffixes
only look for one device below a PCIe downstream
port.
@@ -50,9 +50,9 @@ Acked-by: jbeulich@novell.com
obj-$(CONFIG_PCI_QUIRKS) += quirks.o
---- head.orig/drivers/pci/pci.h 2013-03-21 11:44:58.000000000 +0100
-+++ head/drivers/pci/pci.h 2013-03-21 11:45:17.000000000 +0100
-@@ -323,4 +323,19 @@ extern int pci_is_iomuldev(struct pci_de
+--- head.orig/drivers/pci/pci.h 2013-05-23 15:37:09.000000000 +0200
++++ head/drivers/pci/pci.h 2013-05-23 15:37:37.000000000 +0200
+@@ -320,4 +320,19 @@ extern int pci_is_iomuldev(struct pci_de
#define pci_is_iomuldev(dev) 0
#endif
@@ -212,7 +212,7 @@ Acked-by: jbeulich@novell.com
+ return 1;
+}
+__setup("pci_reserve=", pci_reserve_setup);
---- head.orig/drivers/pci/setup-bus.c 2013-04-26 09:59:54.000000000 +0200
+--- head.orig/drivers/pci/setup-bus.c 2013-05-23 08:56:16.000000000 +0200
+++ head/drivers/pci/setup-bus.c 2012-10-22 16:33:41.000000000 +0200
@@ -747,7 +747,7 @@ static void pbus_size_io(struct pci_bus
{
diff --git a/patches.xen/xen-balloon-max-target b/patches.xen/xen-balloon-max-target
index 3107892762..0d2bbe5354 100644
--- a/patches.xen/xen-balloon-max-target
+++ b/patches.xen/xen-balloon-max-target
@@ -5,9 +5,9 @@ References: 152667, 184727
jb: Also added this to the sysfs representation.
---- head.orig/drivers/xen/balloon/balloon.c 2012-06-08 11:25:24.000000000 +0200
-+++ head/drivers/xen/balloon/balloon.c 2012-06-08 11:27:49.000000000 +0200
-@@ -216,7 +216,7 @@ static unsigned long current_target(void
+--- head.orig/drivers/xen/balloon/balloon.c 2013-05-28 09:25:39.000000000 +0200
++++ head/drivers/xen/balloon/balloon.c 2013-05-28 09:26:01.000000000 +0200
+@@ -213,7 +213,7 @@ static unsigned long current_target(void
return target;
}
@@ -16,7 +16,7 @@ jb: Also added this to the sysfs representation.
{
#ifndef CONFIG_XEN
#define max_pfn num_physpages
-@@ -434,7 +434,7 @@ static void balloon_process(struct work_
+@@ -431,7 +431,7 @@ static void balloon_process(struct work_
void balloon_set_new_target(unsigned long target)
{
/* No need for lock. Not read-modify-write updates. */
@@ -25,8 +25,8 @@ jb: Also added this to the sysfs representation.
schedule_work(&balloon_worker);
}
-@@ -509,10 +509,13 @@ static int balloon_read(char *page, char
- page,
+@@ -502,10 +502,13 @@ static int balloon_show(struct seq_file
+ return seq_printf(m,
"Current allocation: %8lu kB\n"
"Requested target: %8lu kB\n"
+ "Minimum target: %8lu kB\n"
@@ -38,7 +38,7 @@ jb: Also added this to the sysfs representation.
+ PAGES2KB(balloon_minimum_target()), PAGES2KB(num_physpages),
PAGES2KB(bs.balloon_low), PAGES2KB(bs.balloon_high),
PAGES2KB(bs.driver_pages));
-
+ }
--- head.orig/drivers/xen/balloon/common.h 2009-06-09 15:01:37.000000000 +0200
+++ head/drivers/xen/balloon/common.h 2009-08-19 10:36:49.000000000 +0200
@@ -52,5 +52,6 @@ int balloon_sysfs_init(void);
diff --git a/patches.xen/xen-blkback-multi-page-ring b/patches.xen/xen-blkback-multi-page-ring
index 0ed97b216c..7b838d522f 100644
--- a/patches.xen/xen-blkback-multi-page-ring
+++ b/patches.xen/xen-blkback-multi-page-ring
@@ -146,7 +146,7 @@ Acked-by: jbeulich@suse.com
case BLKIF_PROTOCOL_NATIVE:
BLKBK_RING_INIT(native);
--- head.orig/drivers/xen/blkback/xenbus.c 2013-04-03 11:36:44.000000000 +0200
-+++ head/drivers/xen/blkback/xenbus.c 2013-04-03 11:37:37.000000000 +0200
++++ head/drivers/xen/blkback/xenbus.c 2013-05-31 13:39:26.000000000 +0200
@@ -298,6 +298,11 @@ static int blkback_probe(struct xenbus_d
if (err)
goto fail;
@@ -159,7 +159,7 @@ Acked-by: jbeulich@suse.com
err = xenbus_switch_state(dev, XenbusStateInitWait);
if (err)
goto fail;
-@@ -530,21 +535,22 @@ again:
+@@ -536,21 +541,22 @@ again:
static int connect_ring(struct backend_info *be)
{
struct xenbus_device *dev = be->dev;
@@ -189,7 +189,7 @@ Acked-by: jbeulich@suse.com
be->blkif->blk_protocol = BLKIF_PROTOCOL_NATIVE;
protocol = xenbus_read(XBT_NIL, dev->otherend, "protocol", NULL);
if (IS_ERR(protocol))
-@@ -558,20 +564,62 @@ static int connect_ring(struct backend_i
+@@ -564,20 +570,62 @@ static int connect_ring(struct backend_i
be->blkif->blk_protocol = BLKIF_PROTOCOL_X86_64;
#endif
else if (0 != strcmp(protocol, XEN_IO_PROTO_ABI_NATIVE)) {
diff --git a/patches.xen/xen-blkfront-cdrom b/patches.xen/xen-blkfront-cdrom
index 9034599429..cd71baffd9 100644
--- a/patches.xen/xen-blkfront-cdrom
+++ b/patches.xen/xen-blkfront-cdrom
@@ -3,7 +3,7 @@ Subject: implement forwarding of CD-ROM specific commands
Patch-mainline: obsolete
References: fate#300964
---- head.orig/drivers/cdrom/Makefile 2008-04-17 04:49:44.000000000 +0200
+--- head.orig/drivers/cdrom/Makefile 2013-05-31 13:09:55.000000000 +0200
+++ head/drivers/cdrom/Makefile 2010-11-23 15:06:54.000000000 +0100
@@ -9,6 +9,7 @@ obj-$(CONFIG_BLK_DEV_IDECD) +=
obj-$(CONFIG_BLK_DEV_SR) += cdrom.o
@@ -22,14 +22,14 @@ References: fate#300964
-xenblk-objs := blkfront.o vbd.o
+xenblk-objs := blkfront.o vbd.o vcd.o
---- head.orig/drivers/xen/blkfront/blkfront.c 2012-10-31 12:26:25.000000000 +0100
-+++ head/drivers/xen/blkfront/blkfront.c 2012-10-31 12:26:51.000000000 +0100
-@@ -491,6 +491,13 @@ static void connect(struct blkfront_info
+--- head.orig/drivers/xen/blkfront/blkfront.c 2013-05-31 13:41:27.000000000 +0200
++++ head/drivers/xen/blkfront/blkfront.c 2013-05-31 13:41:45.000000000 +0200
+@@ -490,6 +490,13 @@ static void connect(struct blkfront_info
"sectors", "%Lu", &sectors);
if (err != 1)
return;
+ err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
-+ "sector-size", "%lu", &sector_size);
++ "sector-size", "%u", &sector_size);
+ if (err != 1)
+ sector_size = 0;
+ if (sector_size)
@@ -38,7 +38,7 @@ References: fate#300964
pr_info("Setting capacity to %Lu\n", sectors);
set_capacity(info->gd, sectors);
revalidate_disk(info->gd);
-@@ -581,6 +588,8 @@ static void connect(struct blkfront_info
+@@ -591,6 +598,8 @@ static void connect(struct blkfront_info
add_disk(info->gd);
info->is_ready = 1;
@@ -47,7 +47,7 @@ References: fate#300964
}
/**
-@@ -610,6 +619,8 @@ static void blkfront_closing(struct blkf
+@@ -620,6 +629,8 @@ static void blkfront_closing(struct blkf
xlvbd_sysfs_delif(info);
@@ -57,8 +57,8 @@ References: fate#300964
out:
--- head.orig/drivers/xen/blkfront/block.h 2012-06-08 10:50:19.000000000 +0200
-+++ head/drivers/xen/blkfront/block.h 2012-10-31 12:26:53.000000000 +0100
-@@ -164,4 +164,8 @@ static inline void xlvbd_sysfs_delif(str
++++ head/drivers/xen/blkfront/block.h 2013-05-31 13:41:46.000000000 +0200
+@@ -169,4 +169,8 @@ static inline void xlvbd_sysfs_delif(str
void xlbd_release_major_info(void);
@@ -67,9 +67,9 @@ References: fate#300964
+extern void unregister_vcd(struct blkfront_info *info);
+
#endif /* __XEN_DRIVERS_BLOCK_H__ */
---- head.orig/drivers/xen/blkfront/vbd.c 2012-03-12 16:19:08.000000000 +0100
-+++ head/drivers/xen/blkfront/vbd.c 2012-03-12 16:19:39.000000000 +0100
-@@ -439,15 +439,16 @@ xlvbd_add(blkif_sector_t capacity, int v
+--- head.orig/drivers/xen/blkfront/vbd.c 2013-05-31 13:38:28.000000000 +0200
++++ head/drivers/xen/blkfront/vbd.c 2013-05-31 13:41:46.000000000 +0200
+@@ -442,15 +442,16 @@ xlvbd_add(blkif_sector_t capacity, int v
goto out;
info->mi = mi;
@@ -89,7 +89,7 @@ References: fate#300964
if (gd == NULL)
goto release;
-@@ -513,12 +514,14 @@ xlvbd_del(struct blkfront_info *info)
+@@ -516,12 +517,14 @@ xlvbd_del(struct blkfront_info *info)
BUG_ON(info->gd == NULL);
minor = info->gd->first_minor;
@@ -107,8 +107,8 @@ References: fate#300964
info->mi = NULL;
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head/drivers/xen/blkfront/vcd.c 2012-03-05 11:38:22.000000000 +0100
-@@ -0,0 +1,494 @@
++++ head/drivers/xen/blkfront/vcd.c 2013-05-28 10:10:44.000000000 +0200
+@@ -0,0 +1,504 @@
+/*******************************************************************************
+ * vcd.c
+ *
@@ -430,13 +430,22 @@ References: fate#300964
+static int xencdrom_block_release(struct inode *inode, struct file *file)
+{
+ struct gendisk *gd = inode->i_bdev->bd_disk;
-+#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+static int xencdrom_block_release(struct gendisk *gd, fmode_t mode)
+{
++#else
++static void xencdrom_block_release(struct gendisk *gd, fmode_t mode)
++{
+#endif
+ struct blkfront_info *info = gd->private_data;
+ struct vcd_disk *vcd;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
+ int ret = 0;
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
++# define ret 0
++#else
++# define ret
++#endif
+
+ if ((vcd = xencdrom_get_list_entry(info->gd))) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
@@ -455,6 +464,7 @@ References: fate#300964
+ }
+
+ return ret;
++#undef ret
+}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
diff --git a/patches.xen/xen-blkfront-hvm-no-cdrom b/patches.xen/xen-blkfront-hvm-no-cdrom
index 36416506c8..511fc0ed1f 100644
--- a/patches.xen/xen-blkfront-hvm-no-cdrom
+++ b/patches.xen/xen-blkfront-hvm-no-cdrom
@@ -7,8 +7,8 @@ Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
ohering@novell.com: return -ENXIO instead of 0 when ignoring (bnc#672004)
---- head.orig/drivers/xen/blkfront/blkfront.c 2012-10-31 12:26:51.000000000 +0100
-+++ head/drivers/xen/blkfront/blkfront.c 2012-10-31 12:27:01.000000000 +0100
+--- head.orig/drivers/xen/blkfront/blkfront.c 2013-05-31 13:41:45.000000000 +0200
++++ head/drivers/xen/blkfront/blkfront.c 2013-05-31 13:41:58.000000000 +0200
@@ -95,6 +95,26 @@ static int blkfront_probe(struct xenbus_
struct blkfront_info *info;
enum xenbus_state backend_state;
@@ -36,9 +36,9 @@ ohering@novell.com: return -ENXIO instead of 0 when ignoring (bnc#672004)
/* FIXME: Use dynamic device id if this is not set. */
err = xenbus_scanf(XBT_NIL, dev->nodename,
"virtual-device", "%i", &vdevice);
---- head.orig/drivers/xen/blkfront/block.h 2012-10-31 12:26:53.000000000 +0100
-+++ head/drivers/xen/blkfront/block.h 2012-10-31 12:27:05.000000000 +0100
-@@ -165,7 +165,12 @@ static inline void xlvbd_sysfs_delif(str
+--- head.orig/drivers/xen/blkfront/block.h 2013-05-31 13:41:46.000000000 +0200
++++ head/drivers/xen/blkfront/block.h 2013-05-31 13:41:58.000000000 +0200
+@@ -170,7 +170,12 @@ static inline void xlvbd_sysfs_delif(str
void xlbd_release_major_info(void);
/* Virtual cdrom block-device */
diff --git a/patches.xen/xen-blkfront-multi-page-ring b/patches.xen/xen-blkfront-multi-page-ring
index bc4b4ebd69..f106506a42 100644
--- a/patches.xen/xen-blkfront-multi-page-ring
+++ b/patches.xen/xen-blkfront-multi-page-ring
@@ -9,8 +9,8 @@ Patch-mainline: n/a
[jb: re-work resume to (hopefully) cope with ring size shrinking across suspend/resume]
Acked-by: jbeulich@suse.com
---- head.orig/drivers/xen/blkfront/blkfront.c 2012-10-30 15:57:12.000000000 +0100
-+++ head/drivers/xen/blkfront/blkfront.c 2012-10-31 12:24:32.000000000 +0100
+--- head.orig/drivers/xen/blkfront/blkfront.c 2013-05-31 13:38:56.000000000 +0200
++++ head/drivers/xen/blkfront/blkfront.c 2013-05-31 13:39:42.000000000 +0200
@@ -40,7 +40,9 @@
#include <linux/cdrom.h>
#include <linux/sched.h>
@@ -322,7 +322,7 @@ Acked-by: jbeulich@suse.com
case XenbusStateConnected:
connect(info);
break;
-@@ -569,7 +678,7 @@ static inline int GET_ID_FROM_FREELIST(
+@@ -579,7 +688,7 @@ static inline int GET_ID_FROM_FREELIST(
struct blkfront_info *info)
{
unsigned long free = info->shadow_free;
@@ -331,7 +331,7 @@ Acked-by: jbeulich@suse.com
info->shadow_free = info->shadow[free].req.id;
info->shadow[free].req.id = 0x0fffffee; /* debug */
return free;
-@@ -616,6 +725,44 @@ static inline void flush_requests(struct
+@@ -626,6 +735,44 @@ static inline void flush_requests(struct
static void kick_pending_request_queues(struct blkfront_info *info)
{
@@ -376,7 +376,7 @@ Acked-by: jbeulich@suse.com
if (!RING_FULL(&info->ring)) {
/* Re-enable calldowns. */
blk_start_queue(info->rq);
-@@ -978,11 +1125,11 @@ static irqreturn_t blkif_int(int irq, vo
+@@ -993,11 +1140,11 @@ static irqreturn_t blkif_int(int irq, vo
int ret;
bret = RING_GET_RESPONSE(&info->ring, i);
@@ -390,7 +390,7 @@ Acked-by: jbeulich@suse.com
*/
pr_warning("%s: response to %s has incorrect id (%#Lx)\n",
info->gd->disk_name,
-@@ -1094,12 +1241,10 @@ static void blkif_free(struct blkfront_i
+@@ -1109,12 +1256,10 @@ static void blkif_free(struct blkfront_i
flush_work(&info->work);
/* Free resources associated with old device channel. */
@@ -407,7 +407,7 @@ Acked-by: jbeulich@suse.com
if (info->irq)
unbind_from_irqhandler(info->irq, info);
info->irq = 0;
-@@ -1115,55 +1260,41 @@ static void blkif_completion(struct blk_
+@@ -1130,55 +1275,41 @@ static void blkif_completion(struct blk_
gnttab_end_foreign_access(s->req.seg[i].gref, 0UL);
}
@@ -491,7 +491,7 @@ Acked-by: jbeulich@suse.com
(void)xenbus_switch_state(info->xbdev, XenbusStateConnected);
-@@ -1172,9 +1303,6 @@ static int blkif_recover(struct blkfront
+@@ -1187,9 +1318,6 @@ static int blkif_recover(struct blkfront
/* Now safe for us to use the shared ring */
info->connected = BLKIF_STATE_CONNECTED;
@@ -501,7 +501,7 @@ Acked-by: jbeulich@suse.com
/* Kick any other new requests queued since we resumed */
kick_pending_request_queues(info);
---- head.orig/drivers/xen/blkfront/block.h 2012-06-08 10:38:23.000000000 +0200
+--- head.orig/drivers/xen/blkfront/block.h 2013-05-24 14:28:50.000000000 +0200
+++ head/drivers/xen/blkfront/block.h 2012-06-08 10:50:19.000000000 +0200
@@ -81,7 +81,10 @@ struct blk_shadow {
unsigned long frame[BLKIF_MAX_SEGMENTS_PER_REQUEST];
diff --git a/patches.xen/xen-blkif-op-packet b/patches.xen/xen-blkif-op-packet
index 09f7aa1e63..62988ba406 100644
--- a/patches.xen/xen-blkif-op-packet
+++ b/patches.xen/xen-blkif-op-packet
@@ -52,8 +52,8 @@ References: fate#300964
unsigned long st_rd_sect;
unsigned long st_wr_sect;
---- head.orig/drivers/xen/blkback/xenbus.c 2013-04-03 11:37:53.000000000 +0200
-+++ head/drivers/xen/blkback/xenbus.c 2013-04-03 11:39:37.000000000 +0200
+--- head.orig/drivers/xen/blkback/xenbus.c 2013-05-31 13:39:35.000000000 +0200
++++ head/drivers/xen/blkback/xenbus.c 2013-05-31 13:41:36.000000000 +0200
@@ -126,6 +126,7 @@ VBD_SHOW(wr_req, "%lu\n", be->blkif->st
VBD_SHOW(br_req, "%lu\n", be->blkif->st_br_req);
VBD_SHOW(fl_req, "%lu\n", be->blkif->st_fl_req);
@@ -70,9 +70,9 @@ References: fate#300964
&dev_attr_rd_sect.attr,
&dev_attr_wr_sect.attr,
NULL
---- head.orig/drivers/xen/blkfront/blkfront.c 2012-10-31 12:24:32.000000000 +0100
-+++ head/drivers/xen/blkfront/blkfront.c 2012-10-31 12:26:25.000000000 +0100
-@@ -704,6 +704,7 @@ static const char *op_name(unsigned int
+--- head.orig/drivers/xen/blkfront/blkfront.c 2013-05-31 13:39:42.000000000 +0200
++++ head/drivers/xen/blkfront/blkfront.c 2013-05-31 13:41:27.000000000 +0200
+@@ -714,6 +714,7 @@ static const char *op_name(unsigned int
[BLKIF_OP_WRITE] = "write",
[BLKIF_OP_WRITE_BARRIER] = "barrier",
[BLKIF_OP_FLUSH_DISKCACHE] = "flush",
@@ -80,7 +80,7 @@ References: fate#300964
[BLKIF_OP_DISCARD] = "discard",
};
-@@ -1002,6 +1003,8 @@ static int blkif_queue_request(struct re
+@@ -1017,6 +1018,8 @@ static int blkif_queue_request(struct re
if (req->cmd_flags & REQ_HARDBARRIER)
#endif
ring_req->operation = info->flush_op;
@@ -89,7 +89,7 @@ References: fate#300964
if (unlikely(req->cmd_flags & (REQ_DISCARD | REQ_SECURE))) {
struct blkif_request_discard *discard = (void *)ring_req;
-@@ -1070,7 +1073,8 @@ void do_blkif_request(struct request_que
+@@ -1085,7 +1088,8 @@ void do_blkif_request(struct request_que
blk_start_request(req);
@@ -99,7 +99,7 @@ References: fate#300964
((req->cmd_flags & (REQ_FLUSH | REQ_FUA)) &&
!info->flush_op)) {
req->errors = (DID_ERROR << 16) |
-@@ -1181,6 +1185,7 @@ static irqreturn_t blkif_int(int irq, vo
+@@ -1196,6 +1200,7 @@ static irqreturn_t blkif_int(int irq, vo
/* fall through */
case BLKIF_OP_READ:
case BLKIF_OP_WRITE:
@@ -107,9 +107,9 @@ References: fate#300964
if (unlikely(bret->status != BLKIF_RSP_OKAY))
DPRINTK("Bad return from blkdev %s request: %d\n",
op_name(bret->operation),
---- head.orig/drivers/xen/blktap/blktap.c 2013-04-03 11:02:00.000000000 +0200
-+++ head/drivers/xen/blktap/blktap.c 2013-04-03 11:39:57.000000000 +0200
-@@ -1142,13 +1142,14 @@ static void fast_flush_area(pending_req_
+--- head.orig/drivers/xen/blktap/blktap.c 2013-05-28 10:33:09.000000000 +0200
++++ head/drivers/xen/blktap/blktap.c 2013-05-28 10:34:00.000000000 +0200
+@@ -1143,13 +1143,14 @@ static void fast_flush_area(pending_req_
static void print_stats(blkif_t *blkif)
{
@@ -126,7 +126,7 @@ References: fate#300964
}
int tap_blkif_schedule(void *arg)
-@@ -1391,6 +1392,11 @@ static int _do_block_io_op(blkif_t *blki
+@@ -1392,6 +1393,11 @@ static int _do_block_io_op(blkif_t *blki
dispatch_rw_block_io(blkif, &req, pending_req);
break;
@@ -176,9 +176,9 @@ References: fate#300964
int st_rd_sect;
int st_wr_sect;
s64 st_rd_cnt;
---- head.orig/drivers/xen/blktap2/device.c 2012-02-17 11:29:27.000000000 +0100
-+++ head/drivers/xen/blktap2/device.c 2012-02-16 14:43:12.000000000 +0100
-@@ -344,7 +344,8 @@ blktap_device_fail_pending_requests(stru
+--- head.orig/drivers/xen/blktap2/device.c 2013-05-24 14:33:30.000000000 +0200
++++ head/drivers/xen/blktap2/device.c 2013-05-24 15:47:25.000000000 +0200
+@@ -342,7 +342,8 @@ blktap_device_fail_pending_requests(stru
BTERR("%u:%u: failing pending %s of %d pages\n",
blktap_device_major, tap->minor,
@@ -188,7 +188,7 @@ References: fate#300964
"read" : "write"), request->nr_pages);
blktap_unmap(tap, request);
-@@ -385,6 +386,7 @@ blktap_device_finish_request(struct blkt
+@@ -383,6 +384,7 @@ blktap_device_finish_request(struct blkt
switch (request->operation) {
case BLKIF_OP_READ:
case BLKIF_OP_WRITE:
@@ -196,7 +196,7 @@ References: fate#300964
if (unlikely(res->status != BLKIF_RSP_OKAY))
BTERR("Bad return from device data "
"request: %x\n", res->status);
-@@ -622,6 +624,8 @@ blktap_device_process_request(struct blk
+@@ -620,6 +622,8 @@ blktap_device_process_request(struct blk
blkif_req.handle = 0;
blkif_req.operation = rq_data_dir(req) ?
BLKIF_OP_WRITE : BLKIF_OP_READ;
@@ -205,7 +205,7 @@ References: fate#300964
request->id = (unsigned long)req;
request->operation = blkif_req.operation;
-@@ -687,7 +691,9 @@ blktap_device_process_request(struct blk
+@@ -685,7 +689,9 @@ blktap_device_process_request(struct blk
wmb(); /* blktap_poll() reads req_prod_pvt asynchronously */
ring->ring.req_prod_pvt++;
@@ -226,9 +226,9 @@ References: fate#300964
int st_rd_sect;
int st_wr_sect;
s64 st_rd_cnt;
---- head.orig/drivers/xen/blktap2-new/device.c 2013-01-30 11:59:40.000000000 +0100
-+++ head/drivers/xen/blktap2-new/device.c 2011-11-21 15:55:46.000000000 +0100
-@@ -190,6 +190,8 @@ blktap_device_make_request(struct blktap
+--- head.orig/drivers/xen/blktap2-new/device.c 2013-05-24 14:33:17.000000000 +0200
++++ head/drivers/xen/blktap2-new/device.c 2013-05-24 15:47:27.000000000 +0200
+@@ -188,6 +188,8 @@ blktap_device_make_request(struct blktap
request->rq = rq;
request->operation = write ? BLKIF_OP_WRITE : BLKIF_OP_READ;
diff --git a/patches.xen/xen-blkif-protocol-fallback-hack b/patches.xen/xen-blkif-protocol-fallback-hack
index e99c86daec..36e3038caa 100644
--- a/patches.xen/xen-blkif-protocol-fallback-hack
+++ b/patches.xen/xen-blkif-protocol-fallback-hack
@@ -34,7 +34,7 @@ See the comment below. Oh well.
The block tap driver is an alternative to the block back driver
and allows VM block requests to be redirected to userspace through
--- head.orig/drivers/xen/blkback/xenbus.c 2013-04-03 11:37:47.000000000 +0200
-+++ head/drivers/xen/blkback/xenbus.c 2013-04-03 11:37:53.000000000 +0200
++++ head/drivers/xen/blkback/xenbus.c 2013-05-31 13:39:35.000000000 +0200
@@ -20,6 +20,7 @@
#include <stdarg.h>
#include <linux/kthread.h>
@@ -43,7 +43,7 @@ See the comment below. Oh well.
#undef DPRINTK
#define DPRINTK(fmt, args...) \
-@@ -575,8 +576,10 @@ static int connect_ring(struct backend_i
+@@ -581,8 +582,10 @@ static int connect_ring(struct backend_i
be->blkif->blk_protocol = BLKIF_PROTOCOL_NATIVE;
protocol = xenbus_read(XBT_NIL, dev->otherend, "protocol", NULL);
@@ -55,7 +55,7 @@ See the comment below. Oh well.
#ifndef CONFIG_X86_32
else if (0 == strcmp(protocol, XEN_IO_PROTO_ABI_X86_32))
be->blkif->blk_protocol = BLKIF_PROTOCOL_X86_32;
-@@ -593,8 +596,7 @@ static int connect_ring(struct backend_i
+@@ -599,8 +602,7 @@ static int connect_ring(struct backend_i
}
pr_info("blkback: protocol %d (%s)\n",
diff --git a/patches.xen/xen-blktap-write-barriers b/patches.xen/xen-blktap-write-barriers
index 06215ad146..2bae5ac003 100644
--- a/patches.xen/xen-blktap-write-barriers
+++ b/patches.xen/xen-blktap-write-barriers
@@ -2,9 +2,9 @@ From: kwolf@suse.de
Subject: blktap: Write Barriers
Patch-mainline: obsolete
---- head.orig/drivers/xen/blktap/blktap.c 2013-04-03 11:39:57.000000000 +0200
-+++ head/drivers/xen/blktap/blktap.c 2012-12-06 16:27:24.000000000 +0100
-@@ -1387,6 +1387,9 @@ static int _do_block_io_op(blkif_t *blki
+--- head.orig/drivers/xen/blktap/blktap.c 2013-05-28 10:34:00.000000000 +0200
++++ head/drivers/xen/blktap/blktap.c 2013-05-28 10:34:17.000000000 +0200
+@@ -1388,6 +1388,9 @@ static int _do_block_io_op(blkif_t *blki
dispatch_rw_block_io(blkif, &req, pending_req);
break;
@@ -14,7 +14,7 @@ Patch-mainline: obsolete
case BLKIF_OP_WRITE:
blkif->st_wr_req++;
dispatch_rw_block_io(blkif, &req, pending_req);
-@@ -1468,7 +1471,7 @@ static void dispatch_rw_block_io(blkif_t
+@@ -1469,7 +1472,7 @@ static void dispatch_rw_block_io(blkif_t
/* Check that number of segments is sane. */
nseg = req->nr_segments;
@@ -23,7 +23,7 @@ Patch-mainline: obsolete
unlikely(nseg > BLKIF_MAX_SEGMENTS_PER_REQUEST) ) {
WPRINTK("Bad number of segments in request (%d)\n", nseg);
goto fail_response;
-@@ -1494,8 +1497,13 @@ static void dispatch_rw_block_io(blkif_t
+@@ -1495,8 +1498,13 @@ static void dispatch_rw_block_io(blkif_t
pending_req->nr_pages = nseg;
flags = GNTMAP_host_map;
@@ -38,7 +38,7 @@ Patch-mainline: obsolete
op = 0;
mm = info->mm;
if (!xen_feature(XENFEAT_auto_translated_physmap))
-@@ -1655,6 +1663,7 @@ static void dispatch_rw_block_io(blkif_t
+@@ -1656,6 +1664,7 @@ static void dispatch_rw_block_io(blkif_t
blkif->st_rd_sect += nr_sects;
break;
case BLKIF_OP_WRITE:
diff --git a/patches.xen/xen-clockevents b/patches.xen/xen-clockevents
index ebbcd35de2..9018388d76 100644
--- a/patches.xen/xen-clockevents
+++ b/patches.xen/xen-clockevents
@@ -4,18 +4,18 @@ Patch-mainline: n/a
Once validated this could be merged into the 2.6.?? patch.
---- head.orig/arch/x86/Kconfig 2013-03-21 15:40:03.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-03-25 16:27:03.000000000 +0100
-@@ -102,7 +102,7 @@ config X86
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:57:49.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-24 15:31:49.000000000 +0200
+@@ -103,7 +103,7 @@ config X86
select BUILDTIME_EXTABLE_SORT
select GENERIC_CMOS_UPDATE
select CLOCKSOURCE_WATCHDOG if !XEN
- select GENERIC_CLOCKEVENTS if !XEN
+ select GENERIC_CLOCKEVENTS
- select ARCH_CLOCKSOURCE_DATA if X86_64 && !XEN
+ select ARCH_CLOCKSOURCE_DATA if X86_64
select GENERIC_CLOCKEVENTS_BROADCAST if (X86_64 || (X86_32 && X86_LOCAL_APIC)) && !XEN
select GENERIC_TIME_VSYSCALL if X86_64
---- head.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2012-06-14 12:25:31.000000000 +0200
+--- head.orig/arch/x86/include/mach-xen/asm/hypervisor.h 2013-06-04 16:39:49.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/hypervisor.h 2012-05-11 16:22:53.000000000 +0200
@@ -71,7 +71,6 @@ extern start_info_t *xen_start_info;
#define init_hypervisor_platform() init_hypervisor(&boot_cpu_data)
@@ -25,7 +25,7 @@ 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.orig/arch/x86/include/mach-xen/asm/irqflags.h 2011-09-08 16:54:08.000000000 +0200
+--- head.orig/arch/x86/include/mach-xen/asm/irqflags.h 2013-06-04 16:39:49.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/irqflags.h 2012-05-24 09:13:47.000000000 +0200
@@ -5,6 +5,7 @@
@@ -621,7 +621,7 @@ 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.orig/drivers/xen/Kconfig 2013-03-25 14:55:39.000000000 +0100
+--- head.orig/drivers/xen/Kconfig 2013-05-23 17:57:18.000000000 +0200
+++ head/drivers/xen/Kconfig 2012-10-04 13:48:11.000000000 +0200
@@ -290,9 +290,6 @@ endmenu
config HAVE_IRQ_IGNORE_UNHANDLED
@@ -633,7 +633,7 @@ Once validated this could be merged into the 2.6.?? patch.
config ARCH_HAS_WALK_MEMORY
def_bool y
depends on X86
---- head.orig/drivers/xen/core/Makefile 2012-11-14 14:29:01.000000000 +0100
+--- head.orig/drivers/xen/core/Makefile 2013-06-04 16:39:49.000000000 +0200
+++ head/drivers/xen/core/Makefile 2012-02-17 14:37:13.000000000 +0100
@@ -10,3 +10,4 @@ obj-$(CONFIG_HOTPLUG_CPU) += cpu_hotplug
obj-$(CONFIG_XEN_SMPBOOT) += smpboot.o
@@ -1006,17 +1006,17 @@ Once validated this could be merged into the 2.6.?? patch.
return err;
}
#endif
---- head.orig/drivers/xen/core/smpboot.c 2012-03-22 16:23:53.000000000 +0100
-+++ head/drivers/xen/core/smpboot.c 2012-08-20 16:25:55.000000000 +0200
-@@ -16,6 +16,7 @@
- #include <linux/percpu.h>
+--- head.orig/drivers/xen/core/smpboot.c 2013-06-04 16:41:40.000000000 +0200
++++ head/drivers/xen/core/smpboot.c 2013-06-04 16:41:43.000000000 +0200
+@@ -17,6 +17,7 @@
+ #include <linux/tick.h>
#include <asm/desc.h>
#include <asm/pgalloc.h>
+#include <xen/clock.h>
#include <xen/evtchn.h>
#include <xen/interface/vcpu.h>
#include <xen/cpu_hotplug.h>
-@@ -144,6 +145,7 @@ static void __cpuinit cpu_bringup(void)
+@@ -145,6 +146,7 @@ static void __cpuinit cpu_bringup(void)
identify_secondary_cpu(__this_cpu_ptr(&cpu_info));
touch_softlockup_watchdog();
preempt_disable();
@@ -1055,10 +1055,10 @@ Once validated this could be merged into the 2.6.?? patch.
+#endif
+
+#endif /* __XEN_CPU_CLOCK_H__ */
---- head.orig/kernel/sched/cputime.c 2013-03-21 11:15:21.000000000 +0100
-+++ head/kernel/sched/cputime.c 2013-03-25 16:27:28.000000000 +0100
-@@ -142,6 +142,48 @@ static inline void task_group_account_fi
- #endif
+--- head.orig/kernel/sched/cputime.c 2013-06-04 16:39:49.000000000 +0200
++++ head/kernel/sched/cputime.c 2013-05-24 15:31:46.000000000 +0200
+@@ -126,6 +126,48 @@ static inline void task_group_account_fi
+ cpuacct_account_field(p, index, tmp);
}
+#if !defined(CONFIG_XEN) || defined(CONFIG_VIRT_CPU_ACCOUNTING)
@@ -1106,7 +1106,7 @@ Once validated this could be merged into the 2.6.?? patch.
/*
* Account user cpu time to a process.
* @p: the process that the cpu time gets accounted to
-@@ -161,7 +203,7 @@ void account_user_time(struct task_struc
+@@ -145,7 +187,7 @@ void account_user_time(struct task_struc
index = (TASK_NICE(p) > 0) ? CPUTIME_NICE : CPUTIME_USER;
/* Add user time to cpustat. */
@@ -1115,7 +1115,7 @@ Once validated this could be merged into the 2.6.?? patch.
/* Account for user time used */
acct_account_cputime(p);
-@@ -211,7 +253,7 @@ void __account_system_time(struct task_s
+@@ -195,7 +237,7 @@ void __account_system_time(struct task_s
account_group_system_time(p, cputime);
/* Add system time to cpustat. */
@@ -1124,7 +1124,7 @@ Once validated this could be merged into the 2.6.?? patch.
/* Account for system time used */
acct_account_cputime(p);
-@@ -265,9 +307,9 @@ void account_idle_time(cputime_t cputime
+@@ -249,9 +291,9 @@ void account_idle_time(cputime_t cputime
struct rq *rq = this_rq();
if (atomic_read(&rq->nr_iowait) > 0)
@@ -1136,7 +1136,7 @@ Once validated this could be merged into the 2.6.?? patch.
}
static __always_inline bool steal_account_process_tick(void)
-@@ -351,9 +393,9 @@ static void irqtime_account_process_tick
+@@ -335,9 +377,9 @@ static void irqtime_account_process_tick
return;
if (irqtime_account_hi_update()) {
diff --git a/patches.xen/xen-cpufreq-report b/patches.xen/xen-cpufreq-report
index c6700cf160..bea283e5cc 100644
--- a/patches.xen/xen-cpufreq-report
+++ b/patches.xen/xen-cpufreq-report
@@ -36,9 +36,9 @@ Patch-mainline: obsolete
+ return HYPERVISOR_platform_op(&op) == 0 ? op.u.get_cpu_freq.freq : 0;
+}
+EXPORT_SYMBOL(cpufreq_quick_get_max);
---- head.orig/include/linux/cpufreq.h 2013-03-21 11:15:20.000000000 +0100
-+++ head/include/linux/cpufreq.h 2013-03-25 16:29:04.000000000 +0100
-@@ -341,7 +341,7 @@ static inline unsigned int cpufreq_get(u
+--- head.orig/include/linux/cpufreq.h 2013-05-23 08:56:43.000000000 +0200
++++ head/include/linux/cpufreq.h 2013-05-24 15:46:51.000000000 +0200
+@@ -352,7 +352,7 @@ static inline unsigned int cpufreq_get(u
#endif
/* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */
@@ -47,7 +47,7 @@ Patch-mainline: obsolete
unsigned int cpufreq_quick_get(unsigned int cpu);
unsigned int cpufreq_quick_get_max(unsigned int cpu);
#else
---- head.orig/include/xen/interface/platform.h 2013-03-21 15:41:19.000000000 +0100
+--- head.orig/include/xen/interface/platform.h 2013-04-26 10:57:31.000000000 +0200
+++ head/include/xen/interface/platform.h 2013-03-25 16:29:11.000000000 +0100
@@ -534,6 +534,16 @@ DEFINE_GUEST_HANDLE_STRUCT(xenpf_core_pa
typedef struct xenpf_core_parking xenpf_core_parking_t;
diff --git a/patches.xen/xen-cxgb3 b/patches.xen/xen-cxgb3
index aae73e7612..5ce3415399 100644
--- a/patches.xen/xen-cxgb3
+++ b/patches.xen/xen-cxgb3
@@ -17,9 +17,9 @@ hypervisor to open the Tx buffer.
Acked-by: bphilips@suse.de
---- head.orig/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 2013-03-21 11:14:57.000000000 +0100
-+++ head/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 2013-03-25 16:29:52.000000000 +0100
-@@ -3311,7 +3311,17 @@ static int init_one(struct pci_dev *pdev
+--- head.orig/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 2013-05-23 08:56:03.000000000 +0200
++++ head/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 2013-05-27 13:15:58.000000000 +0200
+@@ -3313,7 +3313,17 @@ static int init_one(struct pci_dev *pdev
* register at least one net device.
*/
for_each_port(adapter, i) {
@@ -37,7 +37,7 @@ Acked-by: bphilips@suse.de
if (err)
dev_warn(&pdev->dev,
"cannot register net device %s, skipping\n",
---- head.orig/drivers/net/ethernet/chelsio/cxgb3/sge.c 2013-03-21 11:14:57.000000000 +0100
+--- head.orig/drivers/net/ethernet/chelsio/cxgb3/sge.c 2013-05-23 08:56:03.000000000 +0200
+++ head/drivers/net/ethernet/chelsio/cxgb3/sge.c 2013-03-25 16:29:54.000000000 +0100
@@ -59,11 +59,24 @@
* It must be a divisor of PAGE_SIZE. If set to 0 FL0 will use sk_buffs
diff --git a/patches.xen/xen-dcdbas b/patches.xen/xen-dcdbas
index eda48a2327..e35d699e54 100644
--- a/patches.xen/xen-dcdbas
+++ b/patches.xen/xen-dcdbas
@@ -4,9 +4,9 @@ Patch-mainline: n/a
The only caveat is that this doesn't work when Dom0 has its vCPU-s pinned.
---- head.orig/drivers/firmware/Kconfig 2013-04-26 09:59:50.000000000 +0200
-+++ head/drivers/firmware/Kconfig 2013-04-26 11:29:47.000000000 +0200
-@@ -110,6 +110,7 @@ config DELL_RBU
+--- head.orig/drivers/firmware/Kconfig 2013-05-23 08:55:38.000000000 +0200
++++ head/drivers/firmware/Kconfig 2013-05-27 13:16:09.000000000 +0200
+@@ -74,6 +74,7 @@ config DELL_RBU
config DCDBAS
tristate "Dell Systems Management Base Driver"
depends on X86
@@ -14,7 +14,7 @@ The only caveat is that this doesn't work when Dom0 has its vCPU-s pinned.
help
The Dell Systems Management Base Driver provides a sysfs interface
for systems management software to perform System Management
---- head.orig/drivers/firmware/dcdbas.c 2013-04-26 09:59:50.000000000 +0200
+--- head.orig/drivers/firmware/dcdbas.c 2013-02-19 00:58:34.000000000 +0100
+++ head/drivers/firmware/dcdbas.c 2011-04-11 16:11:33.000000000 +0200
@@ -37,6 +37,10 @@
#include <linux/mutex.h>
diff --git a/patches.xen/xen-ipi-per-cpu-irq b/patches.xen/xen-ipi-per-cpu-irq
index c8b04fa90d..3ba2477715 100644
--- a/patches.xen/xen-ipi-per-cpu-irq
+++ b/patches.xen/xen-ipi-per-cpu-irq
@@ -2,9 +2,9 @@ From: jbeulich@novell.com
Subject: fold IPIs onto a single IRQ each
Patch-mainline: n/a
---- head.orig/arch/x86/include/asm/hw_irq.h 2013-03-21 15:22:08.000000000 +0100
-+++ head/arch/x86/include/asm/hw_irq.h 2013-03-25 16:26:31.000000000 +0100
-@@ -166,7 +166,6 @@ extern void smp_error_interrupt(struct p
+--- head.orig/arch/x86/include/asm/hw_irq.h 2013-06-04 16:39:49.000000000 +0200
++++ head/arch/x86/include/asm/hw_irq.h 2013-05-24 15:31:08.000000000 +0200
+@@ -167,7 +167,6 @@ extern void smp_error_interrupt(struct p
extern asmlinkage void smp_irq_move_cleanup_interrupt(void);
#endif
#ifdef CONFIG_SMP
@@ -12,7 +12,7 @@ Patch-mainline: n/a
extern void smp_reschedule_interrupt(struct pt_regs *);
extern void smp_call_function_interrupt(struct pt_regs *);
extern void smp_call_function_single_interrupt(struct pt_regs *);
-@@ -175,13 +174,9 @@ extern void smp_invalidate_interrupt(str
+@@ -176,13 +175,9 @@ extern void smp_invalidate_interrupt(str
#else
extern asmlinkage void smp_invalidate_interrupt(struct pt_regs *);
#endif
@@ -29,7 +29,7 @@ Patch-mainline: n/a
#endif
#endif
---- head.orig/arch/x86/kernel/apic/ipi-xen.c 2012-02-09 14:33:23.000000000 +0100
+--- head.orig/arch/x86/kernel/apic/ipi-xen.c 2013-06-04 16:39:49.000000000 +0200
+++ head/arch/x86/kernel/apic/ipi-xen.c 2012-02-10 11:32:05.000000000 +0100
@@ -7,24 +7,6 @@
#ifdef CONFIG_SMP
@@ -82,7 +82,7 @@ Patch-mainline: n/a
+ notify_remote_via_ipi(vector, smp_processor_id());
}
#endif
---- head.orig/arch/x86/kernel/irq_work-xen.c 2011-02-03 11:19:35.000000000 +0100
+--- head.orig/arch/x86/kernel/irq_work-xen.c 2013-06-04 16:39:49.000000000 +0200
+++ head/arch/x86/kernel/irq_work-xen.c 2011-02-03 13:56:43.000000000 +0100
@@ -8,12 +8,10 @@
#include <asm/ipi.h>
@@ -98,7 +98,7 @@ Patch-mainline: n/a
}
void arch_irq_work_raise(void)
---- head.orig/arch/x86/kernel/smp-xen.c 2012-06-14 11:54:35.000000000 +0200
+--- head.orig/arch/x86/kernel/smp-xen.c 2013-06-04 16:39:49.000000000 +0200
+++ head/arch/x86/kernel/smp-xen.c 2012-06-14 13:57:39.000000000 +0200
@@ -151,11 +151,9 @@ static int smp_stop_nmi_callback(unsigne
* this function calls the 'stop' function on all other CPUs in the system.
@@ -656,9 +656,9 @@ Patch-mainline: n/a
if (irq >= 0) {
BUG_ON(type_from_irq_cfg(cfg) != IRQT_UNBOUND);
cfg->bindcount++;
---- head.orig/drivers/xen/core/smpboot.c 2012-10-31 16:30:47.000000000 +0100
-+++ head/drivers/xen/core/smpboot.c 2012-03-22 16:23:49.000000000 +0100
-@@ -34,19 +34,7 @@ cpumask_var_t vcpu_initialized_mask;
+--- head.orig/drivers/xen/core/smpboot.c 2013-06-04 14:06:43.000000000 +0200
++++ head/drivers/xen/core/smpboot.c 2013-06-04 16:41:36.000000000 +0200
+@@ -35,19 +35,7 @@ cpumask_var_t vcpu_initialized_mask;
DEFINE_PER_CPU_READ_MOSTLY(struct cpuinfo_x86, cpu_info);
EXPORT_PER_CPU_SYMBOL(cpu_info);
@@ -679,7 +679,7 @@ Patch-mainline: n/a
void __init prefill_possible_map(void)
{
-@@ -73,76 +61,59 @@ void __init prefill_possible_map(void)
+@@ -74,76 +62,59 @@ void __init prefill_possible_map(void)
++total_cpus;
}
@@ -800,7 +800,7 @@ Patch-mainline: n/a
if ((cpu != 0) && ((rc = local_setup_timer(cpu)) != 0))
goto fail;
-@@ -150,19 +121,9 @@ static int __cpuinit xen_smp_intr_init(u
+@@ -151,19 +122,9 @@ static int __cpuinit xen_smp_intr_init(u
return 0;
fail:
@@ -822,7 +822,7 @@ Patch-mainline: n/a
return rc;
}
-@@ -171,13 +132,7 @@ static void __cpuinit xen_smp_intr_exit(
+@@ -172,13 +133,7 @@ static void __cpuinit xen_smp_intr_exit(
if (cpu != 0)
local_teardown_timer(cpu);
diff --git a/patches.xen/xen-mem-hotplug b/patches.xen/xen-mem-hotplug
index 3e2f13c3d0..9f159408a2 100644
--- a/patches.xen/xen-mem-hotplug
+++ b/patches.xen/xen-mem-hotplug
@@ -19,34 +19,31 @@ jb: Integrate into base module; cleanup.
Acked-by: jbeulich@novell.com
--- head.orig/drivers/acpi/Kconfig 2013-03-21 14:36:14.000000000 +0100
-+++ head/drivers/acpi/Kconfig 2013-03-25 16:28:06.000000000 +0100
-@@ -347,7 +347,7 @@ config ACPI_CONTAINER
++++ head/drivers/acpi/Kconfig 2013-05-24 15:46:06.000000000 +0200
+@@ -339,7 +339,7 @@ config ACPI_CONTAINER
config ACPI_HOTPLUG_MEMORY
- tristate "Memory Hotplug"
+ bool "Memory Hotplug"
- depends on MEMORY_HOTPLUG
+ depends on MEMORY_HOTPLUG || XEN_PRIVILEGED_GUEST
- default n
help
This driver supports ACPI memory hotplug. The driver
---- head.orig/drivers/acpi/acpi_memhotplug.c 2013-03-21 11:14:44.000000000 +0100
-+++ head/drivers/acpi/acpi_memhotplug.c 2013-03-25 16:27:59.000000000 +0100
-@@ -88,6 +88,14 @@ struct acpi_memory_device {
+ fields notifications on ACPI memory devices (PNP0C80),
+--- head.orig/drivers/acpi/acpi_memhotplug.c 2013-05-23 08:55:33.000000000 +0200
++++ head/drivers/acpi/acpi_memhotplug.c 2013-05-24 15:46:03.000000000 +0200
+@@ -81,6 +81,11 @@ struct acpi_memory_device {
struct list_head res_list;
};
+#ifdef CONFIG_XEN
+#include "../xen/core/acpi_memhotplug.c"
+#define memory_add_physaddr_to_nid(start) 0
-+#else
-+static inline int xen_hotadd_mem_init(void) { return 0; }
-+static inline void xen_hotadd_mem_exit(void) {}
+#endif
+
static acpi_status
acpi_memory_get_resource(struct acpi_resource *resource, void *context)
{
-@@ -221,6 +229,10 @@ static int acpi_memory_enable_device(str
+@@ -172,6 +177,10 @@ static int acpi_memory_enable_device(str
struct acpi_memory_info *info;
int node;
@@ -57,40 +54,29 @@ Acked-by: jbeulich@novell.com
node = acpi_get_node(mem_device->device->handle);
/*
* Tell the VM there is more memory here...
-@@ -442,6 +454,10 @@ static int acpi_memory_device_remove(str
- struct acpi_memory_device *mem_device = NULL;
- int result;
+@@ -311,6 +320,10 @@ static void acpi_memory_device_remove(st
+ {
+ struct acpi_memory_device *mem_device;
+#ifdef CONFIG_XEN
-+ return -EOPNOTSUPP;
++ return; /* not supported */
+#endif
+
if (!device || !acpi_driver_data(device))
- return -EINVAL;
-
-@@ -524,6 +540,10 @@ static int __init acpi_memory_device_ini
- acpi_status status;
-
-
-+ result = xen_hotadd_mem_init();
-+ if (result < 0)
-+ return result;
-+
- result = acpi_bus_register_driver(&acpi_memory_device_driver);
-
- if (result < 0)
-@@ -562,6 +582,8 @@ static void __exit acpi_memory_device_ex
-
- acpi_bus_unregister_driver(&acpi_memory_device_driver);
+ return;
-+ xen_hotadd_mem_exit();
+@@ -322,4 +335,8 @@ static void acpi_memory_device_remove(st
+ void __init acpi_memory_hotplug_init(void)
+ {
+ acpi_scan_add_handler_with_hotplug(&memory_device_handler, "memory");
+
- return;
++#ifdef CONFIG_XEN
++ xen_hotadd_mem_init();
++#endif
}
-
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head/drivers/xen/core/acpi_memhotplug.c 2011-02-02 15:10:06.000000000 +0100
-@@ -0,0 +1,190 @@
++++ head/drivers/xen/core/acpi_memhotplug.c 2013-05-24 15:41:56.000000000 +0200
+@@ -0,0 +1,185 @@
+/*
+ * xen_acpi_memhotplug.c - interface to notify Xen on memory device hotadd
+ *
@@ -276,8 +262,3 @@ Acked-by: jbeulich@novell.com
+
+ return 0;
+}
-+
-+static void xen_hotadd_mem_exit(void)
-+{
-+ flush_scheduled_work();
-+}
diff --git a/patches.xen/xen-multi-page-ring b/patches.xen/xen-multi-page-ring
index 422e266917..f43ceb4ceb 100644
--- a/patches.xen/xen-multi-page-ring
+++ b/patches.xen/xen-multi-page-ring
@@ -253,7 +253,7 @@ Patch-mainline: n/a
}
EXPORT_SYMBOL_GPL(xenbus_unmap_ring_vfree);
---- head.orig/drivers/xen/xenbus/xenbus_client.c 2013-03-25 09:13:58.000000000 +0100
+--- head.orig/drivers/xen/xenbus/xenbus_client.c 2013-06-04 14:12:33.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_client.c 2013-03-25 16:29:20.000000000 +0100
@@ -383,6 +383,30 @@ int xenbus_grant_ring(struct xenbus_devi
}
@@ -297,9 +297,9 @@ Patch-mainline: n/a
int gnttab_grant_foreign_transfer(domid_t domid, unsigned long pfn);
---- head.orig/include/xen/xenbus.h 2012-04-11 13:26:23.000000000 +0200
-+++ head/include/xen/xenbus.h 2012-03-09 09:01:51.000000000 +0100
-@@ -258,6 +258,9 @@ int xenbus_switch_state(struct xenbus_de
+--- head.orig/include/xen/xenbus.h 2013-06-04 14:14:20.000000000 +0200
++++ head/include/xen/xenbus.h 2013-06-04 14:16:18.000000000 +0200
+@@ -261,6 +261,9 @@ int xenbus_switch_state(struct xenbus_de
*/
int xenbus_grant_ring(struct xenbus_device *dev, unsigned long ring_mfn);
@@ -309,7 +309,7 @@ Patch-mainline: n/a
/**
* Map a page of memory into this domain from another domain's grant table.
* xenbus_map_ring_valloc allocates a page of virtual address space, maps the
-@@ -268,7 +271,8 @@ int xenbus_grant_ring(struct xenbus_devi
+@@ -271,7 +274,8 @@ int xenbus_grant_ring(struct xenbus_devi
*/
#if defined(CONFIG_XEN) || defined(HAVE_XEN_PLATFORM_COMPAT_H)
struct vm_struct *xenbus_map_ring_valloc(struct xenbus_device *dev,
diff --git a/patches.xen/xen-netback-generalize b/patches.xen/xen-netback-generalize
index dcc669a0f2..9058dd2c7d 100644
--- a/patches.xen/xen-netback-generalize
+++ b/patches.xen/xen-netback-generalize
@@ -11,9 +11,9 @@ Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
jb: various cleanups
Acked-by: jbeulich@novell.com
---- head.orig/drivers/xen/netback/common.h 2013-02-20 11:33:49.000000000 +0100
-+++ head/drivers/xen/netback/common.h 2013-02-06 15:30:27.000000000 +0100
-@@ -212,4 +212,75 @@ static inline int netbk_can_sg(struct ne
+--- head.orig/drivers/xen/netback/common.h 2013-06-04 15:05:14.000000000 +0200
++++ head/drivers/xen/netback/common.h 2013-06-04 16:22:24.000000000 +0200
+@@ -218,4 +218,62 @@ static inline int netbk_can_sg(struct ne
return netif->can_sg;
}
@@ -39,58 +39,45 @@ Acked-by: jbeulich@novell.com
+#define MAX_MFN_ALLOC 64
+
+struct xen_netbk {
-+ struct tasklet_struct net_tx_tasklet;
-+ struct tasklet_struct net_rx_tasklet;
-+
-+ struct sk_buff_head rx_queue;
-+ struct sk_buff_head tx_queue;
-+
-+ struct timer_list net_timer;
-+ struct timer_list tx_pending_timer;
-+
-+ pending_ring_idx_t pending_prod;
-+ pending_ring_idx_t pending_cons;
-+ pending_ring_idx_t dealloc_prod;
-+ pending_ring_idx_t dealloc_cons;
-+
-+ struct list_head pending_inuse_head;
-+ struct list_head schedule_list;
-+
-+ spinlock_t schedule_list_lock;
-+ spinlock_t release_lock;
-+
-+ struct page **mmap_pages;
-+
-+ unsigned int alloc_index;
-+
-+ struct pending_tx_info pending_tx_info[MAX_PENDING_REQS];
-+ struct netbk_tx_pending_inuse pending_inuse[MAX_PENDING_REQS];
-+ struct gnttab_unmap_grant_ref tx_unmap_ops[MAX_PENDING_REQS];
-+ struct gnttab_map_grant_ref tx_map_ops[MAX_PENDING_REQS];
-+
-+ grant_handle_t grant_tx_handle[MAX_PENDING_REQS];
-+ u16 pending_ring[MAX_PENDING_REQS];
-+ u16 dealloc_ring[MAX_PENDING_REQS];
-+
-+ struct multicall_entry rx_mcl[NET_RX_RING_SIZE+3];
-+ struct mmu_update rx_mmu[NET_RX_RING_SIZE];
-+ struct gnttab_transfer grant_trans_op[NET_RX_RING_SIZE];
-+ struct gnttab_copy grant_copy_op[NET_RX_RING_SIZE];
-+ DECLARE_BITMAP(rx_notify, NR_DYNIRQS);
-+#if !defined(NR_DYNIRQS)
-+# error
-+#elif NR_DYNIRQS <= 0x10000
-+ u16 notify_list[NET_RX_RING_SIZE];
-+#else
-+ int notify_list[NET_RX_RING_SIZE];
-+#endif
-+ struct netbk_rx_meta meta[NET_RX_RING_SIZE];
++ struct {
++ pending_ring_idx_t pending_prod, pending_cons;
++ pending_ring_idx_t dealloc_prod, dealloc_cons;
++ struct sk_buff_head queue;
++ struct tasklet_struct tasklet;
++ struct list_head schedule_list;
++ spinlock_t schedule_list_lock;
++ spinlock_t release_lock;
++ struct page **mmap_pages;
++ struct timer_list pending_timer;
++ struct list_head pending_inuse_head;
++ struct pending_tx_info pending_info[MAX_PENDING_REQS];
++ struct netbk_tx_pending_inuse pending_inuse[MAX_PENDING_REQS];
++ u16 pending_ring[MAX_PENDING_REQS];
++ u16 dealloc_ring[MAX_PENDING_REQS];
++ union {
++ gnttab_map_grant_ref_t map_ops[MAX_PENDING_REQS];
++ gnttab_unmap_grant_ref_t unmap_ops[MAX_PENDING_REQS];
++ multicall_entry_t mcl[0];
++ };
++ grant_handle_t grant_handle[MAX_PENDING_REQS];
++ } tx;
+
-+ unsigned long mfn_list[MAX_MFN_ALLOC];
++ struct xen_netbk_rx {
++ struct sk_buff_head queue;
++ struct tasklet_struct tasklet;
++ struct timer_list timer;
++ unsigned int alloc_index;
++ struct multicall_entry mcl[NET_RX_RING_SIZE+3];
++ struct mmu_update mmu[NET_RX_RING_SIZE];
++ struct gnttab_copy grant_copy_op[NET_RX_RING_SIZE];
++ struct gnttab_transfer grant_trans_op;
++ struct netbk_rx_meta meta[NET_RX_RING_SIZE];
++ unsigned long mfn_list[MAX_MFN_ALLOC];
++ } rx;
+};
#endif /* __NETIF__BACKEND__COMMON_H__ */
---- head.orig/drivers/xen/netback/netback.c 2013-01-30 12:37:38.000000000 +0100
-+++ head/drivers/xen/netback/netback.c 2013-05-10 14:49:59.000000000 +0200
+--- head.orig/drivers/xen/netback/netback.c 2013-06-05 08:48:36.000000000 +0200
++++ head/drivers/xen/netback/netback.c 2013-06-05 08:49:51.000000000 +0200
@@ -37,6 +37,7 @@
#include "common.h"
#include <linux/if_vlan.h>
@@ -120,10 +107,10 @@ Acked-by: jbeulich@novell.com
-static void netif_idx_release(u16 pending_idx);
+static void netif_idx_release(struct xen_netbk *, u16 pending_idx);
- static void make_tx_response(netif_t *netif,
- netif_tx_request_t *txp,
- s8 st);
-@@ -69,50 +63,59 @@ static netif_rx_response_t *make_rx_resp
+ static bool make_tx_response(netif_t *, const netif_tx_request_t *, s8 st,
+ netif_t **);
+ static netif_rx_response_t *make_rx_response(netif_t *netif,
+@@ -68,50 +62,59 @@ static netif_rx_response_t *make_rx_resp
u16 size,
u16 flags);
@@ -150,7 +137,7 @@ Acked-by: jbeulich@novell.com
+static inline unsigned long idx_to_pfn(struct xen_netbk *netbk, u16 idx)
{
- return page_to_pfn(mmap_pages[idx]);
-+ return page_to_pfn(netbk->mmap_pages[idx]);
++ return page_to_pfn(netbk->tx.mmap_pages[idx]);
}
-static inline unsigned long idx_to_kaddr(u16 idx)
@@ -209,7 +196,7 @@ Acked-by: jbeulich@novell.com
}
static u16 frag_get_pending_idx(const skb_frag_t *frag)
-@@ -134,36 +137,13 @@ static void frag_set_pending_idx(skb_fra
+@@ -133,39 +136,13 @@ static void frag_set_pending_idx(skb_fra
sizeof(struct iphdr) + MAX_IPOPTLEN + \
sizeof(struct tcphdr) + MAX_TCP_OPTION_SPACE)
@@ -222,11 +209,11 @@ Acked-by: jbeulich@novell.com
#define MASK_PEND_IDX(_i) ((_i)&(MAX_PENDING_REQS-1))
-static PEND_RING_IDX pending_prod, pending_cons;
-#define NR_PENDING_REQS (MAX_PENDING_REQS - pending_prod + pending_cons)
--
+
-/* Freed TX SKBs get batched on this ring before return to pending_ring. */
-static u16 dealloc_ring[MAX_PENDING_REQS];
-static PEND_RING_IDX dealloc_prod, dealloc_cons;
-
+-
-/* Doubly-linked list of in-use pending entries. */
-static struct netbk_tx_pending_inuse pending_inuse[MAX_PENDING_REQS];
-static LIST_HEAD(pending_inuse_head);
@@ -234,8 +221,11 @@ Acked-by: jbeulich@novell.com
-static struct sk_buff_head tx_queue;
-
-static grant_handle_t grant_tx_handle[MAX_PENDING_REQS];
--static gnttab_unmap_grant_ref_t tx_unmap_ops[MAX_PENDING_REQS];
--static gnttab_map_grant_ref_t tx_map_ops[MAX_PENDING_REQS];
+-static union {
+- gnttab_map_grant_ref_t map_ops[MAX_PENDING_REQS];
+- gnttab_unmap_grant_ref_t unmap_ops[MAX_PENDING_REQS];
+- multicall_entry_t mcl[0];
+-} tx;
-
-static struct list_head net_schedule_list;
-static spinlock_t net_schedule_list_lock;
@@ -246,17 +236,17 @@ Acked-by: jbeulich@novell.com
+static inline pending_ring_idx_t nr_pending_reqs(const struct xen_netbk *netbk)
+{
+ return MAX_PENDING_REQS -
-+ netbk->pending_prod + netbk->pending_cons;
++ netbk->tx.pending_prod + netbk->tx.pending_cons;
+}
/* Setting this allows the safe use of this driver without netloop. */
static bool MODPARM_copy_skb = true;
-@@ -175,13 +155,13 @@ MODULE_PARM_DESC(permute_returns, "Rando
+@@ -177,13 +154,13 @@ MODULE_PARM_DESC(permute_returns, "Rando
int netbk_copy_skb_mode;
-static inline unsigned long alloc_mfn(void)
-+static inline unsigned long alloc_mfn(struct xen_netbk *netbk)
++static inline unsigned long alloc_mfn(struct xen_netbk_rx *netbk)
{
- BUG_ON(alloc_index == 0);
- return mfn_list[--alloc_index];
@@ -265,11 +255,11 @@ Acked-by: jbeulich@novell.com
}
-static int check_mfn(int nr)
-+static int check_mfn(struct xen_netbk *netbk, unsigned int nr)
++static int check_mfn(struct xen_netbk_rx *netbk, unsigned int nr)
{
struct xen_memory_reservation reservation = {
.extent_order = 0,
-@@ -189,24 +169,27 @@ static int check_mfn(int nr)
+@@ -191,16 +168,17 @@ static int check_mfn(int nr)
};
int rc;
@@ -291,6 +281,11 @@ Acked-by: jbeulich@novell.com
+ return netbk->alloc_index >= nr ? 0 : -ENOMEM;
}
+ static void flush_notify_list(netif_t *list, unsigned int idx,
+@@ -229,12 +207,14 @@ static void flush_notify_list(netif_t *l
+ BUG();
+ }
+
-static inline void maybe_schedule_tx_action(void)
+static inline void maybe_schedule_tx_action(unsigned int group)
{
@@ -301,37 +296,45 @@ Acked-by: jbeulich@novell.com
- !list_empty(&net_schedule_list))
- tasklet_schedule(&net_tx_tasklet);
+ if ((nr_pending_reqs(netbk) < (MAX_PENDING_REQS/2)) &&
-+ !list_empty(&netbk->schedule_list))
-+ tasklet_schedule(&netbk->net_tx_tasklet);
++ !list_empty(&netbk->tx.schedule_list))
++ tasklet_schedule(&netbk->tx.tasklet);
}
static struct sk_buff *netbk_copy_skb(struct sk_buff *skb)
-@@ -329,6 +312,7 @@ static unsigned int netbk_count_slots(co
+@@ -357,6 +337,7 @@ static unsigned int netbk_count_slots(co
int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
netif_t *netif = netdev_priv(dev);
-+ struct xen_netbk *netbk;
++ struct xen_netbk_rx *netbk;
BUG_ON(skb->dev != dev);
-@@ -377,8 +361,9 @@ int netif_be_start_xmit(struct sk_buff *
+@@ -405,8 +386,9 @@ int netif_be_start_xmit(struct sk_buff *
}
}
- skb_queue_tail(&rx_queue, skb);
- tasklet_schedule(&net_rx_tasklet);
-+ netbk = &xen_netbk[GET_GROUP_INDEX(netif)];
-+ skb_queue_tail(&netbk->rx_queue, skb);
-+ tasklet_schedule(&netbk->net_rx_tasklet);
++ netbk = &xen_netbk[GET_GROUP_INDEX(netif)].rx;
++ skb_queue_tail(&netbk->queue, skb);
++ tasklet_schedule(&netbk->tasklet);
return NETDEV_TX_OK;
-@@ -433,19 +418,29 @@ static u16 netbk_gop_frag(netif_t *netif
+@@ -431,7 +413,7 @@ static void xen_network_done_notify(void
+ */
+ int xen_network_done(void)
+ {
+- return skb_queue_empty(&rx_queue);
++ return skb_queue_empty(&netbk->rx.queue);
+ }
+ #endif
+
+@@ -461,19 +443,28 @@ static u16 netbk_gop_frag(netif_t *netif
multicall_entry_t *mcl;
netif_rx_request_t *req;
unsigned long old_mfn, new_mfn;
- int idx = netif_page_index(page);
-+ struct xen_netbk *netbk = &xen_netbk[GET_GROUP_INDEX(netif)];
old_mfn = virt_to_mfn(page_address(page));
@@ -350,34 +353,52 @@ Acked-by: jbeulich@novell.com
+ page->mapping != NULL &&
+ (idx = netif_page_index(page)) < MAX_PENDING_REQS &&
+ (group = netif_page_group(page)) < netbk_nr_groups) {
++ struct xen_netbk *netbk = &xen_netbk[group];
+ struct pending_tx_info *src_pend;
+
-+ netbk = &xen_netbk[group];
-+ BUG_ON(netbk->mmap_pages[idx] != page);
-+ src_pend = &netbk->pending_tx_info[idx];
++ BUG_ON(netbk->tx.mmap_pages[idx] != page);
++ src_pend = &netbk->tx.pending_info[idx];
+ BUG_ON(group != GET_GROUP_INDEX(src_pend->netif));
copy_gop->source.domid = src_pend->netif->domid;
copy_gop->source.u.ref = src_pend->req.gref;
copy_gop->flags |= GNTCOPY_source_gref;
-@@ -461,7 +456,7 @@ static u16 netbk_gop_frag(netif_t *netif
+@@ -489,7 +480,7 @@ static u16 netbk_gop_frag(netif_t *netif
} else {
meta->copy = 0;
if (!xen_feature(XENFEAT_auto_translated_physmap)) {
- new_mfn = alloc_mfn();
-+ new_mfn = alloc_mfn(netbk);
++ new_mfn = alloc_mfn(&xen_netbk[GET_GROUP_INDEX(netif)].rx);
/*
* Set the new P2M table entry before
-@@ -624,7 +619,7 @@ static unsigned int netbk_add_frag_respo
+@@ -510,7 +501,7 @@ static u16 netbk_gop_frag(netif_t *netif
+ mmu->val = page_to_pfn(page);
+ }
+
+- gop = npo->trans + npo->trans_prod++;
++ gop = npo->trans - npo->trans_prod++;
+ gop->mfn = old_mfn;
+ gop->domid = netif->domid;
+ gop->ref = req->gref;
+@@ -614,7 +605,7 @@ static int netbk_check_gop(int nr_frags,
+ BUG_ON(mcl->result != 0);
+ }
+
+- gop = npo->trans + npo->trans_cons++;
++ gop = npo->trans - npo->trans_cons++;
+ /* Check the reassignment error code. */
+ if (unlikely(gop->status != GNTST_okay)) {
+ netdev_dbg(netif->dev,
+@@ -652,7 +643,7 @@ static unsigned int netbk_add_frag_respo
return n;
}
-static void net_rx_action(unsigned long unused)
+static void net_rx_action(unsigned long group)
{
- netif_t *netif = NULL;
+ netif_t *netif, *notify_head = NULL, *notify_tail = NULL;
s8 status;
-@@ -638,47 +633,33 @@ static void net_rx_action(unsigned long
+@@ -665,41 +656,33 @@ static void net_rx_action(unsigned long
int nr_frags;
int count;
unsigned long offset;
@@ -390,14 +411,8 @@ Acked-by: jbeulich@novell.com
- static mmu_update_t rx_mmu[NET_RX_RING_SIZE];
- static gnttab_transfer_t grant_trans_op[NET_RX_RING_SIZE];
- static gnttab_copy_t grant_copy_op[NET_RX_RING_SIZE];
-- static DECLARE_BITMAP(rx_notify, NR_DYNIRQS);
--#if NR_DYNIRQS <= 0x10000
-- static u16 notify_list[NET_RX_RING_SIZE];
--#else
-- static int notify_list[NET_RX_RING_SIZE];
--#endif
- static struct netbk_rx_meta meta[NET_RX_RING_SIZE];
-+ struct xen_netbk *netbk = &xen_netbk[group];
++ struct xen_netbk_rx *netbk = &xen_netbk[group].rx;
struct netrx_pending_operations npo = {
- mmu: rx_mmu,
@@ -405,10 +420,10 @@ Acked-by: jbeulich@novell.com
- copy: grant_copy_op,
- mcl: rx_mcl,
- meta: meta};
-+ .mmu = netbk->rx_mmu,
-+ .trans = netbk->grant_trans_op,
++ .mmu = netbk->mmu,
++ .trans = &netbk->grant_trans_op,
+ .copy = netbk->grant_copy_op,
-+ .mcl = netbk->rx_mcl,
++ .mcl = netbk->mcl,
+ .meta = netbk->meta,
+ };
@@ -417,7 +432,7 @@ Acked-by: jbeulich@novell.com
count = 0;
- while ((skb = skb_dequeue(&rx_queue)) != NULL) {
-+ while ((skb = skb_dequeue(&netbk->rx_queue)) != NULL) {
++ while ((skb = skb_dequeue(&netbk->queue)) != NULL) {
nr_frags = skb_shinfo(skb)->nr_frags;
*(int *)skb->cb = nr_frags;
@@ -431,12 +446,12 @@ Acked-by: jbeulich@novell.com
netdev_warn(skb->dev, "memory squeeze\n");
- mod_timer(&net_timer, jiffies + HZ);
- skb_queue_head(&rx_queue, skb);
-+ mod_timer(&netbk->net_timer, jiffies + HZ);
-+ skb_queue_head(&netbk->rx_queue, skb);
++ mod_timer(&netbk->timer, jiffies + HZ);
++ skb_queue_head(&netbk->queue, skb);
break;
}
-@@ -693,31 +674,32 @@ static void net_rx_action(unsigned long
+@@ -714,39 +697,40 @@ static void net_rx_action(unsigned long
break;
}
@@ -447,50 +462,56 @@ Acked-by: jbeulich@novell.com
if (npo.mcl_prod) {
BUG_ON(xen_feature(XENFEAT_auto_translated_physmap));
- BUG_ON(npo.mmu_prod > ARRAY_SIZE(rx_mmu));
-+ BUG_ON(npo.mmu_prod > ARRAY_SIZE(netbk->rx_mmu));
++ BUG_ON(npo.mmu_prod > ARRAY_SIZE(netbk->mmu));
mcl = npo.mcl + npo.mcl_prod++;
BUG_ON(mcl[-1].op != __HYPERVISOR_update_va_mapping);
mcl[-1].args[MULTI_UVMFLAGS_INDEX] = UVMF_TLB_FLUSH|UVMF_ALL;
- MULTI_mmu_update(mcl, rx_mmu, npo.mmu_prod, 0, DOMID_SELF);
-+ MULTI_mmu_update(mcl, netbk->rx_mmu, npo.mmu_prod, 0,
++ MULTI_mmu_update(mcl, netbk->mmu, npo.mmu_prod, 0,
+ DOMID_SELF);
}
- if (npo.trans_prod) {
+- if (npo.trans_prod) {
- BUG_ON(npo.trans_prod > ARRAY_SIZE(grant_trans_op));
-+ BUG_ON(npo.trans_prod > ARRAY_SIZE(netbk->grant_trans_op));
++ BUILD_BUG_ON(sizeof(netbk->grant_trans_op)
++ > sizeof(*netbk->grant_copy_op));
++ BUG_ON(npo.copy_prod + npo.trans_prod
++ > ARRAY_SIZE(netbk->grant_copy_op) + 1);
++ if (npo.trans_prod)
MULTI_grant_table_op(npo.mcl + npo.mcl_prod++,
- GNTTABOP_transfer, grant_trans_op,
-+ GNTTABOP_transfer, netbk->grant_trans_op,
++ GNTTABOP_transfer,
++ npo.trans + 1 - npo.trans_prod,
npo.trans_prod);
- }
+- }
- if (npo.copy_prod) {
+- if (npo.copy_prod) {
- BUG_ON(npo.copy_prod > ARRAY_SIZE(grant_copy_op));
-+ BUG_ON(npo.copy_prod > ARRAY_SIZE(netbk->grant_copy_op));
++ if (npo.copy_prod)
MULTI_grant_table_op(npo.mcl + npo.mcl_prod++,
- GNTTABOP_copy, grant_copy_op,
-+ GNTTABOP_copy, netbk->grant_copy_op,
- npo.copy_prod);
- }
+- npo.copy_prod);
+- }
++ GNTTABOP_copy, npo.copy, npo.copy_prod);
-@@ -725,7 +707,7 @@ static void net_rx_action(unsigned long
+ /* Nothing to do? */
if (!npo.mcl_prod)
return;
- BUG_ON(npo.mcl_prod > ARRAY_SIZE(rx_mcl));
-+ BUG_ON(npo.mcl_prod > ARRAY_SIZE(netbk->rx_mcl));
++ BUG_ON(npo.mcl_prod > ARRAY_SIZE(netbk->mcl));
ret = HYPERVISOR_multicall(npo.mcl, npo.mcl_prod);
BUG_ON(ret != 0);
-@@ -751,13 +733,13 @@ static void net_rx_action(unsigned long
+@@ -772,13 +756,14 @@ static void net_rx_action(unsigned long
atomic_set(&(skb_shinfo(skb)->dataref), 1);
skb_shinfo(skb)->frag_list = NULL;
skb_shinfo(skb)->nr_frags = 0;
- netbk_free_pages(nr_frags, meta + npo.meta_cons + 1);
-+ netbk_free_pages(nr_frags, netbk->meta + npo.meta_cons + 1);
++ netbk_free_pages(nr_frags,
++ netbk->meta + npo.meta_cons + 1);
}
skb->dev->stats.tx_bytes += skb->len;
@@ -501,7 +522,7 @@ Acked-by: jbeulich@novell.com
flags = nr_frags ? XEN_NETRXF_more_data : 0;
switch (skb->ip_summed) {
-@@ -770,14 +752,14 @@ static void net_rx_action(unsigned long
+@@ -791,14 +776,14 @@ static void net_rx_action(unsigned long
break;
}
@@ -518,7 +539,7 @@ Acked-by: jbeulich@novell.com
struct netif_extra_info *gso =
(struct netif_extra_info *)
RING_GET_RESPONSE(&netif->rx,
-@@ -785,7 +767,7 @@ static void net_rx_action(unsigned long
+@@ -806,7 +791,7 @@ static void net_rx_action(unsigned long
resp->flags |= XEN_NETRXF_extra_info;
@@ -527,7 +548,7 @@ Acked-by: jbeulich@novell.com
gso->u.gso.type = XEN_NETIF_GSO_TYPE_TCPV4;
gso->u.gso.pad = 0;
gso->u.gso.features = 0;
-@@ -795,13 +777,13 @@ static void net_rx_action(unsigned long
+@@ -816,7 +801,7 @@ static void net_rx_action(unsigned long
}
nr_frags = netbk_add_frag_responses(netif, status,
@@ -536,45 +557,21 @@ Acked-by: jbeulich@novell.com
nr_frags);
RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&netif->rx, ret);
- irq = netif->irq - DYNIRQ_BASE;
-- if (ret && !__test_and_set_bit(irq, rx_notify))
-- notify_list[notify_nr++] = irq;
-+ if (ret && !__test_and_set_bit(irq, netbk->rx_notify))
-+ netbk->notify_list[notify_nr++] = irq;
-
- if (netif_queue_stopped(netif->dev) &&
- netif_schedulable(netif) &&
-@@ -815,38 +797,39 @@ static void net_rx_action(unsigned long
+@@ -841,26 +826,27 @@ static void net_rx_action(unsigned long
}
- if (notify_nr == 1) {
-- irq = *notify_list;
-- __clear_bit(irq, rx_notify);
-+ irq = *netbk->notify_list;
-+ __clear_bit(irq, netbk->rx_notify);
- notify_remote_via_irq(irq + DYNIRQ_BASE);
- } else {
- for (count = ret = 0; ret < notify_nr; ++ret) {
-- irq = notify_list[ret];
-- __clear_bit(irq, rx_notify);
-- if (!multi_notify_remote_via_irq(rx_mcl + count,
-+ irq = netbk->notify_list[ret];
-+ __clear_bit(irq, netbk->rx_notify);
-+ if (!multi_notify_remote_via_irq(netbk->rx_mcl + count,
- irq + DYNIRQ_BASE))
- ++count;
- }
-- if (HYPERVISOR_multicall(rx_mcl, count))
-+ if (HYPERVISOR_multicall(netbk->rx_mcl, count))
- BUG();
- }
+ if (notify_head)
+- flush_notify_list(notify_head, RX_IDX, rx_mcl,
+- ARRAY_SIZE(rx_mcl));
++ flush_notify_list(notify_head, RX_IDX, netbk->mcl,
++ ARRAY_SIZE(netbk->mcl));
/* More work to do? */
- if (!skb_queue_empty(&rx_queue) && !timer_pending(&net_timer))
- tasklet_schedule(&net_rx_tasklet);
-+ if (!skb_queue_empty(&netbk->rx_queue) &&
-+ !timer_pending(&netbk->net_timer))
-+ tasklet_schedule(&netbk->net_rx_tasklet);
++ if (!skb_queue_empty(&netbk->queue) &&
++ !timer_pending(&netbk->timer))
++ tasklet_schedule(&netbk->tasklet);
#if 0
else
xen_network_done_notify();
@@ -585,27 +582,27 @@ Acked-by: jbeulich@novell.com
+static void net_alarm(unsigned long group)
{
- tasklet_schedule(&net_rx_tasklet);
-+ tasklet_schedule(&xen_netbk[group].net_rx_tasklet);
++ tasklet_schedule(&xen_netbk[group].rx.tasklet);
}
-static void netbk_tx_pending_timeout(unsigned long unused)
+static void netbk_tx_pending_timeout(unsigned long group)
{
- tasklet_schedule(&net_tx_tasklet);
-+ tasklet_schedule(&xen_netbk[group].net_tx_tasklet);
++ tasklet_schedule(&xen_netbk[group].tx.tasklet);
}
static int __on_net_schedule_list(netif_t *netif)
-@@ -854,7 +837,7 @@ static int __on_net_schedule_list(netif_
+@@ -868,7 +854,7 @@ static int __on_net_schedule_list(netif_
return netif->list.next != NULL;
}
-/* Must be called with net_schedule_list_lock held. */
-+/* Must be called with netbk->schedule_list_lock held. */
++/* Must be called with netbk->tx.schedule_list_lock held. */
static void remove_from_net_schedule_list(netif_t *netif)
{
if (likely(__on_net_schedule_list(netif))) {
-@@ -864,34 +847,35 @@ static void remove_from_net_schedule_lis
+@@ -878,34 +864,36 @@ static void remove_from_net_schedule_lis
}
}
@@ -617,14 +614,15 @@ Acked-by: jbeulich@novell.com
- spin_lock_irq(&net_schedule_list_lock);
- if (!list_empty(&net_schedule_list)) {
- netif = list_first_entry(&net_schedule_list, netif_t, list);
-+ spin_lock_irq(&netbk->schedule_list_lock);
-+ if (!list_empty(&netbk->schedule_list)) {
-+ netif = list_first_entry(&netbk->schedule_list, netif_t, list);
++ spin_lock_irq(&netbk->tx.schedule_list_lock);
++ if (!list_empty(&netbk->tx.schedule_list)) {
++ netif = list_first_entry(&netbk->tx.schedule_list,
++ netif_t, list);
netif_get(netif);
remove_from_net_schedule_list(netif);
}
- spin_unlock_irq(&net_schedule_list_lock);
-+ spin_unlock_irq(&netbk->schedule_list_lock);
++ spin_unlock_irq(&netbk->tx.schedule_list_lock);
return netif;
}
@@ -637,19 +635,19 @@ Acked-by: jbeulich@novell.com
return;
- spin_lock_irqsave(&net_schedule_list_lock, flags);
-+ spin_lock_irqsave(&netbk->schedule_list_lock, flags);
++ spin_lock_irqsave(&netbk->tx.schedule_list_lock, flags);
if (!__on_net_schedule_list(netif) &&
likely(netif_schedulable(netif))) {
- list_add_tail(&netif->list, &net_schedule_list);
-+ list_add_tail(&netif->list, &netbk->schedule_list);
++ list_add_tail(&netif->list, &netbk->tx.schedule_list);
netif_get(netif);
}
- spin_unlock_irqrestore(&net_schedule_list_lock, flags);
-+ spin_unlock_irqrestore(&netbk->schedule_list_lock, flags);
++ spin_unlock_irqrestore(&netbk->tx.schedule_list_lock, flags);
}
/*
-@@ -914,15 +898,17 @@ void netif_schedule_work(netif_t *netif)
+@@ -928,15 +916,17 @@ void netif_schedule_work(netif_t *netif)
if (more_to_do && likely(!netif->busted)) {
add_to_net_schedule_list_tail(netif);
@@ -663,14 +661,14 @@ Acked-by: jbeulich@novell.com
- spin_lock_irq(&net_schedule_list_lock);
+ struct xen_netbk *netbk = &xen_netbk[GET_GROUP_INDEX(netif)];
+
-+ spin_lock_irq(&netbk->schedule_list_lock);
++ spin_lock_irq(&netbk->tx.schedule_list_lock);
remove_from_net_schedule_list(netif);
- spin_unlock_irq(&net_schedule_list_lock);
-+ spin_unlock_irq(&netbk->schedule_list_lock);
++ spin_unlock_irq(&netbk->tx.schedule_list_lock);
}
-@@ -953,17 +939,19 @@ static void tx_credit_callback(unsigned
+@@ -967,17 +957,19 @@ static void tx_credit_callback(unsigned
netif_schedule_work(netif);
}
@@ -680,8 +678,8 @@ Acked-by: jbeulich@novell.com
{
- return gnttab_copy_grant_page(grant_tx_handle[pending_idx],
- &mmap_pages[pending_idx]);
-+ return gnttab_copy_grant_page(netbk->grant_tx_handle[pending_idx],
-+ &netbk->mmap_pages[pending_idx]);
++ return gnttab_copy_grant_page(netbk->tx.grant_handle[pending_idx],
++ &netbk->tx.mmap_pages[pending_idx]);
}
-static void permute_dealloc_ring(PEND_RING_IDX dc, PEND_RING_IDX dp)
@@ -695,7 +693,7 @@ Acked-by: jbeulich@novell.com
u16 tmp;
while (dc != dp) {
-@@ -978,67 +966,73 @@ static void permute_dealloc_ring(PEND_RI
+@@ -992,67 +984,73 @@ static void permute_dealloc_ring(PEND_RI
}
}
@@ -707,35 +705,35 @@ Acked-by: jbeulich@novell.com
u16 pending_idx;
- PEND_RING_IDX dc, dp;
+ pending_ring_idx_t dc, dp;
- netif_t *netif;
+ netif_t *netif, *notify_head = NULL, *notify_tail = NULL;
LIST_HEAD(list);
- dc = dealloc_cons;
-- gop = tx_unmap_ops;
-+ dc = netbk->dealloc_cons;
-+ gop = netbk->tx_unmap_ops;
+- gop = tx.unmap_ops;
++ dc = netbk->tx.dealloc_cons;
++ gop = netbk->tx.unmap_ops;
/*
* Free up any grants we have finished using
*/
do {
- dp = dealloc_prod;
-+ dp = netbk->dealloc_prod;
++ dp = netbk->tx.dealloc_prod;
/* Ensure we see all indices enqueued by netif_idx_release(). */
smp_rmb();
if (MODPARM_permute_returns)
- permute_dealloc_ring(dc, dp);
-+ permute_dealloc_ring(netbk->dealloc_ring, dc, dp);
++ permute_dealloc_ring(netbk->tx.dealloc_ring, dc, dp);
while (dc != dp) {
unsigned long pfn;
+ struct netbk_tx_pending_inuse *pending_inuse =
-+ netbk->pending_inuse;
++ netbk->tx.pending_inuse;
- pending_idx = dealloc_ring[MASK_PEND_IDX(dc++)];
-+ pending_idx = netbk->dealloc_ring[MASK_PEND_IDX(dc++)];
++ pending_idx = netbk->tx.dealloc_ring[MASK_PEND_IDX(dc++)];
list_move_tail(&pending_inuse[pending_idx].list, &list);
- pfn = idx_to_pfn(pending_idx);
@@ -748,36 +746,36 @@ Acked-by: jbeulich@novell.com
+ gnttab_set_unmap_op(gop, idx_to_kaddr(netbk, pending_idx),
GNTMAP_host_map,
- grant_tx_handle[pending_idx]);
-+ netbk->grant_tx_handle[pending_idx]);
++ netbk->tx.grant_handle[pending_idx]);
gop++;
}
- } while (dp != dealloc_prod);
-+ } while (dp != netbk->dealloc_prod);
++ } while (dp != netbk->tx.dealloc_prod);
- dealloc_cons = dc;
-+ netbk->dealloc_cons = dc;
++ netbk->tx.dealloc_cons = dc;
if (HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
-- tx_unmap_ops, gop - tx_unmap_ops))
-+ netbk->tx_unmap_ops,
-+ gop - netbk->tx_unmap_ops))
+- tx.unmap_ops, gop - tx.unmap_ops))
++ netbk->tx.unmap_ops,
++ gop - netbk->tx.unmap_ops))
BUG();
/* Copy any entries that have been pending for too long. */
if (netbk_copy_skb_mode == NETBK_DELAYED_COPY_SKB &&
- !list_empty(&pending_inuse_head)) {
- list_for_each_entry_safe(inuse, n, &pending_inuse_head, list) {
-+ !list_empty(&netbk->pending_inuse_head)) {
-+ list_for_each_entry_safe(inuse, n, &netbk->pending_inuse_head, list) {
++ !list_empty(&netbk->tx.pending_inuse_head)) {
++ list_for_each_entry_safe(inuse, n, &netbk->tx.pending_inuse_head, list) {
+ struct pending_tx_info *pending_tx_info
-+ = netbk->pending_tx_info;
++ = netbk->tx.pending_info;
+
if (time_after(inuse->alloc_time + HZ / 2, jiffies))
break;
- pending_idx = inuse - pending_inuse;
-+ pending_idx = inuse - netbk->pending_inuse;
++ pending_idx = inuse - netbk->tx.pending_inuse;
pending_tx_info[pending_idx].netif->nr_copied_skbs++;
@@ -786,48 +784,58 @@ Acked-by: jbeulich@novell.com
case 0:
list_move_tail(&inuse->list, &list);
continue;
-@@ -1054,17 +1048,20 @@ inline static void net_tx_action_dealloc
+@@ -1068,8 +1066,10 @@ inline static void net_tx_action_dealloc
}
list_for_each_entry_safe(inuse, n, &list, list) {
- pending_idx = inuse - pending_inuse;
+ struct pending_tx_info *pending_tx_info =
-+ netbk->pending_tx_info;
++ netbk->tx.pending_info;
-+ pending_idx = inuse - netbk->pending_inuse;
++ pending_idx = inuse - netbk->tx.pending_inuse;
netif = pending_tx_info[pending_idx].netif;
- make_tx_response(netif, &pending_tx_info[pending_idx].req,
- XEN_NETIF_RSP_OKAY);
+ if (!make_tx_response(netif, &pending_tx_info[pending_idx].req,
+@@ -1079,15 +1079,17 @@ inline static void net_tx_action_dealloc
+ notify_head = netif;
/* Ready for next use. */
- gnttab_reset_grant_page(mmap_pages[pending_idx]);
-+ gnttab_reset_grant_page(netbk->mmap_pages[pending_idx]);
++ gnttab_reset_grant_page(netbk->tx.mmap_pages[pending_idx]);
- pending_ring[MASK_PEND_IDX(pending_prod++)] = pending_idx;
-+ netbk->pending_ring[MASK_PEND_IDX(netbk->pending_prod++)] =
++ netbk->tx.pending_ring[MASK_PEND_IDX(netbk->tx.pending_prod++)] =
+ pending_idx;
- netif_put(netif);
+ list_del_init(&inuse->list);
+ }
+ if (notify_head)
+- flush_notify_list(notify_head, TX_IDX, tx.mcl,
+- sizeof(tx) / sizeof(tx.mcl[0]));
++ flush_notify_list(notify_head, TX_IDX, netbk->tx.mcl,
++ sizeof(netbk->tx.map_ops)
++ / sizeof(*netbk->tx.mcl));
+ }
-@@ -1170,9 +1167,14 @@ static gnttab_map_grant_ref_t *netbk_get
+ static void netbk_tx_err(netif_t *netif, netif_tx_request_t *txp, RING_IDX end)
+@@ -1188,9 +1190,14 @@ static gnttab_map_grant_ref_t *netbk_get
start = (frag_get_pending_idx(frags) == pending_idx);
for (i = start; i < shinfo->nr_frags; i++, txp++) {
- pending_idx = pending_ring[MASK_PEND_IDX(pending_cons++)];
+ struct xen_netbk *netbk = &xen_netbk[GET_GROUP_INDEX(netif)];
-+ pending_ring_idx_t index = MASK_PEND_IDX(netbk->pending_cons++);
++ pending_ring_idx_t index = MASK_PEND_IDX(netbk->tx.pending_cons++);
+ struct pending_tx_info *pending_tx_info =
-+ netbk->pending_tx_info;
++ netbk->tx.pending_info;
++
++ pending_idx = netbk->tx.pending_ring[index];
- gnttab_set_map_op(mop++, idx_to_kaddr(pending_idx),
-+ pending_idx = netbk->pending_ring[index];
-+
+ gnttab_set_map_op(mop++, idx_to_kaddr(netbk, pending_idx),
GNTMAP_host_map | GNTMAP_readonly,
txp->gref, netif->domid);
-@@ -1185,11 +1187,12 @@ static gnttab_map_grant_ref_t *netbk_get
+@@ -1203,11 +1210,12 @@ static gnttab_map_grant_ref_t *netbk_get
return mop;
}
@@ -838,31 +846,31 @@ Acked-by: jbeulich@novell.com
{
gnttab_map_grant_ref_t *mop = *mopp;
u16 pending_idx = *(u16 *)skb->data;
-+ struct pending_tx_info *pending_tx_info = netbk->pending_tx_info;
++ struct pending_tx_info *pending_tx_info = netbk->tx.pending_info;
netif_t *netif = pending_tx_info[pending_idx].netif;
netif_tx_request_t *txp;
struct skb_shared_info *shinfo = skb_shinfo(skb);
-@@ -1199,14 +1202,16 @@ static int netbk_tx_check_mop(struct sk_
+@@ -1217,14 +1225,16 @@ static int netbk_tx_check_mop(struct sk_
/* Check status of header. */
err = mop->status;
if (unlikely(err != GNTST_okay)) {
-+ pending_ring_idx_t index = MASK_PEND_IDX(netbk->pending_prod++);
++ pending_ring_idx_t index = MASK_PEND_IDX(netbk->tx.pending_prod++);
+
txp = &pending_tx_info[pending_idx].req;
- make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR);
+ make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR, NULL);
- pending_ring[MASK_PEND_IDX(pending_prod++)] = pending_idx;
-+ netbk->pending_ring[index] = pending_idx;
++ netbk->tx.pending_ring[index] = pending_idx;
netif_put(netif);
} else {
- set_phys_to_machine(idx_to_pfn(pending_idx),
+ set_phys_to_machine(idx_to_pfn(netbk, pending_idx),
FOREIGN_FRAME(mop->dev_bus_addr >> PAGE_SHIFT));
- grant_tx_handle[pending_idx] = mop->handle;
-+ netbk->grant_tx_handle[pending_idx] = mop->handle;
++ netbk->tx.grant_handle[pending_idx] = mop->handle;
}
/* Skip first skb fragment if it is on same page as header fragment. */
-@@ -1214,25 +1219,27 @@ static int netbk_tx_check_mop(struct sk_
+@@ -1232,25 +1242,27 @@ static int netbk_tx_check_mop(struct sk_
for (i = start; i < nr_frags; i++) {
int j, newerr;
@@ -877,7 +885,7 @@ Acked-by: jbeulich@novell.com
+ set_phys_to_machine(idx_to_pfn(netbk, pending_idx),
FOREIGN_FRAME(mop->dev_bus_addr>>PAGE_SHIFT));
- grant_tx_handle[pending_idx] = mop->handle;
-+ netbk->grant_tx_handle[pending_idx] = mop->handle;
++ netbk->tx.grant_handle[pending_idx] = mop->handle;
/* Had a previous error? Invalidate this fragment. */
if (unlikely(err != GNTST_okay))
- netif_idx_release(pending_idx);
@@ -887,14 +895,14 @@ Acked-by: jbeulich@novell.com
/* Error on this fragment: respond to client with an error. */
txp = &pending_tx_info[pending_idx].req;
- make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR);
+ make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR, NULL);
- pending_ring[MASK_PEND_IDX(pending_prod++)] = pending_idx;
-+ index = MASK_PEND_IDX(netbk->pending_prod++);
-+ netbk->pending_ring[index] = pending_idx;
++ index = MASK_PEND_IDX(netbk->tx.pending_prod++);
++ netbk->tx.pending_ring[index] = pending_idx;
netif_put(netif);
/* Not the first error? Preceding frags already invalidated. */
-@@ -1241,10 +1248,10 @@ static int netbk_tx_check_mop(struct sk_
+@@ -1259,10 +1271,10 @@ static int netbk_tx_check_mop(struct sk_
/* First error: invalidate header and preceding fragments. */
pending_idx = *((u16 *)skb->data);
@@ -907,7 +915,7 @@ Acked-by: jbeulich@novell.com
}
/* Remember the error: invalidate all subsequent fragments. */
-@@ -1255,7 +1262,7 @@ static int netbk_tx_check_mop(struct sk_
+@@ -1273,7 +1285,7 @@ static int netbk_tx_check_mop(struct sk_
return err;
}
@@ -916,25 +924,25 @@ Acked-by: jbeulich@novell.com
{
struct skb_shared_info *shinfo = skb_shinfo(skb);
int nr_frags = shinfo->nr_frags;
-@@ -1265,12 +1272,12 @@ static void netbk_fill_frags(struct sk_b
+@@ -1283,12 +1295,12 @@ static void netbk_fill_frags(struct sk_b
netif_tx_request_t *txp;
u16 pending_idx = frag_get_pending_idx(shinfo->frags + i);
- pending_inuse[pending_idx].alloc_time = jiffies;
- list_add_tail(&pending_inuse[pending_idx].list,
- &pending_inuse_head);
-+ netbk->pending_inuse[pending_idx].alloc_time = jiffies;
-+ list_add_tail(&netbk->pending_inuse[pending_idx].list,
-+ &netbk->pending_inuse_head);
++ netbk->tx.pending_inuse[pending_idx].alloc_time = jiffies;
++ list_add_tail(&netbk->tx.pending_inuse[pending_idx].list,
++ &netbk->tx.pending_inuse_head);
- txp = &pending_tx_info[pending_idx].req;
- __skb_fill_page_desc(skb, i, mmap_pages[pending_idx],
-+ txp = &netbk->pending_tx_info[pending_idx].req;
-+ __skb_fill_page_desc(skb, i, netbk->mmap_pages[pending_idx],
++ txp = &netbk->tx.pending_info[pending_idx].req;
++ __skb_fill_page_desc(skb, i, netbk->tx.mmap_pages[pending_idx],
txp->offset, txp->size);
skb->len += txp->size;
-@@ -1337,8 +1344,9 @@ static int netbk_set_skb_gso(netif_t *ne
+@@ -1355,8 +1367,9 @@ static int netbk_set_skb_gso(netif_t *ne
}
/* Called after netfront has transmitted */
@@ -945,36 +953,36 @@ Acked-by: jbeulich@novell.com
struct sk_buff *skb;
netif_t *netif;
netif_tx_request_t txreq;
-@@ -1350,14 +1358,14 @@ static void net_tx_action(unsigned long
+@@ -1368,14 +1381,14 @@ static void net_tx_action(unsigned long
unsigned int data_len;
int ret, work_to_do;
- net_tx_action_dealloc();
+ net_tx_action_dealloc(netbk);
-- mop = tx_map_ops;
-+ mop = netbk->tx_map_ops;
+- mop = tx.map_ops;
++ mop = netbk->tx.map_ops;
BUILD_BUG_ON(MAX_SKB_FRAGS >= MAX_PENDING_REQS);
- while (((NR_PENDING_REQS + MAX_SKB_FRAGS) < MAX_PENDING_REQS) &&
- !list_empty(&net_schedule_list)) {
+ while (((nr_pending_reqs(netbk) + MAX_SKB_FRAGS) < MAX_PENDING_REQS) &&
-+ !list_empty(&netbk->schedule_list)) {
++ !list_empty(&netbk->tx.schedule_list)) {
/* Get a netif from the list with work to do. */
- netif = poll_net_schedule_list();
+ netif = poll_net_schedule_list(netbk);
/*
* This can sometimes happen because the test of
* list_empty(net_schedule_list) at the top of the
-@@ -1460,7 +1468,7 @@ static void net_tx_action(unsigned long
+@@ -1478,7 +1491,7 @@ static void net_tx_action(unsigned long
continue;
}
- pending_idx = pending_ring[MASK_PEND_IDX(pending_cons)];
-+ pending_idx = netbk->pending_ring[MASK_PEND_IDX(netbk->pending_cons)];
++ pending_idx = netbk->tx.pending_ring[MASK_PEND_IDX(netbk->tx.pending_cons)];
data_len = (txreq.size > PKT_PROT_LEN &&
ret < MAX_SKB_FRAGS) ?
-@@ -1490,14 +1498,14 @@ static void net_tx_action(unsigned long
+@@ -1508,14 +1521,14 @@ static void net_tx_action(unsigned long
}
}
@@ -985,62 +993,62 @@ Acked-by: jbeulich@novell.com
mop++;
- memcpy(&pending_tx_info[pending_idx].req,
-+ memcpy(&netbk->pending_tx_info[pending_idx].req,
++ memcpy(&netbk->tx.pending_info[pending_idx].req,
&txreq, sizeof(txreq));
- pending_tx_info[pending_idx].netif = netif;
-+ netbk->pending_tx_info[pending_idx].netif = netif;
++ netbk->tx.pending_info[pending_idx].netif = netif;
*((u16 *)skb->data) = pending_idx;
__skb_put(skb, data_len);
-@@ -1509,20 +1517,20 @@ static void net_tx_action(unsigned long
+@@ -1527,20 +1540,20 @@ static void net_tx_action(unsigned long
pending_idx = INVALID_PENDING_IDX;
frag_set_pending_idx(skb_shinfo(skb)->frags, pending_idx);
- __skb_queue_tail(&tx_queue, skb);
-+ __skb_queue_tail(&netbk->tx_queue, skb);
++ __skb_queue_tail(&netbk->tx.queue, skb);
- pending_cons++;
-+ netbk->pending_cons++;
++ netbk->tx.pending_cons++;
mop = netbk_get_requests(netif, skb, txfrags, mop);
netif->tx.req_cons = i;
netif_schedule_work(netif);
-- if ((mop - tx_map_ops) >= ARRAY_SIZE(tx_map_ops))
-+ if ((mop - netbk->tx_map_ops) >= ARRAY_SIZE(netbk->tx_map_ops))
+- if ((mop - tx.map_ops) >= ARRAY_SIZE(tx.map_ops))
++ if ((mop - netbk->tx.map_ops) >= ARRAY_SIZE(netbk->tx.map_ops))
break;
}
-- if (mop == tx_map_ops)
-+ if (mop == netbk->tx_map_ops)
+- if (mop == tx.map_ops)
++ if (mop == netbk->tx.map_ops)
goto out;
/* NOTE: some maps may fail with GNTST_eagain, which could be successfully
-@@ -1530,22 +1538,23 @@ static void net_tx_action(unsigned long
+@@ -1548,22 +1561,23 @@ static void net_tx_action(unsigned long
* req and let the frontend resend the relevant packet again. This is fine
* because it is unlikely that a network buffer will be paged out or shared,
* and therefore it is unlikely to fail with GNTST_eagain. */
- ret = HYPERVISOR_grant_table_op(
-- GNTTABOP_map_grant_ref, tx_map_ops, mop - tx_map_ops);
+- GNTTABOP_map_grant_ref, tx.map_ops, mop - tx.map_ops);
+ ret = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref,
-+ netbk->tx_map_ops,
-+ mop - netbk->tx_map_ops);
++ netbk->tx.map_ops,
++ mop - netbk->tx.map_ops);
BUG_ON(ret);
-- mop = tx_map_ops;
+- mop = tx.map_ops;
- while ((skb = __skb_dequeue(&tx_queue)) != NULL) {
-+ mop = netbk->tx_map_ops;
-+ while ((skb = __skb_dequeue(&netbk->tx_queue)) != NULL) {
++ mop = netbk->tx.map_ops;
++ while ((skb = __skb_dequeue(&netbk->tx.queue)) != NULL) {
struct net_device *dev;
netif_tx_request_t *txp;
pending_idx = *((u16 *)skb->data);
- netif = pending_tx_info[pending_idx].netif;
-+ netif = netbk->pending_tx_info[pending_idx].netif;
++ netif = netbk->tx.pending_info[pending_idx].netif;
dev = netif->dev;
- txp = &pending_tx_info[pending_idx].req;
-+ txp = &netbk->pending_tx_info[pending_idx].req;
++ txp = &netbk->tx.pending_info[pending_idx].req;
/* Check the remap error code. */
- if (unlikely(netbk_tx_check_mop(skb, &mop))) {
@@ -1048,7 +1056,7 @@ Acked-by: jbeulich@novell.com
netdev_dbg(netif->dev, "netback grant failed.\n");
skb_shinfo(skb)->nr_frags = 0;
kfree_skb(skb);
-@@ -1555,7 +1564,7 @@ static void net_tx_action(unsigned long
+@@ -1573,7 +1587,7 @@ static void net_tx_action(unsigned long
data_len = skb->len;
memcpy(skb->data,
@@ -1057,7 +1065,7 @@ Acked-by: jbeulich@novell.com
data_len);
if (data_len < txp->size) {
/* Append the packet payload as a fragment. */
-@@ -1563,7 +1572,7 @@ static void net_tx_action(unsigned long
+@@ -1581,7 +1595,7 @@ static void net_tx_action(unsigned long
txp->size -= data_len;
} else {
/* Schedule a response immediately. */
@@ -1066,7 +1074,7 @@ Acked-by: jbeulich@novell.com
}
if (txp->flags & XEN_NETTXF_csum_blank)
-@@ -1573,7 +1582,7 @@ static void net_tx_action(unsigned long
+@@ -1591,7 +1605,7 @@ static void net_tx_action(unsigned long
else
skb->ip_summed = CHECKSUM_NONE;
@@ -1075,19 +1083,19 @@ Acked-by: jbeulich@novell.com
/*
* If the initial fragment was < PKT_PROT_LEN then
-@@ -1611,36 +1620,39 @@ static void net_tx_action(unsigned long
+@@ -1631,36 +1645,39 @@ static void net_tx_action(unsigned long
out:
if (netbk_copy_skb_mode == NETBK_DELAYED_COPY_SKB &&
- !list_empty(&pending_inuse_head)) {
-+ !list_empty(&netbk->pending_inuse_head)) {
++ !list_empty(&netbk->tx.pending_inuse_head)) {
struct netbk_tx_pending_inuse *oldest;
- oldest = list_entry(pending_inuse_head.next,
-+ oldest = list_entry(netbk->pending_inuse_head.next,
++ oldest = list_entry(netbk->tx.pending_inuse_head.next,
struct netbk_tx_pending_inuse, list);
- mod_timer(&netbk_tx_pending_timer, oldest->alloc_time + HZ);
-+ mod_timer(&netbk->tx_pending_timer, oldest->alloc_time + HZ);
++ mod_timer(&netbk->tx.pending_timer, oldest->alloc_time + HZ);
}
}
@@ -1099,17 +1107,17 @@ Acked-by: jbeulich@novell.com
- spin_lock_irqsave(&_lock, flags);
- dealloc_ring[MASK_PEND_IDX(dealloc_prod)] = pending_idx;
-+ spin_lock_irqsave(&netbk->release_lock, flags);
-+ netbk->dealloc_ring[MASK_PEND_IDX(netbk->dealloc_prod)] = pending_idx;
++ spin_lock_irqsave(&netbk->tx.release_lock, flags);
++ netbk->tx.dealloc_ring[MASK_PEND_IDX(netbk->tx.dealloc_prod)] = pending_idx;
/* Sync with net_tx_action_dealloc: insert idx /then/ incr producer. */
smp_wmb();
- dealloc_prod++;
- spin_unlock_irqrestore(&_lock, flags);
-+ netbk->dealloc_prod++;
-+ spin_unlock_irqrestore(&netbk->release_lock, flags);
++ netbk->tx.dealloc_prod++;
++ spin_unlock_irqrestore(&netbk->tx.release_lock, flags);
- tasklet_schedule(&net_tx_tasklet);
-+ tasklet_schedule(&netbk->net_tx_tasklet);
++ tasklet_schedule(&netbk->tx.tasklet);
}
static void netif_page_release(struct page *page, unsigned int order)
@@ -1123,12 +1131,12 @@ Acked-by: jbeulich@novell.com
- BUG_ON(idx < 0);
- netif_idx_release(idx);
+ BUG_ON(group >= netbk_nr_groups || idx >= MAX_PENDING_REQS);
-+ BUG_ON(netbk->mmap_pages[idx] != page);
++ BUG_ON(netbk->tx.mmap_pages[idx] != page);
+ netif_idx_release(netbk, idx);
}
irqreturn_t netif_be_int(int irq, void *dev_id)
-@@ -1648,7 +1660,7 @@ irqreturn_t netif_be_int(int irq, void *
+@@ -1668,7 +1685,7 @@ irqreturn_t netif_be_int(int irq, void *
netif_t *netif = dev_id;
add_to_net_schedule_list_tail(netif);
@@ -1137,7 +1145,7 @@ Acked-by: jbeulich@novell.com
if (netif_schedulable(netif) && !netbk_queue_full(netif))
netif_wake_queue(netif->dev);
-@@ -1712,33 +1724,38 @@ static netif_rx_response_t *make_rx_resp
+@@ -1741,33 +1758,38 @@ static netif_rx_response_t *make_rx_resp
#ifdef NETBE_DEBUG_INTERRUPT
static irqreturn_t netif_be_dbg(int irq, void *dev_id)
{
@@ -1169,9 +1177,9 @@ Acked-by: jbeulich@novell.com
+ for (group = 0; group < netbk_nr_groups; ++group) {
+ struct xen_netbk *netbk = &xen_netbk[group];
+
-+ spin_lock_irq(&netbk->schedule_list_lock);
++ spin_lock_irq(&netbk->tx.schedule_list_lock);
+
-+ list_for_each_entry(netif, &netbk->schedule_list, list) {
++ list_for_each_entry(netif, &netbk->tx.schedule_list, list) {
+ pr_alert(" %d: private(rx_req_cons=%08x "
+ "rx_resp_prod=%08x\n", i,
+ netif->rx.req_cons, netif->rx.rsp_prod_pvt);
@@ -1190,14 +1198,14 @@ Acked-by: jbeulich@novell.com
+ i++;
+ }
+
-+ spin_unlock_irq(&netbk->schedule_list_lock);
++ spin_unlock_irq(&netbk->tx.schedule_list_lock);
}
- spin_unlock_irq(&net_schedule_list_lock);
pr_alert(" ** End of netif_schedule_list **\n");
return IRQ_HANDLED;
-@@ -1753,46 +1770,62 @@ static struct irqaction netif_be_dbg_act
+@@ -1782,46 +1804,62 @@ static struct irqaction netif_be_dbg_act
static int __init netback_init(void)
{
@@ -1235,8 +1243,8 @@ Acked-by: jbeulich@novell.com
- pr_err("%s: out of memory\n", __FUNCTION__);
- return -ENOMEM;
- }
-+ tasklet_init(&netbk->net_tx_tasklet, net_tx_action, group);
-+ tasklet_init(&netbk->net_rx_tasklet, net_rx_action, group);
++ tasklet_init(&netbk->tx.tasklet, net_tx_action, group);
++ tasklet_init(&netbk->rx.tasklet, net_rx_action, group);
- for (i = 0; i < MAX_PENDING_REQS; i++) {
- page = mmap_pages[i];
@@ -1244,52 +1252,52 @@ Acked-by: jbeulich@novell.com
- netif_set_page_index(page, i);
- INIT_LIST_HEAD(&pending_inuse[i].list);
- }
-+ skb_queue_head_init(&netbk->rx_queue);
-+ skb_queue_head_init(&netbk->tx_queue);
++ skb_queue_head_init(&netbk->rx.queue);
++ skb_queue_head_init(&netbk->tx.queue);
+
-+ init_timer(&netbk->net_timer);
-+ netbk->net_timer.data = group;
-+ netbk->net_timer.function = net_alarm;
-+
-+ init_timer(&netbk->tx_pending_timer);
-+ netbk->tx_pending_timer.data = group;
-+ netbk->tx_pending_timer.function =
-+ netbk_tx_pending_timeout;
-+
-+ netbk->pending_prod = MAX_PENDING_REQS;
++ init_timer(&netbk->rx.timer);
++ netbk->rx.timer.data = group;
++ netbk->rx.timer.function = net_alarm;
- pending_cons = 0;
- pending_prod = MAX_PENDING_REQS;
- for (i = 0; i < MAX_PENDING_REQS; i++)
- pending_ring[i] = i;
-+ INIT_LIST_HEAD(&netbk->pending_inuse_head);
-+ INIT_LIST_HEAD(&netbk->schedule_list);
++ init_timer(&netbk->tx.pending_timer);
++ netbk->tx.pending_timer.data = group;
++ netbk->tx.pending_timer.function =
++ netbk_tx_pending_timeout;
- spin_lock_init(&net_schedule_list_lock);
- INIT_LIST_HEAD(&net_schedule_list);
-+ spin_lock_init(&netbk->schedule_list_lock);
-+ spin_lock_init(&netbk->release_lock);
++ netbk->tx.pending_prod = MAX_PENDING_REQS;
++
++ INIT_LIST_HEAD(&netbk->tx.pending_inuse_head);
++ INIT_LIST_HEAD(&netbk->tx.schedule_list);
++
++ spin_lock_init(&netbk->tx.schedule_list_lock);
++ spin_lock_init(&netbk->tx.release_lock);
+
-+ netbk->mmap_pages =
++ netbk->tx.mmap_pages =
+ alloc_empty_pages_and_pagevec(MAX_PENDING_REQS);
-+ if (netbk->mmap_pages == NULL) {
++ if (netbk->tx.mmap_pages == NULL) {
+ pr_err("%s: out of memory\n", __func__);
+ rc = -ENOMEM;
+ goto failed_init;
+ }
+
+ for (i = 0; i < MAX_PENDING_REQS; i++) {
-+ page = netbk->mmap_pages[i];
++ page = netbk->tx.mmap_pages[i];
+ SetPageForeign(page, netif_page_release);
+ netif_set_page_ext(page, group, i);
-+ netbk->pending_ring[i] = i;
-+ INIT_LIST_HEAD(&netbk->pending_inuse[i].list);
++ netbk->tx.pending_ring[i] = i;
++ INIT_LIST_HEAD(&netbk->tx.pending_inuse[i].list);
+ }
+ }
netbk_copy_skb_mode = NETBK_DONT_COPY_SKB;
if (MODPARM_copy_skb) {
-@@ -1814,6 +1847,19 @@ static int __init netback_init(void)
+@@ -1843,6 +1881,19 @@ static int __init netback_init(void)
#endif
return 0;
@@ -1298,7 +1306,7 @@ Acked-by: jbeulich@novell.com
+ while (group-- > 0) {
+ struct xen_netbk *netbk = &xen_netbk[group];
+
-+ free_empty_pages_and_pagevec(netbk->mmap_pages,
++ free_empty_pages_and_pagevec(netbk->tx.mmap_pages,
+ MAX_PENDING_REQS);
+ }
+ vfree(xen_netbk);
diff --git a/patches.xen/xen-netback-kernel-threads b/patches.xen/xen-netback-kernel-threads
index 710ca1a64a..4204ea1322 100644
--- a/patches.xen/xen-netback-kernel-threads
+++ b/patches.xen/xen-netback-kernel-threads
@@ -33,7 +33,7 @@ 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.orig/drivers/xen/core/gnttab.c 2012-03-12 14:04:06.000000000 +0100
+--- head.orig/drivers/xen/core/gnttab.c 2013-06-05 08:47:55.000000000 +0200
+++ head/drivers/xen/core/gnttab.c 2012-10-31 12:27:55.000000000 +0100
@@ -659,14 +659,14 @@ int gnttab_copy_grant_page(grant_ref_t r
pfn = page_to_pfn(page);
@@ -61,29 +61,20 @@ Acked-by: jbeulich@novell.com
new_page->mapping = page->mapping;
new_page->index = page->index;
---- head.orig/drivers/xen/netback/common.h 2013-02-06 15:30:33.000000000 +0100
-+++ head/drivers/xen/netback/common.h 2013-02-06 15:30:36.000000000 +0100
-@@ -235,8 +235,16 @@ struct netbk_tx_pending_inuse {
- #define MAX_MFN_ALLOC 64
+--- head.orig/drivers/xen/netback/common.h 2013-06-05 08:20:19.000000000 +0200
++++ head/drivers/xen/netback/common.h 2013-06-05 08:20:24.000000000 +0200
+@@ -266,6 +266,9 @@ struct xen_netbk {
+ grant_handle_t grant_handle[MAX_PENDING_REQS];
+ } tx;
- struct xen_netbk {
-- struct tasklet_struct net_tx_tasklet;
-- struct tasklet_struct net_rx_tasklet;
-+ union {
-+ struct {
-+ struct tasklet_struct net_tx_tasklet;
-+ struct tasklet_struct net_rx_tasklet;
-+ };
-+ struct {
-+ wait_queue_head_t netbk_action_wq;
-+ struct task_struct *task;
-+ };
-+ };
-
- struct sk_buff_head rx_queue;
- struct sk_buff_head tx_queue;
---- head.orig/drivers/xen/netback/netback.c 2013-05-10 14:50:01.000000000 +0200
-+++ head/drivers/xen/netback/netback.c 2013-05-10 14:50:03.000000000 +0200
++ wait_queue_head_t netbk_action_wq;
++ struct task_struct *task;
++
+ struct xen_netbk_rx {
+ struct sk_buff_head queue;
+ struct tasklet_struct tasklet;
+--- head.orig/drivers/xen/netback/netback.c 2013-06-05 08:49:55.000000000 +0200
++++ head/drivers/xen/netback/netback.c 2013-06-05 08:49:58.000000000 +0200
@@ -36,6 +36,7 @@
#include "common.h"
@@ -101,7 +92,7 @@ Acked-by: jbeulich@novell.com
#define GET_GROUP_INDEX(netif) ((netif)->group)
-@@ -153,7 +156,11 @@ static bool MODPARM_permute_returns;
+@@ -152,7 +155,11 @@ static bool MODPARM_permute_returns;
module_param_named(permute_returns, MODPARM_permute_returns, bool, S_IRUSR|S_IWUSR);
MODULE_PARM_DESC(permute_returns, "Randomly permute the order in which TX responses are sent to the frontend");
module_param_named(groups, netbk_nr_groups, uint, 0);
@@ -114,16 +105,17 @@ Acked-by: jbeulich@novell.com
int netbk_copy_skb_mode;
-@@ -184,6 +191,22 @@ static int check_mfn(struct xen_netbk *n
- return netbk->alloc_index >= nr ? 0 : -ENOMEM;
+@@ -209,6 +216,23 @@ static void flush_notify_list(netif_t *l
+ BUG();
}
-+static void netbk_rx_schedule(struct xen_netbk *netbk)
++static void netbk_rx_schedule(struct xen_netbk_rx *netbk)
+{
+ if (use_kthreads)
-+ wake_up(&netbk->netbk_action_wq);
++ wake_up(&container_of(netbk, struct xen_netbk,
++ rx)->netbk_action_wq);
+ else
-+ tasklet_schedule(&netbk->net_rx_tasklet);
++ tasklet_schedule(&netbk->tasklet);
+}
+
+static void netbk_tx_schedule(struct xen_netbk *netbk)
@@ -131,55 +123,55 @@ Acked-by: jbeulich@novell.com
+ if (use_kthreads)
+ wake_up(&netbk->netbk_action_wq);
+ else
-+ tasklet_schedule(&netbk->net_tx_tasklet);
++ tasklet_schedule(&netbk->tx.tasklet);
+}
+
static inline void maybe_schedule_tx_action(unsigned int group)
{
struct xen_netbk *netbk = &xen_netbk[group];
-@@ -191,7 +214,7 @@ static inline void maybe_schedule_tx_act
+@@ -216,7 +240,7 @@ static inline void maybe_schedule_tx_act
smp_mb();
if ((nr_pending_reqs(netbk) < (MAX_PENDING_REQS/2)) &&
- !list_empty(&netbk->schedule_list))
-- tasklet_schedule(&netbk->net_tx_tasklet);
+ !list_empty(&netbk->tx.schedule_list))
+- tasklet_schedule(&netbk->tx.tasklet);
+ netbk_tx_schedule(netbk);
}
static struct sk_buff *netbk_copy_skb(struct sk_buff *skb)
-@@ -371,7 +394,7 @@ int netif_be_start_xmit(struct sk_buff *
+@@ -396,7 +420,7 @@ int netif_be_start_xmit(struct sk_buff *
- netbk = &xen_netbk[group];
- skb_queue_tail(&netbk->rx_queue, skb);
-- tasklet_schedule(&netbk->net_rx_tasklet);
+ netbk = &xen_netbk[group].rx;
+ skb_queue_tail(&netbk->queue, skb);
+- tasklet_schedule(&netbk->tasklet);
+ netbk_rx_schedule(netbk);
return NETDEV_TX_OK;
-@@ -825,7 +848,7 @@ static void net_rx_action(unsigned long
+@@ -842,7 +866,7 @@ static void net_rx_action(unsigned long
/* More work to do? */
- if (!skb_queue_empty(&netbk->rx_queue) &&
- !timer_pending(&netbk->net_timer))
-- tasklet_schedule(&netbk->net_rx_tasklet);
+ if (!skb_queue_empty(&netbk->queue) &&
+ !timer_pending(&netbk->timer))
+- tasklet_schedule(&netbk->tasklet);
+ netbk_rx_schedule(netbk);
#if 0
else
xen_network_done_notify();
-@@ -834,12 +857,12 @@ static void net_rx_action(unsigned long
+@@ -851,12 +875,12 @@ static void net_rx_action(unsigned long
static void net_alarm(unsigned long group)
{
-- tasklet_schedule(&xen_netbk[group].net_rx_tasklet);
-+ netbk_rx_schedule(&xen_netbk[group]);
+- tasklet_schedule(&xen_netbk[group].rx.tasklet);
++ netbk_rx_schedule(&xen_netbk[group].rx);
}
static void netbk_tx_pending_timeout(unsigned long group)
{
-- tasklet_schedule(&xen_netbk[group].net_tx_tasklet);
+- tasklet_schedule(&xen_netbk[group].tx.tasklet);
+ netbk_tx_schedule(&xen_netbk[group]);
}
static int __on_net_schedule_list(netif_t *netif)
-@@ -1625,7 +1648,10 @@ static void net_tx_action(unsigned long
+@@ -1650,7 +1674,10 @@ static void net_tx_action(unsigned long
dev->stats.rx_bytes += skb->len;
dev->stats.rx_packets++;
@@ -191,35 +183,35 @@ Acked-by: jbeulich@novell.com
}
out:
-@@ -1650,7 +1676,7 @@ static void netif_idx_release(struct xen
- netbk->dealloc_prod++;
- spin_unlock_irqrestore(&netbk->release_lock, flags);
+@@ -1675,7 +1702,7 @@ static void netif_idx_release(struct xen
+ netbk->tx.dealloc_prod++;
+ spin_unlock_irqrestore(&netbk->tx.release_lock, flags);
-- tasklet_schedule(&netbk->net_tx_tasklet);
+- tasklet_schedule(&netbk->tx.tasklet);
+ netbk_tx_schedule(netbk);
}
static void netif_page_release(struct page *page, unsigned int order)
-@@ -1789,6 +1815,50 @@ static struct irqaction netif_be_dbg_act
+@@ -1823,6 +1850,50 @@ static struct irqaction netif_be_dbg_act
};
#endif
+static inline int rx_work_todo(struct xen_netbk *netbk)
+{
-+ return !skb_queue_empty(&netbk->rx_queue);
++ return !skb_queue_empty(&netbk->rx.queue);
+}
+
+static inline int tx_work_todo(struct xen_netbk *netbk)
+{
-+ if (netbk->dealloc_cons != netbk->dealloc_prod)
++ if (netbk->tx.dealloc_cons != netbk->tx.dealloc_prod)
+ return 1;
+
+ if (netbk_copy_skb_mode == NETBK_DELAYED_COPY_SKB &&
-+ !list_empty(&netbk->pending_inuse_head))
++ !list_empty(&netbk->tx.pending_inuse_head))
+ return 1;
+
+ if (nr_pending_reqs(netbk) + MAX_SKB_FRAGS < MAX_PENDING_REQS &&
-+ !list_empty(&netbk->schedule_list))
++ !list_empty(&netbk->tx.schedule_list))
+ return 1;
+
+ return 0;
@@ -251,19 +243,19 @@ Acked-by: jbeulich@novell.com
static int __init netback_init(void)
{
unsigned int i, group;
-@@ -1819,9 +1889,6 @@ static int __init netback_init(void)
+@@ -1853,9 +1924,6 @@ static int __init netback_init(void)
for (group = 0; group < netbk_nr_groups; group++) {
struct xen_netbk *netbk = &xen_netbk[group];
-- tasklet_init(&netbk->net_tx_tasklet, net_tx_action, group);
-- tasklet_init(&netbk->net_rx_tasklet, net_rx_action, group);
+- tasklet_init(&netbk->tx.tasklet, net_tx_action, group);
+- tasklet_init(&netbk->rx.tasklet, net_rx_action, group);
-
- skb_queue_head_init(&netbk->rx_queue);
- skb_queue_head_init(&netbk->tx_queue);
+ skb_queue_head_init(&netbk->rx.queue);
+ skb_queue_head_init(&netbk->tx.queue);
-@@ -1857,6 +1924,26 @@ static int __init netback_init(void)
- netbk->pending_ring[i] = i;
- INIT_LIST_HEAD(&netbk->pending_inuse[i].list);
+@@ -1891,6 +1959,26 @@ static int __init netback_init(void)
+ netbk->tx.pending_ring[i] = i;
+ INIT_LIST_HEAD(&netbk->tx.pending_inuse[i].list);
}
+
+ if (use_kthreads) {
@@ -282,13 +274,13 @@ Acked-by: jbeulich@novell.com
+ group % num_online_cpus());
+ wake_up_process(netbk->task);
+ } else {
-+ tasklet_init(&netbk->net_tx_tasklet, net_tx_action, group);
-+ tasklet_init(&netbk->net_rx_tasklet, net_rx_action, group);
++ tasklet_init(&netbk->tx.tasklet, net_tx_action, group);
++ tasklet_init(&netbk->rx.tasklet, net_rx_action, group);
+ }
}
netbk_copy_skb_mode = NETBK_DONT_COPY_SKB;
-@@ -1881,12 +1968,15 @@ static int __init netback_init(void)
+@@ -1915,12 +2003,15 @@ static int __init netback_init(void)
return 0;
failed_init:
@@ -296,13 +288,13 @@ Acked-by: jbeulich@novell.com
+ do {
struct xen_netbk *netbk = &xen_netbk[group];
-- free_empty_pages_and_pagevec(netbk->mmap_pages,
+- free_empty_pages_and_pagevec(netbk->tx.mmap_pages,
- MAX_PENDING_REQS);
- }
+ if (use_kthreads && netbk->task && !IS_ERR(netbk->task))
+ kthread_stop(netbk->task);
-+ if (netbk->mmap_pages)
-+ free_empty_pages_and_pagevec(netbk->mmap_pages,
++ if (netbk->tx.mmap_pages)
++ free_empty_pages_and_pagevec(netbk->tx.mmap_pages,
+ MAX_PENDING_REQS);
+ } while (group--);
vfree(xen_netbk);
diff --git a/patches.xen/xen-netback-multiple-tasklets b/patches.xen/xen-netback-multiple-tasklets
index b1365ab83b..00ca1dc36e 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.orig/drivers/xen/netback/common.h 2013-02-06 15:30:27.000000000 +0100
-+++ head/drivers/xen/netback/common.h 2013-02-06 15:30:33.000000000 +0100
+--- head.orig/drivers/xen/netback/common.h 2013-06-04 16:22:24.000000000 +0200
++++ head/drivers/xen/netback/common.h 2013-06-05 08:20:19.000000000 +0200
@@ -49,6 +49,7 @@
typedef struct netif_st {
/* Unique identifier for this interface. */
@@ -27,24 +27,25 @@ Acked-by: jbeulich@novell.com
unsigned int handle;
u8 fe_dev_addr[6];
-@@ -256,6 +257,7 @@ struct xen_netbk {
-
- struct page **mmap_pages;
+@@ -240,6 +241,8 @@ struct netbk_tx_pending_inuse {
+ #define MAX_MFN_ALLOC 64
+ struct xen_netbk {
+ atomic_t nr_groups;
- unsigned int alloc_index;
-
- struct pending_tx_info pending_tx_info[MAX_PENDING_REQS];
-@@ -283,4 +285,8 @@ struct xen_netbk {
-
- unsigned long mfn_list[MAX_MFN_ALLOC];
++
+ struct {
+ pending_ring_idx_t pending_prod, pending_cons;
+ pending_ring_idx_t dealloc_prod, dealloc_cons;
+@@ -276,4 +279,8 @@ struct xen_netbk {
+ unsigned long mfn_list[MAX_MFN_ALLOC];
+ } rx;
};
+
+extern struct xen_netbk *xen_netbk;
+extern unsigned int netbk_nr_groups;
+
#endif /* __NETIF__BACKEND__COMMON_H__ */
---- head.orig/drivers/xen/netback/interface.c 2013-02-20 11:44:51.000000000 +0100
+--- head.orig/drivers/xen/netback/interface.c 2013-06-05 08:47:55.000000000 +0200
+++ head/drivers/xen/netback/interface.c 2013-02-20 11:45:40.000000000 +0100
@@ -56,6 +56,23 @@ module_param_named(queue_length, netbk_q
@@ -92,8 +93,8 @@ Acked-by: jbeulich@novell.com
netif->handle = handle;
netif->can_sg = 1;
netif->csum = 1;
---- head.orig/drivers/xen/netback/netback.c 2013-05-10 14:49:59.000000000 +0200
-+++ head/drivers/xen/netback/netback.c 2013-05-10 14:50:01.000000000 +0200
+--- head.orig/drivers/xen/netback/netback.c 2013-06-05 08:49:51.000000000 +0200
++++ head/drivers/xen/netback/netback.c 2013-06-05 08:49:55.000000000 +0200
@@ -47,10 +47,10 @@
/*define NETBE_DEBUG_INTERRUPT*/
@@ -107,8 +108,8 @@ Acked-by: jbeulich@novell.com
+#define GET_GROUP_INDEX(netif) ((netif)->group)
static void netif_idx_release(struct xen_netbk *, u16 pending_idx);
- static void make_tx_response(netif_t *netif,
-@@ -152,6 +152,8 @@ MODULE_PARM_DESC(copy_skb, "Copy data re
+ static bool make_tx_response(netif_t *, const netif_tx_request_t *, s8 st,
+@@ -151,6 +151,8 @@ MODULE_PARM_DESC(copy_skb, "Copy data re
static bool MODPARM_permute_returns;
module_param_named(permute_returns, MODPARM_permute_returns, bool, S_IRUSR|S_IWUSR);
MODULE_PARM_DESC(permute_returns, "Randomly permute the order in which TX responses are sent to the frontend");
@@ -117,12 +118,12 @@ Acked-by: jbeulich@novell.com
int netbk_copy_skb_mode;
-@@ -312,10 +314,16 @@ static unsigned int netbk_count_slots(co
+@@ -337,10 +339,16 @@ static unsigned int netbk_count_slots(co
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;
+ struct xen_netbk_rx *netbk;
BUG_ON(skb->dev != dev);
@@ -134,40 +135,39 @@ Acked-by: jbeulich@novell.com
/* Drop the packet if the target domain has no receive buffers. */
if (unlikely(!netif_schedulable(netif) || netbk_queue_full(netif)))
goto drop;
-@@ -361,7 +369,7 @@ int netif_be_start_xmit(struct sk_buff *
+@@ -386,7 +394,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 = &xen_netbk[GET_GROUP_INDEX(netif)].rx;
++ netbk = &xen_netbk[group].rx;
+ skb_queue_tail(&netbk->queue, skb);
+ tasklet_schedule(&netbk->tasklet);
-@@ -436,11 +444,13 @@ static u16 netbk_gop_frag(netif_t *netif
- (idx = netif_page_index(page)) < MAX_PENDING_REQS &&
+@@ -461,10 +469,12 @@ static u16 netbk_gop_frag(netif_t *netif
(group = netif_page_group(page)) < netbk_nr_groups) {
+ struct xen_netbk *netbk = &xen_netbk[group];
struct pending_tx_info *src_pend;
+ unsigned int grp;
- netbk = &xen_netbk[group];
- BUG_ON(netbk->mmap_pages[idx] != page);
- src_pend = &netbk->pending_tx_info[idx];
+ BUG_ON(netbk->tx.mmap_pages[idx] != page);
+ src_pend = &netbk->tx.pending_info[idx];
- BUG_ON(group != GET_GROUP_INDEX(src_pend->netif));
+ grp = GET_GROUP_INDEX(src_pend->netif);
+ BUG_ON(group != grp && grp != UINT_MAX);
copy_gop->source.domid = src_pend->netif->domid;
copy_gop->source.u.ref = src_pend->req.gref;
copy_gop->flags |= GNTCOPY_source_gref;
-@@ -987,7 +997,7 @@ inline static void net_tx_action_dealloc
+@@ -1005,7 +1015,7 @@ inline static void net_tx_action_dealloc
/* Ensure we see all indices enqueued by netif_idx_release(). */
smp_rmb();
- if (MODPARM_permute_returns)
+ if (MODPARM_permute_returns && netbk_nr_groups == 1)
- permute_dealloc_ring(netbk->dealloc_ring, dc, dp);
+ permute_dealloc_ring(netbk->tx.dealloc_ring, dc, dp);
while (dc != dp) {
-@@ -1658,9 +1668,20 @@ static void netif_page_release(struct pa
+@@ -1683,9 +1693,20 @@ static void netif_page_release(struct pa
irqreturn_t netif_be_int(int irq, void *dev_id)
{
netif_t *netif = dev_id;
@@ -189,7 +189,7 @@ Acked-by: jbeulich@novell.com
if (netif_schedulable(netif) && !netbk_queue_full(netif))
netif_wake_queue(netif->dev);
-@@ -1777,9 +1798,20 @@ static int __init netback_init(void)
+@@ -1811,9 +1832,20 @@ static int __init netback_init(void)
if (!is_running_on_xen())
return -ENODEV;
diff --git a/patches.xen/xen-netback-notify-multi b/patches.xen/xen-netback-notify-multi
index 9f3e067bf9..5aeb668c0a 100644
--- a/patches.xen/xen-netback-notify-multi
+++ b/patches.xen/xen-netback-notify-multi
@@ -1,11 +1,11 @@
-From: jbeulich@novell.com
+From: jbeulich@suse.com
Subject: netback: use multicall for send multiple notifications
-Patch-mainline: obsolete
+Patch-mainline: n/a
-This also yields a small fairness improvement since now notifications
+This also yields a small fairness improvement since now RX notifications
get sent in the order requests came in rather than in the inverse one.
---- head.orig/drivers/xen/core/evtchn.c 2013-01-30 12:35:49.000000000 +0100
+--- head.orig/drivers/xen/core/evtchn.c 2013-06-05 08:47:55.000000000 +0200
+++ head/drivers/xen/core/evtchn.c 2013-01-30 12:37:42.000000000 +0100
@@ -34,6 +34,7 @@
#include <linux/slab.h>
@@ -43,32 +43,303 @@ get sent in the order requests came in rather than in the inverse one.
int irq_to_evtchn_port(int irq)
{
const struct irq_cfg *cfg = irq_cfg(irq);
---- head.orig/drivers/xen/netback/netback.c 2013-01-30 12:37:32.000000000 +0100
-+++ head/drivers/xen/netback/netback.c 2013-01-30 12:37:38.000000000 +0100
-@@ -814,10 +814,20 @@ static void net_rx_action(unsigned long
+--- head.orig/drivers/xen/netback/common.h 2013-06-05 08:47:55.000000000 +0200
++++ head/drivers/xen/netback/common.h 2013-06-04 15:05:14.000000000 +0200
+@@ -55,6 +55,12 @@ typedef struct netif_st {
+
+ unsigned int irq;
+
++ struct netif_st *notify_link[2];
++#define RX_IDX 0
++#define TX_IDX 1
++#define rx_notify_link notify_link[RX_IDX]
++#define tx_notify_link notify_link[TX_IDX]
++
+ /* The shared rings and indexes. */
+ netif_tx_back_ring_t tx;
+ netif_rx_back_ring_t rx;
+--- head.orig/drivers/xen/netback/netback.c 2013-06-05 08:47:55.000000000 +0200
++++ head/drivers/xen/netback/netback.c 2013-06-05 08:48:36.000000000 +0200
+@@ -59,9 +59,8 @@ struct netbk_tx_pending_inuse {
+ };
+
+ static void netif_idx_release(u16 pending_idx);
+-static void make_tx_response(netif_t *netif,
+- netif_tx_request_t *txp,
+- s8 st);
++static bool make_tx_response(netif_t *, const netif_tx_request_t *, s8 st,
++ netif_t **);
+ static netif_rx_response_t *make_rx_response(netif_t *netif,
+ u16 id,
+ s8 st,
+@@ -155,8 +154,11 @@ static LIST_HEAD(pending_inuse_head);
+ static struct sk_buff_head tx_queue;
+
+ static grant_handle_t grant_tx_handle[MAX_PENDING_REQS];
+-static gnttab_unmap_grant_ref_t tx_unmap_ops[MAX_PENDING_REQS];
+-static gnttab_map_grant_ref_t tx_map_ops[MAX_PENDING_REQS];
++static union {
++ gnttab_map_grant_ref_t map_ops[MAX_PENDING_REQS];
++ gnttab_unmap_grant_ref_t unmap_ops[MAX_PENDING_REQS];
++ multicall_entry_t mcl[0];
++} tx;
+
+ static struct list_head net_schedule_list;
+ static spinlock_t net_schedule_list_lock;
+@@ -201,6 +203,32 @@ static int check_mfn(int nr)
+ return alloc_index >= nr ? 0 : -ENOMEM;
+ }
+
++static void flush_notify_list(netif_t *list, unsigned int idx,
++ multicall_entry_t mcl[],
++ unsigned int limit)
++{
++ unsigned int used = 0;
++
++ do {
++ netif_t *cur = list;
++
++ list = cur->notify_link[idx];
++ cur->notify_link[idx] = NULL;
++
++ if ((!used && !list) ||
++ multi_notify_remote_via_irq(mcl + used, cur->irq))
++ notify_remote_via_irq(cur->irq);
++ else if (++used == limit) {
++ if (HYPERVISOR_multicall(mcl, used))
++ BUG();
++ used = 0;
++ }
++ netif_put(cur);
++ } while (list);
++ if (used && HYPERVISOR_multicall(mcl, used))
++ BUG();
++}
++
+ static inline void maybe_schedule_tx_action(void)
+ {
+ smp_mb();
+@@ -626,14 +654,13 @@ static unsigned int netbk_add_frag_respo
+
+ static void net_rx_action(unsigned long unused)
+ {
+- netif_t *netif = NULL;
++ netif_t *netif, *notify_head = NULL, *notify_tail = NULL;
+ s8 status;
+- u16 id, irq, flags;
++ u16 id, flags;
+ netif_rx_response_t *resp;
+ multicall_entry_t *mcl;
+ struct sk_buff_head rxq;
+ struct sk_buff *skb;
+- int notify_nr = 0;
+ int ret;
+ int nr_frags;
+ int count;
+@@ -647,8 +674,6 @@ 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];
+ static gnttab_copy_t grant_copy_op[NET_RX_RING_SIZE];
+- static unsigned char rx_notify[NR_IRQS];
+- static u16 notify_list[NET_RX_RING_SIZE];
+ static struct netbk_rx_meta meta[NET_RX_RING_SIZE];
+
+ struct netrx_pending_operations npo = {
+@@ -795,28 +820,29 @@ static void net_rx_action(unsigned long
+ nr_frags);
+
+ RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&netif->rx, ret);
+- irq = netif->irq;
+- if (ret && !rx_notify[irq]) {
+- rx_notify[irq] = 1;
+- notify_list[notify_nr++] = irq;
+- }
+
+ if (netif_queue_stopped(netif->dev) &&
+ netif_schedulable(netif) &&
+ !netbk_queue_full(netif))
+ netif_wake_queue(netif->dev);
+
+- netif_put(netif);
++ if (ret && netif != notify_tail && !netif->rx_notify_link) {
++ if (notify_tail)
++ notify_tail->rx_notify_link = netif;
++ else
++ notify_head = netif;
++ notify_tail = netif;
++ } else
++ netif_put(netif);
++
+ dev_kfree_skb(skb);
+
npo.meta_cons += nr_frags + 1;
}
- while (notify_nr != 0) {
- irq = notify_list[--notify_nr];
-+ if (notify_nr == 1) {
-+ irq = *notify_list;
- __clear_bit(irq, rx_notify);
- notify_remote_via_irq(irq + DYNIRQ_BASE);
-+ } else {
-+ for (count = ret = 0; ret < notify_nr; ++ret) {
-+ irq = notify_list[ret];
-+ __clear_bit(irq, rx_notify);
-+ if (!multi_notify_remote_via_irq(rx_mcl + count,
-+ irq + DYNIRQ_BASE))
-+ ++count;
-+ }
-+ if (HYPERVISOR_multicall(rx_mcl, count))
-+ BUG();
- }
+- rx_notify[irq] = 0;
+- notify_remote_via_irq(irq);
+- }
++ if (notify_head)
++ flush_notify_list(notify_head, RX_IDX, rx_mcl,
++ ARRAY_SIZE(rx_mcl));
/* More work to do? */
---- head.orig/include/xen/evtchn.h 2012-02-10 11:32:59.000000000 +0100
+ if (!skb_queue_empty(&rx_queue) && !timer_pending(&net_timer))
+@@ -972,11 +998,11 @@ inline static void net_tx_action_dealloc
+ gnttab_unmap_grant_ref_t *gop;
+ u16 pending_idx;
+ PEND_RING_IDX dc, dp;
+- netif_t *netif;
++ netif_t *netif, *notify_head = NULL, *notify_tail = NULL;
+ LIST_HEAD(list);
+
+ dc = dealloc_cons;
+- gop = tx_unmap_ops;
++ gop = tx.unmap_ops;
+
+ /*
+ * Free up any grants we have finished using
+@@ -1012,7 +1038,7 @@ inline static void net_tx_action_dealloc
+ dealloc_cons = dc;
+
+ if (HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+- tx_unmap_ops, gop - tx_unmap_ops))
++ tx.unmap_ops, gop - tx.unmap_ops))
+ BUG();
+
+ /* Copy any entries that have been pending for too long. */
+@@ -1046,18 +1072,22 @@ inline static void net_tx_action_dealloc
+
+ netif = pending_tx_info[pending_idx].netif;
+
+- make_tx_response(netif, &pending_tx_info[pending_idx].req,
+- XEN_NETIF_RSP_OKAY);
++ if (!make_tx_response(netif, &pending_tx_info[pending_idx].req,
++ XEN_NETIF_RSP_OKAY, &notify_tail))
++ netif_put(netif);
++ else if (!notify_head)
++ notify_head = netif;
+
+ /* Ready for next use. */
+ gnttab_reset_grant_page(mmap_pages[pending_idx]);
+
+ pending_ring[MASK_PEND_IDX(pending_prod++)] = pending_idx;
+
+- netif_put(netif);
+-
+ list_del_init(&inuse->list);
+ }
++ if (notify_head)
++ flush_notify_list(notify_head, TX_IDX, tx.mcl,
++ sizeof(tx) / sizeof(tx.mcl[0]));
+ }
+
+ static void netbk_tx_err(netif_t *netif, netif_tx_request_t *txp, RING_IDX end)
+@@ -1065,7 +1095,7 @@ static void netbk_tx_err(netif_t *netif,
+ RING_IDX cons = netif->tx.req_cons;
+
+ do {
+- make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR);
++ make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR, NULL);
+ if (cons == end)
+ break;
+ txp = RING_GET_REQUEST(&netif->tx, cons++);
+@@ -1188,7 +1218,7 @@ static int netbk_tx_check_mop(struct sk_
+ err = mop->status;
+ if (unlikely(err != GNTST_okay)) {
+ txp = &pending_tx_info[pending_idx].req;
+- make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR);
++ make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR, NULL);
+ pending_ring[MASK_PEND_IDX(pending_prod++)] = pending_idx;
+ netif_put(netif);
+ } else {
+@@ -1219,7 +1249,7 @@ static int netbk_tx_check_mop(struct sk_
+
+ /* Error on this fragment: respond to client with an error. */
+ txp = &pending_tx_info[pending_idx].req;
+- make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR);
++ make_tx_response(netif, txp, XEN_NETIF_RSP_ERROR, NULL);
+ pending_ring[MASK_PEND_IDX(pending_prod++)] = pending_idx;
+ netif_put(netif);
+
+@@ -1340,7 +1370,7 @@ static void net_tx_action(unsigned long
+
+ net_tx_action_dealloc();
+
+- mop = tx_map_ops;
++ mop = tx.map_ops;
+ BUILD_BUG_ON(MAX_SKB_FRAGS >= MAX_PENDING_REQS);
+ while (((NR_PENDING_REQS + MAX_SKB_FRAGS) < MAX_PENDING_REQS) &&
+ !list_empty(&net_schedule_list)) {
+@@ -1506,11 +1536,11 @@ static void net_tx_action(unsigned long
+ netif->tx.req_cons = i;
+ netif_schedule_work(netif);
+
+- if ((mop - tx_map_ops) >= ARRAY_SIZE(tx_map_ops))
++ if ((mop - tx.map_ops) >= ARRAY_SIZE(tx.map_ops))
+ break;
+ }
+
+- if (mop == tx_map_ops)
++ if (mop == tx.map_ops)
+ goto out;
+
+ /* NOTE: some maps may fail with GNTST_eagain, which could be successfully
+@@ -1519,10 +1549,10 @@ static void net_tx_action(unsigned long
+ * because it is unlikely that a network buffer will be paged out or shared,
+ * and therefore it is unlikely to fail with GNTST_eagain. */
+ ret = HYPERVISOR_grant_table_op(
+- GNTTABOP_map_grant_ref, tx_map_ops, mop - tx_map_ops);
++ GNTTABOP_map_grant_ref, tx.map_ops, mop - tx.map_ops);
+ BUG_ON(ret);
+
+- mop = tx_map_ops;
++ mop = tx.map_ops;
+ while ((skb = __skb_dequeue(&tx_queue)) != NULL) {
+ struct net_device *dev;
+ netif_tx_request_t *txp;
+@@ -1646,9 +1676,8 @@ irqreturn_t netif_be_int(int irq, void *
+ return IRQ_HANDLED;
+ }
+
+-static void make_tx_response(netif_t *netif,
+- netif_tx_request_t *txp,
+- s8 st)
++static bool make_tx_response(netif_t *netif, const netif_tx_request_t *txp,
++ s8 st, netif_t **tailp)
+ {
+ RING_IDX i = netif->tx.rsp_prod_pvt;
+ netif_tx_response_t *resp;
+@@ -1663,8 +1692,16 @@ static void make_tx_response(netif_t *ne
+
+ netif->tx.rsp_prod_pvt = ++i;
+ RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&netif->tx, notify);
+- if (notify)
+- notify_remote_via_irq(netif->irq);
++ if (notify) {
++ if (!tailp)
++ notify_remote_via_irq(netif->irq);
++ else if (netif != *tailp && !netif->tx_notify_link) {
++ if (*tailp)
++ (*tailp)->tx_notify_link = netif;
++ *tailp = netif;
++ } else
++ notify = false;
++ }
+
+ #ifdef CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER
+ if (i == netif->tx.req_cons) {
+@@ -1674,6 +1711,8 @@ static void make_tx_response(netif_t *ne
+ add_to_net_schedule_list_tail(netif);
+ }
+ #endif
++
++ return notify;
+ }
+
+ static netif_rx_response_t *make_rx_response(netif_t *netif,
+--- head.orig/include/xen/evtchn.h 2013-06-05 08:47:55.000000000 +0200
+++ head/include/xen/evtchn.h 2012-02-10 13:35:11.000000000 +0100
@@ -188,6 +188,18 @@ static inline void notify_remote_via_evt
VOID(HYPERVISOR_event_channel_op(EVTCHNOP_send, &send));
diff --git a/patches.xen/xen-netback-nr-irqs b/patches.xen/xen-netback-nr-irqs
deleted file mode 100644
index ba75196628..0000000000
--- a/patches.xen/xen-netback-nr-irqs
+++ /dev/null
@@ -1,61 +0,0 @@
-From: jbeulich@novell.com
-Subject: netback: reduce overhead of IRQ recording
-Patch-mainline: obsolete
-
-Since both NR_PIRQS and NR_DYNIRQS are no longer hardcoded, the
-(memory) overhead of tracking which ones to send notifications to can
-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.orig/drivers/xen/netback/interface.c 2013-02-20 11:44:06.000000000 +0100
-+++ head/drivers/xen/netback/interface.c 2013-02-20 11:44:51.000000000 +0100
-@@ -278,6 +278,7 @@ int netif_map(struct backend_info *be, g
- netif->dev->name, netif);
- if (err < 0)
- goto err_hypervisor;
-+ BUG_ON(err < DYNIRQ_BASE || err >= DYNIRQ_BASE + NR_DYNIRQS);
- netif->irq = err;
- disable_irq(netif->irq);
-
---- head.orig/drivers/xen/netback/netback.c 2013-02-20 11:43:53.000000000 +0100
-+++ head/drivers/xen/netback/netback.c 2013-01-30 12:37:32.000000000 +0100
-@@ -647,8 +647,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];
- static gnttab_copy_t grant_copy_op[NET_RX_RING_SIZE];
-- static unsigned char rx_notify[NR_IRQS];
-+ static DECLARE_BITMAP(rx_notify, NR_DYNIRQS);
-+#if NR_DYNIRQS <= 0x10000
- static u16 notify_list[NET_RX_RING_SIZE];
-+#else
-+ static int notify_list[NET_RX_RING_SIZE];
-+#endif
- static struct netbk_rx_meta meta[NET_RX_RING_SIZE];
-
- struct netrx_pending_operations npo = {
-@@ -795,11 +799,9 @@ static void net_rx_action(unsigned long
- nr_frags);
-
- RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&netif->rx, ret);
-- irq = netif->irq;
-- if (ret && !rx_notify[irq]) {
-- rx_notify[irq] = 1;
-+ irq = netif->irq - DYNIRQ_BASE;
-+ if (ret && !__test_and_set_bit(irq, rx_notify))
- notify_list[notify_nr++] = irq;
-- }
-
- if (netif_queue_stopped(netif->dev) &&
- netif_schedulable(netif) &&
-@@ -814,8 +816,8 @@ static void net_rx_action(unsigned long
-
- while (notify_nr != 0) {
- irq = notify_list[--notify_nr];
-- rx_notify[irq] = 0;
-- notify_remote_via_irq(irq);
-+ __clear_bit(irq, rx_notify);
-+ notify_remote_via_irq(irq + DYNIRQ_BASE);
- }
-
- /* More work to do? */
diff --git a/patches.xen/xen-pcpu-hotplug b/patches.xen/xen-pcpu-hotplug
index c5fb73c4fc..f708208dab 100644
--- a/patches.xen/xen-pcpu-hotplug
+++ b/patches.xen/xen-pcpu-hotplug
@@ -109,9 +109,9 @@ Acked-by: jbeulich@novell.com
if (pmbits & XEN_PROCESSOR_PM_CX)
xen_extcntl_ops.pm_ops[PM_TYPE_IDLE] = xen_cx_notifier;
if (pmbits & XEN_PROCESSOR_PM_PX)
---- head.orig/drivers/acpi/processor_driver.c 2013-04-02 17:01:21.000000000 +0200
-+++ head/drivers/acpi/processor_driver.c 2013-04-02 17:03:40.000000000 +0200
-@@ -929,10 +929,21 @@ static acpi_status acpi_processor_hotadd
+--- head.orig/drivers/acpi/processor_driver.c 2013-05-23 17:57:06.000000000 +0200
++++ head/drivers/acpi/processor_driver.c 2013-05-24 15:32:12.000000000 +0200
+@@ -925,10 +925,21 @@ static acpi_status acpi_processor_hotadd
{
acpi_handle handle = pr->handle;
@@ -133,7 +133,7 @@ Acked-by: jbeulich@novell.com
if (acpi_map_lsapic(handle, &pr->id))
return AE_ERROR;
-@@ -957,10 +968,11 @@ static acpi_status acpi_processor_hotadd
+@@ -953,10 +964,11 @@ static acpi_status acpi_processor_hotadd
static int acpi_processor_handle_eject(struct acpi_processor *pr)
{
@@ -579,8 +579,8 @@ Acked-by: jbeulich@novell.com
+}
+subsys_initcall(xen_pcpu_init);
--- head.orig/include/acpi/processor.h 2012-10-23 15:36:37.000000000 +0200
-+++ head/include/acpi/processor.h 2013-03-25 16:27:41.000000000 +0100
-@@ -487,6 +487,8 @@ static inline void xen_convert_psd_pack(
++++ head/include/acpi/processor.h 2013-05-24 15:32:04.000000000 +0200
+@@ -493,6 +493,8 @@ static inline void xen_convert_psd_pack(
xpsd->num_processors = apsd->num_processors;
}
diff --git a/patches.xen/xen-unpriv-build b/patches.xen/xen-unpriv-build
index 409374d0ae..313abc3db9 100644
--- a/patches.xen/xen-unpriv-build
+++ b/patches.xen/xen-unpriv-build
@@ -2,9 +2,9 @@ From: jbeulich@novell.com
Subject: no need to build certain bits when building non-privileged kernel
Patch-mainline: n/a
---- head.orig/arch/x86/Kconfig 2013-03-25 16:27:03.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-04-26 11:29:24.000000000 +0200
-@@ -760,6 +760,7 @@ config APB_TIMER
+--- head.orig/arch/x86/Kconfig 2013-05-24 15:31:49.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-24 15:46:28.000000000 +0200
+@@ -756,6 +756,7 @@ config APB_TIMER
config DMI
default y
bool "Enable DMI scanning" if EXPERT
@@ -12,7 +12,7 @@ Patch-mainline: n/a
---help---
Enabled scanning of DMI to identify machine quirks. Say Y
here unless you have verified that your setup is not
-@@ -814,6 +815,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
+@@ -810,6 +811,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
# need this always selected by IOMMU for the VIA workaround
config SWIOTLB
def_bool y if X86_64 || XEN
@@ -20,7 +20,7 @@ Patch-mainline: n/a
---help---
Support for software bounce buffers used on x86-64 systems
which don't have a hardware IOMMU. Using this PCI devices
-@@ -2089,13 +2091,15 @@ config PCI_GOBIOS
+@@ -2085,13 +2087,15 @@ config PCI_GOBIOS
config PCI_GOMMCONFIG
bool "MMConfig"
@@ -37,7 +37,7 @@ Patch-mainline: n/a
config PCI_GOXEN_FE
bool "Xen PCI Frontend"
-@@ -2106,6 +2110,7 @@ config PCI_GOXEN_FE
+@@ -2102,6 +2106,7 @@ config PCI_GOXEN_FE
config PCI_GOANY
bool "Any"
@@ -45,7 +45,7 @@ Patch-mainline: n/a
endchoice
-@@ -2306,7 +2311,7 @@ endif # X86_32
+@@ -2302,7 +2307,7 @@ endif # X86_32
config AMD_NB
def_bool y
@@ -54,7 +54,7 @@ Patch-mainline: n/a
source "drivers/pcmcia/Kconfig"
---- head.orig/arch/x86/Kconfig.debug 2012-02-08 11:50:34.000000000 +0100
+--- head.orig/arch/x86/Kconfig.debug 2013-06-04 17:01:02.000000000 +0200
+++ head/arch/x86/Kconfig.debug 2011-07-21 12:33:36.000000000 +0200
@@ -33,6 +33,7 @@ config X86_VERBOSE_BOOTUP
@@ -64,7 +64,7 @@ Patch-mainline: n/a
default y
---help---
Write kernel log output directly into the VGA buffer or to a serial
---- head.orig/arch/x86/include/mach-xen/asm/swiotlb.h 2011-02-01 15:09:47.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/swiotlb.h 2013-06-04 17:01:02.000000000 +0200
+++ head/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>
@@ -75,7 +75,7 @@ Patch-mainline: n/a
+
dma_addr_t swiotlb_map_single_phys(struct device *, phys_addr_t, size_t size,
int dir);
---- head.orig/drivers/pci/Kconfig 2013-01-10 14:56:12.000000000 +0100
+--- head.orig/drivers/pci/Kconfig 2013-06-04 17:01:02.000000000 +0200
+++ head/drivers/pci/Kconfig 2012-11-29 15:04:02.000000000 +0100
@@ -86,7 +86,7 @@ config PARAVIRT_XEN_PCIDEV_FRONTEND
@@ -86,9 +86,9 @@ Patch-mainline: n/a
depends on PCI && XEN && (PCI_GOXEN_FE || PCI_GOANY || X86_64)
help
The PCI device frontend driver allows the kernel to import arbitrary
---- head.orig/drivers/video/Kconfig 2013-03-21 14:28:57.000000000 +0100
-+++ head/drivers/video/Kconfig 2013-03-25 16:28:51.000000000 +0100
-@@ -776,7 +776,7 @@ config FB_UVESA
+--- head.orig/drivers/video/Kconfig 2013-06-04 17:01:02.000000000 +0200
++++ head/drivers/video/Kconfig 2013-05-24 15:46:34.000000000 +0200
+@@ -752,7 +752,7 @@ config FB_UVESA
config FB_VESA
bool "VESA VGA graphics support"
@@ -117,8 +117,8 @@ Patch-mainline: n/a
default XEN_PRIVILEGED_GUEST
help
Device for accessing (in user-space) pages that have been granted
---- head.orig/drivers/xen/balloon/balloon.c 2012-08-21 17:39:48.000000000 +0200
-+++ head/drivers/xen/balloon/balloon.c 2012-06-08 11:25:24.000000000 +0200
+--- head.orig/drivers/xen/balloon/balloon.c 2013-05-28 09:37:18.000000000 +0200
++++ head/drivers/xen/balloon/balloon.c 2013-05-28 09:25:39.000000000 +0200
@@ -41,6 +41,7 @@
#include <linux/swap.h>
#include <linux/bootmem.h>
@@ -126,7 +126,7 @@ Patch-mainline: n/a
+#include <linux/kconfig.h>
#include <linux/slab.h>
#include <linux/mutex.h>
- #include <xen/xen_proc.h>
+ #include <linux/seq_file.h>
@@ -627,6 +628,9 @@ void balloon_update_driver_allowance(lon
bs.driver_pages += delta;
balloon_unlock(flags);
@@ -166,7 +166,7 @@ Patch-mainline: n/a
EXPORT_SYMBOL_GPL(balloon_release_driver_page);
MODULE_LICENSE("Dual BSD/GPL");
---- head.orig/drivers/xen/console/console.c 2013-04-02 16:43:06.000000000 +0200
+--- head.orig/drivers/xen/console/console.c 2013-06-04 17:01:02.000000000 +0200
+++ head/drivers/xen/console/console.c 2012-03-22 14:31:13.000000000 +0100
@@ -45,7 +45,6 @@
#include <linux/init.h>
@@ -210,7 +210,7 @@ Patch-mainline: n/a
/******************** User-space console driver (/dev/console) ************/
---- head.orig/drivers/xen/console/xencons_ring.c 2012-03-22 14:04:29.000000000 +0100
+--- head.orig/drivers/xen/console/xencons_ring.c 2013-06-04 17:01:02.000000000 +0200
+++ head/drivers/xen/console/xencons_ring.c 2012-03-22 14:31:18.000000000 +0100
@@ -89,7 +89,11 @@ static irqreturn_t handle_input(int irq,
return IRQ_HANDLED;
@@ -274,7 +274,7 @@ Patch-mainline: n/a
#ifdef __HAVE_ARCH_PTE_SPECIAL
static unsigned int GNTMAP_pte_special;
---- head.orig/drivers/xen/privcmd/Makefile 2007-07-10 09:42:30.000000000 +0200
+--- head.orig/drivers/xen/privcmd/Makefile 2013-06-04 17:01:02.000000000 +0200
+++ head/drivers/xen/privcmd/Makefile 2011-02-02 15:10:34.000000000 +0100
@@ -1,3 +1,3 @@
-
@@ -283,11 +283,11 @@ Patch-mainline: n/a
+priv-$(CONFIG_COMPAT) := compat_privcmd.o
+obj-y := privcmd.o
+obj-$(CONFIG_XEN_PRIVILEGED_GUEST) += $(priv-y)
---- head.orig/drivers/xen/privcmd/privcmd.c 2012-10-30 17:31:28.000000000 +0100
-+++ head/drivers/xen/privcmd/privcmd.c 2012-10-31 12:17:29.000000000 +0100
-@@ -27,6 +27,9 @@
- static struct proc_dir_entry *privcmd_intf;
- static struct proc_dir_entry *capabilities_intf;
+--- head.orig/drivers/xen/privcmd/privcmd.c 2013-05-28 10:50:58.000000000 +0200
++++ head/drivers/xen/privcmd/privcmd.c 2013-05-28 09:25:37.000000000 +0200
+@@ -25,6 +25,9 @@
+ #include <xen/xen_proc.h>
+ #include <xen/features.h>
+#ifndef CONFIG_XEN_PRIVILEGED_GUEST
+#define HAVE_ARCH_PRIVCMD_MMAP
@@ -295,7 +295,7 @@ Patch-mainline: n/a
#ifndef HAVE_ARCH_PRIVCMD_MMAP
static int enforce_singleshot_mapping_fn(pte_t *pte, struct page *pmd_page,
unsigned long addr, void *data)
-@@ -51,12 +54,14 @@ static long privcmd_ioctl(struct file *f
+@@ -49,12 +52,14 @@ static long privcmd_ioctl(struct file *f
{
long ret;
void __user *udata = (void __user *) data;
@@ -310,7 +310,7 @@ Patch-mainline: n/a
switch (cmd) {
case IOCTL_PRIVCMD_HYPERCALL: {
-@@ -81,6 +86,8 @@ static long privcmd_ioctl(struct file *f
+@@ -79,6 +84,8 @@ static long privcmd_ioctl(struct file *f
}
break;
@@ -319,7 +319,7 @@ Patch-mainline: n/a
case IOCTL_PRIVCMD_MMAP: {
#define MMAP_NR_PER_PAGE \
(unsigned long)((PAGE_SIZE - sizeof(*l)) / sizeof(*msg))
-@@ -386,6 +393,8 @@ static long privcmd_ioctl(struct file *f
+@@ -384,6 +391,8 @@ static long privcmd_ioctl(struct file *f
}
break;
@@ -328,17 +328,17 @@ Patch-mainline: n/a
default:
ret = -EINVAL;
break;
-@@ -425,7 +434,9 @@ static const struct file_operations priv
+@@ -423,7 +432,9 @@ static const struct file_operations priv
.open = nonseekable_open,
.llseek = no_llseek,
.unlocked_ioctl = privcmd_ioctl,
+#ifdef CONFIG_XEN_PRIVILEGED_GUEST
- .mmap = privcmd_mmap,
+ .mmap = privcmd_mmap
+#endif
};
- static int capabilities_read(char *page, char **start, off_t off,
---- head.orig/drivers/xen/xenbus/xenbus_comms.c 2012-10-29 17:13:41.000000000 +0100
+ static int capabilities_show(struct seq_file *m, void *v)
+--- head.orig/drivers/xen/xenbus/xenbus_comms.c 2013-06-04 17:01:02.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_comms.c 2011-04-01 10:23:25.000000000 +0200
@@ -52,12 +52,12 @@
@@ -363,9 +363,9 @@ Patch-mainline: n/a
wake_up(&xb_waitq);
return IRQ_HANDLED;
}
---- head.orig/drivers/xen/xenbus/xenbus_probe.c 2013-03-25 09:13:58.000000000 +0100
-+++ head/drivers/xen/xenbus/xenbus_probe.c 2012-03-22 14:31:27.000000000 +0100
-@@ -93,7 +93,11 @@ static unsigned long xen_store_mfn;
+--- head.orig/drivers/xen/xenbus/xenbus_probe.c 2013-06-04 14:12:33.000000000 +0200
++++ head/drivers/xen/xenbus/xenbus_probe.c 2013-06-04 17:05:38.000000000 +0200
+@@ -99,7 +99,11 @@ static unsigned long xen_store_mfn;
extern struct mutex xenwatch_mutex;
@@ -378,7 +378,7 @@ Patch-mainline: n/a
#if defined(CONFIG_XEN) || defined(MODULE)
static void wait_for_devices(struct xenbus_driver *xendrv);
-@@ -1066,7 +1070,11 @@ static void xenbus_reset_state(void)
+@@ -1072,7 +1076,11 @@ static void xenbus_reset_state(void)
}
#endif
@@ -391,7 +391,7 @@ Patch-mainline: n/a
{
BUG_ON(!is_xenstored_ready());
---- head.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2011-11-17 15:56:06.000000000 +0100
+--- head.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2013-06-04 17:01:02.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_probe_backend.c 2012-03-13 14:38:50.000000000 +0100
@@ -322,7 +322,7 @@ subsys_initcall(xenbus_probe_backend_ini
@@ -411,7 +411,7 @@ Patch-mainline: n/a
{
if (xenbus_backend.error)
return;
---- head.orig/drivers/xen/xenbus/xenbus_xs.c 2013-01-30 12:03:06.000000000 +0100
+--- head.orig/drivers/xen/xenbus/xenbus_xs.c 2013-06-04 17:01:02.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_xs.c 2013-01-30 12:35:53.000000000 +0100
@@ -979,7 +979,11 @@ static int xenbus_thread(void *unused)
return 0;
@@ -426,9 +426,9 @@ Patch-mainline: n/a
{
struct task_struct *task;
---- head.orig/fs/compat_ioctl.c 2013-01-08 11:57:25.000000000 +0100
-+++ head/fs/compat_ioctl.c 2013-01-09 17:52:32.000000000 +0100
-@@ -1500,7 +1500,7 @@ static long do_ioctl_trans(int fd, unsig
+--- head.orig/fs/compat_ioctl.c 2013-06-04 17:01:02.000000000 +0200
++++ head/fs/compat_ioctl.c 2013-05-24 15:46:39.000000000 +0200
+@@ -1499,7 +1499,7 @@ static long do_ioctl_trans(int fd, unsig
return do_video_stillpicture(fd, cmd, argp);
case VIDEO_SET_SPU_PALETTE:
return do_video_set_spu_palette(fd, cmd, argp);
diff --git a/patches.xen/xen-virq-per-cpu-irq b/patches.xen/xen-virq-per-cpu-irq
index 3b89e34a1c..d247bf3d42 100644
--- a/patches.xen/xen-virq-per-cpu-irq
+++ b/patches.xen/xen-virq-per-cpu-irq
@@ -533,9 +533,9 @@ Patch-mainline: n/a
init_evtchn_cpu_bindings();
#ifdef CONFIG_SPARSE_IRQ
---- head.orig/drivers/xen/core/smpboot.c 2012-03-22 16:23:49.000000000 +0100
-+++ head/drivers/xen/core/smpboot.c 2012-03-22 16:23:53.000000000 +0100
-@@ -123,7 +123,7 @@ static int __cpuinit xen_smp_intr_init(u
+--- head.orig/drivers/xen/core/smpboot.c 2013-06-04 16:41:36.000000000 +0200
++++ head/drivers/xen/core/smpboot.c 2013-06-04 16:41:40.000000000 +0200
+@@ -124,7 +124,7 @@ static int __cpuinit xen_smp_intr_init(u
fail:
xen_spinlock_cleanup(cpu);
unbind_ipi:
@@ -544,7 +544,7 @@ Patch-mainline: n/a
return rc;
}
-@@ -132,7 +132,7 @@ static void __cpuinit xen_smp_intr_exit(
+@@ -133,7 +133,7 @@ static void __cpuinit xen_smp_intr_exit(
if (cpu != 0)
local_teardown_timer(cpu);
@@ -553,9 +553,9 @@ Patch-mainline: n/a
xen_spinlock_cleanup(cpu);
}
---- head.orig/drivers/xen/netback/netback.c 2013-05-10 14:38:28.000000000 +0200
-+++ head/drivers/xen/netback/netback.c 2013-05-10 14:49:16.000000000 +0200
-@@ -1730,6 +1730,12 @@ static irqreturn_t netif_be_dbg(int irq,
+--- head.orig/drivers/xen/netback/netback.c 2013-05-24 14:55:50.000000000 +0200
++++ head/drivers/xen/netback/netback.c 2013-05-24 15:31:16.000000000 +0200
+@@ -1732,6 +1732,12 @@ static irqreturn_t netif_be_dbg(int irq,
return IRQ_HANDLED;
}
@@ -568,7 +568,7 @@ Patch-mainline: n/a
#endif
static int __init netback_init(void)
-@@ -1789,12 +1795,9 @@ static int __init netback_init(void)
+@@ -1791,12 +1797,9 @@ static int __init netback_init(void)
netif_xenbus_init();
#ifdef NETBE_DEBUG_INTERRUPT
@@ -584,7 +584,7 @@ Patch-mainline: n/a
#endif
return 0;
---- head.orig/drivers/xen/xenoprof/xenoprofile.c 2011-04-15 12:46:57.000000000 +0200
+--- head.orig/drivers/xen/xenoprof/xenoprofile.c 2013-06-04 16:39:49.000000000 +0200
+++ head/drivers/xen/xenoprof/xenoprofile.c 2012-02-16 14:39:52.000000000 +0100
@@ -53,8 +53,9 @@ extern unsigned long oprofile_backtrace_
diff --git a/patches.xen/xen-x86-EFI b/patches.xen/xen-x86-EFI
index bf2204d101..bdd2696396 100644
--- a/patches.xen/xen-x86-EFI
+++ b/patches.xen/xen-x86-EFI
@@ -3,9 +3,9 @@ From: jbeulich@novell.com
Patch-mainline: n/a
References: fate#311376, fate#311529, bnc#578927, bnc#628554
---- head.orig/arch/x86/Kconfig 2013-03-25 16:36:53.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-04-26 11:39:56.000000000 +0200
-@@ -1594,7 +1594,7 @@ config X86_SMAP
+--- head.orig/arch/x86/Kconfig 2013-05-27 14:14:21.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-27 14:14:49.000000000 +0200
+@@ -1590,7 +1590,7 @@ config X86_SMAP
config EFI
bool "EFI runtime service support"
@@ -14,7 +14,7 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
select UCS2_STRING
---help---
This enables the kernel to use EFI runtime services that are
-@@ -1609,7 +1609,7 @@ config EFI
+@@ -1605,7 +1605,7 @@ config EFI
config EFI_STUB
bool "EFI stub support"
@@ -38,9 +38,9 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
#endif
#include_next <asm/setup.h>
---- head.orig/arch/x86/kernel/setup-xen.c 2013-04-26 11:30:31.000000000 +0200
-+++ head/arch/x86/kernel/setup-xen.c 2013-04-26 11:40:00.000000000 +0200
-@@ -1095,6 +1095,8 @@ void __init setup_arch(char **cmdline_p)
+--- head.orig/arch/x86/kernel/setup-xen.c 2013-05-27 14:14:00.000000000 +0200
++++ head/arch/x86/kernel/setup-xen.c 2013-05-27 14:14:53.000000000 +0200
+@@ -1094,6 +1094,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;
@@ -49,7 +49,27 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
} else
screen_info.orig_video_isVGA = 0;
copy_edid();
---- head.orig/arch/x86/platform/efi/Makefile 2013-04-26 09:59:50.000000000 +0200
+--- head.orig/arch/x86/kernel/time-xen.c 2012-02-10 13:43:23.000000000 +0100
++++ head/arch/x86/kernel/time-xen.c 2013-05-13 14:12:52.000000000 +0200
+@@ -19,6 +19,7 @@
+ #include <linux/posix-timers.h>
+ #include <linux/cpufreq.h>
+ #include <linux/clocksource.h>
++#include <linux/efi.h>
+
+ #include <asm/vsyscall.h>
+ #include <asm/delay.h>
+@@ -330,6 +331,9 @@ int xen_write_wallclock(unsigned long no
+ mod_timer(&sync_xen_wallclock_timer, jiffies + 1);
+ #endif
+
++ if (efi_enabled(EFI_RUNTIME_SERVICES))
++ return efi_set_rtc_mmss(now);
++
+ return mach_set_rtc_mmss(now);
+ }
+
+--- head.orig/arch/x86/platform/efi/Makefile 2012-12-11 04:30:57.000000000 +0100
+++ head/arch/x86/platform/efi/Makefile 2012-12-04 14:49:35.000000000 +0100
@@ -1,2 +1,4 @@
obj-$(CONFIG_EFI) += efi.o efi_$(BITS).o efi_stub_$(BITS).o
@@ -57,8 +77,8 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ccflags-$(CONFIG_XEN) += -fshort-wchar
+disabled-obj-$(CONFIG_XEN) := efi_%$(BITS).o
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head/arch/x86/platform/efi/efi-xen.c 2013-04-23 16:44:14.000000000 +0200
-@@ -0,0 +1,702 @@
++++ head/arch/x86/platform/efi/efi-xen.c 2013-05-24 08:14:58.000000000 +0200
+@@ -0,0 +1,714 @@
+/*
+ * Common EFI (Extensible Firmware Interface) support functions
+ * Based on Extensible Firmware Interface Specification version 1.0
@@ -95,6 +115,7 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+#include <linux/efi-bgrt.h>
+#include <linux/export.h>
+#include <linux/platform_device.h>
++#include <linux/slab.h>
+#include <linux/spinlock.h>
+#include <linux/time.h>
+#include <linux/ucs2_string.h>
@@ -105,6 +126,7 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+#include <asm/cacheflush.h>
+#include <asm/tlbflush.h>
+#include <asm/x86_init.h>
++#include <asm/rtc.h>
+
+#include <xen/interface/platform.h>
+
@@ -292,7 +314,7 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ }
+
+ if (boot_used_size && !finished) {
-+ unsigned long size;
++ unsigned long size = 0;
+ u32 attr;
+ efi_status_t s;
+ void *tmp;
@@ -470,10 +492,10 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+
+int efi_set_rtc_mmss(unsigned long nowtime)
+{
-+ int real_seconds, real_minutes;
+ efi_status_t status;
+ efi_time_t eft;
+ efi_time_cap_t cap;
++ struct rtc_time tm;
+
+ status = efi.get_time(&eft, &cap);
+ if (status != EFI_SUCCESS) {
@@ -481,13 +503,20 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ return -1;
+ }
+
-+ real_seconds = nowtime % 60;
-+ real_minutes = nowtime / 60;
-+ if (((abs(real_minutes - eft.minute) + 15)/30) & 1)
-+ real_minutes += 30;
-+ real_minutes %= 60;
-+ eft.minute = real_minutes;
-+ eft.second = real_seconds;
++ rtc_time_to_tm(nowtime, &tm);
++ if (!rtc_valid_tm(&tm)) {
++ eft.year = tm.tm_year + 1900;
++ eft.month = tm.tm_mon + 1;
++ eft.day = tm.tm_mday;
++ eft.minute = tm.tm_min;
++ eft.second = tm.tm_sec;
++ eft.nanosecond = 0;
++ } else {
++ printk(KERN_ERR
++ "%s: Invalid EFI RTC value: write of %lx to EFI RTC failed\n",
++ __FUNCTION__, nowtime);
++ return -1;
++ }
+
+ status = efi.set_time(&eft);
+ if (status != EFI_SUCCESS) {
@@ -525,7 +554,9 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+
+ if (HYPERVISOR_platform_op(&op) == 0) {
+ __set_bit(EFI_BOOT, &efi_facility);
++#ifdef CONFIG_64BIT
+ __set_bit(EFI_64BIT, &efi_facility);
++#endif
+ __set_bit(EFI_SYSTEM_TABLES, &efi_facility);
+ __set_bit(EFI_RUNTIME_SERVICES, &efi_facility);
+ __set_bit(EFI_MEMMAP, &efi_facility);
@@ -538,7 +569,7 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+static int __init efi_config_init(u64 tables, unsigned int nr_tables)
+{
+ void *config_tables, *tablep;
-+ unsigned int i, sz = sizeof(efi_config_table_t);
++ unsigned int i, sz = sizeof(efi_config_table_64_t);
+
+ /*
+ * Let's see what config tables the firmware passed to us.
@@ -553,28 +584,30 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ pr_info("");
+ for (i = 0; i < nr_tables; i++) {
+ efi_guid_t guid;
-+ unsigned long table;
++ u64 table;
+
-+ guid = ((efi_config_table_t *)tablep)->guid;
-+ table = ((efi_config_table_t *)tablep)->table;
-+ if (!efi_guidcmp(guid, MPS_TABLE_GUID)) {
++ guid = ((efi_config_table_64_t *)tablep)->guid;
++ table = ((efi_config_table_64_t *)tablep)->table;
++ if (table != (unsigned long)table)
++ pr_cont(" [%#Lx]", table);
++ else if (!efi_guidcmp(guid, MPS_TABLE_GUID)) {
+ efi.mps = table;
-+ pr_cont(" MPS=0x%lx ", table);
++ pr_cont(" MPS=%#Lx", table);
+ } else if (!efi_guidcmp(guid, ACPI_20_TABLE_GUID)) {
+ efi.acpi20 = table;
-+ pr_cont(" ACPI 2.0=0x%lx ", table);
++ pr_cont(" ACPI 2.0=%#Lx", table);
+ } else if (!efi_guidcmp(guid, ACPI_TABLE_GUID)) {
+ efi.acpi = table;
-+ pr_cont(" ACPI=0x%lx ", table);
++ pr_cont(" ACPI=%#Lx", table);
+ } else if (!efi_guidcmp(guid, SMBIOS_TABLE_GUID)) {
+ efi.smbios = table;
-+ pr_cont(" SMBIOS=0x%lx ", table);
++ pr_cont(" SMBIOS=%#Lx", table);
+ } else if (!efi_guidcmp(guid, HCDP_TABLE_GUID)) {
+ efi.hcdp = table;
-+ pr_cont(" HCDP=0x%lx ", table);
++ pr_cont(" HCDP=%#Lx", table);
+ } else if (!efi_guidcmp(guid, UGA_IO_PROTOCOL_GUID)) {
+ efi.uga = table;
-+ pr_cont(" UGA=0x%lx ", table);
++ pr_cont(" UGA=%#Lx", table);
+ }
+ tablep += sz;
+ }
@@ -646,7 +679,6 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ boot_used_size = efi_var_store_size - efi_var_remaining_size;
+
+ x86_platform.get_wallclock = efi_get_time;
-+ x86_platform.set_wallclock = efi_set_rtc_mmss;
+
+ op.u.firmware_info.index = XEN_FW_EFI_CONFIG_TABLE;
+ if (HYPERVISOR_platform_op(&op))
@@ -761,9 +793,9 @@ References: fate#311376, fate#311529, bnc#578927, bnc#628554
+ return EFI_SUCCESS;
+}
+EXPORT_SYMBOL_GPL(efi_query_variable_store);
---- head.orig/drivers/rtc/Kconfig 2013-04-26 09:59:50.000000000 +0200
-+++ head/drivers/rtc/Kconfig 2013-03-25 16:37:24.000000000 +0100
-@@ -691,7 +691,7 @@ config RTC_DRV_DA9055
+--- head.orig/drivers/rtc/Kconfig 2013-05-23 08:56:19.000000000 +0200
++++ head/drivers/rtc/Kconfig 2013-05-27 14:14:43.000000000 +0200
+@@ -689,7 +689,7 @@ config RTC_DRV_DA9055
config RTC_DRV_EFI
tristate "EFI RTC"
@@ -793,7 +825,7 @@ 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.orig/include/linux/efi.h 2013-04-26 09:59:50.000000000 +0200
+--- head.orig/include/linux/efi.h 2013-05-23 08:56:43.000000000 +0200
+++ head/include/linux/efi.h 2013-04-26 11:40:08.000000000 +0200
@@ -528,7 +528,9 @@ typedef struct {
* All runtime access to EFI goes through this structure:
diff --git a/patches.xen/xen-x86-bigmem b/patches.xen/xen-x86-bigmem
index 3c87a8826c..2ea03215a1 100644
--- a/patches.xen/xen-x86-bigmem
+++ b/patches.xen/xen-x86-bigmem
@@ -83,9 +83,9 @@ 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.orig/arch/x86/kernel/setup-xen.c 2013-04-26 11:29:54.000000000 +0200
-+++ head/arch/x86/kernel/setup-xen.c 2013-04-26 11:30:31.000000000 +0200
-@@ -129,12 +129,7 @@ static struct notifier_block xen_panic_b
+--- head.orig/arch/x86/kernel/setup-xen.c 2013-05-27 13:16:20.000000000 +0200
++++ head/arch/x86/kernel/setup-xen.c 2013-05-27 14:14:00.000000000 +0200
+@@ -128,12 +128,7 @@ static struct notifier_block xen_panic_b
unsigned long *phys_to_machine_mapping;
EXPORT_SYMBOL(phys_to_machine_mapping);
@@ -99,7 +99,7 @@ References: bnc#482614, bnc#537435, bnc#700856
/* Raw start-of-day parameters from the hypervisor. */
start_info_t *xen_start_info;
-@@ -173,6 +168,62 @@ int default_check_phys_apicid_present(in
+@@ -172,6 +167,62 @@ int default_check_phys_apicid_present(in
#endif
struct boot_params boot_params;
@@ -162,7 +162,7 @@ References: bnc#482614, bnc#537435, bnc#700856
#endif
/*
-@@ -1315,6 +1366,9 @@ void __init setup_arch(char **cmdline_p)
+@@ -1324,6 +1375,9 @@ void __init setup_arch(char **cmdline_p)
#ifdef CONFIG_XEN
#ifdef CONFIG_KEXEC
xen_machine_kexec_setup_resources();
@@ -172,7 +172,7 @@ References: bnc#482614, bnc#537435, bnc#700856
#endif
p2m_pages = max_pfn;
if (xen_start_info->nr_pages > max_pfn) {
-@@ -1340,45 +1394,20 @@ void __init setup_arch(char **cmdline_p)
+@@ -1349,45 +1403,20 @@ void __init setup_arch(char **cmdline_p)
p2m_pages = xen_start_info->nr_pages;
if (!xen_feature(XENFEAT_auto_translated_physmap)) {
diff --git a/patches.xen/xen-x86-bzImage b/patches.xen/xen-x86-bzImage
index e4ef12167d..817f37bcb2 100644
--- a/patches.xen/xen-x86-bzImage
+++ b/patches.xen/xen-x86-bzImage
@@ -8,9 +8,9 @@ secure boot.
The XEN_ADVANCED_COMPRESSION part could be merged into the 2.6.30
patch (but is probably better kept here).
---- head.orig/arch/x86/Kconfig 2013-04-26 11:39:56.000000000 +0200
-+++ head/arch/x86/Kconfig 2013-04-26 11:40:33.000000000 +0200
-@@ -1609,7 +1609,7 @@ config EFI
+--- head.orig/arch/x86/Kconfig 2013-05-27 14:14:49.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-27 14:15:06.000000000 +0200
+@@ -1605,7 +1605,7 @@ config EFI
config EFI_STUB
bool "EFI stub support"
@@ -19,7 +19,7 @@ patch (but is probably better kept here).
---help---
This kernel feature allows a bzImage to be loaded directly
by EFI firmware without the use of a bootloader.
-@@ -1778,6 +1778,30 @@ config PHYSICAL_ALIGN
+@@ -1774,6 +1774,30 @@ config PHYSICAL_ALIGN
Don't change this unless you know what you are doing.
@@ -82,7 +82,7 @@ patch (but is probably better kept here).
bzImage := bzImage
else
bzImage := vmlinuz
---- head.orig/arch/x86/boot/boot.h 2013-04-26 09:59:50.000000000 +0200
+--- head.orig/arch/x86/boot/boot.h 2013-04-29 02:36:01.000000000 +0200
+++ head/arch/x86/boot/boot.h 2011-02-03 14:45:52.000000000 +0100
@@ -23,8 +23,12 @@
#include <stdarg.h>
@@ -97,7 +97,7 @@ patch (but is probably better kept here).
#include "bitops.h"
#include <asm/cpufeature.h>
#include <asm/processor-flags.h>
---- head.orig/arch/x86/boot/compressed/Makefile 2013-04-26 09:59:50.000000000 +0200
+--- head.orig/arch/x86/boot/compressed/Makefile 2013-04-29 02:36:01.000000000 +0200
+++ head/arch/x86/boot/compressed/Makefile 2013-04-26 11:40:28.000000000 +0200
@@ -19,6 +19,9 @@ KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__A
GCOV_PROFILE := n
@@ -119,7 +119,7 @@ patch (but is probably better kept here).
$(obj)/vmlinux: $(VMLINUX_OBJS) FORCE
$(call if_changed,ld)
---- head.orig/arch/x86/boot/header.S 2013-04-26 09:59:50.000000000 +0200
+--- head.orig/arch/x86/boot/header.S 2013-04-29 02:36:01.000000000 +0200
+++ head/arch/x86/boot/header.S 2013-03-25 16:37:43.000000000 +0100
@@ -411,6 +411,9 @@ setup_data: .quad 0 # 64-bit physical
@@ -144,7 +144,7 @@ patch (but is probably better kept here).
.byte 7
.string "No setup signature found...\n"
+#endif /* CONFIG_XEN */
---- head.orig/arch/x86/boot/tools/build.c 2013-04-26 09:59:50.000000000 +0200
+--- head.orig/arch/x86/boot/tools/build.c 2013-02-19 00:58:34.000000000 +0100
+++ head/arch/x86/boot/tools/build.c 2013-02-06 15:31:50.000000000 +0100
@@ -42,8 +42,10 @@ typedef unsigned int u32;
#define DEFAULT_MINOR_ROOT 0
diff --git a/patches.xen/xen-x86-dcr-fallback b/patches.xen/xen-x86-dcr-fallback
index 2ae0efb5d0..477a6121bc 100644
--- a/patches.xen/xen-x86-dcr-fallback
+++ b/patches.xen/xen-x86-dcr-fallback
@@ -86,8 +86,8 @@ used.
}
EXPORT_SYMBOL_GPL(xen_destroy_contiguous_region);
---- head.orig/drivers/xen/balloon/balloon.c 2012-06-08 11:27:49.000000000 +0200
-+++ head/drivers/xen/balloon/balloon.c 2012-06-08 11:28:45.000000000 +0200
+--- head.orig/drivers/xen/balloon/balloon.c 2013-05-28 09:26:01.000000000 +0200
++++ head/drivers/xen/balloon/balloon.c 2013-05-28 09:26:24.000000000 +0200
@@ -744,28 +744,45 @@ struct page **alloc_empty_pages_and_page
}
EXPORT_SYMBOL_GPL(alloc_empty_pages_and_pagevec);
diff --git a/patches.xen/xen-x86-no-lapic b/patches.xen/xen-x86-no-lapic
index 854b02adda..9bf38a118a 100644
--- a/patches.xen/xen-x86-no-lapic
+++ b/patches.xen/xen-x86-no-lapic
@@ -3,7 +3,7 @@ Subject: Disallow all accesses to the local APIC page
Patch-mainline: n/a
References: bnc#191115
---- head.orig/arch/x86/include/asm/apic.h 2012-06-13 15:41:27.000000000 +0200
+--- head.orig/arch/x86/include/asm/apic.h 2013-06-04 16:39:45.000000000 +0200
+++ head/arch/x86/include/asm/apic.h 2012-08-20 16:54:10.000000000 +0200
@@ -9,7 +9,9 @@
#include <asm/processor.h>
@@ -122,7 +122,7 @@ References: bnc#191115
#endif /* CONFIG_X86_LOCAL_APIC */
#endif /* _ASM_X86_APIC_H */
---- head.orig/arch/x86/include/asm/apicdef.h 2013-05-10 14:14:37.000000000 +0200
+--- head.orig/arch/x86/include/asm/apicdef.h 2013-06-04 16:39:45.000000000 +0200
+++ head/arch/x86/include/asm/apicdef.h 2012-02-10 13:36:33.000000000 +0100
@@ -17,6 +17,8 @@
*/
@@ -168,17 +168,17 @@ References: bnc#191115
#ifdef CONFIG_X86_32
#define BAD_APICID 0xFFu
#else
---- head.orig/arch/x86/include/mach-xen/asm/fixmap.h 2013-01-09 15:32:33.000000000 +0100
-+++ head/arch/x86/include/mach-xen/asm/fixmap.h 2013-01-09 17:54:34.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/fixmap.h 2013-05-24 11:49:51.000000000 +0200
++++ head/arch/x86/include/mach-xen/asm/fixmap.h 2013-05-17 16:17:47.000000000 +0200
@@ -17,7 +17,6 @@
#ifndef __ASSEMBLY__
#include <linux/kernel.h>
#include <asm/acpi.h>
-#include <asm/apicdef.h>
#include <asm/page.h>
- #ifdef CONFIG_PARAVIRT_CLOCK
- #include <asm/pvclock.h>
-@@ -93,10 +92,10 @@ enum fixed_addresses {
+ #ifdef CONFIG_X86_32
+ #include <linux/threads.h>
+@@ -91,10 +90,10 @@ enum fixed_addresses {
#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
FIX_OHCI1394_BASE,
#endif
@@ -210,7 +210,7 @@ References: bnc#191115
#ifndef CONFIG_X86_64
static inline int logical_smp_processor_id(void)
---- head.orig/arch/x86/kernel/acpi/boot.c 2013-03-21 15:22:48.000000000 +0100
+--- head.orig/arch/x86/kernel/acpi/boot.c 2013-06-04 16:39:45.000000000 +0200
+++ head/arch/x86/kernel/acpi/boot.c 2013-03-25 16:31:26.000000000 +0100
@@ -73,14 +73,14 @@ int acpi_sci_override_gsi __initdata;
int acpi_skip_timer_override __initdata;
@@ -263,8 +263,8 @@ References: bnc#191115
return 0;
}
---- head.orig/arch/x86/kernel/irq-xen.c 2013-05-10 14:49:09.000000000 +0200
-+++ head/arch/x86/kernel/irq-xen.c 2013-05-10 14:51:18.000000000 +0200
+--- head.orig/arch/x86/kernel/irq-xen.c 2013-05-24 11:49:51.000000000 +0200
++++ head/arch/x86/kernel/irq-xen.c 2013-05-27 14:13:37.000000000 +0200
@@ -18,9 +18,9 @@
#include <asm/mce.h>
#include <asm/hw_irq.h>
@@ -317,10 +317,10 @@ References: bnc#191115
+#endif
}
-
---- head.orig/drivers/xen/core/smpboot.c 2012-08-20 16:25:55.000000000 +0200
-+++ head/drivers/xen/core/smpboot.c 2012-09-05 16:53:43.000000000 +0200
-@@ -270,7 +270,7 @@ void __init smp_prepare_cpus(unsigned in
+ #ifndef CONFIG_XEN
+--- head.orig/drivers/xen/core/smpboot.c 2013-06-04 16:41:43.000000000 +0200
++++ head/drivers/xen/core/smpboot.c 2013-06-04 16:42:05.000000000 +0200
+@@ -271,7 +271,7 @@ void __init smp_prepare_cpus(unsigned in
* Here we can be sure that there is an IO-APIC in the system. Let's
* go and set it up:
*/
diff --git a/patches.xen/xen-x86-panic-no-reboot b/patches.xen/xen-x86-panic-no-reboot
index fa8d6a2aa6..b848f23e67 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.orig/arch/x86/kernel/setup-xen.c 2013-04-26 11:29:03.000000000 +0200
-+++ head/arch/x86/kernel/setup-xen.c 2013-04-26 11:29:54.000000000 +0200
-@@ -927,15 +927,17 @@ void __init setup_arch(char **cmdline_p)
+--- head.orig/arch/x86/kernel/setup-xen.c 2013-05-24 15:30:33.000000000 +0200
++++ head/arch/x86/kernel/setup-xen.c 2013-05-27 13:16:20.000000000 +0200
+@@ -926,15 +926,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-pcpu b/patches.xen/xen-x86-pcpu
index a3489d994d..c682170d8f 100644
--- a/patches.xen/xen-x86-pcpu
+++ b/patches.xen/xen-x86-pcpu
@@ -5,9 +5,9 @@ Patch-mainline: n/a
- make microcode loader pCPU hotplug aware
- introduce {rd,wr}msr_safe_on_pcpu() and add/enable users
---- head.orig/arch/x86/Kconfig 2013-03-25 16:28:41.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-03-25 16:36:53.000000000 +0100
-@@ -1116,6 +1116,7 @@ config MICROCODE_EARLY
+--- head.orig/arch/x86/Kconfig 2013-05-24 15:46:28.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-27 14:14:21.000000000 +0200
+@@ -1112,6 +1112,7 @@ config MICROCODE_EARLY
config X86_MSR
tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -460,9 +460,9 @@ Patch-mainline: n/a
+ _msr_exit();
+}
+#endif /* CONFIG_XEN_PRIVILEGED_GUEST */
---- head.orig/drivers/hwmon/Kconfig 2013-03-21 15:17:16.000000000 +0100
-+++ head/drivers/hwmon/Kconfig 2013-03-25 16:37:02.000000000 +0100
-@@ -465,7 +465,8 @@ config SENSORS_HIH6130
+--- head.orig/drivers/hwmon/Kconfig 2013-05-23 17:34:41.000000000 +0200
++++ head/drivers/hwmon/Kconfig 2013-05-27 14:14:34.000000000 +0200
+@@ -498,7 +498,8 @@ config SENSORS_HIH6130
config SENSORS_CORETEMP
tristate "Intel Core/Core2/Atom temperature sensor"
@@ -472,7 +472,7 @@ Patch-mainline: n/a
help
If you say yes here you get support for the temperature
sensor inside your CPU. Most of the family 6 CPUs
-@@ -1240,8 +1241,9 @@ config SENSORS_VEXPRESS
+@@ -1306,8 +1307,9 @@ config SENSORS_VEXPRESS
config SENSORS_VIA_CPUTEMP
tristate "VIA CPU temperature sensor"
@@ -492,8 +492,8 @@ Patch-mainline: n/a
-CFLAGS_domctl.o += -D__XEN_TOOLS__ -imacros xen/interface/domctl.h
+CFLAGS_domctl.o += -D__XEN_TOOLS__ -imacros xen/interface/domctl.h -imacros xen/interface/sysctl.h
--- head.orig/drivers/xen/core/domctl.c 2013-03-25 16:30:52.000000000 +0100
-+++ head/drivers/xen/core/domctl.c 2013-03-25 16:36:48.000000000 +0100
-@@ -94,6 +94,113 @@ union xen_domctl {
++++ head/drivers/xen/core/domctl.c 2013-05-17 16:08:59.000000000 +0200
+@@ -94,6 +94,114 @@ union xen_domctl {
} v5, v6, v7, v8, v9;
};
@@ -593,7 +593,8 @@ Patch-mainline: n/a
+ } v7;
+ /*
+ * v8: Xen 4.1.x
-+ * v9: Xen 4.2+
++ * v9: Xen 4.2.x
++ * v10: Xen 4.3+
+ */
+ struct {
+ uint32_t cmd;
@@ -601,13 +602,13 @@ Patch-mainline: n/a
+ union {
+ struct xen_sysctl_topologyinfo_v8 topologyinfo;
+ };
-+ } v8, v9;
++ } v8, v9, v10;
+};
+
/* The actual code comes here */
static inline int hypervisor_domctl(void *domctl)
-@@ -101,6 +208,11 @@ static inline int hypervisor_domctl(void
+@@ -101,6 +209,11 @@ static inline int hypervisor_domctl(void
return _hypercall1(int, domctl, domctl);
}
@@ -619,7 +620,7 @@ Patch-mainline: n/a
int xen_guest_address_size(int domid)
{
union xen_domctl domctl;
-@@ -287,6 +399,176 @@ int xen_set_physical_cpu_affinity(int pc
+@@ -287,6 +400,180 @@ int xen_set_physical_cpu_affinity(int pc
}
EXPORT_SYMBOL_GPL(xen_set_physical_cpu_affinity);
@@ -659,7 +660,11 @@ Patch-mainline: n/a
+} while (0)
+
+ BUILD_BUG_ON(XEN_SYSCTL_INTERFACE_VERSION > 9);
-+ topologyinfo(9);
++ topologyinfo(10);
++/* #if CONFIG_XEN_COMPAT < 0x040300 */
++ if (rc)
++ topologyinfo(9);
++/* #endif */
+#if CONFIG_XEN_COMPAT < 0x040200
+ if (rc)
+ topologyinfo(8);
diff --git a/patches.xen/xen-x86-per-cpu-vcpu-info b/patches.xen/xen-x86-per-cpu-vcpu-info
index af8827d80c..f3764ca4e2 100644
--- a/patches.xen/xen-x86-per-cpu-vcpu-info
+++ b/patches.xen/xen-x86-per-cpu-vcpu-info
@@ -122,7 +122,7 @@ prerequisite for removing the limitation on 32 vCPU-s per guest.
TRACE_IRQS_OFF ; \
sysexit_ecrit: /**** END OF SYSEXIT CRITICAL REGION ****/ ; \
mov $__KERNEL_PERCPU, %ecx ; \
---- head.orig/arch/x86/include/mach-xen/asm/percpu.h 2012-07-05 12:31:24.000000000 +0200
+--- head.orig/arch/x86/include/mach-xen/asm/percpu.h 2013-06-04 16:39:44.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/percpu.h 2012-07-05 13:56:08.000000000 +0200
@@ -29,4 +29,47 @@
@@ -183,7 +183,7 @@ prerequisite for removing the limitation on 32 vCPU-s per guest.
extern void sync_global_pgds(unsigned long start, unsigned long end);
/*
---- head.orig/arch/x86/include/mach-xen/asm/special_insns.h 2012-07-05 12:31:42.000000000 +0200
+--- head.orig/arch/x86/include/mach-xen/asm/special_insns.h 2013-06-04 16:39:44.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/special_insns.h 2012-04-13 15:59:06.000000000 +0200
@@ -97,8 +97,8 @@ static inline void xen_write_cr0(unsigne
xen_clear_cr0_upd();
@@ -196,7 +196,7 @@ prerequisite for removing the limitation on 32 vCPU-s per guest.
static inline unsigned long xen_read_cr3(void)
{
---- head.orig/arch/x86/kernel/cpu/common-xen.c 2013-03-25 09:13:57.000000000 +0100
+--- head.orig/arch/x86/kernel/cpu/common-xen.c 2013-05-24 11:49:51.000000000 +0200
+++ head/arch/x86/kernel/cpu/common-xen.c 2013-03-25 16:33:44.000000000 +0100
@@ -387,8 +387,16 @@ static const char *__cpuinit table_looku
__u32 cpu_caps_cleared[NCAPINTS] __cpuinitdata;
@@ -443,9 +443,9 @@ prerequisite for removing the limitation on 32 vCPU-s per guest.
#define NR_MC BITS_PER_LONG
#define NR_MMU BITS_PER_LONG
---- head.orig/arch/x86/mm/init_64-xen.c 2013-04-05 09:27:22.000000000 +0200
-+++ head/arch/x86/mm/init_64-xen.c 2013-04-05 09:27:49.000000000 +0200
-@@ -120,6 +120,26 @@ void __init early_make_page_readonly(voi
+--- head.orig/arch/x86/mm/init_64-xen.c 2013-05-27 14:13:52.000000000 +0200
++++ head/arch/x86/mm/init_64-xen.c 2013-05-27 14:14:12.000000000 +0200
+@@ -121,6 +121,26 @@ void __init early_make_page_readonly(voi
BUG();
}
@@ -627,9 +627,9 @@ prerequisite for removing the limitation on 32 vCPU-s per guest.
if (!suspend_cancelled)
xen_clockevents_resume(false);
if (suspend_cancelled >= 0)
---- head.orig/drivers/xen/core/smpboot.c 2012-09-05 16:53:43.000000000 +0200
-+++ head/drivers/xen/core/smpboot.c 2012-09-05 16:53:52.000000000 +0200
-@@ -277,8 +277,13 @@ void __init smp_prepare_cpus(unsigned in
+--- head.orig/drivers/xen/core/smpboot.c 2013-06-04 16:42:05.000000000 +0200
++++ head/drivers/xen/core/smpboot.c 2013-06-04 16:42:10.000000000 +0200
+@@ -278,8 +278,13 @@ void __init smp_prepare_cpus(unsigned in
void __init smp_prepare_boot_cpu(void)
{
diff --git a/patches.xen/xen-x86-pmd-handling b/patches.xen/xen-x86-pmd-handling
index 7f05cdb772..185e7514e1 100644
--- a/patches.xen/xen-x86-pmd-handling
+++ b/patches.xen/xen-x86-pmd-handling
@@ -308,9 +308,9 @@ Patch-mainline: obsolete
}
#endif /* CONFIG_X86_64 */
---- head.orig/arch/x86/mm/init-xen.c 2013-04-05 09:25:22.000000000 +0200
-+++ head/arch/x86/mm/init-xen.c 2013-04-05 09:27:21.000000000 +0200
-@@ -604,5 +604,7 @@ void __init zone_sizes_init(void)
+--- head.orig/arch/x86/mm/init-xen.c 2013-05-24 11:49:51.000000000 +0200
++++ head/arch/x86/mm/init-xen.c 2013-05-27 14:13:51.000000000 +0200
+@@ -618,5 +618,7 @@ void __init zone_sizes_init(void)
#endif
free_area_init_nodes(max_zone_pfns);
@@ -318,9 +318,9 @@ Patch-mainline: obsolete
+ xen_init_pgd_pin();
}
---- head.orig/arch/x86/mm/init_32-xen.c 2013-03-25 15:59:59.000000000 +0100
-+++ head/arch/x86/mm/init_32-xen.c 2013-03-25 16:32:12.000000000 +0100
-@@ -847,8 +847,6 @@ void __init mem_init(void)
+--- head.orig/arch/x86/mm/init_32-xen.c 2013-05-24 11:49:51.000000000 +0200
++++ head/arch/x86/mm/init_32-xen.c 2013-05-27 14:13:52.000000000 +0200
+@@ -839,8 +839,6 @@ void __init mem_init(void)
if (boot_cpu_data.wp_works_ok < 0)
test_wp_bit();
@@ -329,9 +329,9 @@ Patch-mainline: obsolete
}
#ifdef CONFIG_MEMORY_HOTPLUG
---- head.orig/arch/x86/mm/init_64-xen.c 2013-04-05 09:25:24.000000000 +0200
-+++ head/arch/x86/mm/init_64-xen.c 2013-04-05 09:27:22.000000000 +0200
-@@ -303,8 +303,11 @@ static pud_t *fill_pud(pgd_t *pgd, unsig
+--- head.orig/arch/x86/mm/init_64-xen.c 2013-05-24 11:49:51.000000000 +0200
++++ head/arch/x86/mm/init_64-xen.c 2013-05-27 14:13:52.000000000 +0200
+@@ -304,8 +304,11 @@ static pud_t *fill_pud(pgd_t *pgd, unsig
{
if (pgd_none(*pgd)) {
pud_t *pud = (pud_t *)spp_getpage();
@@ -345,7 +345,7 @@ Patch-mainline: obsolete
if (pud != pud_offset(pgd, 0))
printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
pud, pud_offset(pgd, 0));
-@@ -316,8 +319,11 @@ static pmd_t *fill_pmd(pud_t *pud, unsig
+@@ -317,8 +320,11 @@ static pmd_t *fill_pmd(pud_t *pud, unsig
{
if (pud_none(*pud)) {
pmd_t *pmd = (pmd_t *) spp_getpage();
@@ -359,7 +359,7 @@ Patch-mainline: obsolete
if (pmd != pmd_offset(pud, 0))
printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
pmd, pmd_offset(pud, 0));
-@@ -610,8 +616,8 @@ phys_pmd_init(pmd_t *pmd_page, unsigned
+@@ -611,8 +617,8 @@ phys_pmd_init(pmd_t *pmd_page, unsigned
pte = alloc_low_page();
last_map_addr = phys_pte_init(pte, address, end, new_prot);
@@ -369,7 +369,7 @@ Patch-mainline: obsolete
if (page_size_mask & (1 << PG_LEVEL_NUM)) {
mmu_update_t u;
-@@ -695,8 +701,8 @@ phys_pud_init(pud_t *pud_page, unsigned
+@@ -696,8 +702,8 @@ phys_pud_init(pud_t *pud_page, unsigned
page_size_mask & ~(1 << PG_LEVEL_NUM),
prot);
@@ -379,7 +379,7 @@ Patch-mainline: obsolete
if (page_size_mask & (1 << PG_LEVEL_NUM)) {
mmu_update_t u;
-@@ -910,10 +916,10 @@ kernel_physical_mapping_init(unsigned lo
+@@ -911,10 +917,10 @@ kernel_physical_mapping_init(unsigned lo
last_map_addr = phys_pud_init(pud, __pa(start), __pa(end),
page_size_mask);
@@ -393,7 +393,7 @@ Patch-mainline: obsolete
spin_lock(&init_mm.page_table_lock);
pgd_populate(&init_mm, pgd, pud);
spin_unlock(&init_mm.page_table_lock);
-@@ -950,8 +956,6 @@ void __init paging_init(void)
+@@ -951,8 +957,6 @@ void __init paging_init(void)
node_clear_state(0, N_NORMAL_MEMORY);
zone_sizes_init();
diff --git a/patches.xen/xen-x86_64-note-init-p2m b/patches.xen/xen-x86_64-note-init-p2m
index b4b4644925..4939f84de7 100644
--- a/patches.xen/xen-x86_64-note-init-p2m
+++ b/patches.xen/xen-x86_64-note-init-p2m
@@ -18,7 +18,7 @@ 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.orig/arch/x86/kernel/head64-xen.c 2013-05-10 14:49:09.000000000 +0200
+--- head.orig/arch/x86/kernel/head64-xen.c 2013-05-24 11:49:51.000000000 +0200
+++ head/arch/x86/kernel/head64-xen.c 2013-05-10 14:51:39.000000000 +0200
@@ -209,5 +209,11 @@ void __init x86_64_start_reservations(ch
{
@@ -50,9 +50,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.orig/arch/x86/kernel/setup-xen.c 2013-04-26 11:40:00.000000000 +0200
-+++ head/arch/x86/kernel/setup-xen.c 2013-04-26 11:41:12.000000000 +0200
-@@ -1387,7 +1387,7 @@ void __init setup_arch(char **cmdline_p)
+--- head.orig/arch/x86/kernel/setup-xen.c 2013-05-27 14:14:53.000000000 +0200
++++ head/arch/x86/kernel/setup-xen.c 2013-05-27 14:15:37.000000000 +0200
+@@ -1396,7 +1396,7 @@ void __init setup_arch(char **cmdline_p)
difference = xen_start_info->nr_pages - max_pfn;
set_xen_guest_handle(reservation.extent_start,
@@ -61,7 +61,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);
-@@ -1400,13 +1400,83 @@ void __init setup_arch(char **cmdline_p)
+@@ -1409,13 +1409,83 @@ void __init setup_arch(char **cmdline_p)
phys_to_machine_mapping = alloc_bootmem_pages(
max_pfn * sizeof(unsigned long));
memcpy(phys_to_machine_mapping,
@@ -149,9 +149,9 @@ when the functions are used before the page fault handler gets set up.
if (!is_initial_xendomain() || kexec_enabled())
setup_pfn_to_mfn_frame_list(__alloc_bootmem);
---- head.orig/arch/x86/mm/init_64-xen.c 2013-04-05 09:28:02.000000000 +0200
-+++ head/arch/x86/mm/init_64-xen.c 2013-04-05 09:28:19.000000000 +0200
-@@ -509,6 +509,13 @@ static inline int __meminit make_readonl
+--- head.orig/arch/x86/mm/init_64-xen.c 2013-05-27 14:15:19.000000000 +0200
++++ head/arch/x86/mm/init_64-xen.c 2013-05-27 14:15:41.000000000 +0200
+@@ -510,6 +510,13 @@ static inline int __meminit make_readonl
PFN_PHYS(xen_start_info->nr_pt_frames) -
__START_KERNEL_map)))
readonly = 1;
@@ -165,7 +165,7 @@ when the functions are used before the page fault handler gets set up.
/*
* No need for writable mapping of kernel image. This also ensures that
-@@ -798,6 +805,12 @@ void __init xen_init_pt(void)
+@@ -799,6 +806,12 @@ void __init xen_init_pt(void)
(PTRS_PER_PUD - pud_index(__START_KERNEL_map))
* sizeof(*level3_kernel_pgt));
@@ -178,7 +178,7 @@ when the functions are used before the page fault handler gets set up.
/* Do an early initialization of the fixmap area. */
addr = __fix_to_virt(FIX_EARLYCON_MEM_BASE);
if (pud_present(level3_kernel_pgt[pud_index(addr)])) {
-@@ -874,22 +887,27 @@ void __init xen_init_pt(void)
+@@ -875,22 +888,27 @@ void __init xen_init_pt(void)
void __init xen_finish_init_mapping(void)
{
unsigned long va;
@@ -210,9 +210,9 @@ when the functions are used before the page fault handler gets set up.
/* Destroy the Xen-created mappings beyond the kernel image. */
va = PAGE_ALIGN(_brk_end);
while (!pmd_none(*early_get_pmd(va))) {
---- head.orig/arch/x86/mm/pageattr-xen.c 2013-04-26 11:27:56.000000000 +0200
-+++ head/arch/x86/mm/pageattr-xen.c 2013-04-26 11:41:04.000000000 +0200
-@@ -1557,7 +1557,7 @@ static void __make_page_writable(unsigne
+--- head.orig/arch/x86/mm/pageattr-xen.c 2013-05-24 11:49:51.000000000 +0200
++++ head/arch/x86/mm/pageattr-xen.c 2013-05-27 14:15:46.000000000 +0200
+@@ -1556,7 +1556,7 @@ static void __make_page_writable(unsigne
pte = lookup_address(va, &level);
BUG_ON(!pte || level != PG_LEVEL_4K);
diff --git a/patches.xen/xen-x86_64-pgd-alloc-order b/patches.xen/xen-x86_64-pgd-alloc-order
index 0db44a44a8..d0e42d1e9c 100644
--- a/patches.xen/xen-x86_64-pgd-alloc-order
+++ b/patches.xen/xen-x86_64-pgd-alloc-order
@@ -112,8 +112,8 @@ At the same time remove the useless user mode pair of init_level4_pgt.
})
--- head.orig/arch/x86/kernel/cpu/common-xen.c 2013-03-25 16:33:44.000000000 +0100
-+++ head/arch/x86/kernel/cpu/common-xen.c 2013-03-25 16:38:07.000000000 +0100
-@@ -1145,8 +1145,7 @@ DEFINE_PER_CPU_FIRST(union irq_stack_uni
++++ head/arch/x86/kernel/cpu/common-xen.c 2013-05-27 14:15:25.000000000 +0200
+@@ -1149,8 +1149,7 @@ DEFINE_PER_CPU_FIRST(union irq_stack_uni
void xen_switch_pt(void)
{
#ifdef CONFIG_XEN
@@ -223,9 +223,9 @@ At the same time remove the useless user mode pair of init_level4_pgt.
#endif
if (HYPERVISOR_mmuext_op(op, NR_PGD_PIN_OPS, NULL, DOMID_SELF) < 0)
BUG();
---- head.orig/arch/x86/mm/init_64-xen.c 2013-04-05 09:27:57.000000000 +0200
-+++ head/arch/x86/mm/init_64-xen.c 2013-04-05 09:28:02.000000000 +0200
-@@ -798,9 +798,6 @@ void __init xen_init_pt(void)
+--- head.orig/arch/x86/mm/init_64-xen.c 2013-05-27 14:15:14.000000000 +0200
++++ head/arch/x86/mm/init_64-xen.c 2013-05-27 14:15:19.000000000 +0200
+@@ -799,9 +799,6 @@ void __init xen_init_pt(void)
(PTRS_PER_PUD - pud_index(__START_KERNEL_map))
* sizeof(*level3_kernel_pgt));
@@ -235,7 +235,7 @@ At the same time remove the useless user mode pair of init_level4_pgt.
/* Do an early initialization of the fixmap area. */
addr = __fix_to_virt(FIX_EARLYCON_MEM_BASE);
if (pud_present(level3_kernel_pgt[pud_index(addr)])) {
-@@ -861,8 +858,6 @@ void __init xen_init_pt(void)
+@@ -862,8 +859,6 @@ void __init xen_init_pt(void)
early_make_page_readonly(init_level4_pgt,
XENFEAT_writable_page_tables);
diff --git a/patches.xen/xen-x86_64-pgd-pin b/patches.xen/xen-x86_64-pgd-pin
index db3af16bab..ab454b03b7 100644
--- a/patches.xen/xen-x86_64-pgd-pin
+++ b/patches.xen/xen-x86_64-pgd-pin
@@ -70,9 +70,9 @@ Patch-mainline: obsolete
}
void xen_set_ldt(const void *ptr, unsigned int ents)
---- head.orig/arch/x86/mm/init_64-xen.c 2013-04-05 09:27:49.000000000 +0200
-+++ head/arch/x86/mm/init_64-xen.c 2013-04-05 09:27:57.000000000 +0200
-@@ -872,10 +872,8 @@ void __init xen_init_pt(void)
+--- head.orig/arch/x86/mm/init_64-xen.c 2013-05-27 14:14:12.000000000 +0200
++++ head/arch/x86/mm/init_64-xen.c 2013-05-27 14:15:14.000000000 +0200
+@@ -873,10 +873,8 @@ void __init xen_init_pt(void)
early_make_page_readonly(level1_fixmap_pgt,
XENFEAT_writable_page_tables);
diff --git a/patches.xen/xen-x86_64-unmapped-initrd b/patches.xen/xen-x86_64-unmapped-initrd
index 5507a01c04..fd182c4356 100644
--- a/patches.xen/xen-x86_64-unmapped-initrd
+++ b/patches.xen/xen-x86_64-unmapped-initrd
@@ -19,7 +19,7 @@ Xen to avoid the mapping and hence the restriction.
void efi_probe(void);
#else
--- head.orig/arch/x86/kernel/head-xen.c 2013-04-05 09:27:47.000000000 +0200
-+++ head/arch/x86/kernel/head-xen.c 2013-04-05 09:28:31.000000000 +0200
++++ head/arch/x86/kernel/head-xen.c 2013-05-13 14:14:55.000000000 +0200
@@ -92,6 +92,8 @@ extern void nmi(void);
#define CALLBACK_ADDR(fn) { __KERNEL_CS, (unsigned long)(fn) }
#endif
@@ -70,9 +70,9 @@ Xen to avoid the mapping and hence the restriction.
ELFNOTE(Xen, XEN_ELFNOTE_INIT_P2M, .quad VMEMMAP_START)
ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .ascii "writable_page_tables";
.ascii "|writable_descriptor_tables";
---- head.orig/arch/x86/kernel/setup-xen.c 2013-04-26 11:41:12.000000000 +0200
-+++ head/arch/x86/kernel/setup-xen.c 2013-03-27 11:07:18.000000000 +0100
-@@ -394,7 +394,7 @@ static u64 __init get_ramdisk_image(void
+--- head.orig/arch/x86/kernel/setup-xen.c 2013-05-27 14:15:37.000000000 +0200
++++ head/arch/x86/kernel/setup-xen.c 2013-05-27 14:15:56.000000000 +0200
+@@ -393,7 +393,7 @@ static u64 __init get_ramdisk_image(void
return ramdisk_image;
#else
@@ -81,9 +81,9 @@ Xen to avoid the mapping and hence the restriction.
#endif
}
static u64 __init get_ramdisk_size(void)
---- head.orig/arch/x86/mm/init_64-xen.c 2013-04-05 09:28:19.000000000 +0200
-+++ head/arch/x86/mm/init_64-xen.c 2013-04-05 09:28:27.000000000 +0200
-@@ -898,9 +898,6 @@ void __init xen_finish_init_mapping(void
+--- head.orig/arch/x86/mm/init_64-xen.c 2013-05-27 14:15:41.000000000 +0200
++++ head/arch/x86/mm/init_64-xen.c 2013-05-27 14:15:53.000000000 +0200
+@@ -899,9 +899,6 @@ void __init xen_finish_init_mapping(void
&& xen_start_info->mfn_list >= __START_KERNEL_map)
phys_to_machine_mapping =
__va(__pa(xen_start_info->mfn_list));
diff --git a/patches.xen/xen-x86_64-vread-pvclock b/patches.xen/xen-x86_64-vread-pvclock
new file mode 100644
index 0000000000..b7e20e84aa
--- /dev/null
+++ b/patches.xen/xen-x86_64-vread-pvclock
@@ -0,0 +1,250 @@
+From: jbeulich@suse.com
+Subject: use vCPU time info registration to support vread_pvclock()
+Patch-mainline: n/a
+
+Could be merged into the 3.8 merge patch, but conflicts heavily with
+the later xen-clockevents changes.
+
+--- head.orig/arch/x86/Kconfig 2013-05-27 14:15:06.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-27 14:17:47.000000000 +0200
+@@ -371,6 +371,7 @@ config X86_64_XEN
+ bool "Enable Xen compatible kernel"
+ depends on X86_64
+ select XEN
++ select PARAVIRT_CLOCK
+ help
+ This option will compile a kernel compatible with Xen hypervisor
+
+@@ -685,11 +686,11 @@ config PARAVIRT_TIME_ACCOUNTING
+
+ If in doubt, say N here.
+
++endif #HYPERVISOR_GUEST
++
+ config PARAVIRT_CLOCK
+ bool
+
+-endif #HYPERVISOR_GUEST
+-
+ config NO_BOOTMEM
+ def_bool y
+
+--- head.orig/arch/x86/include/asm/pvclock.h 2013-06-04 16:39:43.000000000 +0200
++++ head/arch/x86/include/asm/pvclock.h 2013-05-10 18:08:00.000000000 +0200
+@@ -83,7 +83,11 @@ unsigned __pvclock_read_cycles(const str
+ rdtsc_barrier();
+ offset = pvclock_get_nsec_offset(src);
+ ret = src->system_time + offset;
++#ifndef CONFIG_XEN
+ ret_flags = src->flags;
++#else
++ ret_flags = PVCLOCK_TSC_STABLE_BIT;
++#endif
+ rdtsc_barrier();
+
+ *cycles = ret;
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ head/arch/x86/include/mach-xen/asm/pvclock-abi.h 2013-05-14 08:22:22.000000000 +0200
+@@ -0,0 +1,12 @@
++#ifndef _ASM_X86_PVCLOCK_ABI_H
++#define _ASM_X86_PVCLOCK_ABI_H
++#ifndef __ASSEMBLY__
++
++#include <xen/interface/xen.h>
++
++#define pvclock_vcpu_time_info vcpu_time_info
++struct pvclock_wall_clock; /* not used */
++
++#define PVCLOCK_TSC_STABLE_BIT (1 << 0)
++#endif /* __ASSEMBLY__ */
++#endif /* _ASM_X86_PVCLOCK_ABI_H */
+--- head.orig/arch/x86/kernel/pvclock.c 2013-06-04 16:39:43.000000000 +0200
++++ head/arch/x86/kernel/pvclock.c 2013-05-10 17:20:32.000000000 +0200
+@@ -24,6 +24,7 @@
+ #include <asm/fixmap.h>
+ #include <asm/pvclock.h>
+
++#ifndef CONFIG_XEN
+ static u8 valid_flags __read_mostly = 0;
+
+ void pvclock_set_flags(u8 flags)
+@@ -127,6 +128,7 @@ void pvclock_read_wallclock(struct pvclo
+
+ set_normalized_timespec(ts, now.tv_sec, now.tv_nsec);
+ }
++#endif /* !CONFIG_XEN */
+
+ static struct pvclock_vsyscall_time_info *pvclock_vdso_info;
+
+--- head.orig/arch/x86/kernel/time-xen.c 2013-05-13 14:12:52.000000000 +0200
++++ head/arch/x86/kernel/time-xen.c 2013-05-14 09:04:05.000000000 +0200
+@@ -31,6 +31,10 @@
+ #include <xen/interface/vcpu.h>
+
+ #ifdef CONFIG_X86_64
++#include <asm/pvclock.h>
++#include <asm/vgtod.h>
++
++struct pvclock_vsyscall_time_info *__read_mostly pvclock_vsyscall_time;
+ DEFINE_VVAR(volatile unsigned long, jiffies) = INITIAL_JIFFIES;
+ #endif
+
+@@ -505,8 +509,42 @@ void setup_runstate_area(unsigned int cp
+ }
+ }
+
++void setup_vsyscall_time_area(unsigned int cpu)
++{
++#ifdef CONFIG_X86_64
++ if (pvclock_vsyscall_time) {
++ struct vcpu_register_time_memory_area area = {
++ .addr.v = &pvclock_vsyscall_time[cpu].pvti
++ };
++
++ if (HYPERVISOR_vcpu_op(VCPUOP_register_vcpu_time_memory_area,
++ cpu, &area)) {
++ clocksource_xen.archdata.vclock_mode = VCLOCK_NONE;
++ vsyscall_gtod_data.clock.vclock_mode = VCLOCK_NONE;
++ }
++ }
++#endif
++}
++
+ static void __init _late_time_init(void)
+ {
++#ifdef CONFIG_X86_64
++ unsigned int size = ALIGN(PVTI_SIZE * NR_CPUS, PAGE_SIZE);
++ struct pvclock_vsyscall_time_info *array
++ = alloc_pages_exact(size, GFP_KERNEL);
++ struct vcpu_register_time_memory_area area = {
++ .addr.v = &array->pvti
++ };
++
++ if (array && pvclock_init_vsyscall(array, size) == 0
++ && HYPERVISOR_vcpu_op(VCPUOP_register_vcpu_time_memory_area,
++ 0, &area) == 0) {
++ pvclock_vsyscall_time = array;
++ clocksource_xen.archdata.vclock_mode = VCLOCK_PVCLOCK;
++ vsyscall_gtod_data.clock.vclock_mode = VCLOCK_PVCLOCK;
++ } else if (area.addr.v)
++ free_pages_exact(array, size);
++#endif
+ update_wallclock(false);
+ xen_clockevents_init();
+ }
+--- head.orig/arch/x86/mm/pgtable-xen.c 2013-04-26 11:41:06.000000000 +0200
++++ head/arch/x86/mm/pgtable-xen.c 2013-05-14 17:20:02.000000000 +0200
+@@ -962,6 +962,7 @@ void xen_set_fixmap(enum fixed_addresses
+
+ case VSYSCALL_LAST_PAGE ... VSYSCALL_FIRST_PAGE:
+ case VVAR_PAGE:
++ case PVCLOCK_FIXMAP_BEGIN ... PVCLOCK_FIXMAP_END:
+ pte = pfn_pte(phys >> PAGE_SHIFT, flags);
+ set_pte_vaddr_pud(level3_user_pgt, address, pte);
+ break;
+--- head.orig/arch/x86/vdso/vclock_gettime.c 2013-06-04 16:39:43.000000000 +0200
++++ head/arch/x86/vdso/vclock_gettime.c 2013-05-14 09:12:44.000000000 +0200
+@@ -26,9 +26,7 @@
+
+ #define gtod (&VVAR(vsyscall_gtod_data))
+
+-#ifdef CONFIG_XEN
+-#define VCLOCK_NONE 0
+-#else
++#ifndef CONFIG_XEN
+ notrace static cycle_t vread_tsc(void)
+ {
+ cycle_t ret;
+@@ -155,21 +153,29 @@ notrace static long vdso_fallback_gtod(s
+ }
+
+
+-#ifndef CONFIG_XEN
+ notrace static inline u64 vgetsns(int *mode)
+ {
+ long v;
+ cycles_t cycles;
+- if (gtod->clock.vclock_mode == VCLOCK_TSC)
++
++ switch (*mode) {
++#ifndef CONFIG_XEN
++ case VCLOCK_TSC:
+ cycles = vread_tsc();
+- else if (gtod->clock.vclock_mode == VCLOCK_HPET)
++ break;
++ case VCLOCK_HPET:
+ cycles = vread_hpet();
++ break;
++#endif
+ #ifdef CONFIG_PARAVIRT_CLOCK
+- else if (gtod->clock.vclock_mode == VCLOCK_PVCLOCK)
++ case VCLOCK_PVCLOCK:
+ cycles = vread_pvclock(mode);
++ break;
+ #endif
+- else
++ default:
++ *mode = VCLOCK_NONE;
+ return 0;
++ }
+ v = (cycles - gtod->clock.cycle_last) & gtod->clock.mask;
+ return v * gtod->clock.mult;
+ }
+@@ -214,7 +220,6 @@ notrace static int do_monotonic(struct t
+
+ return mode;
+ }
+-#endif /* CONFIG_XEN */
+
+ notrace static int do_realtime_coarse(struct timespec *ts)
+ {
+@@ -244,14 +249,12 @@ notrace int __vdso_clock_gettime(clockid
+ int ret = VCLOCK_NONE;
+
+ switch (clock) {
+-#ifndef CONFIG_XEN
+ case CLOCK_REALTIME:
+ ret = do_realtime(ts);
+ break;
+ case CLOCK_MONOTONIC:
+ ret = do_monotonic(ts);
+ break;
+-#endif
+ case CLOCK_REALTIME_COARSE:
+ return do_realtime_coarse(ts);
+ case CLOCK_MONOTONIC_COARSE:
+--- head.orig/drivers/xen/core/machine_reboot.c 2011-11-18 17:18:17.000000000 +0100
++++ head/drivers/xen/core/machine_reboot.c 2013-05-10 17:55:57.000000000 +0200
+@@ -100,6 +100,9 @@ static void post_suspend(int suspend_can
+ && HYPERVISOR_vcpu_op(VCPUOP_up, i, NULL))
+ BUG();
+ #endif
++
++ if (cpu_online(i))
++ setup_vsyscall_time_area(i);
+ }
+ }
+
+--- head.orig/drivers/xen/core/smpboot.c 2013-06-04 16:42:10.000000000 +0200
++++ head/drivers/xen/core/smpboot.c 2013-06-04 16:42:18.000000000 +0200
+@@ -338,6 +338,8 @@ int __cpuinit __cpu_up(unsigned int cpu,
+ if (rc)
+ return rc;
+
++ setup_vsyscall_time_area(cpu);
++
+ rc = xen_smp_intr_init(cpu);
+ if (rc)
+ return rc;
+--- head.orig/include/xen/clock.h 2013-03-05 13:44:28.000000000 +0100
++++ head/include/xen/clock.h 2013-05-10 17:53:29.000000000 +0200
+@@ -3,6 +3,9 @@
+
+ void setup_runstate_area(unsigned int cpu);
+
++extern struct pvclock_vsyscall_time_info *pvclock_vsyscall_time;
++void setup_vsyscall_time_area(unsigned int cpu);
++
+ unsigned long long xen_local_clock(void);
+ void xen_check_wallclock_update(void);
+
diff --git a/patches.xen/xen3-010-acpi_initrd_override_tables.patch b/patches.xen/xen3-010-acpi_initrd_override_tables.patch
index 283b0224f1..e1ff8c9ba0 100644
--- a/patches.xen/xen3-010-acpi_initrd_override_tables.patch
+++ b/patches.xen/xen3-010-acpi_initrd_override_tables.patch
@@ -16,9 +16,9 @@ Cleanup only, no functional change.
Signed-off-by: Thomas Renninger <trenn@suse.de>
Automatically created from "patches.arch/010-acpi_initrd_override_tables.patch" by xen-port-patches.py
---- head.orig/arch/x86/kernel/setup-xen.c 2013-04-26 11:27:56.000000000 +0200
-+++ head/arch/x86/kernel/setup-xen.c 2013-04-26 11:29:03.000000000 +0200
-@@ -477,6 +477,8 @@ static void __init reserve_initrd(void)
+--- head.orig/arch/x86/kernel/setup-xen.c 2013-05-24 11:49:51.000000000 +0200
++++ head/arch/x86/kernel/setup-xen.c 2013-05-24 15:30:33.000000000 +0200
+@@ -476,6 +476,8 @@ static void __init reserve_initrd(void)
relocate_initrd();
memblock_free(ramdisk_image, ramdisk_end - ramdisk_image);
@@ -27,7 +27,7 @@ Automatically created from "patches.arch/010-acpi_initrd_override_tables.patch"
}
#else
static void __init early_reserve_initrd(void)
-@@ -1257,10 +1259,6 @@ void __init setup_arch(char **cmdline_p)
+@@ -1266,10 +1268,6 @@ void __init setup_arch(char **cmdline_p)
reserve_initrd();
diff --git a/patches.xen/xen3-auto-arch-i386.diff b/patches.xen/xen3-auto-arch-i386.diff
index 88ff0f92c8..810ca0a302 100644
--- a/patches.xen/xen3-auto-arch-i386.diff
+++ b/patches.xen/xen3-auto-arch-i386.diff
@@ -4,10 +4,10 @@ From: xen-devel@lists.xen.org
Patch-mainline: n/a
Acked-by: jbeulich@suse.com
---- head.orig/arch/x86/kernel/asm-offsets_32.c 2012-03-19 00:15:34.000000000 +0100
-+++ head/arch/x86/kernel/asm-offsets_32.c 2012-02-08 10:56:16.000000000 +0100
-@@ -60,9 +60,14 @@ void foo(void)
- OFFSET(IA32_RT_SIGFRAME_sigcontext, rt_sigframe, uc.uc_mcontext);
+--- head.orig/arch/x86/kernel/asm-offsets_32.c 2013-05-23 08:55:30.000000000 +0200
++++ head/arch/x86/kernel/asm-offsets_32.c 2013-05-23 16:28:49.000000000 +0200
+@@ -63,9 +63,14 @@ void foo(void)
+ OFFSET(saved_context_gdt_desc, saved_context, gdt_desc);
BLANK();
+#ifndef CONFIG_X86_NO_TSS
@@ -22,7 +22,7 @@ Acked-by: jbeulich@suse.com
#if defined(CONFIG_LGUEST) || defined(CONFIG_LGUEST_GUEST) || defined(CONFIG_LGUEST_MODULE)
BLANK();
---- head.orig/arch/x86/kernel/entry_32.S 2013-03-21 11:15:32.000000000 +0100
+--- head.orig/arch/x86/kernel/entry_32.S 2013-05-23 08:57:02.000000000 +0200
+++ head/arch/x86/kernel/entry_32.S 2013-03-21 12:25:22.000000000 +0100
@@ -424,7 +424,7 @@ ENTRY(ia32_sysenter_target)
CFI_SIGNAL_FRAME
@@ -136,8 +136,8 @@ Acked-by: jbeulich@suse.com
void arch_crash_save_vmcoreinfo(void)
{
---- head.orig/arch/x86/kernel/vm86_32.c 2013-03-21 11:14:41.000000000 +0100
-+++ head/arch/x86/kernel/vm86_32.c 2012-08-20 10:19:03.000000000 +0200
+--- head.orig/arch/x86/kernel/vm86_32.c 2013-05-23 08:55:32.000000000 +0200
++++ head/arch/x86/kernel/vm86_32.c 2013-05-23 16:28:54.000000000 +0200
@@ -127,7 +127,9 @@ static int copy_vm86_regs_from_user(stru
struct pt_regs *save_v86_state(struct kernel_vm86_regs *regs)
@@ -165,7 +165,7 @@ Acked-by: jbeulich@suse.com
ret = KVM86->regs32;
-@@ -284,7 +290,9 @@ out:
+@@ -274,7 +280,9 @@ SYSCALL_DEFINE2(vm86, unsigned long, cmd
static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk)
{
@@ -175,7 +175,7 @@ Acked-by: jbeulich@suse.com
/*
* make sure the vm86() system call doesn't try to do anything silly
*/
-@@ -328,12 +336,16 @@ static void do_sys_vm86(struct kernel_vm
+@@ -318,12 +326,16 @@ static void do_sys_vm86(struct kernel_vm
tsk->thread.saved_fs = info->regs32->fs;
tsk->thread.saved_gs = get_user_gs(info->regs32);
diff --git a/patches.xen/xen3-auto-arch-x86.diff b/patches.xen/xen3-auto-arch-x86.diff
index f59135c0b3..cc128d0fcd 100644
--- a/patches.xen/xen3-auto-arch-x86.diff
+++ b/patches.xen/xen3-auto-arch-x86.diff
@@ -7,6 +7,7 @@ Acked-by: jbeulich@suse.com
List of files that don't require modification anymore (and hence
removed from this patch), for reference and in case upstream wants to
take the forward porting patches:
+2.6.18/arch/x86/power/cpu.c (dealt with differently in xen3-fixup-arch-x86)
2.6.26/arch/x86/kernel/crash.c
2.6.30/arch/x86/kernel/acpi/boot.c
@@ -251,27 +252,6 @@ take the forward porting patches:
obj-y += fixup.o
obj-$(CONFIG_X86_INTEL_CE) += ce4100.o
---- head.orig/arch/x86/power/cpu.c 2013-03-21 11:14:42.000000000 +0100
-+++ head/arch/x86/power/cpu.c 2013-03-21 12:24:55.000000000 +0100
-@@ -133,6 +133,7 @@ static void do_fpu_end(void)
-
- static void fix_processor_context(void)
- {
-+#ifndef CONFIG_X86_NO_TSS
- int cpu = smp_processor_id();
- struct tss_struct *t = &per_cpu(init_tss, cpu);
-
-@@ -145,7 +146,10 @@ static void fix_processor_context(void)
-
- #ifdef CONFIG_X86_64
- get_cpu_gdt_table(cpu)[GDT_ENTRY_TSS].type = 9;
-+#endif
-+#endif
-
-+#ifdef CONFIG_X86_64
- syscall_init(); /* This sets MSR_*STAR and related */
- #endif
- load_TR_desc(); /* This does ltr */
--- head.orig/arch/x86/include/asm/acpi.h 2013-03-21 11:14:40.000000000 +0100
+++ head/arch/x86/include/asm/acpi.h 2013-03-21 12:25:09.000000000 +0100
@@ -31,6 +31,10 @@
diff --git a/patches.xen/xen3-auto-arch-x86_64.diff b/patches.xen/xen3-auto-arch-x86_64.diff
index 0bd6833526..5987ff9366 100644
--- a/patches.xen/xen3-auto-arch-x86_64.diff
+++ b/patches.xen/xen3-auto-arch-x86_64.diff
@@ -4,9 +4,9 @@ From: xen-devel@lists.xen.org
Patch-mainline: n/a
Acked-by: jbeulich@suse.com
---- head.orig/arch/x86/kernel/asm-offsets_64.c 2012-05-21 00:29:13.000000000 +0200
-+++ head/arch/x86/kernel/asm-offsets_64.c 2012-04-10 15:46:12.000000000 +0200
-@@ -76,8 +76,10 @@ int main(void)
+--- head.orig/arch/x86/kernel/asm-offsets_64.c 2013-05-23 08:55:30.000000000 +0200
++++ head/arch/x86/kernel/asm-offsets_64.c 2013-05-23 16:29:00.000000000 +0200
+@@ -77,8 +77,10 @@ int main(void)
BLANK();
#undef ENTRY
diff --git a/patches.xen/xen3-auto-common.diff b/patches.xen/xen3-auto-common.diff
index 888e35caba..63c646d44f 100644
--- a/patches.xen/xen3-auto-common.diff
+++ b/patches.xen/xen3-auto-common.diff
@@ -23,9 +23,9 @@ take the forward porting patches:
2.6.35/kernel/time.c
3.4/drivers/acpi/acpica/hwsleep.c
---- head.orig/drivers/Makefile 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/Makefile 2012-10-22 17:22:16.000000000 +0200
-@@ -55,6 +55,7 @@ obj-$(CONFIG_PARPORT) += parport/
+--- head.orig/drivers/Makefile 2013-05-23 08:55:33.000000000 +0200
++++ head/drivers/Makefile 2013-05-23 16:23:56.000000000 +0200
+@@ -58,6 +58,7 @@ obj-$(CONFIG_PARPORT) += parport/
obj-y += base/ block/ misc/ mfd/ nfc/
obj-$(CONFIG_NUBUS) += nubus/
obj-y += macintosh/
@@ -33,8 +33,8 @@ take the forward porting patches:
obj-$(CONFIG_IDE) += ide/
obj-$(CONFIG_SCSI) += scsi/
obj-$(CONFIG_ATA) += ata/
---- head.orig/drivers/acpi/Makefile 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/acpi/Makefile 2013-03-21 12:22:01.000000000 +0100
+--- head.orig/drivers/acpi/Makefile 2013-06-04 11:48:42.000000000 +0200
++++ head/drivers/acpi/Makefile 2013-06-04 13:53:22.000000000 +0200
@@ -77,6 +77,9 @@ obj-$(CONFIG_ACPI_I2C) += acpi_i2c.o
processor-y := processor_driver.o processor_throttling.o
processor-y += processor_idle.o processor_thermal.o
@@ -45,9 +45,9 @@ take the forward porting patches:
obj-$(CONFIG_ACPI_PROCESSOR_AGGREGATOR) += acpi_pad.o
---- head.orig/drivers/acpi/processor_driver.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/acpi/processor_driver.c 2013-03-21 12:21:39.000000000 +0100
-@@ -331,7 +331,8 @@ static int acpi_processor_get_info(struc
+--- head.orig/drivers/acpi/processor_driver.c 2013-05-23 08:55:33.000000000 +0200
++++ head/drivers/acpi/processor_driver.c 2013-05-23 16:23:49.000000000 +0200
+@@ -327,7 +327,8 @@ static int acpi_processor_get_info(struc
* they are physically not present.
*/
if (pr->id == -1) {
@@ -57,7 +57,7 @@ take the forward porting patches:
return -ENODEV;
}
/*
-@@ -381,7 +382,14 @@ static int acpi_processor_get_info(struc
+@@ -377,7 +378,14 @@ static int acpi_processor_get_info(struc
return 0;
}
@@ -72,7 +72,7 @@ take the forward porting patches:
static void acpi_processor_notify(struct acpi_device *device, u32 event)
{
-@@ -473,16 +481,30 @@ static __ref int acpi_processor_start(st
+@@ -469,16 +477,30 @@ static __ref int acpi_processor_start(st
struct acpi_device *device = per_cpu(processor_device_array, pr->id);
int result = 0;
@@ -106,7 +106,7 @@ take the forward porting patches:
pr->cdev = thermal_cooling_device_register("Processor", device,
&processor_cooling_ops);
if (IS_ERR(pr->cdev)) {
-@@ -548,8 +570,11 @@ static int __cpuinit acpi_processor_add(
+@@ -544,8 +566,11 @@ static int __cpuinit acpi_processor_add(
strcpy(acpi_device_class(device), ACPI_PROCESSOR_CLASS);
device->driver_data = pr;
@@ -119,7 +119,7 @@ take the forward porting patches:
/* Processor is physically not present */
return 0;
}
-@@ -559,23 +584,43 @@ static int __cpuinit acpi_processor_add(
+@@ -555,23 +580,43 @@ static int __cpuinit acpi_processor_add(
return 0;
#endif
@@ -165,7 +165,7 @@ take the forward porting patches:
per_cpu(processors, pr->id) = pr;
dev = get_cpu_device(pr->id);
-@@ -605,6 +650,14 @@ err_clear_processor:
+@@ -601,6 +646,14 @@ err_clear_processor:
*/
per_cpu(processors, pr->id) = NULL;
err_free_cpumask:
@@ -180,7 +180,7 @@ take the forward porting patches:
free_cpumask_var(pr->throttling.shared_cpu_map);
err_free_pr:
kfree(pr);
-@@ -621,7 +674,7 @@ static int acpi_processor_remove(struct
+@@ -617,7 +670,7 @@ static int acpi_processor_remove(struct
pr = acpi_driver_data(device);
@@ -189,7 +189,7 @@ take the forward porting patches:
goto free;
if (device->removal_type == ACPI_BUS_REMOVAL_EJECT) {
-@@ -640,9 +693,17 @@ static int acpi_processor_remove(struct
+@@ -636,9 +689,17 @@ static int acpi_processor_remove(struct
pr->cdev = NULL;
}
@@ -207,7 +207,7 @@ take the forward porting patches:
free:
free_cpumask_var(pr->throttling.shared_cpu_map);
-@@ -714,6 +775,11 @@ static void acpi_processor_hotplug_notif
+@@ -710,6 +771,11 @@ static void acpi_processor_hotplug_notif
acpi_handle_err(handle, "Missing device object\n");
break;
}
@@ -219,7 +219,7 @@ take the forward porting patches:
ost_code = ACPI_OST_SC_SUCCESS;
break;
-@@ -732,6 +798,10 @@ static void acpi_processor_hotplug_notif
+@@ -728,6 +794,10 @@ static void acpi_processor_hotplug_notif
break;
}
@@ -230,7 +230,7 @@ take the forward porting patches:
ej_event = kmalloc(sizeof(*ej_event), GFP_KERNEL);
if (!ej_event) {
acpi_handle_err(handle, "No memory, dropping EJECT\n");
-@@ -859,6 +929,11 @@ static acpi_status acpi_processor_hotadd
+@@ -855,6 +925,11 @@ static acpi_status acpi_processor_hotadd
static int acpi_processor_handle_eject(struct acpi_processor *pr)
{
@@ -517,9 +517,9 @@ take the forward porting patches:
+ kfree(perf);
+ return ret;
+}
---- head.orig/drivers/acpi/processor_idle.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/acpi/processor_idle.c 2013-04-26 10:04:48.000000000 +0200
-@@ -435,7 +435,8 @@ static int acpi_processor_get_power_info
+--- head.orig/drivers/acpi/processor_idle.c 2013-05-23 08:55:33.000000000 +0200
++++ head/drivers/acpi/processor_idle.c 2013-05-23 16:23:45.000000000 +0200
+@@ -444,7 +444,8 @@ static int acpi_processor_get_power_info
*/
cx.entry_method = ACPI_CSTATE_HALT;
snprintf(cx.desc, ACPI_CX_DESC_LEN, "ACPI HLT");
@@ -529,7 +529,7 @@ take the forward porting patches:
continue;
}
if (cx.type == ACPI_STATE_C1 &&
-@@ -472,6 +473,12 @@ static int acpi_processor_get_power_info
+@@ -481,6 +482,12 @@ static int acpi_processor_get_power_info
if (obj->type != ACPI_TYPE_INTEGER)
continue;
@@ -542,7 +542,7 @@ take the forward porting patches:
current_count++;
memcpy(&(pr->power.states[current_count]), &cx, sizeof(cx));
-@@ -493,7 +500,7 @@ static int acpi_processor_get_power_info
+@@ -502,7 +509,7 @@ static int acpi_processor_get_power_info
current_count));
/* Validate number of power states discovered */
@@ -551,7 +551,7 @@ take the forward porting patches:
status = -EFAULT;
end:
-@@ -1226,6 +1233,11 @@ int __cpuinit acpi_processor_power_init(
+@@ -1234,6 +1241,11 @@ int __cpuinit acpi_processor_power_init(
}
acpi_processor_registered++;
}
@@ -563,7 +563,7 @@ take the forward porting patches:
return 0;
}
---- head.orig/drivers/acpi/processor_perflib.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/acpi/processor_perflib.c 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/acpi/processor_perflib.c 2013-03-21 12:21:40.000000000 +0100
@@ -75,6 +75,7 @@ MODULE_PARM_DESC(ignore_ppc, "If the fre
@@ -633,7 +633,7 @@ take the forward porting patches:
{
int result = 0;
acpi_status status = AE_OK;
---- head.orig/drivers/acpi/sleep.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/acpi/sleep.c 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/acpi/sleep.c 2013-01-08 09:22:43.000000000 +0100
@@ -62,6 +62,7 @@ static struct notifier_block tts_notifie
static int acpi_sleep_prepare(u32 acpi_state)
@@ -651,7 +651,7 @@ take the forward porting patches:
ACPI_FLUSH_CPU_CACHE();
#endif
printk(KERN_INFO PREFIX "Preparing to enter system sleep state S%d\n",
---- head.orig/drivers/block/floppy.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/block/floppy.c 2013-05-23 08:55:36.000000000 +0200
+++ head/drivers/block/floppy.c 2012-04-10 15:43:06.000000000 +0200
@@ -146,7 +146,9 @@
@@ -663,7 +663,7 @@ take the forward porting patches:
#define DEBUGT 2
---- head.orig/drivers/char/agp/intel-gtt.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/char/agp/intel-gtt.c 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/char/agp/intel-gtt.c 2013-03-21 12:22:13.000000000 +0100
@@ -148,8 +148,19 @@ static struct page *i8xx_alloc_pages(voi
if (page == NULL)
@@ -695,9 +695,9 @@ take the forward porting patches:
put_page(page);
__free_pages(page, 2);
atomic_dec(&agp_bridge->current_memory_agp);
---- head.orig/drivers/char/mem.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/char/mem.c 2012-08-20 10:17:14.000000000 +0200
-@@ -89,6 +89,7 @@ void __weak unxlate_dev_mem_ptr(unsigned
+--- head.orig/drivers/char/mem.c 2013-05-23 08:55:37.000000000 +0200
++++ head/drivers/char/mem.c 2013-05-23 16:23:38.000000000 +0200
+@@ -90,6 +90,7 @@ void __weak unxlate_dev_mem_ptr(unsigned
{
}
@@ -705,7 +705,7 @@ take the forward porting patches:
/*
* This funcion reads the *physical* memory. The f_pos points directly to the
* memory location.
-@@ -211,6 +212,7 @@ static ssize_t write_mem(struct file *fi
+@@ -212,6 +213,7 @@ static ssize_t write_mem(struct file *fi
*ppos += written;
return written;
}
@@ -713,7 +713,7 @@ take the forward porting patches:
int __weak phys_mem_access_prot_allowed(struct file *file,
unsigned long pfn, unsigned long size, pgprot_t *vma_prot)
-@@ -337,6 +339,9 @@ static int mmap_mem(struct file *file, s
+@@ -338,6 +340,9 @@ static int mmap_mem(struct file *file, s
static int mmap_kmem(struct file *file, struct vm_area_struct *vma)
{
unsigned long pfn;
@@ -723,7 +723,7 @@ take the forward porting patches:
/* Turn a kernel-virtual address into a physical page frame */
pfn = __pa((u64)vma->vm_pgoff << PAGE_SHIFT) >> PAGE_SHIFT;
-@@ -351,6 +356,13 @@ static int mmap_kmem(struct file *file,
+@@ -352,6 +357,13 @@ static int mmap_kmem(struct file *file,
if (!pfn_valid(pfn))
return -EIO;
@@ -737,7 +737,7 @@ take the forward porting patches:
vma->vm_pgoff = pfn;
return mmap_mem(file, vma);
}
-@@ -742,6 +754,7 @@ static int open_port(struct inode *inode
+@@ -774,6 +786,7 @@ static int open_port(struct inode *inode
#define open_kmem open_mem
#define open_oldmem open_mem
@@ -745,7 +745,7 @@ take the forward porting patches:
static const struct file_operations mem_fops = {
.llseek = memory_lseek,
.read = read_mem,
-@@ -750,6 +763,9 @@ static const struct file_operations mem_
+@@ -782,6 +795,9 @@ static const struct file_operations mem_
.open = open_mem,
.get_unmapped_area = get_unmapped_area_mem,
};
@@ -755,7 +755,7 @@ take the forward porting patches:
#ifdef CONFIG_DEVKMEM
static const struct file_operations kmem_fops = {
---- head.orig/drivers/char/tpm/Makefile 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/char/tpm/Makefile 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/char/tpm/Makefile 2013-03-21 12:22:21.000000000 +0100
@@ -18,3 +18,5 @@ obj-$(CONFIG_TCG_ATMEL) += tpm_atmel.o
obj-$(CONFIG_TCG_INFINEON) += tpm_infineon.o
@@ -763,7 +763,7 @@ take the forward porting patches:
obj-$(CONFIG_TCG_ST33_I2C) += tpm_i2c_stm_st33.o
+obj-$(CONFIG_TCG_XEN) += tpm_xenu.o
+tpm_xenu-y = tpm_xen.o tpm_vtpm.o
---- head.orig/drivers/char/tpm/tpm.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/char/tpm/tpm.h 2013-05-23 08:55:37.000000000 +0200
+++ head/drivers/char/tpm/tpm.h 2013-05-10 14:17:30.000000000 +0200
@@ -139,6 +139,9 @@ struct tpm_chip {
struct dentry **bios_dir;
@@ -2118,8 +2118,8 @@ take the forward porting patches:
+module_init(tpmif_init);
+
+MODULE_LICENSE("Dual BSD/GPL");
---- head.orig/drivers/tty/tty_io.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/drivers/tty/tty_io.c 2013-05-10 14:17:36.000000000 +0200
+--- head.orig/drivers/tty/tty_io.c 2013-05-23 08:56:31.000000000 +0200
++++ head/drivers/tty/tty_io.c 2013-05-23 16:23:34.000000000 +0200
@@ -137,6 +137,8 @@ EXPORT_SYMBOL(tty_mutex);
/* Spinlock to protect the tty->tty_files list */
DEFINE_SPINLOCK(tty_files_lock);
@@ -2129,7 +2129,7 @@ take the forward porting patches:
static ssize_t tty_read(struct file *, char __user *, size_t, loff_t *);
static ssize_t tty_write(struct file *, const char __user *, size_t, loff_t *);
ssize_t redirected_tty_write(struct file *, const char __user *,
-@@ -1863,6 +1865,10 @@ static struct tty_driver *tty_lookup_dri
+@@ -1929,6 +1931,10 @@ static struct tty_driver *tty_lookup_dri
#ifdef CONFIG_VT
case MKDEV(TTY_MAJOR, 0): {
extern struct tty_driver *console_driver;
@@ -2140,7 +2140,7 @@ take the forward porting patches:
driver = tty_driver_kref_get(console_driver);
*index = fg_console;
*noctty = 1;
-@@ -3510,7 +3516,8 @@ int __init tty_init(void)
+@@ -3576,7 +3582,8 @@ int __init tty_init(void)
WARN_ON(device_create_file(consdev, &dev_attr_active) < 0);
#ifdef CONFIG_VT
@@ -2150,7 +2150,7 @@ take the forward porting patches:
#endif
return 0;
}
---- head.orig/drivers/edac/edac_mc.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/edac/edac_mc.c 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/edac/edac_mc.c 2013-03-21 12:23:07.000000000 +0100
@@ -848,6 +848,10 @@ static void edac_mc_scrub_block(unsigned
@@ -2163,7 +2163,7 @@ take the forward porting patches:
/* ECC error page was not in our memory. Ignore it. */
if (!pfn_valid(page))
return;
---- head.orig/drivers/firmware/dell_rbu.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/firmware/dell_rbu.c 2010-08-02 00:11:14.000000000 +0200
+++ head/drivers/firmware/dell_rbu.c 2011-04-13 11:25:29.000000000 +0200
@@ -170,9 +170,28 @@ static int create_packet(void *data, siz
spin_lock(&rbu_data.lock);
@@ -2271,7 +2271,7 @@ take the forward porting patches:
spin_lock_init(&rbu_data.lock);
init_packet_head();
---- head.orig/drivers/ide/ide-lib.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/ide/ide-lib.c 2012-01-05 00:55:44.000000000 +0100
+++ head/drivers/ide/ide-lib.c 2011-11-16 17:01:48.000000000 +0100
@@ -19,12 +19,12 @@ void ide_toggle_bounce(ide_drive_t *driv
{
@@ -2290,7 +2290,7 @@ take the forward porting patches:
addr = *dev->dma_mask;
}
---- head.orig/drivers/oprofile/buffer_sync.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/oprofile/buffer_sync.c 2012-12-11 04:30:57.000000000 +0100
+++ head/drivers/oprofile/buffer_sync.c 2012-10-22 17:20:27.000000000 +0200
@@ -8,6 +8,10 @@
* @author Barry Kasindorf
@@ -2485,7 +2485,7 @@ take the forward porting patches:
mark_done(cpu);
mutex_unlock(&buffer_mutex);
---- head.orig/drivers/oprofile/cpu_buffer.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/oprofile/cpu_buffer.c 2012-12-11 04:30:57.000000000 +0100
+++ head/drivers/oprofile/cpu_buffer.c 2011-04-13 12:22:07.000000000 +0200
@@ -8,6 +8,10 @@
* @author Barry Kasindorf <barry.kasindorf@amd.com>
@@ -2608,7 +2608,7 @@ take the forward porting patches:
/*
* This serves to avoid cpu buffer overflow, and makes sure
* the task mortuary progresses
---- head.orig/drivers/oprofile/cpu_buffer.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/oprofile/cpu_buffer.h 2011-01-05 01:50:19.000000000 +0100
+++ head/drivers/oprofile/cpu_buffer.h 2011-04-13 11:25:29.000000000 +0200
@@ -41,7 +41,7 @@ struct op_entry;
struct oprofile_cpu_buffer {
@@ -2644,7 +2644,7 @@ take the forward porting patches:
+#define DOMAIN_SWITCH (1UL << 5)
#endif /* OPROFILE_CPU_BUFFER_H */
---- head.orig/drivers/oprofile/event_buffer.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/oprofile/event_buffer.h 2011-07-22 04:17:23.000000000 +0200
+++ head/drivers/oprofile/event_buffer.h 2011-04-13 11:25:29.000000000 +0200
@@ -30,6 +30,9 @@ void wake_up_buffer_waiter(void);
#define INVALID_COOKIE ~0UL
@@ -2656,7 +2656,7 @@ take the forward porting patches:
extern const struct file_operations event_buffer_fops;
/* mutex between sync_cpu_buffers() and the
---- head.orig/drivers/oprofile/oprof.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/oprofile/oprof.c 2012-03-19 00:15:34.000000000 +0100
+++ head/drivers/oprofile/oprof.c 2011-01-31 17:01:49.000000000 +0100
@@ -5,6 +5,10 @@
* @remark Read the file COPYING
@@ -2704,7 +2704,7 @@ take the forward porting patches:
int oprofile_setup(void)
{
int err;
---- head.orig/drivers/oprofile/oprof.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/oprofile/oprof.h 2012-03-19 00:15:34.000000000 +0100
+++ head/drivers/oprofile/oprof.h 2012-02-08 10:51:51.000000000 +0100
@@ -48,4 +48,7 @@ static inline int op_nmi_timer_init(stru
int oprofile_set_ulong(unsigned long *addr, unsigned long val);
@@ -2714,7 +2714,7 @@ take the forward porting patches:
+int oprofile_set_passive(int passive_domains[], unsigned int pdomains);
+
#endif /* OPROF_H */
---- head.orig/drivers/oprofile/oprofile_files.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/oprofile/oprofile_files.c 2012-01-05 00:55:44.000000000 +0100
+++ head/drivers/oprofile/oprofile_files.c 2012-02-16 11:09:01.000000000 +0100
@@ -5,11 +5,17 @@
* @remark Read the file COPYING
@@ -2884,8 +2884,8 @@ take the forward porting patches:
oprofilefs_create_file(sb, root, "buffer", &event_buffer_fops);
oprofilefs_create_ulong(sb, root, "buffer_size", &oprofile_buffer_size);
oprofilefs_create_ulong(sb, root, "buffer_watershed", &oprofile_buffer_watershed);
---- head.orig/fs/aio.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/fs/aio.c 2013-03-21 12:23:21.000000000 +0100
+--- head.orig/fs/aio.c 2013-06-04 11:49:37.000000000 +0200
++++ head/fs/aio.c 2013-06-04 13:53:30.000000000 +0200
@@ -39,6 +39,11 @@
#include <asm/kmap_types.h>
#include <asm/uaccess.h>
@@ -2895,10 +2895,38 @@ take the forward porting patches:
+#include <linux/eventpoll.h>
+#endif
+
- #if DEBUG > 1
- #define dprintk printk
- #else
-@@ -988,6 +993,11 @@ put_rq:
+ #define AIO_RING_MAGIC 0xa10a10a1
+ #define AIO_RING_COMPAT_FEATURES 1
+ #define AIO_RING_INCOMPAT_FEATURES 0
+@@ -88,6 +93,12 @@ struct kioctx {
+ struct rcu_head rcu_head;
+ struct work_struct rcu_work;
+
++#ifdef CONFIG_EPOLL
++ /* poll integration */
++ wait_queue_head_t poll_wait;
++ struct file *file;
++#endif
++
+ struct {
+ atomic_t reqs_active;
+ } ____cacheline_aligned_in_smp;
+@@ -438,6 +449,14 @@ static void kill_ioctx(struct kioctx *ct
+ /* Between hlist_del_rcu() and dropping the initial ref */
+ synchronize_rcu();
+
++#ifdef CONFIG_EPOLL
++ /* forget the poll file, but it's up to the user to close it */
++ if (ctx->file) {
++ ctx->file->private_data = 0;
++ ctx->file = 0;
++ }
++#endif
++
+ /*
+ * We can't punt to workqueue here because put_ioctx() ->
+ * free_ioctx() will unmap the ringbuffer, and that has to be
+@@ -692,6 +711,11 @@ put_rq:
if (waitqueue_active(&ctx->wait))
wake_up(&ctx->wait);
@@ -2907,60 +2935,32 @@ take the forward porting patches:
+ wake_up(&ctx->poll_wait);
+#endif
+
- spin_unlock_irqrestore(&ctx->ctx_lock, flags);
- return ret;
+ rcu_read_unlock();
}
-@@ -996,6 +1006,8 @@ EXPORT_SYMBOL(aio_complete);
- /* aio_read_evt
- * Pull an event off of the ioctx's event ring. Returns the number of
- * events fetched (0 or 1 ;-)
+ EXPORT_SYMBOL(aio_complete);
+@@ -699,6 +723,8 @@ EXPORT_SYMBOL(aio_complete);
+ /* aio_read_events
+ * Pull an event off of the ioctx's event ring. Returns the number of
+ * events fetched
+ * If ent parameter is 0, just returns the number of events that would
+ * be fetched.
- * FIXME: make this use cmpxchg.
- * TODO: make the ringbuffer user mmap()able (requires FIXME).
*/
-@@ -1018,13 +1030,17 @@ static int aio_read_evt(struct kioctx *i
-
- head = ring->head % info->nr;
- if (head != ring->tail) {
-- struct io_event *evp = aio_ring_event(info, head);
-- *ent = *evp;
-- head = (head + 1) % info->nr;
-- smp_mb(); /* finish reading the event before updatng the head */
-- ring->head = head;
-- ret = 1;
-- put_aio_ring_event(evp);
-+ if (ent) { /* event requested */
-+ struct io_event *evp = aio_ring_event(info, head);
-+ *ent = *evp;
-+ head = (head + 1) % info->nr;
-+ /* finish reading the event before updatng the head */
-+ smp_mb();
-+ ring->head = head;
-+ ret = 1;
-+ put_aio_ring_event(evp);
-+ } else /* only need to know availability */
-+ ret = 1;
- }
- spin_unlock(&info->ring_lock);
-
-@@ -1209,6 +1225,14 @@ static void io_destroy(struct kioctx *io
-
- kill_ctx(ioctx);
-
-+#ifdef CONFIG_EPOLL
-+ /* forget the poll file, but it's up to the user to close it */
-+ if (ioctx->file) {
-+ ioctx->file->private_data = 0;
-+ ioctx->file = 0;
-+ }
-+#endif
+ static long aio_read_events_ring(struct kioctx *ctx,
+ struct io_event __user *event, long nr)
+@@ -732,6 +758,11 @@ static long aio_read_events_ring(struct
+ avail = min_t(long, avail, AIO_EVENTS_PER_PAGE -
+ ((head + AIO_EVENTS_OFFSET) % AIO_EVENTS_PER_PAGE));
+
++ if (!event) { /* only need to know availability */
++ ret = avail;
++ goto out;
++ }
+
- /*
- * Wake up any waiters. The setting of ctx->dead must be seen
- * by other CPUs at this point. Right now, we rely on the
-@@ -1217,6 +1241,67 @@ static void io_destroy(struct kioctx *io
- wake_up_all(&ioctx->wait);
+ pos = head + AIO_EVENTS_OFFSET;
+ page = ctx->ring_pages[pos / AIO_EVENTS_PER_PAGE];
+ pos %= AIO_EVENTS_PER_PAGE;
+@@ -821,6 +852,67 @@ static long read_events(struct kioctx *c
+ return ret;
}
+#ifdef CONFIG_EPOLL
@@ -3027,7 +3027,7 @@ take the forward porting patches:
/* sys_io_setup:
* Create an aio_context capable of receiving at least nr_events.
* ctxp must not point to an aio_context that already exists, and
-@@ -1229,18 +1314,30 @@ static void io_destroy(struct kioctx *io
+@@ -833,18 +925,30 @@ static long read_events(struct kioctx *c
* resources are available. May fail with -EFAULT if an invalid
* pointer is passed for ctxp. Will fail with -ENOSYS if not
* implemented.
@@ -3058,7 +3058,7 @@ take the forward porting patches:
if (unlikely(ctx || nr_events == 0)) {
pr_debug("EINVAL: io_setup: ctx %lu nr_events %u\n",
ctx, nr_events);
-@@ -1251,7 +1348,11 @@ SYSCALL_DEFINE2(io_setup, unsigned, nr_e
+@@ -855,7 +959,11 @@ SYSCALL_DEFINE2(io_setup, unsigned, nr_e
ret = PTR_ERR(ioctx);
if (!IS_ERR(ioctx)) {
ret = put_user(ioctx->user_id, ctxp);
@@ -3068,11 +3068,11 @@ take the forward porting patches:
+ ret = make_aio_fd(ioctx);
+#endif
+ if (ret < 0)
- io_destroy(ioctx);
+ kill_ioctx(ioctx);
put_ioctx(ioctx);
}
---- head.orig/fs/compat_ioctl.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/fs/compat_ioctl.c 2013-01-08 09:21:50.000000000 +0100
+--- head.orig/fs/compat_ioctl.c 2013-05-23 08:56:33.000000000 +0200
++++ head/fs/compat_ioctl.c 2013-05-23 16:23:22.000000000 +0200
@@ -116,6 +116,13 @@
#include <asm/fbio.h>
#endif
@@ -3087,7 +3087,7 @@ take the forward porting patches:
static int w_long(unsigned int fd, unsigned int cmd,
compat_ulong_t __user *argp)
{
-@@ -1427,6 +1434,19 @@ IGNORE_IOCTL(FBIOGETCMAP32)
+@@ -1426,6 +1433,19 @@ IGNORE_IOCTL(FBIOGETCMAP32)
IGNORE_IOCTL(FBIOSCURSOR32)
IGNORE_IOCTL(FBIOGCURSOR32)
#endif
@@ -3107,8 +3107,8 @@ take the forward porting patches:
};
/*
---- head.orig/include/acpi/processor.h 2013-05-10 14:14:39.000000000 +0200
-+++ head/include/acpi/processor.h 2013-03-21 12:23:28.000000000 +0100
+--- head.orig/include/acpi/processor.h 2013-05-23 08:56:43.000000000 +0200
++++ head/include/acpi/processor.h 2013-05-23 16:23:14.000000000 +0200
@@ -41,6 +41,17 @@
struct acpi_processor_cx;
@@ -3158,7 +3158,7 @@ take the forward porting patches:
static inline int acpi_processor_get_bios_limit(int cpu, unsigned int *limit)
{
return -ENODEV;
-@@ -350,4 +371,120 @@ static inline void acpi_thermal_cpufreq_
+@@ -356,4 +377,120 @@ static inline void acpi_thermal_cpufreq_
}
#endif
@@ -3279,22 +3279,7 @@ take the forward porting patches:
+#endif /* CONFIG_XEN */
+
#endif
---- head.orig/include/linux/aio.h 2013-05-10 14:14:39.000000000 +0200
-+++ head/include/linux/aio.h 2012-08-20 10:17:46.000000000 +0200
-@@ -203,6 +203,12 @@ struct kioctx {
-
- struct delayed_work wq;
-
-+#ifdef CONFIG_EPOLL
-+ /* poll integration */
-+ wait_queue_head_t poll_wait;
-+ struct file *file;
-+#endif
-+
- struct rcu_head rcu_head;
- };
-
---- head.orig/include/linux/highmem.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/linux/highmem.h 2013-04-29 02:36:01.000000000 +0200
+++ head/include/linux/highmem.h 2013-03-21 12:23:37.000000000 +0100
@@ -182,12 +182,14 @@ alloc_zeroed_user_highpage_movable(struc
return __alloc_zeroed_user_highpage(__GFP_MOVABLE, vma, vaddr);
@@ -3327,7 +3312,7 @@ take the forward porting patches:
+#endif
+
#endif /* _LINUX_HIGHMEM_H */
---- head.orig/include/linux/interrupt.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/linux/interrupt.h 2013-02-19 00:58:34.000000000 +0100
+++ head/include/linux/interrupt.h 2013-01-30 10:34:19.000000000 +0100
@@ -381,6 +381,11 @@ static inline int disable_irq_wake(unsig
}
@@ -3341,7 +3326,7 @@ take the forward porting patches:
#ifdef CONFIG_IRQ_FORCED_THREADING
extern bool force_irqthreads;
---- head.orig/include/linux/kexec.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/linux/kexec.h 2013-04-29 02:36:01.000000000 +0200
+++ head/include/linux/kexec.h 2012-10-22 17:19:14.000000000 +0200
@@ -57,6 +57,13 @@
KEXEC_CORE_NOTE_DESC_BYTES )
@@ -3370,9 +3355,9 @@ take the forward porting patches:
extern asmlinkage long sys_kexec_load(unsigned long entry,
unsigned long nr_segments,
struct kexec_segment __user *segments,
---- head.orig/include/linux/mm.h 2013-05-10 14:14:39.000000000 +0200
-+++ head/include/linux/mm.h 2013-04-03 10:16:46.000000000 +0200
-@@ -104,8 +104,14 @@ extern unsigned int kobjsize(const void
+--- head.orig/include/linux/mm.h 2013-05-23 08:57:01.000000000 +0200
++++ head/include/linux/mm.h 2013-05-23 16:23:10.000000000 +0200
+@@ -107,8 +107,14 @@ extern unsigned int kobjsize(const void
#define VM_DONTDUMP 0x04000000 /* Do not include in the core dump */
#define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */
@@ -3387,7 +3372,7 @@ take the forward porting patches:
#define VM_MERGEABLE 0x80000000 /* KSM may merge identical pages */
#if defined(CONFIG_X86)
-@@ -151,6 +157,12 @@ extern unsigned int kobjsize(const void
+@@ -154,6 +160,12 @@ extern unsigned int kobjsize(const void
*/
#define VM_SPECIAL (VM_IO | VM_DONTEXPAND | VM_PFNMAP)
@@ -3400,7 +3385,7 @@ take the forward porting patches:
/*
* mapping from the currently active vm_flags protection bits (the
* low four bits) to a page protection mask..
-@@ -204,6 +216,15 @@ struct vm_operations_struct {
+@@ -207,6 +219,15 @@ struct vm_operations_struct {
*/
int (*access)(struct vm_area_struct *vma, unsigned long addr,
void *buf, int len, int write);
@@ -3416,7 +3401,7 @@ take the forward porting patches:
#ifdef CONFIG_NUMA
/*
* set_policy() op must add a reference to any non-NULL @new mempolicy
---- head.orig/include/linux/oprofile.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/linux/oprofile.h 2012-01-05 00:55:44.000000000 +0100
+++ head/include/linux/oprofile.h 2011-09-07 15:19:35.000000000 +0200
@@ -19,6 +19,9 @@
#include <linux/errno.h>
@@ -3471,7 +3456,7 @@ take the forward porting patches:
/**
* Create a file of the given name as a child of the given root, with
---- head.orig/include/linux/page-flags.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/linux/page-flags.h 2013-04-29 02:36:01.000000000 +0200
+++ head/include/linux/page-flags.h 2013-03-21 12:23:46.000000000 +0100
@@ -109,6 +109,11 @@ enum pageflags {
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
@@ -3537,20 +3522,20 @@ take the forward porting patches:
/*
* Flags checked when a page is prepped for return by the page allocator.
---- head.orig/include/linux/pci.h 2013-04-26 10:02:31.000000000 +0200
-+++ head/include/linux/pci.h 2013-04-26 10:04:55.000000000 +0200
-@@ -1154,6 +1154,10 @@ extern void pci_disable_msix(struct pci_
- extern void msi_remove_pci_irq_vectors(struct pci_dev *dev);
- extern void pci_restore_msi_state(struct pci_dev *dev);
- extern int pci_msi_enabled(void);
+--- head.orig/include/linux/pci.h 2013-05-23 15:37:32.000000000 +0200
++++ head/include/linux/pci.h 2013-05-23 16:23:04.000000000 +0200
+@@ -1171,6 +1171,10 @@ void pci_disable_msix(struct pci_dev *de
+ void msi_remove_pci_irq_vectors(struct pci_dev *dev);
+ void pci_restore_msi_state(struct pci_dev *dev);
+ int pci_msi_enabled(void);
+#ifdef CONFIG_XEN
-+extern int register_msi_get_owner(int (*func)(struct pci_dev *dev));
-+extern int unregister_msi_get_owner(int (*func)(struct pci_dev *dev));
++int register_msi_get_owner(int (*func)(struct pci_dev *dev));
++int unregister_msi_get_owner(int (*func)(struct pci_dev *dev));
+#endif
#endif
#ifdef CONFIG_PCIEPORTBUS
---- head.orig/include/linux/vermagic.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/linux/vermagic.h 2012-01-05 00:55:44.000000000 +0100
+++ head/include/linux/vermagic.h 2011-11-16 17:02:46.000000000 +0100
@@ -21,6 +21,11 @@
#else
@@ -3571,7 +3556,7 @@ take the forward porting patches:
- MODULE_ARCH_VERMAGIC
+ MODULE_VERMAGIC_XEN MODULE_ARCH_VERMAGIC
---- head.orig/kernel/irq/spurious.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/kernel/irq/spurious.c 2013-04-29 02:36:01.000000000 +0200
+++ head/kernel/irq/spurious.c 2013-03-05 12:28:22.000000000 +0100
@@ -289,7 +289,7 @@ void note_interrupt(unsigned int irq, st
*/
@@ -3582,8 +3567,8 @@ take the forward porting patches:
desc->irqs_unhandled++;
desc->last_unhandled = jiffies;
}
---- head.orig/kernel/kexec.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/kernel/kexec.c 2013-03-21 12:24:00.000000000 +0100
+--- head.orig/kernel/kexec.c 2013-05-23 08:56:49.000000000 +0200
++++ head/kernel/kexec.c 2013-05-23 16:22:59.000000000 +0200
@@ -359,13 +359,26 @@ static int kimage_is_destination_range(s
return 0;
}
@@ -3739,7 +3724,7 @@ take the forward porting patches:
<< PAGE_SHIFT);
if (result < 0)
goto out;
-@@ -842,6 +867,7 @@ out:
+@@ -838,6 +863,7 @@ out:
return result;
}
@@ -3747,7 +3732,7 @@ take the forward porting patches:
static int kimage_load_crash_segment(struct kimage *image,
struct kexec_segment *segment)
{
-@@ -864,7 +890,7 @@ static int kimage_load_crash_segment(str
+@@ -860,7 +886,7 @@ static int kimage_load_crash_segment(str
char *ptr;
size_t uchunk, mchunk;
@@ -3756,7 +3741,7 @@ take the forward porting patches:
if (!page) {
result = -ENOMEM;
goto out;
-@@ -913,6 +939,13 @@ static int kimage_load_segment(struct ki
+@@ -906,6 +932,13 @@ static int kimage_load_segment(struct ki
return result;
}
@@ -3770,7 +3755,7 @@ take the forward porting patches:
/*
* Exec Kernel system call: for obvious reasons only root may call it.
-@@ -1019,6 +1052,13 @@ SYSCALL_DEFINE4(kexec_load, unsigned lon
+@@ -1012,6 +1045,13 @@ SYSCALL_DEFINE4(kexec_load, unsigned lon
if (flags & KEXEC_ON_CRASH)
crash_unmap_reserved_pages();
}
@@ -3784,9 +3769,9 @@ take the forward porting patches:
/* Install the new kernel, and Uninstall the old */
image = xchg(dest_image, image);
---- head.orig/kernel/sysctl.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/kernel/sysctl.c 2013-03-21 12:24:07.000000000 +0100
-@@ -933,7 +933,7 @@ static struct ctl_table kern_table[] = {
+--- head.orig/kernel/sysctl.c 2013-05-23 08:57:01.000000000 +0200
++++ head/kernel/sysctl.c 2013-05-23 16:22:55.000000000 +0200
+@@ -932,7 +932,7 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec,
},
#endif
@@ -3795,7 +3780,7 @@ take the forward porting patches:
{
.procname = "acpi_video_flags",
.data = &acpi_realmode_flags,
---- head.orig/mm/memory.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/mm/memory.c 2013-05-23 08:56:50.000000000 +0200
+++ head/mm/memory.c 2013-04-26 10:04:32.000000000 +0200
@@ -781,6 +781,12 @@ struct page *vm_normal_page(struct vm_ar
{
@@ -3874,9 +3859,9 @@ take the forward porting patches:
if (!vma ||
(vma->vm_flags & (VM_IO | VM_PFNMAP)) ||
!(vm_flags & vma->vm_flags))
---- head.orig/mm/mmap.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/mm/mmap.c 2013-04-03 10:16:39.000000000 +0200
-@@ -2309,6 +2309,14 @@ static void unmap_region(struct mm_struc
+--- head.orig/mm/mmap.c 2013-05-23 08:56:50.000000000 +0200
++++ head/mm/mmap.c 2013-05-23 16:22:51.000000000 +0200
+@@ -2364,6 +2364,14 @@ static void unmap_region(struct mm_struc
tlb_finish_mmu(&tlb, start, end);
}
@@ -3891,7 +3876,7 @@ take the forward porting patches:
/*
* Create a list of vma's touched by the unmap, removing them from the mm's
* vma list as we go..
-@@ -2325,6 +2333,7 @@ detach_vmas_to_be_unmapped(struct mm_str
+@@ -2380,6 +2388,7 @@ detach_vmas_to_be_unmapped(struct mm_str
vma->vm_prev = NULL;
do {
vma_rb_erase(vma, &mm->mm_rb);
@@ -3899,7 +3884,7 @@ take the forward porting patches:
mm->map_count--;
tail_vma = vma;
vma = vma->vm_next;
-@@ -2674,6 +2683,11 @@ void exit_mmap(struct mm_struct *mm)
+@@ -2729,6 +2738,11 @@ void exit_mmap(struct mm_struct *mm)
arch_exit_mmap(mm);
@@ -3911,9 +3896,9 @@ take the forward porting patches:
vma = mm->mmap;
if (!vma) /* Can happen if dup_mmap() received an OOM */
return;
---- head.orig/mm/page_alloc.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/mm/page_alloc.c 2013-03-21 12:24:20.000000000 +0100
-@@ -701,6 +701,13 @@ static bool free_pages_prepare(struct pa
+--- head.orig/mm/page_alloc.c 2013-06-04 11:50:07.000000000 +0200
++++ head/mm/page_alloc.c 2013-05-23 16:22:45.000000000 +0200
+@@ -702,6 +702,13 @@ static bool free_pages_prepare(struct pa
int i;
int bad = 0;
@@ -3927,7 +3912,7 @@ take the forward porting patches:
trace_mm_page_free(page, order);
kmemcheck_free_shadow(page, order);
---- head.orig/scripts/Makefile.build 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/scripts/Makefile.build 2013-05-23 08:57:01.000000000 +0200
+++ head/scripts/Makefile.build 2011-06-30 15:39:08.000000000 +0200
@@ -128,6 +128,21 @@ ifndef obj
$(warning kbuild: Makefile.build is included improperly)
@@ -3951,7 +3936,7 @@ take the forward porting patches:
# ===========================================================================
ifneq ($(strip $(lib-y) $(lib-m) $(lib-n) $(lib-)),)
---- head.orig/scripts/Makefile.lib 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/scripts/Makefile.lib 2013-05-23 08:56:56.000000000 +0200
+++ head/scripts/Makefile.lib 2012-04-10 15:40:06.000000000 +0200
@@ -22,6 +22,12 @@ obj-m := $(filter-out $(obj-y),$(obj-m))
diff --git a/patches.xen/xen3-auto-xen-arch.diff b/patches.xen/xen3-auto-xen-arch.diff
index f3bc34f468..2c58955db3 100644
--- a/patches.xen/xen3-auto-xen-arch.diff
+++ b/patches.xen/xen3-auto-xen-arch.diff
@@ -29,7 +29,6 @@ places):
+++ linux/arch/x86/mm/fault-xen.c
+++ linux/arch/x86/mm/init-xen.c
+++ linux/arch/x86/mm/iomap_32-xen.c
-+++ linux/arch/x86/mm/pageattr-xen.c
+++ linux/arch/x86/mm/pat-xen.c
+++ linux/arch/x86/mm/pgtable-xen.c
+++ linux/arch/x86/mm/tlb-xen.c
@@ -27516,7 +27515,7 @@ pick them up (for reference, prefixed with the version the removal occured):
+ return (addr >= VSYSCALL_START) && (addr < VSYSCALL_END);
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ head/arch/x86/mm/pageattr_64-xen.c 2009-03-18 10:39:31.000000000 +0100
++++ head/arch/x86/mm/pageattr-xen.c 2009-03-18 10:39:31.000000000 +0100
@@ -0,0 +1,508 @@
+/*
+ * Copyright 2002 Andi Kleen, SuSE Labs.
diff --git a/patches.xen/xen3-auto-xen-kconfig.diff b/patches.xen/xen3-auto-xen-kconfig.diff
index 7e8e049473..523943a9cc 100644
--- a/patches.xen/xen3-auto-xen-kconfig.diff
+++ b/patches.xen/xen3-auto-xen-kconfig.diff
@@ -4,9 +4,9 @@ From: xen-devel@lists.xen.org
Patch-mainline: n/a
Acked-by: jbeulich@suse.com
---- head.orig/arch/x86/Kconfig 2013-04-26 09:59:53.000000000 +0200
-+++ head/arch/x86/Kconfig 2013-04-26 10:04:17.000000000 +0200
-@@ -240,7 +240,17 @@ config X86_64_SMP
+--- head.orig/arch/x86/Kconfig 2013-05-23 08:57:02.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 15:38:09.000000000 +0200
+@@ -235,7 +235,17 @@ config X86_64_SMP
config X86_HT
def_bool y
@@ -25,7 +25,7 @@ Acked-by: jbeulich@suse.com
config X86_32_LAZY_GS
def_bool y
-@@ -320,6 +330,15 @@ config X86_MPPARSE
+@@ -315,6 +325,15 @@ config X86_MPPARSE
For old smp systems that do not have proper acpi support. Newer systems
(esp with 64bit cpus) with acpi support, MADT and DSDT will override it
@@ -41,7 +41,7 @@ Acked-by: jbeulich@suse.com
config X86_BIGSMP
bool "Support for big SMP systems with more than 8 CPUs"
depends on X86_32 && SMP
-@@ -354,6 +373,13 @@ config X86_EXTENDED_PLATFORM
+@@ -349,6 +368,13 @@ config X86_EXTENDED_PLATFORM
generic distribution kernel, say Y here - otherwise say N.
endif
@@ -55,7 +55,7 @@ Acked-by: jbeulich@suse.com
if X86_64
config X86_EXTENDED_PLATFORM
bool "Support for extended (non-PC) x86 platforms"
-@@ -695,6 +721,7 @@ source "arch/x86/Kconfig.cpu"
+@@ -691,6 +717,7 @@ source "arch/x86/Kconfig.cpu"
config HPET_TIMER
def_bool X86_64
prompt "HPET Timer Support" if X86_32
@@ -63,7 +63,7 @@ Acked-by: jbeulich@suse.com
---help---
Use the IA-PC HPET (High Precision Event Timer) to manage
time in preference to the PIT and RTC, if a HPET is
-@@ -742,7 +769,7 @@ config GART_IOMMU
+@@ -738,7 +765,7 @@ config GART_IOMMU
bool "GART IOMMU support" if EXPERT
default y
select SWIOTLB
@@ -72,7 +72,7 @@ Acked-by: jbeulich@suse.com
---help---
Support for full DMA access of devices with 32bit memory access only
on systems with more than 3GB. This is usually needed for USB,
-@@ -757,7 +784,7 @@ config GART_IOMMU
+@@ -753,7 +780,7 @@ config GART_IOMMU
config CALGARY_IOMMU
bool "IBM Calgary IOMMU support"
select SWIOTLB
@@ -81,7 +81,7 @@ Acked-by: jbeulich@suse.com
---help---
Support for hardware IOMMUs in IBM's xSeries x366 and x460
systems. Needed to run systems with more than 3GB of memory
-@@ -812,6 +839,7 @@ config NR_CPUS
+@@ -808,6 +835,7 @@ config NR_CPUS
default "1" if !SMP
default "4096" if MAXSMP
default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
@@ -89,7 +89,7 @@ Acked-by: jbeulich@suse.com
default "8" if SMP
---help---
This allows you to specify the maximum number of CPUs which this
-@@ -843,7 +871,7 @@ source "kernel/Kconfig.preempt"
+@@ -839,7 +867,7 @@ source "kernel/Kconfig.preempt"
config X86_UP_APIC
bool "Local APIC support on uniprocessors"
@@ -98,7 +98,7 @@ Acked-by: jbeulich@suse.com
---help---
A local APIC (Advanced Programmable Interrupt Controller) is an
integrated interrupt controller in the CPU. If you have a single-CPU
-@@ -869,15 +897,22 @@ config X86_UP_IOAPIC
+@@ -865,15 +893,22 @@ config X86_UP_IOAPIC
config X86_LOCAL_APIC
def_bool y
depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
@@ -121,7 +121,7 @@ Acked-by: jbeulich@suse.com
config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
bool "Reroute for broken boot IRQs"
depends on X86_IO_APIC
-@@ -904,6 +939,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
+@@ -900,6 +935,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
config X86_MCE
bool "Machine Check / overheating reporting"
default y
@@ -129,7 +129,7 @@ Acked-by: jbeulich@suse.com
---help---
Machine Check support allows the processor to notify the
kernel if it detects a problem (e.g. overheating, data corruption).
-@@ -913,7 +949,7 @@ config X86_MCE
+@@ -909,7 +945,7 @@ config X86_MCE
config X86_MCE_INTEL
def_bool y
prompt "Intel MCE features"
@@ -138,7 +138,7 @@ Acked-by: jbeulich@suse.com
---help---
Additional support for intel specific MCE features such as
the thermal monitor.
-@@ -921,7 +957,7 @@ config X86_MCE_INTEL
+@@ -917,7 +953,7 @@ config X86_MCE_INTEL
config X86_MCE_AMD
def_bool y
prompt "AMD MCE features"
@@ -147,7 +147,7 @@ Acked-by: jbeulich@suse.com
---help---
Additional support for AMD specific MCE features such as
the DRAM Error Threshold.
-@@ -946,6 +982,10 @@ config X86_MCE_INJECT
+@@ -942,6 +978,10 @@ config X86_MCE_INJECT
If you don't know what a machine check is and you don't do kernel
QA it is safe to say n.
@@ -158,7 +158,7 @@ Acked-by: jbeulich@suse.com
config X86_THERMAL_VECTOR
def_bool y
depends on X86_MCE_INTEL
-@@ -999,7 +1039,7 @@ config I8K
+@@ -995,7 +1035,7 @@ config I8K
config X86_REBOOTFIXUPS
bool "Enable X86 board specific fixups for reboot"
@@ -167,7 +167,7 @@ Acked-by: jbeulich@suse.com
---help---
This enables chipset and/or board specific fixups to be done
in order to get reboot to work correctly. This is only needed on
-@@ -1016,6 +1056,7 @@ config X86_REBOOTFIXUPS
+@@ -1012,6 +1052,7 @@ config X86_REBOOTFIXUPS
config MICROCODE
tristate "CPU microcode loading support"
@@ -175,7 +175,7 @@ Acked-by: jbeulich@suse.com
select FW_LOADER
---help---
-@@ -1228,7 +1269,7 @@ config DIRECT_GBPAGES
+@@ -1224,7 +1265,7 @@ config DIRECT_GBPAGES
# Common NUMA Features
config NUMA
bool "Numa Memory Allocation and Scheduler Support"
@@ -184,7 +184,7 @@ Acked-by: jbeulich@suse.com
depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI))
default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
---help---
-@@ -1321,6 +1362,7 @@ config ARCH_DISCONTIGMEM_DEFAULT
+@@ -1317,6 +1358,7 @@ config ARCH_DISCONTIGMEM_DEFAULT
config ARCH_SPARSEMEM_ENABLE
def_bool y
depends on X86_64 || NUMA || X86_32 || X86_32_NON_STANDARD
@@ -192,7 +192,7 @@ Acked-by: jbeulich@suse.com
select SPARSEMEM_STATIC if X86_32
select SPARSEMEM_VMEMMAP_ENABLE if X86_64
-@@ -1418,6 +1460,7 @@ config X86_RESERVE_LOW
+@@ -1414,6 +1456,7 @@ config X86_RESERVE_LOW
config MATH_EMULATION
bool
prompt "Math emulation" if X86_32
@@ -200,7 +200,7 @@ Acked-by: jbeulich@suse.com
---help---
Linux can emulate a math coprocessor (used for floating point
operations) if you don't have one. 486DX and Pentium processors have
-@@ -1444,6 +1487,7 @@ config MATH_EMULATION
+@@ -1440,6 +1483,7 @@ config MATH_EMULATION
config MTRR
def_bool y
prompt "MTRR (Memory Type Range Register) support" if EXPERT
@@ -208,7 +208,7 @@ Acked-by: jbeulich@suse.com
---help---
On Intel P6 family processors (Pentium Pro, Pentium II and later)
the Memory Type Range Registers (MTRRs) may be used to control
-@@ -1548,7 +1592,7 @@ config X86_SMAP
+@@ -1544,7 +1588,7 @@ config X86_SMAP
config EFI
bool "EFI runtime service support"
@@ -217,7 +217,7 @@ Acked-by: jbeulich@suse.com
select UCS2_STRING
---help---
This enables the kernel to use EFI runtime services that are
-@@ -1606,6 +1650,7 @@ source kernel/Kconfig.hz
+@@ -1602,6 +1646,7 @@ source kernel/Kconfig.hz
config KEXEC
bool "kexec system call"
@@ -225,7 +225,7 @@ Acked-by: jbeulich@suse.com
---help---
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
-@@ -1623,6 +1668,7 @@ config KEXEC
+@@ -1619,6 +1664,7 @@ config KEXEC
config CRASH_DUMP
bool "kernel crash dumps"
depends on X86_64 || (X86_32 && HIGHMEM)
@@ -233,7 +233,7 @@ Acked-by: jbeulich@suse.com
---help---
Generate crash dump after being started by kexec.
This should be normally only set in special crash dump kernels
-@@ -1785,6 +1831,7 @@ config COMPAT_VDSO
+@@ -1781,6 +1827,7 @@ config COMPAT_VDSO
def_bool y
prompt "Compat VDSO support"
depends on X86_32 || IA32_EMULATION
@@ -241,7 +241,7 @@ Acked-by: jbeulich@suse.com
---help---
Map the 32-bit VDSO to the predictable old-style address too.
-@@ -1852,6 +1899,7 @@ config USE_PERCPU_NUMA_NODE_ID
+@@ -1848,6 +1895,7 @@ config USE_PERCPU_NUMA_NODE_ID
depends on NUMA
menu "Power management and ACPI options"
@@ -249,7 +249,7 @@ Acked-by: jbeulich@suse.com
config ARCH_HIBERNATION_HEADER
def_bool y
-@@ -1869,7 +1917,7 @@ config X86_APM_BOOT
+@@ -1865,7 +1913,7 @@ config X86_APM_BOOT
menuconfig APM
tristate "APM (Advanced Power Management) BIOS support"
@@ -258,7 +258,7 @@ Acked-by: jbeulich@suse.com
---help---
APM is a BIOS specification for saving power using several different
techniques. This is mostly useful for battery powered laptops with
-@@ -2031,6 +2079,7 @@ choice
+@@ -2027,6 +2075,7 @@ choice
config PCI_GOBIOS
bool "BIOS"
@@ -266,7 +266,7 @@ Acked-by: jbeulich@suse.com
config PCI_GOMMCONFIG
bool "MMConfig"
-@@ -2042,6 +2091,13 @@ config PCI_GOOLPC
+@@ -2038,6 +2087,13 @@ config PCI_GOOLPC
bool "OLPC XO-1"
depends on OLPC
@@ -280,7 +280,7 @@ Acked-by: jbeulich@suse.com
config PCI_GOANY
bool "Any"
-@@ -2049,7 +2105,7 @@ endchoice
+@@ -2045,7 +2101,7 @@ endchoice
config PCI_BIOS
def_bool y
@@ -289,7 +289,7 @@ Acked-by: jbeulich@suse.com
# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
config PCI_DIRECT
-@@ -2090,6 +2146,22 @@ config PCI_CNB20LE_QUIRK
+@@ -2086,6 +2142,22 @@ config PCI_CNB20LE_QUIRK
You should say N unless you know you need this.
@@ -312,7 +312,7 @@ Acked-by: jbeulich@suse.com
source "drivers/pci/pcie/Kconfig"
source "drivers/pci/Kconfig"
-@@ -2106,6 +2178,7 @@ if X86_32
+@@ -2102,6 +2174,7 @@ if X86_32
config ISA
bool "ISA support"
@@ -320,7 +320,7 @@ Acked-by: jbeulich@suse.com
---help---
Find out whether you have ISA slots on your motherboard. ISA is the
name of a bus system, i.e. the way the CPU talks to the other stuff
-@@ -2336,7 +2409,9 @@ source "net/Kconfig"
+@@ -2332,7 +2405,9 @@ source "net/Kconfig"
source "drivers/Kconfig"
@@ -330,14 +330,14 @@ Acked-by: jbeulich@suse.com
source "fs/Kconfig"
-@@ -2348,4 +2423,6 @@ source "crypto/Kconfig"
+@@ -2344,4 +2419,6 @@ source "crypto/Kconfig"
source "arch/x86/kvm/Kconfig"
+source "drivers/xen/Kconfig"
+
source "lib/Kconfig"
---- head.orig/arch/x86/Kconfig.cpu 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/Kconfig.cpu 2013-02-19 00:58:34.000000000 +0100
+++ head/arch/x86/Kconfig.cpu 2013-01-08 09:10:04.000000000 +0100
@@ -319,7 +319,7 @@ config X86_PPRO_FENCE
@@ -356,7 +356,7 @@ Acked-by: jbeulich@suse.com
config X86_CMPXCHG64
def_bool y
---- head.orig/arch/x86/Kconfig.debug 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/Kconfig.debug 2013-05-23 08:55:27.000000000 +0200
+++ head/arch/x86/Kconfig.debug 2012-02-08 10:28:21.000000000 +0100
@@ -122,7 +122,7 @@ config DEBUG_NX_TEST
config DOUBLEFAULT
@@ -367,9 +367,9 @@ Acked-by: jbeulich@suse.com
---help---
This option allows trapping of rare doublefault exceptions that
would otherwise cause a system to silently reboot. Disabling this
---- head.orig/drivers/acpi/Kconfig 2013-04-26 09:59:53.000000000 +0200
-+++ head/drivers/acpi/Kconfig 2013-03-21 11:52:45.000000000 +0100
-@@ -319,6 +319,7 @@ config ACPI_PCI_SLOT
+--- head.orig/drivers/acpi/Kconfig 2013-05-23 08:55:33.000000000 +0200
++++ head/drivers/acpi/Kconfig 2013-05-23 15:38:21.000000000 +0200
+@@ -311,6 +311,7 @@ config ACPI_PCI_SLOT
config X86_PM_TIMER
bool "Power Management Timer Support" if EXPERT
depends on X86
@@ -377,7 +377,7 @@ Acked-by: jbeulich@suse.com
default y
help
The Power Management Timer is available on all ACPI-capable,
-@@ -405,4 +406,13 @@ config ACPI_BGRT
+@@ -396,4 +397,13 @@ config ACPI_BGRT
source "drivers/acpi/apei/Kconfig"
@@ -391,7 +391,7 @@ Acked-by: jbeulich@suse.com
+ depends on (X86 || IA64) && XEN
+ default y
endif # ACPI
---- head.orig/drivers/char/Kconfig 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/drivers/char/Kconfig 2013-05-23 08:57:02.000000000 +0200
+++ head/drivers/char/Kconfig 2013-03-21 11:52:40.000000000 +0100
@@ -520,7 +520,7 @@ config MAX_RAW_DEVS
config HPET
@@ -402,7 +402,7 @@ Acked-by: jbeulich@suse.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.orig/drivers/char/tpm/Kconfig 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/drivers/char/tpm/Kconfig 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/char/tpm/Kconfig 2013-03-21 11:52:29.000000000 +0100
@@ -91,4 +91,13 @@ config TCG_ST33_I2C
To compile this driver as a module, choose M here; the module will be
@@ -418,7 +418,7 @@ Acked-by: jbeulich@suse.com
+ will be called tpm_xenu.
+
endif # TCG_TPM
---- head.orig/drivers/cpufreq/Kconfig 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/drivers/cpufreq/Kconfig 2013-05-23 08:55:37.000000000 +0200
+++ head/drivers/cpufreq/Kconfig 2011-06-30 15:36:01.000000000 +0200
@@ -2,6 +2,7 @@ menu "CPU Frequency scaling"
@@ -428,7 +428,7 @@ Acked-by: jbeulich@suse.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.orig/drivers/tty/serial/8250/Kconfig 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/drivers/tty/serial/8250/Kconfig 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/tty/serial/8250/Kconfig 2012-02-08 10:28:04.000000000 +0100
@@ -5,6 +5,7 @@
@@ -438,8 +438,8 @@ Acked-by: jbeulich@suse.com
select SERIAL_CORE
---help---
This selects whether you want to include the driver for the standard
---- head.orig/drivers/xen/Kconfig 2013-04-26 09:59:53.000000000 +0200
-+++ head/drivers/xen/Kconfig 2012-10-31 10:43:26.000000000 +0100
+--- head.orig/drivers/xen/Kconfig 2013-05-23 08:56:33.000000000 +0200
++++ head/drivers/xen/Kconfig 2013-05-23 15:38:14.000000000 +0200
@@ -1,9 +1,381 @@
+#
+# This Kconfig describe xen options
@@ -825,7 +825,7 @@ Acked-by: jbeulich@suse.com
default y
help
The balloon driver allows the Xen domain to request more memory from
-@@ -58,14 +430,16 @@ config XEN_BALLOON_MEMORY_HOTPLUG
+@@ -57,14 +429,16 @@ config XEN_BALLOON_MEMORY_HOTPLUG
In that case step 3 should be omitted.
config XEN_SCRUB_PAGES
@@ -848,7 +848,7 @@ Acked-by: jbeulich@suse.com
If in doubt, say yes.
config XEN_DEV_EVTCHN
---- head.orig/fs/Kconfig 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/fs/Kconfig 2013-05-23 08:57:01.000000000 +0200
+++ head/fs/Kconfig 2013-01-30 10:32:38.000000000 +0100
@@ -160,6 +160,7 @@ config HUGETLBFS
bool "HugeTLB file system support"
@@ -858,7 +858,7 @@ Acked-by: jbeulich@suse.com
help
hugetlbfs is a filesystem backing for HugeTLB pages, based on
ramfs. For architectures that support it, say Y here and read
---- head.orig/kernel/Kconfig.preempt 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/kernel/Kconfig.preempt 2013-05-23 08:57:01.000000000 +0200
+++ head/kernel/Kconfig.preempt 2012-04-10 15:16:13.000000000 +0200
@@ -36,6 +36,7 @@ config PREEMPT_VOLUNTARY
diff --git a/patches.xen/xen3-fixup-arch-x86 b/patches.xen/xen3-fixup-arch-x86
index 8358339df4..3d8d97d98e 100644
--- a/patches.xen/xen3-fixup-arch-x86
+++ b/patches.xen/xen3-fixup-arch-x86
@@ -21,24 +21,3 @@ Patch-mainline: n/a
obj-$(CONFIG_HIBERNATION) += hibernate_$(BITS).o hibernate_asm_$(BITS).o
+
+disabled-obj-$(CONFIG_XEN) := cpu.o
---- head.orig/arch/x86/power/cpu.c 2013-03-21 12:24:55.000000000 +0100
-+++ head/arch/x86/power/cpu.c 2013-03-21 13:54:42.000000000 +0100
-@@ -133,7 +133,6 @@ static void do_fpu_end(void)
-
- static void fix_processor_context(void)
- {
--#ifndef CONFIG_X86_NO_TSS
- int cpu = smp_processor_id();
- struct tss_struct *t = &per_cpu(init_tss, cpu);
-
-@@ -146,10 +145,7 @@ static void fix_processor_context(void)
-
- #ifdef CONFIG_X86_64
- get_cpu_gdt_table(cpu)[GDT_ENTRY_TSS].type = 9;
--#endif
--#endif
-
--#ifdef CONFIG_X86_64
- syscall_init(); /* This sets MSR_*STAR and related */
- #endif
- load_TR_desc(); /* This does ltr */
diff --git a/patches.xen/xen3-fixup-common b/patches.xen/xen3-fixup-common
index 7bda955065..a22d861972 100644
--- a/patches.xen/xen3-fixup-common
+++ b/patches.xen/xen3-fixup-common
@@ -2,7 +2,7 @@ Subject: Fix xen build.
From: jbeulich@novell.com
Patch-mainline: n/a
---- head.orig/drivers/acpi/acpica/hwxfsleep.c 2013-03-21 11:14:44.000000000 +0100
+--- head.orig/drivers/acpi/acpica/hwxfsleep.c 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/acpi/acpica/hwxfsleep.c 2013-01-08 09:46:30.000000000 +0100
@@ -166,6 +166,7 @@ ACPI_EXPORT_SYMBOL(acpi_set_firmware_wak
* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
@@ -20,9 +20,9 @@ Patch-mainline: n/a
#endif /* !ACPI_REDUCED_HARDWARE */
/*******************************************************************************
*
---- head.orig/drivers/base/cpu.c 2013-02-19 00:58:34.000000000 +0100
-+++ head/drivers/base/cpu.c 2012-02-21 11:38:23.000000000 +0100
-@@ -108,7 +108,7 @@ static inline void register_cpu_control(
+--- head.orig/drivers/base/cpu.c 2013-05-23 08:55:34.000000000 +0200
++++ head/drivers/base/cpu.c 2013-05-23 17:00:03.000000000 +0200
+@@ -129,7 +129,7 @@ static inline void register_cpu_control(
}
#endif /* CONFIG_HOTPLUG_CPU */
@@ -31,7 +31,7 @@ Patch-mainline: n/a
#include <linux/kexec.h>
static ssize_t show_crash_notes(struct device *dev, struct device_attribute *attr,
-@@ -256,7 +256,7 @@ int __cpuinit register_cpu(struct cpu *c
+@@ -288,7 +288,7 @@ int __cpuinit register_cpu(struct cpu *c
if (!error)
register_cpu_under_node(num, cpu_to_node(num));
@@ -39,7 +39,7 @@ Patch-mainline: n/a
+#if defined(CONFIG_KEXEC) && !defined(CONFIG_XEN)
if (!error)
error = device_create_file(&cpu->dev, &dev_attr_crash_notes);
- #endif
+ if (!error)
--- head.orig/drivers/ide/ide-lib.c 2011-11-16 17:01:48.000000000 +0100
+++ head/drivers/ide/ide-lib.c 2011-11-17 10:44:59.000000000 +0100
@@ -19,6 +19,16 @@ void ide_toggle_bounce(ide_drive_t *driv
@@ -87,7 +87,7 @@ Patch-mainline: n/a
#if defined(__i386__)
u8 x86_cpu_to_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = 0xff };
---- head.orig/include/linux/console.h 2013-03-21 11:15:20.000000000 +0100
+--- head.orig/include/linux/console.h 2013-05-23 08:56:43.000000000 +0200
+++ head/include/linux/console.h 2011-01-31 14:30:58.000000000 +0100
@@ -73,6 +73,7 @@ extern const struct consw dummy_con; /*
extern const struct consw vga_con; /* VGA text console */
@@ -120,8 +120,8 @@ Patch-mainline: n/a
#define PageBlkback(page) test_bit(PG_blkback, &(page)->flags)
#define SetPageBlkback(page) set_bit(PG_blkback, &(page)->flags)
---- head.orig/kernel/kexec.c 2013-03-21 12:24:00.000000000 +0100
-+++ head/kernel/kexec.c 2013-03-21 13:54:35.000000000 +0100
+--- head.orig/kernel/kexec.c 2013-05-23 16:22:59.000000000 +0200
++++ head/kernel/kexec.c 2013-05-23 17:00:09.000000000 +0200
@@ -38,8 +38,10 @@
#include <asm/io.h>
#include <asm/sections.h>
@@ -133,7 +133,7 @@ Patch-mainline: n/a
/* vmcoreinfo stuff */
static unsigned char vmcoreinfo_data[VMCOREINFO_BYTES];
-@@ -1245,6 +1247,7 @@ static void final_note(u32 *buf)
+@@ -1234,6 +1236,7 @@ static void final_note(u32 *buf)
memcpy(buf, &note, sizeof(note));
}
@@ -141,7 +141,7 @@ Patch-mainline: n/a
void crash_save_cpu(struct pt_regs *regs, int cpu)
{
struct elf_prstatus prstatus;
-@@ -1270,9 +1273,11 @@ void crash_save_cpu(struct pt_regs *regs
+@@ -1259,9 +1262,11 @@ void crash_save_cpu(struct pt_regs *regs
&prstatus, sizeof(prstatus));
final_note(buf);
}
@@ -153,7 +153,7 @@ Patch-mainline: n/a
/* Allocate memory for saving cpu registers. */
crash_notes = alloc_percpu(note_buf_t);
if (!crash_notes) {
-@@ -1280,6 +1285,7 @@ static int __init crash_notes_memory_ini
+@@ -1269,6 +1274,7 @@ static int __init crash_notes_memory_ini
" states failed\n");
return -ENOMEM;
}
diff --git a/patches.xen/xen3-fixup-kconfig b/patches.xen/xen3-fixup-kconfig
index 446486cad5..e484d566d7 100644
--- a/patches.xen/xen3-fixup-kconfig
+++ b/patches.xen/xen3-fixup-kconfig
@@ -2,9 +2,9 @@ Subject: Fix xen configuration.
From: jbeulich@novell.com
Patch-mainline: n/a
---- head.orig/arch/x86/Kconfig 2013-03-21 11:53:02.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-03-21 13:54:19.000000000 +0100
-@@ -208,6 +208,7 @@ config NEED_PER_CPU_PAGE_FIRST_CHUNK
+--- head.orig/arch/x86/Kconfig 2013-05-23 15:38:09.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 16:59:10.000000000 +0200
+@@ -203,6 +203,7 @@ config NEED_PER_CPU_PAGE_FIRST_CHUNK
config ARCH_HIBERNATION_POSSIBLE
def_bool y
@@ -108,7 +108,7 @@ Patch-mainline: n/a
config X86_INVD_BUG
def_bool y
---- head.orig/drivers/xen/Kconfig 2012-10-31 10:43:26.000000000 +0100
+--- head.orig/drivers/xen/Kconfig 2013-05-23 15:38:14.000000000 +0200
+++ head/drivers/xen/Kconfig 2012-02-08 11:27:15.000000000 +0100
@@ -22,6 +22,7 @@ config XEN_PRIVILEGED_GUEST
diff --git a/patches.xen/xen3-fixup-xen b/patches.xen/xen3-fixup-xen
index 5376524b72..e57ab55a19 100644
--- a/patches.xen/xen3-fixup-xen
+++ b/patches.xen/xen3-fixup-xen
@@ -5,7 +5,7 @@ Patch-mainline: n/a
Acked-by: jbeulich@suse.com
---- head.orig/drivers/xen/Makefile 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/Makefile 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/xen/Makefile 2013-01-08 09:29:53.000000000 +0100
@@ -1,40 +1,28 @@
-ifneq ($(CONFIG_ARM),y)
@@ -74,7 +74,7 @@ Acked-by: jbeulich@suse.com
+obj-$(CONFIG_XEN_NETDEV_ACCEL_SFC_UTIL) += sfc_netutil/
+obj-$(CONFIG_XEN_NETDEV_ACCEL_SFC_FRONTEND) += sfc_netfront/
+obj-$(CONFIG_XEN_NETDEV_ACCEL_SFC_BACKEND) += sfc_netback/
---- head.orig/drivers/xen/xenbus/Makefile 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/xenbus/Makefile 2012-03-19 00:15:34.000000000 +0100
+++ head/drivers/xen/xenbus/Makefile 2011-02-02 17:06:11.000000000 +0100
@@ -1,14 +1,9 @@
-obj-y += xenbus.o
@@ -98,7 +98,7 @@ Acked-by: jbeulich@suse.com
+xenbus-$(CONFIG_XEN_BACKEND) += xenbus_probe_backend.o
+obj-y += $(xenbus-y) $(xenbus-m)
+obj-$(CONFIG_XEN_XENBUS_DEV) += xenbus_dev.o
---- head.orig/drivers/xen/xenbus/xenbus_client.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/xenbus/xenbus_client.c 2013-06-04 11:49:37.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_client.c 2011-11-28 09:44:25.000000000 +0100
@@ -30,42 +30,18 @@
* IN THE SOFTWARE.
@@ -483,7 +483,7 @@ Acked-by: jbeulich@suse.com
int xenbus_free_evtchn(struct xenbus_device *dev, int port)
{
struct evtchn_close close;
-@@ -445,305 +270,13 @@ int xenbus_free_evtchn(struct xenbus_dev
+@@ -445,306 +270,13 @@ int xenbus_free_evtchn(struct xenbus_dev
EXPORT_SYMBOL_GPL(xenbus_free_evtchn);
@@ -576,7 +576,7 @@ Acked-by: jbeulich@suse.com
-
- err = xenbus_map_ring(dev, gnt_ref, &node->handle, addr);
- if (err)
-- goto out_err;
+- goto out_err_free_ballooned_pages;
-
- spin_lock(&xenbus_valloc_lock);
- list_add(&node->next, &xenbus_valloc_pages);
@@ -585,8 +585,9 @@ Acked-by: jbeulich@suse.com
- *vaddr = addr;
- return 0;
-
-- out_err:
+- out_err_free_ballooned_pages:
- free_xenballooned_pages(1, &node->page);
+- out_err:
- kfree(node);
- return err;
-}
@@ -792,7 +793,7 @@ Acked-by: jbeulich@suse.com
- else
- ring_ops = &ring_ops_hvm;
-}
---- head.orig/drivers/xen/xenbus/xenbus_comms.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/xenbus/xenbus_comms.c 2012-12-11 04:30:57.000000000 +0100
+++ head/drivers/xen/xenbus/xenbus_comms.c 2011-04-11 13:43:15.000000000 +0200
@@ -34,25 +34,55 @@
#include <linux/interrupt.h>
@@ -924,7 +925,7 @@ Acked-by: jbeulich@suse.com
- xenbus_irq = 0;
+ return 0;
}
---- head.orig/drivers/xen/xenbus/xenbus_comms.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/xenbus/xenbus_comms.h 2013-06-04 11:49:37.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_comms.h 2011-04-11 13:43:15.000000000 +0200
@@ -31,11 +31,8 @@
#ifndef _XENBUS_COMMS_H
@@ -938,9 +939,11 @@ Acked-by: jbeulich@suse.com
/* Low level routines. */
int xb_write(const void *data, unsigned len);
-@@ -46,6 +43,27 @@ int xs_input_avail(void);
+@@ -45,8 +42,28 @@ int xb_wait_for_data_to_read(void);
+ int xs_input_avail(void);
extern struct xenstore_domain_interface *xen_store_interface;
extern int xen_store_evtchn;
+-extern enum xenstore_init xen_store_domain_type;
-extern const struct file_operations xen_xenbus_fops;
+/* For xenbus internal use. */
@@ -967,7 +970,7 @@ Acked-by: jbeulich@suse.com
+#endif
#endif /* _XENBUS_COMMS_H */
---- head.orig/drivers/xen/xenbus/xenbus_probe.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/xenbus/xenbus_probe.c 2013-06-04 11:49:37.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_probe.c 2012-03-12 12:51:05.000000000 +0100
@@ -4,6 +4,7 @@
* Copyright (C) 2005 Rusty Russell, IBM Corporation
@@ -986,7 +989,7 @@ Acked-by: jbeulich@suse.com
#include <linux/kernel.h>
#include <linux/err.h>
-@@ -40,39 +41,46 @@
+@@ -40,42 +41,46 @@
#include <linux/ctype.h>
#include <linux/fcntl.h>
#include <linux/mm.h>
@@ -1030,6 +1033,9 @@ Acked-by: jbeulich@suse.com
-
struct xenstore_domain_interface *xen_store_interface;
-EXPORT_SYMBOL_GPL(xen_store_interface);
+-
+-enum xenstore_init xen_store_domain_type;
+-EXPORT_SYMBOL_GPL(xen_store_domain_type);
static unsigned long xen_store_mfn;
@@ -1046,7 +1052,7 @@ Acked-by: jbeulich@suse.com
/* If something in array of ids matches this device, return it. */
static const struct xenbus_device_id *
match_device(const struct xenbus_device_id *arr, struct xenbus_device *dev)
-@@ -93,7 +101,24 @@ int xenbus_match(struct device *_dev, st
+@@ -96,7 +101,24 @@ int xenbus_match(struct device *_dev, st
return match_device(drv->ids, to_xenbus_device(_dev)) != NULL;
}
@@ -1072,7 +1078,7 @@ Acked-by: jbeulich@suse.com
static void free_otherend_details(struct xenbus_device *dev)
-@@ -113,30 +138,7 @@ static void free_otherend_watch(struct x
+@@ -116,30 +138,7 @@ static void free_otherend_watch(struct x
}
@@ -1104,7 +1110,7 @@ Acked-by: jbeulich@suse.com
char *id_node, char *path_node)
{
int err = xenbus_gather(XBT_NIL, xendev->nodename,
-@@ -161,11 +163,62 @@ int xenbus_read_otherend_details(struct
+@@ -164,11 +163,62 @@ int xenbus_read_otherend_details(struct
return 0;
}
@@ -1171,7 +1177,7 @@ Acked-by: jbeulich@suse.com
{
struct xenbus_device *dev =
container_of(watch, struct xenbus_device, otherend_watch);
-@@ -177,31 +230,54 @@ void xenbus_otherend_changed(struct xenb
+@@ -180,31 +230,54 @@ void xenbus_otherend_changed(struct xenb
if (!dev->otherend ||
strncmp(dev->otherend, vec[XS_WATCH_PATH],
strlen(dev->otherend))) {
@@ -1233,7 +1239,7 @@ Acked-by: jbeulich@suse.com
int xenbus_dev_probe(struct device *_dev)
{
-@@ -225,8 +301,9 @@ int xenbus_dev_probe(struct device *_dev
+@@ -228,8 +301,9 @@ int xenbus_dev_probe(struct device *_dev
err = talk_to_otherend(dev);
if (err) {
@@ -1245,7 +1251,7 @@ Acked-by: jbeulich@suse.com
return err;
}
-@@ -236,7 +313,8 @@ int xenbus_dev_probe(struct device *_dev
+@@ -239,7 +313,8 @@ int xenbus_dev_probe(struct device *_dev
err = watch_otherend(dev);
if (err) {
@@ -1255,7 +1261,7 @@ Acked-by: jbeulich@suse.com
dev->nodename);
return err;
}
-@@ -245,9 +323,8 @@ int xenbus_dev_probe(struct device *_dev
+@@ -248,9 +323,8 @@ int xenbus_dev_probe(struct device *_dev
fail:
xenbus_dev_error(dev, err, "xenbus_dev_probe on %s", dev->nodename);
xenbus_switch_state(dev, XenbusStateClosed);
@@ -1266,7 +1272,7 @@ Acked-by: jbeulich@suse.com
int xenbus_dev_remove(struct device *_dev)
{
-@@ -266,39 +343,77 @@ int xenbus_dev_remove(struct device *_de
+@@ -269,39 +343,77 @@ int xenbus_dev_remove(struct device *_de
xenbus_switch_state(dev, XenbusStateClosed);
return 0;
}
@@ -1352,7 +1358,7 @@ Acked-by: jbeulich@suse.com
void xenbus_unregister_driver(struct xenbus_driver *drv)
{
-@@ -324,8 +439,8 @@ static int cmp_dev(struct device *dev, v
+@@ -327,8 +439,8 @@ static int cmp_dev(struct device *dev, v
return 0;
}
@@ -1363,7 +1369,7 @@ Acked-by: jbeulich@suse.com
{
struct xb_find_info info = { .dev = NULL, .nodename = nodename };
-@@ -374,38 +489,31 @@ static void xenbus_dev_release(struct de
+@@ -377,38 +489,31 @@ static void xenbus_dev_release(struct de
kfree(to_xenbus_device(dev));
}
@@ -1414,7 +1420,7 @@ Acked-by: jbeulich@suse.com
int err;
struct xenbus_device *xendev;
size_t stringlen;
-@@ -413,6 +521,9 @@ int xenbus_probe_node(struct xen_bus_typ
+@@ -416,6 +521,9 @@ int xenbus_probe_node(struct xen_bus_typ
enum xenbus_state state = xenbus_read_driver_state(nodename);
@@ -1424,7 +1430,7 @@ Acked-by: jbeulich@suse.com
if (state != XenbusStateInitialising) {
/* Device is not new, so ignore it. This can happen if a
device is going away after switching to Closed. */
-@@ -437,26 +548,55 @@ int xenbus_probe_node(struct xen_bus_typ
+@@ -440,26 +548,55 @@ int xenbus_probe_node(struct xen_bus_typ
xendev->devicetype = tmpstring;
init_completion(&xendev->down);
@@ -1484,7 +1490,7 @@ Acked-by: jbeulich@suse.com
static int xenbus_probe_device_type(struct xen_bus_type *bus, const char *type)
{
-@@ -470,7 +610,7 @@ static int xenbus_probe_device_type(stru
+@@ -473,7 +610,7 @@ static int xenbus_probe_device_type(stru
return PTR_ERR(dir);
for (i = 0; i < dir_n; i++) {
@@ -1493,7 +1499,7 @@ Acked-by: jbeulich@suse.com
if (err)
break;
}
-@@ -485,6 +625,9 @@ int xenbus_probe_devices(struct xen_bus_
+@@ -488,6 +625,9 @@ int xenbus_probe_devices(struct xen_bus_
char **dir;
unsigned int i, dir_n;
@@ -1503,7 +1509,7 @@ Acked-by: jbeulich@suse.com
dir = xenbus_directory(XBT_NIL, bus->root, "", &dir_n);
if (IS_ERR(dir))
return PTR_ERR(dir);
-@@ -498,7 +641,6 @@ int xenbus_probe_devices(struct xen_bus_
+@@ -501,7 +641,6 @@ int xenbus_probe_devices(struct xen_bus_
kfree(dir);
return err;
}
@@ -1511,7 +1517,7 @@ Acked-by: jbeulich@suse.com
static unsigned int char_count(const char *str, char c)
{
-@@ -523,15 +665,15 @@ static int strsep_len(const char *str, c
+@@ -526,15 +665,15 @@ static int strsep_len(const char *str, c
return (len == 0) ? i : -ERANGE;
}
@@ -1530,7 +1536,7 @@ Acked-by: jbeulich@suse.com
exists = xenbus_exists(XBT_NIL, node, "");
if (!exists) {
-@@ -559,46 +701,81 @@ void xenbus_dev_changed(const char *node
+@@ -562,46 +701,81 @@ void xenbus_dev_changed(const char *node
kfree(root);
}
@@ -1624,7 +1630,7 @@ Acked-by: jbeulich@suse.com
return err;
}
-@@ -609,7 +786,7 @@ int xenbus_dev_resume(struct device *dev
+@@ -612,7 +786,7 @@ int xenbus_dev_resume(struct device *dev
if (err) {
printk(KERN_WARNING
"xenbus: resume %s failed: %i\n",
@@ -1633,7 +1639,7 @@ Acked-by: jbeulich@suse.com
return err;
}
}
-@@ -618,37 +795,60 @@ int xenbus_dev_resume(struct device *dev
+@@ -621,37 +795,60 @@ int xenbus_dev_resume(struct device *dev
if (err) {
printk(KERN_WARNING
"xenbus_probe: resume (watch_otherend) %s failed: "
@@ -1704,7 +1710,7 @@ Acked-by: jbeulich@suse.com
EXPORT_SYMBOL_GPL(register_xenstore_notifier);
void unregister_xenstore_notifier(struct notifier_block *nb)
-@@ -656,146 +856,524 @@ void unregister_xenstore_notifier(struct
+@@ -659,140 +856,524 @@ void unregister_xenstore_notifier(struct
blocking_notifier_chain_unregister(&xenstore_chain, nb);
}
EXPORT_SYMBOL_GPL(unregister_xenstore_notifier);
@@ -1723,11 +1729,9 @@ Acked-by: jbeulich@suse.com
+ v[XS_WATCH_PATH], xenbus_strstate(backend_state));
+ wake_up(&backend_state_wq);
+}
-
--void xenbus_probe(struct work_struct *unused)
++
+static void xenbus_reset_wait_for_backend(char *be, int expected)
- {
-- xenstored_ready = 1;
++{
+ long timeout;
+ timeout = wait_event_interruptible_timeout(backend_state_wq,
+ backend_state == expected, 5 * HZ);
@@ -1832,9 +1836,11 @@ Acked-by: jbeulich@suse.com
+ kfree(devclass);
+}
+#endif
-+
+
+-void xenbus_probe(struct work_struct *unused)
+void xenbus_probe(void *unused)
-+{
+ {
+- xenstored_ready = 1;
+ BUG_ON(!is_xenstored_ready());
+
+#ifndef CONFIG_XEN
@@ -1924,17 +1930,17 @@ Acked-by: jbeulich@suse.com
- unsigned long page = 0;
- struct evtchn_alloc_unbound alloc_unbound;
+ int len;
-+
-+ len = sprintf(page, "%d", xen_store_evtchn);
-+ *eof = 1;
-+ return len;
-+}
-+#endif
- /* Allocate Xenstore page */
- page = get_zeroed_page(GFP_KERNEL);
- if (!page)
- goto out_err;
++ len = sprintf(page, "%d", xen_store_evtchn);
++ *eof = 1;
++ return len;
++}
++#endif
++
+#ifdef CONFIG_XEN_XENBUS_DEV
+static int xb_free_port(evtchn_port_t port)
+{
@@ -2010,18 +2016,12 @@ Acked-by: jbeulich@suse.com
+#endif
+#endif /* CONFIG_XEN_PRIVILEGED_GUEST */
--enum xenstore_init {
-- UNKNOWN,
-- PV,
-- HVM,
-- LOCAL,
--};
-static int __init xenbus_init(void)
+static int xenbus_probe_init(void)
{
int err = 0;
-- enum xenstore_init usage = UNKNOWN;
- uint64_t v = 0;
+- xen_store_domain_type = XS_UNKNOWN;
+ unsigned long page = 0;
- if (!xen_domain())
@@ -2040,18 +2040,18 @@ Acked-by: jbeulich@suse.com
+ xenbus_backend_bus_register();
- if (xen_pv_domain())
-- usage = PV;
+- xen_store_domain_type = XS_PV;
- if (xen_hvm_domain())
-- usage = HVM;
+- xen_store_domain_type = XS_HVM;
- if (xen_hvm_domain() && xen_initial_domain())
-- usage = LOCAL;
+- xen_store_domain_type = XS_LOCAL;
- if (xen_pv_domain() && !xen_start_info->store_evtchn)
-- usage = LOCAL;
+- xen_store_domain_type = XS_LOCAL;
- if (xen_pv_domain() && xen_start_info->store_evtchn)
- xenstored_ready = 1;
-
-- switch (usage) {
-- case LOCAL:
+- switch (xen_store_domain_type) {
+- case XS_LOCAL:
- err = xenstored_local_init();
- if (err)
- goto out_error;
@@ -2099,7 +2099,7 @@ Acked-by: jbeulich@suse.com
+#endif
xen_store_interface = mfn_to_virt(xen_store_mfn);
- break;
-- case PV:
+- case XS_PV:
+ } else {
+ atomic_set(&xenbus_xsd_state, XENBUS_XSD_FOREIGN_READY);
+#ifdef CONFIG_XEN
@@ -2107,7 +2107,7 @@ Acked-by: jbeulich@suse.com
xen_store_mfn = xen_start_info->store_mfn;
xen_store_interface = mfn_to_virt(xen_store_mfn);
- break;
-- case HVM:
+- case XS_HVM:
- err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
- if (err)
- goto out_error;
@@ -2321,9 +2321,9 @@ Acked-by: jbeulich@suse.com
+ return bus_for_each_dev(&xenbus_frontend.bus, NULL, arg, fn);
+}
+EXPORT_SYMBOL_GPL(xenbus_for_each_frontend);
---- head.orig/drivers/xen/xenbus/xenbus_probe.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/xenbus/xenbus_probe.h 2013-06-04 11:49:37.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_probe.h 2011-09-07 15:18:14.000000000 +0200
-@@ -34,21 +34,36 @@
+@@ -34,28 +34,36 @@
#ifndef _XENBUS_PROBE_H
#define _XENBUS_PROBE_H
@@ -2361,12 +2361,19 @@ Acked-by: jbeulich@suse.com
+ struct device dev;
};
+-enum xenstore_init {
+- XS_UNKNOWN,
+- XS_PV,
+- XS_HVM,
+- XS_LOCAL,
+-};
+-
-extern struct device_attribute xenbus_dev_attrs[];
-
extern int xenbus_match(struct device *_dev, struct device_driver *_drv);
extern int xenbus_dev_probe(struct device *_dev);
extern int xenbus_dev_remove(struct device *_dev);
-@@ -59,21 +74,6 @@ extern int xenbus_probe_node(struct xen_
+@@ -66,21 +74,6 @@ extern int xenbus_probe_node(struct xen_
const char *nodename);
extern int xenbus_probe_devices(struct xen_bus_type *bus);
@@ -2389,7 +2396,7 @@ Acked-by: jbeulich@suse.com
+extern void dev_changed(const char *node, struct xen_bus_type *bus);
#endif
---- head.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/xenbus/xenbus_probe_backend.c 2012-03-19 00:15:34.000000000 +0100
+++ head/drivers/xen/xenbus/xenbus_probe_backend.c 2011-09-07 15:18:19.000000000 +0200
@@ -33,7 +33,7 @@
@@ -2700,7 +2707,7 @@ Acked-by: jbeulich@suse.com
}
-subsys_initcall(xenbus_probe_backend_init);
+EXPORT_SYMBOL_GPL(xenbus_for_each_backend);
---- head.orig/drivers/xen/xenbus/xenbus_xs.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/drivers/xen/xenbus/xenbus_xs.c 2013-02-19 00:58:34.000000000 +0100
+++ head/drivers/xen/xenbus/xenbus_xs.c 2013-01-08 09:29:58.000000000 +0100
@@ -44,11 +44,17 @@
#include <linux/rwsem.h>
@@ -2997,7 +3004,7 @@ Acked-by: jbeulich@suse.com
task = kthread_run(xenwatch_thread, NULL, "xenwatch");
if (IS_ERR(task))
return PTR_ERR(task);
---- head.orig/include/xen/balloon.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/balloon.h 2012-03-19 00:15:34.000000000 +0100
+++ head/include/xen/balloon.h 2007-06-12 13:14:19.000000000 +0200
@@ -1,40 +1,57 @@
/******************************************************************************
@@ -3093,7 +3100,7 @@ Acked-by: jbeulich@suse.com
+#define balloon_unlock(__flags) spin_unlock_irqrestore(&balloon_lock, __flags)
+
+#endif /* __ASM_BALLOON_H__ */
---- head.orig/include/xen/hvm.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/hvm.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/hvm.h 2011-01-31 15:14:12.000000000 +0100
@@ -3,39 +3,8 @@
#define XEN_HVM_H__
@@ -3158,7 +3165,7 @@ Acked-by: jbeulich@suse.com
- HVM_CALLBACK_VIA_TYPE_SHIFT | (x))
-
#endif /* XEN_HVM_H__ */
---- head.orig/include/xen/interface/callback.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/callback.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/interface/callback.h 2011-01-31 15:14:12.000000000 +0100
@@ -27,7 +27,7 @@
#ifndef __XEN_PUBLIC_CALLBACK_H__
@@ -3191,7 +3198,7 @@ Acked-by: jbeulich@suse.com
+#endif
#endif /* __XEN_PUBLIC_CALLBACK_H__ */
---- head.orig/include/xen/interface/elfnote.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/elfnote.h 2011-05-19 06:06:34.000000000 +0200
+++ head/include/xen/interface/elfnote.h 2013-04-26 09:53:53.000000000 +0200
@@ -3,6 +3,24 @@
*
@@ -3353,7 +3360,7 @@ Acked-by: jbeulich@suse.com
* c-basic-offset: 4
* tab-width: 4
* indent-tabs-mode: nil
---- head.orig/include/xen/interface/event_channel.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/event_channel.h 2013-02-19 00:58:34.000000000 +0100
+++ head/include/xen/interface/event_channel.h 2013-01-08 09:32:21.000000000 +0100
@@ -3,6 +3,24 @@
*
@@ -3630,7 +3637,7 @@ Acked-by: jbeulich@suse.com
+DEFINE_XEN_GUEST_HANDLE(evtchn_op_t);
#endif /* __XEN_PUBLIC_EVENT_CHANNEL_H__ */
---- head.orig/include/xen/interface/features.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/features.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/interface/features.h 2011-08-08 12:54:10.000000000 +0200
@@ -3,6 +3,24 @@
*
@@ -3682,7 +3689,7 @@ Acked-by: jbeulich@suse.com
/* operation as Dom0 is supported */
#define XENFEAT_dom0 11
---- head.orig/include/xen/interface/grant_table.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/grant_table.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/interface/grant_table.h 2012-12-18 10:47:37.000000000 +0100
@@ -30,14 +30,38 @@
@@ -4118,7 +4125,7 @@ Acked-by: jbeulich@suse.com
#define GNTTABOP_error_msgs { \
"okay", \
---- head.orig/include/xen/interface/hvm/hvm_op.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/hvm/hvm_op.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/interface/hvm/hvm_op.h 2012-10-04 11:18:40.000000000 +0200
@@ -21,6 +21,9 @@
#ifndef __XEN_PUBLIC_HVM_HVM_OP_H__
@@ -4379,7 +4386,7 @@ Acked-by: jbeulich@suse.com
+#endif /* defined(__XEN__) || defined(__XEN_TOOLS__) */
#endif /* __XEN_PUBLIC_HVM_HVM_OP_H__ */
---- head.orig/include/xen/interface/hvm/params.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/hvm/params.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/interface/hvm/params.h 2013-04-26 09:53:53.000000000 +0200
@@ -21,7 +21,7 @@
#ifndef __XEN_PUBLIC_HVM_PARAMS_H__
@@ -4475,7 +4482,7 @@ Acked-by: jbeulich@suse.com
+#define HVM_NR_PARAMS 32
#endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
---- head.orig/include/xen/interface/io/blkif.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/io/blkif.h 2013-04-29 02:36:01.000000000 +0200
+++ head/include/xen/interface/io/blkif.h 2012-12-18 10:47:37.000000000 +0100
@@ -3,14 +3,33 @@
*
@@ -5093,7 +5100,7 @@ Acked-by: jbeulich@suse.com
/*
* STATUS RETURN CODES.
---- head.orig/include/xen/interface/io/console.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/io/console.h 2007-10-09 22:31:38.000000000 +0200
+++ head/include/xen/interface/io/console.h 2011-01-31 15:14:12.000000000 +0100
@@ -3,6 +3,24 @@
*
@@ -5120,7 +5127,7 @@ Acked-by: jbeulich@suse.com
* Copyright (c) 2005, Keir Fraser
*/
---- head.orig/include/xen/interface/io/fbif.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/io/fbif.h 2008-10-10 00:13:53.000000000 +0200
+++ head/include/xen/interface/io/fbif.h 2011-01-31 15:14:12.000000000 +0100
@@ -77,13 +77,32 @@ union xenfb_out_event {
@@ -5156,8 +5163,8 @@ Acked-by: jbeulich@suse.com
char pad[XENFB_IN_EVENT_SIZE];
};
---- head.orig/include/xen/interface/io/netif.h 2013-05-10 14:14:39.000000000 +0200
-+++ head/include/xen/interface/io/netif.h 2013-05-10 14:09:07.000000000 +0200
+--- head.orig/include/xen/interface/io/netif.h 2013-05-23 08:56:45.000000000 +0200
++++ head/include/xen/interface/io/netif.h 2013-05-23 16:58:53.000000000 +0200
@@ -3,14 +3,32 @@
*
* Unified network-device I/O interface for Xen guest OSes.
@@ -5192,8 +5199,8 @@ Acked-by: jbeulich@suse.com
+#include "../grant_table.h"
/*
- * Notifications after enqueuing any type of message should be conditional on
-@@ -32,33 +50,37 @@
+ * Older implementation of Xen network frontend / backend has an
+@@ -50,34 +68,37 @@
*/
/* Protocol checksum field is blank in the packet (hardware offload)? */
@@ -5220,6 +5227,7 @@ Acked-by: jbeulich@suse.com
+#define _NETTXF_extra_info (3)
+#define NETTXF_extra_info (1U<<_NETTXF_extra_info)
+-#define XEN_NETIF_MAX_TX_SIZE 0xFFFF
-struct xen_netif_tx_request {
+struct netif_tx_request {
grant_ref_t gref; /* Reference to buffer page */
@@ -5242,7 +5250,7 @@ Acked-by: jbeulich@suse.com
/* xen_netif_extra_info flags. */
#define _XEN_NETIF_EXTRA_FLAG_MORE (0)
-@@ -71,11 +93,14 @@ struct xen_netif_tx_request {
+@@ -90,11 +111,14 @@ struct xen_netif_tx_request {
* This structure needs to fit within both netif_tx_request and
* netif_rx_response for compatibility.
*/
@@ -5258,7 +5266,7 @@ Acked-by: jbeulich@suse.com
struct {
/*
* Maximum payload size of each segment. For
-@@ -101,62 +126,75 @@ struct xen_netif_extra_info {
+@@ -120,62 +144,75 @@ struct xen_netif_extra_info {
uint16_t features; /* XEN_NETIF_GSO_FEAT_* */
} gso;
@@ -5319,13 +5327,13 @@ Acked-by: jbeulich@suse.com
/* Packet to be followed by extra descriptor(s). */
-#define _XEN_NETRXF_extra_info (3)
-#define XEN_NETRXF_extra_info (1U<<_XEN_NETRXF_extra_info)
--
--/* GSO Prefix descriptor. */
--#define _XEN_NETRXF_gso_prefix (4)
--#define XEN_NETRXF_gso_prefix (1U<<_XEN_NETRXF_gso_prefix)
+#define _NETRXF_extra_info (3)
+#define NETRXF_extra_info (1U<<_NETRXF_extra_info)
+-/* GSO Prefix descriptor. */
+-#define _XEN_NETRXF_gso_prefix (4)
+-#define XEN_NETRXF_gso_prefix (1U<<_XEN_NETRXF_gso_prefix)
+-
-struct xen_netif_rx_response {
+struct netif_rx_response {
uint16_t id;
@@ -5361,7 +5369,7 @@ Acked-by: jbeulich@suse.com
+#define NETIF_RSP_NULL 1
#endif
---- head.orig/include/xen/interface/io/protocols.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/io/protocols.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/interface/io/protocols.h 2012-04-04 08:57:09.000000000 +0200
@@ -1,3 +1,25 @@
+/******************************************************************************
@@ -5389,7 +5397,7 @@ Acked-by: jbeulich@suse.com
#ifndef __XEN_PROTOCOLS_H__
#define __XEN_PROTOCOLS_H__
---- head.orig/include/xen/interface/io/ring.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/io/ring.h 2011-01-05 01:50:19.000000000 +0100
+++ head/include/xen/interface/io/ring.h 2011-01-31 15:14:12.000000000 +0100
@@ -3,12 +3,38 @@
*
@@ -5597,7 +5605,7 @@ Acked-by: jbeulich@suse.com
(_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r); \
} while (0)
---- head.orig/include/xen/interface/io/xenbus.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/io/xenbus.h 2011-01-05 01:50:19.000000000 +0100
+++ head/include/xen/interface/io/xenbus.h 2011-01-31 15:14:12.000000000 +0100
@@ -36,6 +36,7 @@ enum xenbus_state
@@ -5607,7 +5615,7 @@ Acked-by: jbeulich@suse.com
#endif /* _XEN_PUBLIC_IO_XENBUS_H */
---- head.orig/include/xen/interface/io/xs_wire.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/io/xs_wire.h 2012-10-01 01:47:46.000000000 +0200
+++ head/include/xen/interface/io/xs_wire.h 2012-01-06 10:36:37.000000000 +0100
@@ -1,6 +1,25 @@
/*
@@ -5677,7 +5685,7 @@ Acked-by: jbeulich@suse.com
+#define XENSTORE_REL_PATH_MAX 2048
+
#endif /* _XS_WIRE_H */
---- head.orig/include/xen/interface/memory.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/memory.h 2013-04-29 02:36:01.000000000 +0200
+++ head/include/xen/interface/memory.h 2013-04-26 09:53:53.000000000 +0200
@@ -3,13 +3,31 @@
*
@@ -6103,7 +6111,7 @@ Acked-by: jbeulich@suse.com
+#endif /* defined(__XEN__) || defined(__XEN_TOOLS__) */
#endif /* __XEN_PUBLIC_MEMORY_H__ */
---- head.orig/include/xen/interface/physdev.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/physdev.h 2013-04-29 02:36:01.000000000 +0200
+++ head/include/xen/interface/physdev.h 2013-04-26 09:53:53.000000000 +0200
@@ -21,6 +21,8 @@
#ifndef __XEN_PUBLIC_PHYSDEV_H__
@@ -6317,7 +6325,7 @@ Acked-by: jbeulich@suse.com
+#endif
+
#endif /* __XEN_PUBLIC_PHYSDEV_H__ */
---- head.orig/include/xen/interface/platform.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/platform.h 2013-04-29 02:36:01.000000000 +0200
+++ head/include/xen/interface/platform.h 2013-04-26 09:53:53.000000000 +0200
@@ -27,7 +27,7 @@
#ifndef __XEN_PUBLIC_PLATFORM_H__
@@ -6761,7 +6769,7 @@ Acked-by: jbeulich@suse.com
+DEFINE_XEN_GUEST_HANDLE(xen_platform_op_t);
#endif /* __XEN_PUBLIC_PLATFORM_H__ */
---- head.orig/include/xen/interface/sched.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/sched.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/interface/sched.h 2013-04-26 09:53:53.000000000 +0200
@@ -3,29 +3,60 @@
*
@@ -6938,7 +6946,7 @@ Acked-by: jbeulich@suse.com
+/* ` } */
#endif /* __XEN_PUBLIC_SCHED_H__ */
---- head.orig/include/xen/interface/vcpu.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/vcpu.h 2008-07-13 23:51:29.000000000 +0200
+++ head/include/xen/interface/vcpu.h 2011-03-17 13:50:24.000000000 +0100
@@ -27,6 +27,8 @@
#ifndef __XEN_PUBLIC_VCPU_H__
@@ -7058,7 +7066,7 @@ Acked-by: jbeulich@suse.com
+DEFINE_XEN_GUEST_HANDLE(vcpu_register_time_memory_area_t);
#endif /* __XEN_PUBLIC_VCPU_H__ */
---- head.orig/include/xen/interface/version.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/version.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/xen/interface/version.h 2012-12-18 10:47:37.000000000 +0100
@@ -3,6 +3,24 @@
*
@@ -7157,7 +7165,7 @@ Acked-by: jbeulich@suse.com
+typedef char xen_commandline_t[1024];
+
#endif /* __XEN_PUBLIC_VERSION_H__ */
---- head.orig/include/xen/interface/xen.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/interface/xen.h 2013-04-29 02:36:01.000000000 +0200
+++ head/include/xen/interface/xen.h 2013-04-26 09:53:53.000000000 +0200
@@ -3,34 +3,78 @@
*
@@ -7969,7 +7977,7 @@ Acked-by: jbeulich@suse.com
+#endif /* defined(__XEN__) || defined(__XEN_TOOLS__) */
+
#endif /* __XEN_PUBLIC_XEN_H__ */
---- head.orig/include/xen/xenbus.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/include/xen/xenbus.h 2013-06-04 11:49:56.000000000 +0200
+++ head/include/xen/xenbus.h 2011-12-21 10:02:58.000000000 +0100
@@ -37,10 +37,10 @@
#include <linux/device.h>
@@ -8002,7 +8010,15 @@ Acked-by: jbeulich@suse.com
/* A xenbus device. */
struct xenbus_device {
-@@ -92,17 +101,24 @@ struct xenbus_driver {
+@@ -70,7 +79,6 @@ struct xenbus_device {
+ struct device dev;
+ enum xenbus_state state;
+ struct completion down;
+- struct work_struct work;
+ };
+
+ static inline struct xenbus_device *to_xenbus_device(struct device *dev)
+@@ -93,17 +101,24 @@ struct xenbus_driver {
enum xenbus_state backend_state);
int (*remove)(struct xenbus_device *dev);
int (*suspend)(struct xenbus_device *dev);
@@ -8029,7 +8045,7 @@ Acked-by: jbeulich@suse.com
.ids = var ## _ids, ## methods \
}
-@@ -111,9 +127,8 @@ static inline struct xenbus_driver *to_x
+@@ -112,9 +127,8 @@ static inline struct xenbus_driver *to_x
return container_of(drv, struct xenbus_driver, driver);
}
@@ -8041,7 +8057,7 @@ Acked-by: jbeulich@suse.com
void xenbus_unregister_driver(struct xenbus_driver *drv);
struct xenbus_transaction
-@@ -139,21 +154,20 @@ int xenbus_transaction_start(struct xenb
+@@ -140,21 +154,20 @@ int xenbus_transaction_start(struct xenb
int xenbus_transaction_end(struct xenbus_transaction t, int abort);
/* Single read and scanf: returns -errno or num scanned if > 0. */
@@ -8067,7 +8083,7 @@ Acked-by: jbeulich@suse.com
int register_xenstore_notifier(struct notifier_block *nb);
void unregister_xenstore_notifier(struct notifier_block *nb);
-@@ -166,12 +180,9 @@ void xs_suspend_cancel(void);
+@@ -167,12 +180,9 @@ void xs_suspend_cancel(void);
/* Used by xenbus_dev to borrow kernel's store connection. */
void *xenbus_dev_request_and_reply(struct xsd_sockmsg *msg);
@@ -8080,7 +8096,7 @@ Acked-by: jbeulich@suse.com
void xenbus_suspend_cancel(void);
#define XENBUS_IS_ERR_READ(str) ({ \
-@@ -184,40 +195,117 @@ void xenbus_suspend_cancel(void);
+@@ -185,40 +195,117 @@ void xenbus_suspend_cancel(void);
#define XENBUS_EXIST_ERR(err) ((err) == -ENOENT || (err) == -ERANGE)
diff --git a/patches.xen/xen3-patch-2.6.18 b/patches.xen/xen3-patch-2.6.18
index c56f3d6682..d7492ac774 100644
--- a/patches.xen/xen3-patch-2.6.18
+++ b/patches.xen/xen3-patch-2.6.18
@@ -7,9 +7,9 @@ Acked-by: jbeulich@novell.com
2.6.35/kernel/time.c change removed (no longer applicable)
---- head.orig/arch/x86/Kconfig 2013-03-21 13:54:19.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-04-26 10:28:59.000000000 +0200
-@@ -1689,7 +1689,7 @@ config KEXEC_JUMP
+--- head.orig/arch/x86/Kconfig 2013-05-23 16:59:10.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:02:27.000000000 +0200
+@@ -1685,7 +1685,7 @@ config KEXEC_JUMP
code in physical address mode via KEXEC
config PHYSICAL_START
@@ -27,7 +27,7 @@ Acked-by: jbeulich@novell.com
-disabled-obj-$(CONFIG_XEN) := i8237.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o
+disabled-obj-$(CONFIG_XEN) := i8237.o i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o
%/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
---- head.orig/arch/x86/kernel/quirks.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/arch/x86/kernel/quirks.c 2013-05-23 08:55:32.000000000 +0200
+++ head/arch/x86/kernel/quirks.c 2013-01-14 13:48:49.000000000 +0100
@@ -6,7 +6,7 @@
@@ -393,7 +393,7 @@ Acked-by: jbeulich@novell.com
timer_name[cpu],
NULL);
if (irq < 0)
---- head.orig/arch/x86/pci/irq.c 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/arch/x86/pci/irq.c 2011-07-22 04:17:23.000000000 +0200
+++ head/arch/x86/pci/irq.c 2011-08-09 10:33:29.000000000 +0200
@@ -94,13 +94,18 @@ static struct irq_routing_table * __init
u8 *addr;
@@ -453,7 +453,7 @@ Acked-by: jbeulich@novell.com
+#endif
+
+#include_next <asm/time.h>
---- head.orig/arch/x86/include/asm/thread_info.h 2013-05-10 14:14:39.000000000 +0200
+--- head.orig/arch/x86/include/asm/thread_info.h 2013-05-23 08:55:30.000000000 +0200
+++ head/arch/x86/include/asm/thread_info.h 2013-03-21 13:55:22.000000000 +0100
@@ -150,11 +150,15 @@ struct thread_info {
_TIF_USER_RETURN_NOTIFY)
@@ -490,8 +490,8 @@ Acked-by: jbeulich@novell.com
if (unlikely(frags > MAX_SKB_FRAGS + 1)) {
printk(KERN_ALERT "xennet: skb rides the rocket: %d frags\n",
frags);
---- head.orig/kernel/time/timekeeping.c 2013-05-10 14:14:39.000000000 +0200
-+++ head/kernel/time/timekeeping.c 2013-03-21 13:55:32.000000000 +0100
+--- head.orig/kernel/time/timekeeping.c 2013-05-23 08:56:49.000000000 +0200
++++ head/kernel/time/timekeeping.c 2013-05-23 17:02:23.000000000 +0200
@@ -22,6 +22,9 @@
#include <linux/tick.h>
#include <linux/stop_machine.h>
@@ -500,16 +500,16 @@ Acked-by: jbeulich@novell.com
+#include <asm/time.h>
+#endif
+ #include "tick-internal.h"
+ #include "ntp_internal.h"
+@@ -510,6 +513,10 @@ int do_settimeofday(const struct timespe
- static struct timekeeper timekeeper;
-@@ -462,6 +465,10 @@ int do_settimeofday(const struct timespe
-
- timekeeping_update(tk, true);
+ timekeeping_update(tk, true, true);
+#ifdef CONFIG_XEN_PRIVILEGED_GUEST
+ xen_update_wallclock(tv);
+#endif
+
- write_sequnlock_irqrestore(&tk->lock, flags);
+ write_seqcount_end(&timekeeper_seq);
+ raw_spin_unlock_irqrestore(&timekeeper_lock, flags);
- /* signal hrtimers about time change */
diff --git a/patches.xen/xen3-patch-2.6.19 b/patches.xen/xen3-patch-2.6.19
index c87186ed2b..906175b56f 100644
--- a/patches.xen/xen3-patch-2.6.19
+++ b/patches.xen/xen3-patch-2.6.19
@@ -8,17 +8,17 @@ Acked-by: jbeulich@novell.com
2.6.27/mm/mprotect.c (arch_change_pte_range() dropped)
3.1/arch/x86/kernel/step.c (now using user_64bit_mode())
---- head.orig/arch/x86/Kconfig 2013-04-26 10:28:59.000000000 +0200
-+++ head/arch/x86/Kconfig 2013-03-21 14:13:29.000000000 +0100
-@@ -625,6 +625,7 @@ config SCHED_OMIT_FRAME_POINTER
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:02:27.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:04:07.000000000 +0200
+@@ -620,6 +620,7 @@ config SCHED_OMIT_FRAME_POINTER
- menuconfig PARAVIRT_GUEST
- bool "Paravirtualized guest support"
+ menuconfig HYPERVISOR_GUEST
+ bool "Linux guest support"
+ depends on !XEN
---help---
- Say Y here to get to see options related to running Linux under
- various hypervisors. This option alone does not add any kernel code.
---- head.orig/arch/x86/kernel/acpi/boot.c 2013-05-10 14:14:39.000000000 +0200
+ Say Y here to enable options for running Linux under various hyper-
+ visors. This option enables basic hypervisor detection and platform
+--- head.orig/arch/x86/kernel/acpi/boot.c 2013-05-23 08:57:01.000000000 +0200
+++ head/arch/x86/kernel/acpi/boot.c 2013-03-21 14:13:20.000000000 +0100
@@ -69,8 +69,12 @@ int acpi_strict;
@@ -7652,8 +7652,8 @@ Acked-by: jbeulich@novell.com
}
int kern_addr_valid(unsigned long addr)
---- head.orig/arch/x86/mm/pageattr_64-xen.c 2009-03-18 10:39:31.000000000 +0100
-+++ head/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:29:16.000000000 +0100
+--- head.orig/arch/x86/mm/pageattr-xen.c 2009-03-18 10:39:31.000000000 +0100
++++ head/arch/x86/mm/pageattr-xen.c 2011-01-31 17:29:16.000000000 +0100
@@ -377,8 +377,8 @@ static void revert_page(unsigned long ad
BUG_ON(pud_none(*pud));
pmd = pmd_offset(pud, address);
@@ -10863,9 +10863,9 @@ Acked-by: jbeulich@novell.com
+}
+
+#endif /* __XEN_NETUTIL_H__ */
---- head.orig/mm/page_alloc.c 2013-03-21 12:24:20.000000000 +0100
-+++ head/mm/page_alloc.c 2013-03-21 14:13:35.000000000 +0100
-@@ -5313,6 +5313,23 @@ static void __setup_per_zone_wmarks(void
+--- head.orig/mm/page_alloc.c 2013-05-23 16:22:45.000000000 +0200
++++ head/mm/page_alloc.c 2013-05-23 17:04:18.000000000 +0200
+@@ -5377,6 +5377,23 @@ static void __setup_per_zone_wmarks(void
spin_unlock_irqrestore(&zone->lock, flags);
}
diff --git a/patches.xen/xen3-patch-2.6.20 b/patches.xen/xen3-patch-2.6.20
index 90fd196a17..5e0b514c4c 100644
--- a/patches.xen/xen3-patch-2.6.20
+++ b/patches.xen/xen3-patch-2.6.20
@@ -5,9 +5,9 @@ Patch-mainline: 2.6.20
Automatically created from "patches.kernel.org/patch-2.6.20" by xen-port-patches.py
Acked-by: jbeulich@novell.com
---- head.orig/arch/x86/Kconfig 2013-03-21 14:13:29.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-04-26 10:32:17.000000000 +0200
-@@ -1732,6 +1732,7 @@ config PHYSICAL_START
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:04:07.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:04:37.000000000 +0200
+@@ -1728,6 +1728,7 @@ config PHYSICAL_START
config RELOCATABLE
bool "Build a relocatable kernel"
@@ -15,7 +15,7 @@ Acked-by: jbeulich@novell.com
default y
---help---
This builds a kernel image that retains relocation information
-@@ -1753,7 +1754,8 @@ config X86_NEED_RELOCS
+@@ -1749,7 +1750,8 @@ config X86_NEED_RELOCS
depends on X86_32 && RELOCATABLE
config PHYSICAL_ALIGN
@@ -25,9 +25,9 @@ Acked-by: jbeulich@novell.com
default "0x1000000"
range 0x2000 0x1000000
---help---
---- head.orig/arch/x86/kernel/asm-offsets_32.c 2012-02-08 10:56:16.000000000 +0100
-+++ head/arch/x86/kernel/asm-offsets_32.c 2012-02-08 11:30:59.000000000 +0100
-@@ -69,6 +69,11 @@ void foo(void)
+--- head.orig/arch/x86/kernel/asm-offsets_32.c 2013-05-23 16:28:49.000000000 +0200
++++ head/arch/x86/kernel/asm-offsets_32.c 2013-05-23 17:04:40.000000000 +0200
+@@ -72,6 +72,11 @@ void foo(void)
DEFINE(SYSENTER_stack_sp0, 0);
#endif
@@ -3096,7 +3096,7 @@ Acked-by: jbeulich@novell.com
-}
-__setup("call_trace=", call_trace_setup);
-#endif
---- head.orig/arch/x86/kernel/vmlinux.lds.S 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/kernel/vmlinux.lds.S 2013-05-23 08:57:02.000000000 +0200
+++ head/arch/x86/kernel/vmlinux.lds.S 2011-09-07 15:22:44.000000000 +0200
@@ -83,6 +83,10 @@ SECTIONS
{
@@ -3109,7 +3109,7 @@ Acked-by: jbeulich@novell.com
phys_startup_32 = startup_32 - LOAD_OFFSET;
#else
. = __START_KERNEL;
---- head.orig/arch/x86/kvm/Kconfig 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/kvm/Kconfig 2013-05-23 08:55:32.000000000 +0200
+++ head/arch/x86/kvm/Kconfig 2011-01-31 17:32:16.000000000 +0100
@@ -7,6 +7,7 @@ source "virt/kvm/Kconfig"
menuconfig VIRTUALIZATION
@@ -4129,8 +4129,8 @@ Acked-by: jbeulich@novell.com
};
struct vm_area_struct *get_gate_vma(struct task_struct *tsk)
---- head.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:29:16.000000000 +0100
-+++ head/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:32:16.000000000 +0100
+--- head.orig/arch/x86/mm/pageattr-xen.c 2011-01-31 17:29:16.000000000 +0100
++++ head/arch/x86/mm/pageattr-xen.c 2011-01-31 17:32:16.000000000 +0100
@@ -330,34 +330,40 @@ static struct page *split_large_page(uns
return base;
}
@@ -5794,7 +5794,7 @@ Acked-by: jbeulich@novell.com
goto out;
if (csum) {
---- head.orig/kernel/kexec.c 2013-03-21 13:54:35.000000000 +0100
+--- head.orig/kernel/kexec.c 2013-05-23 17:00:09.000000000 +0200
+++ head/kernel/kexec.c 2013-03-21 14:13:51.000000000 +0100
@@ -374,7 +374,7 @@ static struct page *kimage_alloc_pages(g
if (limit == ~0UL)
diff --git a/patches.xen/xen3-patch-2.6.21 b/patches.xen/xen3-patch-2.6.21
index 7aa1d56ee7..ff4c326d97 100644
--- a/patches.xen/xen3-patch-2.6.21
+++ b/patches.xen/xen3-patch-2.6.21
@@ -5,9 +5,9 @@ Patch-mainline: 2.6.21
Automatically created from "patches.kernel.org/patch-2.6.21" by xen-port-patches.py
Acked-by: jbeulich@novell.com
---- head.orig/arch/x86/Kconfig 2013-04-26 10:32:17.000000000 +0200
-+++ head/arch/x86/Kconfig 2013-03-21 14:14:07.000000000 +0100
-@@ -101,10 +101,10 @@ config X86
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:04:37.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:04:58.000000000 +0200
+@@ -102,10 +102,10 @@ config X86
select HAVE_ARCH_SECCOMP_FILTER
select BUILDTIME_EXTABLE_SORT
select GENERIC_CMOS_UPDATE
@@ -628,7 +628,7 @@ Acked-by: jbeulich@novell.com
out:
if (mem_base)
iounmap(mem_base);
---- head.orig/arch/x86/kernel/pcspeaker.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/kernel/pcspeaker.c 2008-12-25 00:26:37.000000000 +0100
+++ head/arch/x86/kernel/pcspeaker.c 2011-01-31 17:32:22.000000000 +0100
@@ -6,6 +6,11 @@ static __init int add_pcspkr(void)
{
@@ -3253,8 +3253,8 @@ Acked-by: jbeulich@novell.com
return 0;
}
__initcall(x8664_sysctl_init);
---- head.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:32:16.000000000 +0100
-+++ head/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:32:22.000000000 +0100
+--- head.orig/arch/x86/mm/pageattr-xen.c 2011-01-31 17:32:16.000000000 +0100
++++ head/arch/x86/mm/pageattr-xen.c 2011-01-31 17:32:22.000000000 +0100
@@ -350,8 +350,8 @@ static void flush_kernel_map(void *arg)
void *adr = page_address(pg);
if (cpu_has_clflush)
diff --git a/patches.xen/xen3-patch-2.6.22 b/patches.xen/xen3-patch-2.6.22
index 773d18ae03..f8d6ce479d 100644
--- a/patches.xen/xen3-patch-2.6.22
+++ b/patches.xen/xen3-patch-2.6.22
@@ -5,9 +5,9 @@ Patch-mainline: 2.6.22
Automatically created from "patches.kernel.org/patch-2.6.22" by xen-port-patches.py
Acked-by: jbeulich@novell.com
---- head.orig/arch/x86/Kconfig 2013-03-21 14:14:07.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-04-26 10:34:40.000000000 +0200
-@@ -1732,7 +1732,7 @@ config PHYSICAL_START
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:04:58.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:05:34.000000000 +0200
+@@ -1728,7 +1728,7 @@ config PHYSICAL_START
config RELOCATABLE
bool "Build a relocatable kernel"
@@ -16,7 +16,7 @@ Acked-by: jbeulich@novell.com
default y
---help---
This builds a kernel image that retains relocation information
-@@ -1835,7 +1835,6 @@ config COMPAT_VDSO
+@@ -1831,7 +1831,6 @@ config COMPAT_VDSO
def_bool y
prompt "Compat VDSO support"
depends on X86_32 || IA32_EMULATION
@@ -24,7 +24,7 @@ Acked-by: jbeulich@novell.com
---help---
Map the 32-bit VDSO to the predictable old-style address too.
-@@ -2056,6 +2055,7 @@ config PCI
+@@ -2052,6 +2051,7 @@ config PCI
bool "PCI support"
default y
select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
@@ -50,9 +50,9 @@ Acked-by: jbeulich@novell.com
#include <linux/interrupt.h>
#include <linux/mc146818rtc.h>
#include <linux/kernel_stat.h>
---- head.orig/arch/x86/kernel/asm-offsets_32.c 2012-02-08 11:30:59.000000000 +0100
-+++ head/arch/x86/kernel/asm-offsets_32.c 2012-02-08 11:31:30.000000000 +0100
-@@ -69,11 +69,6 @@ void foo(void)
+--- head.orig/arch/x86/kernel/asm-offsets_32.c 2013-05-23 17:04:40.000000000 +0200
++++ head/arch/x86/kernel/asm-offsets_32.c 2013-05-23 17:05:42.000000000 +0200
+@@ -72,11 +72,6 @@ void foo(void)
DEFINE(SYSENTER_stack_sp0, 0);
#endif
@@ -3637,8 +3637,8 @@ Acked-by: jbeulich@novell.com
+ SMP_CACHE_BYTES, (4UL*1024*1024*1024), 0);
+}
+#endif
---- head.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:32:22.000000000 +0100
-+++ head/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:32:29.000000000 +0100
+--- head.orig/arch/x86/mm/pageattr-xen.c 2011-01-31 17:32:22.000000000 +0100
++++ head/arch/x86/mm/pageattr-xen.c 2011-01-31 17:32:29.000000000 +0100
@@ -215,13 +215,13 @@ void mm_pin_all(void)
preempt_enable();
}
@@ -3710,9 +3710,9 @@ Acked-by: jbeulich@novell.com
if (err <= 0) {
WPRINTK("bind_listening_port_to_irqhandler failed "
"(err=%d)\n", err);
---- head.orig/drivers/hwmon/Kconfig 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/hwmon/Kconfig 2013-01-08 11:39:38.000000000 +0100
-@@ -465,7 +465,7 @@ config SENSORS_HIH6130
+--- head.orig/drivers/hwmon/Kconfig 2013-05-23 08:55:40.000000000 +0200
++++ head/drivers/hwmon/Kconfig 2013-05-23 17:05:28.000000000 +0200
+@@ -498,7 +498,7 @@ config SENSORS_HIH6130
config SENSORS_CORETEMP
tristate "Intel Core/Core2/Atom temperature sensor"
@@ -5375,8 +5375,8 @@ Acked-by: jbeulich@novell.com
ret = xenbus_write(t, dir, node, printf_buffer);
kfree(printf_buffer);
---- head.orig/fs/aio.c 2013-03-21 12:23:21.000000000 +0100
-+++ head/fs/aio.c 2013-03-21 14:14:37.000000000 +0100
+--- head.orig/fs/aio.c 2013-06-04 13:53:30.000000000 +0200
++++ head/fs/aio.c 2013-06-04 13:56:11.000000000 +0200
@@ -41,7 +41,7 @@
#ifdef CONFIG_EPOLL
@@ -5385,8 +5385,8 @@ Acked-by: jbeulich@novell.com
+#include <linux/anon_inodes.h>
#endif
- #if DEBUG > 1
-@@ -1281,7 +1281,7 @@ static const struct file_operations aioq
+ #define AIO_RING_MAGIC 0xa10a10a1
+@@ -892,7 +892,7 @@ static const struct file_operations aioq
/* make_aio_fd:
* Create a file descriptor that can be used to poll the event queue.
@@ -5395,7 +5395,7 @@ Acked-by: jbeulich@novell.com
*/
static int make_aio_fd(struct kioctx *ioctx)
-@@ -1290,7 +1290,8 @@ static int make_aio_fd(struct kioctx *io
+@@ -901,7 +901,8 @@ static int make_aio_fd(struct kioctx *io
struct inode *inode;
struct file *file;
@@ -5405,7 +5405,7 @@ Acked-by: jbeulich@novell.com
if (error)
return error;
---- head.orig/arch/x86/include/asm/boot.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/include/asm/boot.h 2013-02-19 00:58:34.000000000 +0100
+++ head/arch/x86/include/asm/boot.h 2013-01-08 11:40:00.000000000 +0100
@@ -11,7 +11,7 @@
& ~(CONFIG_PHYSICAL_ALIGN - 1))
@@ -7196,7 +7196,7 @@ Acked-by: jbeulich@novell.com
#define __flush_tlb() xen_tlb_flush()
---- head.orig/include/linux/msi.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/include/linux/msi.h 2013-05-23 08:56:44.000000000 +0200
+++ head/include/linux/msi.h 2012-04-04 14:03:08.000000000 +0200
@@ -4,6 +4,8 @@
#include <linux/kobject.h>
@@ -7268,7 +7268,7 @@ Acked-by: jbeulich@novell.com
goto out;
if (csum) {
---- head.orig/kernel/irq/chip.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/kernel/irq/chip.c 2013-04-29 02:36:01.000000000 +0200
+++ head/kernel/irq/chip.c 2013-03-21 14:16:10.000000000 +0100
@@ -89,6 +89,7 @@ int irq_set_handler_data(unsigned int ir
}
@@ -7296,9 +7296,9 @@ Acked-by: jbeulich@novell.com
EXPORT_SYMBOL(swiotlb_map_single);
EXPORT_SYMBOL(swiotlb_unmap_single);
EXPORT_SYMBOL(swiotlb_map_sg);
---- head.orig/mm/vmalloc.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/mm/vmalloc.c 2013-03-21 14:14:43.000000000 +0100
-@@ -1593,6 +1593,13 @@ static void *__vmalloc_area_node(struct
+--- head.orig/mm/vmalloc.c 2013-05-23 08:56:50.000000000 +0200
++++ head/mm/vmalloc.c 2013-05-23 17:05:14.000000000 +0200
+@@ -1605,6 +1605,13 @@ static void *__vmalloc_area_node(struct
struct page **pages;
unsigned int nr_pages, array_size, i;
gfp_t nested_gfp = (gfp_mask & GFP_RECLAIM_MASK) | __GFP_ZERO;
@@ -7312,7 +7312,7 @@ Acked-by: jbeulich@novell.com
nr_pages = (area->size - PAGE_SIZE) >> PAGE_SHIFT;
array_size = (nr_pages * sizeof(struct page *));
-@@ -1629,6 +1636,16 @@ static void *__vmalloc_area_node(struct
+@@ -1641,6 +1648,16 @@ static void *__vmalloc_area_node(struct
goto fail;
}
area->pages[i] = page;
@@ -7329,7 +7329,7 @@ Acked-by: jbeulich@novell.com
}
if (map_vm_area(area, prot, &pages))
-@@ -1856,6 +1873,8 @@ void *vmalloc_exec(unsigned long size)
+@@ -1869,6 +1886,8 @@ void *vmalloc_exec(unsigned long size)
#define GFP_VMALLOC32 GFP_DMA32 | GFP_KERNEL
#elif defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA)
#define GFP_VMALLOC32 GFP_DMA | GFP_KERNEL
diff --git a/patches.xen/xen3-patch-2.6.23 b/patches.xen/xen3-patch-2.6.23
index 60cd4e3399..3f2fbee5cc 100644
--- a/patches.xen/xen3-patch-2.6.23
+++ b/patches.xen/xen3-patch-2.6.23
@@ -5,7 +5,7 @@ Patch-mainline: 2.6.23
Automatically created from "patches.kernel.org/patch-2.6.23" by xen-port-patches.py
Acked-by: jbeulich@novell.com
---- head.orig/arch/x86/Kbuild 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/Kbuild 2012-07-21 22:58:29.000000000 +0200
+++ head/arch/x86/Kbuild 2012-06-13 15:13:30.000000000 +0200
@@ -1,7 +1,7 @@
obj-$(CONFIG_KVM) += kvm/
@@ -16,7 +16,7 @@ Acked-by: jbeulich@novell.com
# lguest paravirtualization support
obj-$(CONFIG_LGUEST_GUEST) += lguest/
---- head.orig/arch/x86/kernel/asm-offsets.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/kernel/asm-offsets.c 2012-12-11 04:30:57.000000000 +0100
+++ head/arch/x86/kernel/asm-offsets.c 2011-04-13 12:42:43.000000000 +0200
@@ -17,7 +17,7 @@
#include <asm/bootparam.h>
@@ -1032,8 +1032,8 @@ Acked-by: jbeulich@novell.com
(atomic_read(&mm->mm_count) == 1) &&
!mm->context.has_foreign_mappings)
mm_unpin(mm);
---- head.orig/arch/x86/xen/Kconfig 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/xen/Kconfig 2011-01-31 17:49:31.000000000 +0100
+--- head.orig/arch/x86/xen/Kconfig 2013-05-23 08:55:33.000000000 +0200
++++ head/arch/x86/xen/Kconfig 2013-05-23 17:06:53.000000000 +0200
@@ -2,7 +2,7 @@
# This Kconfig describes xen options
#
@@ -1041,9 +1041,9 @@ Acked-by: jbeulich@novell.com
-config XEN
+config PARAVIRT_XEN
bool "Xen guest support"
- select PARAVIRT
+ depends on PARAVIRT
select PARAVIRT_CLOCK
---- head.orig/arch/x86/xen/xen-head.S 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/xen/xen-head.S 2012-12-11 04:30:57.000000000 +0100
+++ head/arch/x86/xen/xen-head.S 2012-10-23 14:49:29.000000000 +0200
@@ -1,7 +1,7 @@
/* Xen-specific pieces of head.S, intended to be included in the right
@@ -2108,8 +2108,8 @@ Acked-by: jbeulich@novell.com
+ return "[vsyscall]";
+ return NULL;
+}
---- head.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:32:29.000000000 +0100
-+++ head/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:49:31.000000000 +0100
+--- head.orig/arch/x86/mm/pageattr-xen.c 2011-01-31 17:32:29.000000000 +0100
++++ head/arch/x86/mm/pageattr-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 */
@@ -2227,7 +2227,7 @@ Acked-by: jbeulich@novell.com
#include <xen/interface/xen.h>
#include <xen/interface/xenoprof.h>
#include <xen/xenoprof.h>
---- head.orig/arch/x86/vdso/vdso32/note.S 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/vdso/vdso32/note.S 2008-04-17 04:49:44.000000000 +0200
+++ head/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
@@ -2251,7 +2251,7 @@ Acked-by: jbeulich@novell.com
.byte VDSO_NOTE_NONEGSEG_BIT; .asciz "nosegneg" /* bit, name */
ELFNOTE_END
#endif
---- head.orig/drivers/Makefile 2012-10-22 17:22:16.000000000 +0200
+--- head.orig/drivers/Makefile 2013-05-23 16:23:56.000000000 +0200
+++ head/drivers/Makefile 2013-03-21 14:16:56.000000000 +0100
@@ -32,7 +32,7 @@ obj-y += amba/
obj-$(CONFIG_DMADEVICES) += dma/
@@ -2262,7 +2262,7 @@ Acked-by: jbeulich@novell.com
# regulators early, since some subsystems rely on them to initialize
obj-$(CONFIG_REGULATOR) += regulator/
---- head.orig/drivers/block/Kconfig 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/block/Kconfig 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/block/Kconfig 2013-03-21 14:17:01.000000000 +0100
@@ -464,9 +464,9 @@ config XILINX_SYSACE
help
@@ -2276,7 +2276,7 @@ Acked-by: jbeulich@novell.com
default y
select XEN_XENBUS_FRONTEND
help
---- head.orig/drivers/block/Makefile 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/block/Makefile 2013-05-23 08:55:35.000000000 +0200
+++ head/drivers/block/Makefile 2013-03-21 14:17:06.000000000 +0100
@@ -34,7 +34,7 @@ obj-$(CONFIG_VIODASD) += viodasd.o
obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
@@ -2287,7 +2287,7 @@ 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.orig/drivers/tty/hvc/Kconfig 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/tty/hvc/Kconfig 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/tty/hvc/Kconfig 2013-03-21 14:17:16.000000000 +0100
@@ -61,7 +61,7 @@ config HVC_IUCV
@@ -2298,9 +2298,9 @@ Acked-by: jbeulich@novell.com
select HVC_DRIVER
select HVC_IRQ
default y
---- head.orig/drivers/net/Kconfig 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/net/Kconfig 2013-03-21 14:17:28.000000000 +0100
-@@ -306,9 +306,9 @@ source "drivers/net/wan/Kconfig"
+--- head.orig/drivers/net/Kconfig 2013-05-23 08:55:59.000000000 +0200
++++ head/drivers/net/Kconfig 2013-05-23 17:06:04.000000000 +0200
+@@ -307,9 +307,9 @@ source "drivers/net/wan/Kconfig"
source "drivers/net/ieee802154/Kconfig"
@@ -2312,7 +2312,7 @@ Acked-by: jbeulich@novell.com
select XEN_XENBUS_FRONTEND
default y
help
---- head.orig/drivers/net/Makefile 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/net/Makefile 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/net/Makefile 2012-10-23 14:49:15.000000000 +0200
@@ -57,7 +57,7 @@ obj-$(CONFIG_WIMAX) += wimax/
obj-$(CONFIG_IEEE802154) += ieee802154/
@@ -4470,7 +4470,7 @@ Acked-by: jbeulich@novell.com
#endif
#define PREEMPT_ACTIVE 0x10000000
---- head.orig/arch/x86/include/asm/xen/interface.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/include/asm/xen/interface.h 2013-02-19 00:58:34.000000000 +0100
+++ head/arch/x86/include/asm/xen/interface.h 2013-01-08 11:43:52.000000000 +0100
@@ -10,17 +10,20 @@
#define _ASM_X86_XEN_INTERFACE_H
@@ -4524,7 +4524,7 @@ Acked-by: jbeulich@novell.com
/*
* SEGMENT DESCRIPTOR TABLES
---- head.orig/include/linux/elfnote.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/include/linux/elfnote.h 2008-04-17 04:49:44.000000000 +0200
+++ head/include/linux/elfnote.h 2011-01-31 17:49:31.000000000 +0100
@@ -52,7 +52,7 @@
4484:.balign 4 ; \
@@ -4585,7 +4585,7 @@ Acked-by: jbeulich@novell.com
-#endif /* __ASM_XEN_DRIVER_UTIL_H__ */
+#endif /* __XEN_DRIVER_UTIL_H__ */
---- head.orig/include/xen/features.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/include/xen/features.h 2007-10-09 22:31:38.000000000 +0200
+++ head/include/xen/features.h 2011-01-31 17:49:31.000000000 +0100
@@ -10,6 +10,7 @@
#define __XEN_FEATURES_H__
@@ -4623,9 +4623,9 @@ Acked-by: jbeulich@novell.com
typedef struct evtchn_op evtchn_op_t;
DEFINE_XEN_GUEST_HANDLE(evtchn_op_t);
---- head.orig/include/xen/interface/io/netif.h 2013-05-10 14:09:07.000000000 +0200
-+++ head/include/xen/interface/io/netif.h 2013-05-10 14:22:42.000000000 +0200
-@@ -188,8 +188,22 @@ typedef struct netif_rx_response netif_r
+--- head.orig/include/xen/interface/io/netif.h 2013-05-23 16:58:53.000000000 +0200
++++ head/include/xen/interface/io/netif.h 2013-05-23 17:05:56.000000000 +0200
+@@ -206,8 +206,22 @@ typedef struct netif_rx_response netif_r
* Generate netif ring structures and types.
*/
diff --git a/patches.xen/xen3-patch-2.6.24 b/patches.xen/xen3-patch-2.6.24
index ed820102ad..4b66af2a87 100644
--- a/patches.xen/xen3-patch-2.6.24
+++ b/patches.xen/xen3-patch-2.6.24
@@ -7,9 +7,9 @@ Acked-by: jbeulich@novell.com
2.6.33/kernel/sysctl_check.c (would need to be reverted there)
---- head.orig/arch/x86/Kconfig 2013-04-26 10:34:40.000000000 +0200
-+++ head/arch/x86/Kconfig 2013-04-26 10:43:34.000000000 +0200
-@@ -101,10 +101,10 @@ config X86
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:05:34.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:10:22.000000000 +0200
+@@ -102,10 +102,10 @@ config X86
select HAVE_ARCH_SECCOMP_FILTER
select BUILDTIME_EXTABLE_SORT
select GENERIC_CMOS_UPDATE
@@ -23,7 +23,7 @@ Acked-by: jbeulich@novell.com
select GENERIC_TIME_VSYSCALL if X86_64
select KTIME_SCALAR if X86_32
select GENERIC_STRNCPY_FROM_USER
-@@ -245,12 +245,12 @@ config X86_HT
+@@ -240,12 +240,12 @@ config X86_HT
config X86_NO_TSS
bool
@@ -38,7 +38,7 @@ Acked-by: jbeulich@novell.com
default y
config X86_32_LAZY_GS
-@@ -333,6 +333,7 @@ config X86_MPPARSE
+@@ -328,6 +328,7 @@ config X86_MPPARSE
config X86_XEN
bool "Xen-compatible"
@@ -46,7 +46,7 @@ Acked-by: jbeulich@novell.com
select XEN
select X86_PAE
select SWIOTLB
-@@ -376,6 +377,7 @@ endif
+@@ -371,6 +372,7 @@ endif
config X86_64_XEN
bool "Enable Xen compatible kernel"
@@ -54,7 +54,7 @@ Acked-by: jbeulich@novell.com
select XEN
select SWIOTLB
help
-@@ -723,7 +725,7 @@ source "arch/x86/Kconfig.cpu"
+@@ -719,7 +721,7 @@ source "arch/x86/Kconfig.cpu"
config HPET_TIMER
def_bool X86_64
prompt "HPET Timer Support" if X86_32
@@ -63,7 +63,7 @@ Acked-by: jbeulich@novell.com
---help---
Use the IA-PC HPET (High Precision Event Timer) to manage
time in preference to the PIT and RTC, if a HPET is
-@@ -1041,7 +1043,7 @@ config I8K
+@@ -1037,7 +1039,7 @@ config I8K
config X86_REBOOTFIXUPS
bool "Enable X86 board specific fixups for reboot"
@@ -72,7 +72,7 @@ Acked-by: jbeulich@novell.com
---help---
This enables chipset and/or board specific fixups to be done
in order to get reboot to work correctly. This is only needed on
-@@ -1462,7 +1464,7 @@ config X86_RESERVE_LOW
+@@ -1458,7 +1460,7 @@ config X86_RESERVE_LOW
config MATH_EMULATION
bool
prompt "Math emulation" if X86_32
@@ -81,7 +81,7 @@ Acked-by: jbeulich@novell.com
---help---
Linux can emulate a math coprocessor (used for floating point
operations) if you don't have one. 486DX and Pentium processors have
-@@ -1892,6 +1894,7 @@ endmenu
+@@ -1888,6 +1890,7 @@ endmenu
config ARCH_ENABLE_MEMORY_HOTPLUG
def_bool y
depends on X86_64 || (X86_32 && HIGHMEM)
@@ -89,7 +89,7 @@ Acked-by: jbeulich@novell.com
config ARCH_ENABLE_MEMORY_HOTREMOVE
def_bool y
-@@ -2083,7 +2086,7 @@ choice
+@@ -2079,7 +2082,7 @@ choice
config PCI_GOBIOS
bool "BIOS"
@@ -98,7 +98,7 @@ Acked-by: jbeulich@novell.com
config PCI_GOMMCONFIG
bool "MMConfig"
-@@ -2152,7 +2155,7 @@ config PCI_CNB20LE_QUIRK
+@@ -2148,7 +2151,7 @@ config PCI_CNB20LE_QUIRK
config XEN_PCIDEV_FRONTEND
bool "Xen PCI Frontend" if X86_64
@@ -207,16 +207,16 @@ Acked-by: jbeulich@novell.com
kfree(buf);
return -EINVAL;
}
---- head.orig/arch/x86/kernel/cpu/Makefile 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/kernel/cpu/Makefile 2012-08-20 10:38:35.000000000 +0200
-@@ -42,6 +42,8 @@ obj-$(CONFIG_MTRR) += mtrr/
+--- head.orig/arch/x86/kernel/cpu/Makefile 2013-05-23 08:55:30.000000000 +0200
++++ head/arch/x86/kernel/cpu/Makefile 2013-05-23 17:10:46.000000000 +0200
+@@ -43,6 +43,8 @@ obj-$(CONFIG_X86_LOCAL_APIC) += perfctr
- obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o perf_event_amd_ibs.o
+ obj-$(CONFIG_HYPERVISOR_GUEST) += vmware.o hypervisor.o mshyperv.o
+disabled-obj-$(CONFIG_XEN) := perfctr-watchdog.o
+
quiet_cmd_mkcapflags = MKCAP $@
- cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@
+ cmd_mkcapflags = $(CONFIG_SHELL) $(srctree)/$(src)/mkcapflags.sh $< $@
--- head.orig/arch/x86/kernel/cpu/common-xen.c 2012-07-05 10:49:35.000000000 +0200
+++ head/arch/x86/kernel/cpu/common-xen.c 2012-07-05 10:50:04.000000000 +0200
@@ -239,9 +239,9 @@ Acked-by: jbeulich@novell.com
c->x86_clflush_size = 32;
memset(&c->x86_capability, 0, sizeof c->x86_capability);
---- head.orig/arch/x86/kernel/cpu/intel.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/kernel/cpu/intel.c 2013-03-21 14:21:04.000000000 +0100
-@@ -301,6 +301,7 @@ static void __cpuinit srat_detect_node(s
+--- head.orig/arch/x86/kernel/cpu/intel.c 2013-05-23 08:55:31.000000000 +0200
++++ head/arch/x86/kernel/cpu/intel.c 2013-05-23 17:10:52.000000000 +0200
+@@ -297,6 +297,7 @@ static void __cpuinit srat_detect_node(s
#endif
}
@@ -249,7 +249,7 @@ Acked-by: jbeulich@novell.com
/*
* find out the number of processor cores on the die
*/
-@@ -318,6 +319,7 @@ static int __cpuinit intel_num_cpu_cores
+@@ -314,6 +315,7 @@ static int __cpuinit intel_num_cpu_cores
else
return 1;
}
@@ -257,7 +257,7 @@ Acked-by: jbeulich@novell.com
static void __cpuinit detect_vmx_virtcap(struct cpuinfo_x86 *c)
{
-@@ -439,6 +441,7 @@ static void __cpuinit init_intel(struct
+@@ -435,6 +437,7 @@ static void __cpuinit init_intel(struct
set_cpu_cap(c, X86_FEATURE_P3);
#endif
@@ -265,7 +265,7 @@ Acked-by: jbeulich@novell.com
if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) {
/*
* let's use the legacy cpuid vector 0x1 and 0x4 for topology
-@@ -449,6 +452,7 @@ static void __cpuinit init_intel(struct
+@@ -445,6 +448,7 @@ static void __cpuinit init_intel(struct
detect_ht(c);
#endif
}
@@ -3553,8 +3553,8 @@ Acked-by: jbeulich@novell.com
+ return 0;
+}
+#endif
---- head.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:49:31.000000000 +0100
-+++ head/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/arch/x86/mm/pageattr-xen.c 2011-01-31 17:49:31.000000000 +0100
++++ head/arch/x86/mm/pageattr-xen.c 2011-01-31 17:56:27.000000000 +0100
@@ -17,9 +17,6 @@
#include <asm/pgalloc.h>
#include <asm/mmu_context.h>
@@ -3815,7 +3815,7 @@ Acked-by: jbeulich@novell.com
/* Copied from arch/i386/pci/common.c */
pci_cache_line_size = 32 >> 2;
---- head.orig/drivers/acpi/processor_core.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/acpi/processor_core.c 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/acpi/processor_core.c 2013-03-21 14:20:28.000000000 +0100
@@ -200,11 +200,21 @@ int acpi_get_cpuid(acpi_handle handle, i
}
@@ -3850,9 +3850,9 @@ Acked-by: jbeulich@novell.com
break;
}
---- head.orig/drivers/acpi/processor_idle.c 2013-04-26 10:04:48.000000000 +0200
-+++ head/drivers/acpi/processor_idle.c 2013-04-26 10:43:27.000000000 +0200
-@@ -1087,6 +1087,14 @@ int acpi_processor_hotplug(struct acpi_p
+--- head.orig/drivers/acpi/processor_idle.c 2013-05-23 16:23:45.000000000 +0200
++++ head/drivers/acpi/processor_idle.c 2013-05-23 17:10:10.000000000 +0200
+@@ -1095,6 +1095,14 @@ int acpi_processor_hotplug(struct acpi_p
if (!pr->flags.power_setup_done)
return -ENODEV;
@@ -3881,7 +3881,7 @@ Acked-by: jbeulich@novell.com
static inline int
---- head.orig/drivers/cpuidle/Kconfig 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/cpuidle/Kconfig 2013-05-23 08:55:37.000000000 +0200
+++ head/drivers/cpuidle/Kconfig 2012-02-29 10:35:17.000000000 +0100
@@ -1,6 +1,7 @@
@@ -3891,27 +3891,27 @@ Acked-by: jbeulich@novell.com
default y if ACPI || PPC_PSERIES
help
CPU idle is a generic framework for supporting software-controlled
---- head.orig/drivers/dma/Kconfig 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/dma/Kconfig 2012-08-20 10:38:08.000000000 +0200
+--- head.orig/drivers/dma/Kconfig 2013-05-23 08:55:37.000000000 +0200
++++ head/drivers/dma/Kconfig 2013-05-23 17:09:25.000000000 +0200
@@ -62,7 +62,7 @@ config INTEL_IOATDMA
tristate "Intel I/OAT DMA support"
depends on PCI && X86
select DMA_ENGINE
- select DCA
+ select DCA if !XEN
- select ASYNC_TX_DISABLE_PQ_VAL_DMA
- select ASYNC_TX_DISABLE_XOR_VAL_DMA
help
---- head.orig/drivers/dma/ioat/Makefile 2013-05-10 14:14:38.000000000 +0200
+ Enable support for the Intel(R) I/OAT DMA engine present
+ in recent Intel Xeon chipsets.
+--- head.orig/drivers/dma/ioat/Makefile 2011-01-05 01:50:19.000000000 +0100
+++ head/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.orig/drivers/dma/ioat/dca.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/dma/ioat/dca.c 2013-01-14 13:50:00.000000000 +0100
-@@ -702,3 +702,15 @@ struct dca_provider *ioat3_dca_init(stru
+--- head.orig/drivers/dma/ioat/dca.c 2013-05-23 08:55:37.000000000 +0200
++++ head/drivers/dma/ioat/dca.c 2013-05-23 17:09:55.000000000 +0200
+@@ -707,3 +707,15 @@ struct dca_provider *ioat3_dca_init(stru
return dca;
}
@@ -3927,9 +3927,9 @@ Acked-by: jbeulich@novell.com
+ free_dca_provider(device->dca);
+ device->dca = NULL;
+}
---- head.orig/drivers/dma/ioat/dma.h 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/dma/ioat/dma.h 2013-03-21 14:20:41.000000000 +0100
-@@ -324,4 +324,22 @@ void ioat_kobject_del(struct ioatdma_dev
+--- head.orig/drivers/dma/ioat/dma.h 2013-05-23 08:55:37.000000000 +0200
++++ head/drivers/dma/ioat/dma.h 2013-05-23 17:09:55.000000000 +0200
+@@ -373,4 +373,22 @@ int ioat_dma_setup_interrupts(struct ioa
extern const struct sysfs_ops ioat_sysfs_ops;
extern struct ioat_sysfs_entry ioat_version_attr;
extern struct ioat_sysfs_entry ioat_cap_attr;
@@ -3952,8 +3952,8 @@ Acked-by: jbeulich@novell.com
+#endif
+
#endif /* IOATDMA_H */
---- head.orig/drivers/dma/ioat/pci.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/dma/ioat/pci.c 2013-03-21 14:20:42.000000000 +0100
+--- head.orig/drivers/dma/ioat/pci.c 2013-05-23 08:55:37.000000000 +0200
++++ head/drivers/dma/ioat/pci.c 2013-05-23 17:10:02.000000000 +0200
@@ -29,7 +29,6 @@
#include <linux/module.h>
#include <linux/pci.h>
@@ -3962,8 +3962,8 @@ Acked-by: jbeulich@novell.com
#include <linux/slab.h>
#include "dma.h"
#include "dma_v2.h"
-@@ -191,11 +190,7 @@ static void ioat_remove(struct pci_dev *
- return;
+@@ -211,11 +210,7 @@ static void ioat_remove(struct pci_dev *
+ ioat3_dma_remove(device);
dev_err(&pdev->dev, "Removing dma and dca services\n");
- if (device->dca) {
@@ -9429,7 +9429,7 @@ Acked-by: jbeulich@novell.com
+} while (0)
+
+#endif
---- head.orig/arch/x86/include/asm/mmu.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/include/asm/mmu.h 2011-07-22 04:17:23.000000000 +0200
+++ head/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. */
@@ -9470,7 +9470,7 @@ Acked-by: jbeulich@novell.com
/* add a backtrace entry, to be called from the ->backtrace callback */
void oprofile_add_trace(unsigned long eip);
---- head.orig/include/uapi/linux/sysctl.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/include/uapi/linux/sysctl.h 2012-12-11 04:30:57.000000000 +0100
+++ head/include/uapi/linux/sysctl.h 2011-01-31 17:56:27.000000000 +0100
@@ -59,6 +59,7 @@ enum
CTL_BUS=8, /* Busses */
@@ -9602,7 +9602,7 @@ Acked-by: jbeulich@novell.com
int (*read_otherend_details)(struct xenbus_device *dev);
int (*is_ready)(struct xenbus_device *dev);
--- head.orig/kernel/kexec.c 2013-03-21 14:13:51.000000000 +0100
-+++ head/kernel/kexec.c 2013-04-26 10:43:12.000000000 +0200
++++ head/kernel/kexec.c 2013-05-23 17:09:31.000000000 +0200
@@ -45,7 +45,11 @@ note_buf_t __percpu *crash_notes;
/* vmcoreinfo stuff */
@@ -9616,7 +9616,7 @@ Acked-by: jbeulich@novell.com
size_t vmcoreinfo_size;
size_t vmcoreinfo_max_size = sizeof(vmcoreinfo_data);
-@@ -1291,6 +1295,7 @@ static int __init crash_notes_memory_ini
+@@ -1280,6 +1284,7 @@ static int __init crash_notes_memory_ini
module_init(crash_notes_memory_init)
@@ -9624,7 +9624,7 @@ Acked-by: jbeulich@novell.com
/*
* parsing the "crashkernel" commandline
*
-@@ -1568,6 +1573,7 @@ int __init parse_crashkernel_low(char *c
+@@ -1557,6 +1562,7 @@ int __init parse_crashkernel_low(char *c
return __parse_crashkernel(cmdline, system_ram, crash_size, crash_base,
"crashkernel=", suffix_tbl[SUFFIX_LOW]);
}
@@ -9632,7 +9632,7 @@ Acked-by: jbeulich@novell.com
static void update_vmcoreinfo_note(void)
{
-@@ -1624,7 +1630,18 @@ static int __init crash_save_vmcoreinfo_
+@@ -1612,7 +1618,18 @@ static int __init crash_save_vmcoreinfo_
VMCOREINFO_SYMBOL(init_uts_ns);
VMCOREINFO_SYMBOL(node_online_map);
#ifdef CONFIG_MMU
@@ -9650,10 +9650,10 @@ Acked-by: jbeulich@novell.com
+# endif
#endif
VMCOREINFO_SYMBOL(_stext);
- VMCOREINFO_SYMBOL(vmlist);
---- head.orig/kernel/sysctl_binary.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/kernel/sysctl_binary.c 2013-03-21 14:20:04.000000000 +0100
-@@ -872,6 +872,14 @@ static const struct bin_table bin_bus_ta
+ VMCOREINFO_SYMBOL(vmap_area_list);
+--- head.orig/kernel/sysctl_binary.c 2013-05-23 08:57:01.000000000 +0200
++++ head/kernel/sysctl_binary.c 2013-05-23 17:09:34.000000000 +0200
+@@ -873,6 +873,14 @@ static const struct bin_table bin_bus_ta
};
@@ -9668,7 +9668,7 @@ Acked-by: jbeulich@novell.com
static const struct bin_table bin_s390dbf_table[] = {
{ CTL_INT, 5678 /* CTL_S390DBF_STOPPABLE */, "debug_stoppable" },
{ CTL_INT, 5679 /* CTL_S390DBF_ACTIVE */, "debug_active" },
-@@ -911,6 +919,9 @@ static const struct bin_table bin_root_t
+@@ -912,6 +920,9 @@ static const struct bin_table bin_root_t
{ CTL_DIR, CTL_BUS, "bus", bin_bus_table },
{ CTL_DIR, CTL_ABI, "abi" },
/* CTL_CPU not used */
diff --git a/patches.xen/xen3-patch-2.6.25 b/patches.xen/xen3-patch-2.6.25
index a24ea3b783..a1ad525b48 100644
--- a/patches.xen/xen3-patch-2.6.25
+++ b/patches.xen/xen3-patch-2.6.25
@@ -7,9 +7,9 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
2.6.32/arch/x86/kernel/rtc.c (hooks in {update,read}_persistent_clock() removed)
---- head.orig/arch/x86/Kconfig 2013-04-26 10:43:34.000000000 +0200
-+++ head/arch/x86/Kconfig 2013-04-26 10:44:00.000000000 +0200
-@@ -51,7 +51,7 @@ config X86
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:10:22.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:11:13.000000000 +0200
+@@ -52,7 +52,7 @@ config X86
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
select HAVE_SYSCALL_TRACEPOINTS
select SYSCTL_EXCEPTION_TRACE
@@ -18,7 +18,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
select HAVE_ARCH_KGDB
select HAVE_ARCH_TRACEHOOK
select HAVE_GENERIC_DMA_COHERENT if X86_32
-@@ -244,14 +244,12 @@ config X86_HT
+@@ -239,14 +239,12 @@ config X86_HT
depends on SMP && !XEN
config X86_NO_TSS
@@ -35,7 +35,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
config X86_32_LAZY_GS
def_bool y
-@@ -913,9 +911,8 @@ config X86_VISWS_APIC
+@@ -909,9 +907,8 @@ config X86_VISWS_APIC
depends on X86_32 && X86_VISWS
config X86_XEN_GENAPIC
@@ -46,7 +46,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
bool "Reroute for broken boot IRQs"
-@@ -1372,7 +1369,7 @@ config ARCH_SPARSEMEM_ENABLE
+@@ -1368,7 +1365,7 @@ config ARCH_SPARSEMEM_ENABLE
config ARCH_SPARSEMEM_DEFAULT
def_bool y
@@ -55,7 +55,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
config ARCH_SELECT_MEMORY_MODEL
def_bool y
-@@ -2154,10 +2151,10 @@ config PCI_CNB20LE_QUIRK
+@@ -2150,10 +2147,10 @@ config PCI_CNB20LE_QUIRK
You should say N unless you know you need this.
config XEN_PCIDEV_FRONTEND
@@ -68,7 +68,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
help
The PCI device frontend driver allows the kernel to import arbitrary
PCI devices from a PCI backend to support PCI driver domains.
-@@ -2165,7 +2162,6 @@ config XEN_PCIDEV_FRONTEND
+@@ -2161,7 +2158,6 @@ config XEN_PCIDEV_FRONTEND
config XEN_PCIDEV_FE_DEBUG
bool "Xen PCI Frontend Debugging"
depends on XEN_PCIDEV_FRONTEND
@@ -132,7 +132,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ .quad compat_sys_timerfd_gettime
ia32_syscall_end:
--- head.orig/arch/x86/kernel/Makefile 2013-03-21 14:20:59.000000000 +0100
-+++ head/arch/x86/kernel/Makefile 2013-03-21 14:21:54.000000000 +0100
++++ head/arch/x86/kernel/Makefile 2013-05-15 08:35:35.000000000 +0200
@@ -117,11 +117,10 @@ ifeq ($(CONFIG_X86_64),y)
obj-$(CONFIG_PCI_MMCONFIG) += mmconf-fam10h_64.o
obj-y += vsmp_64.o
@@ -142,7 +142,8 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o
endif
- disabled-obj-$(CONFIG_XEN) := early-quirks.o hpet.o i8237.o i8253.o i8259_$(BITS).o \
+-disabled-obj-$(CONFIG_XEN) := early-quirks.o hpet.o i8237.o i8253.o i8259_$(BITS).o \
++disabled-obj-$(CONFIG_XEN) := early-quirks.o i8237.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: asflags-$(CONFIG_XEN) :=
@@ -181,7 +182,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
return 0;
}
+#endif
---- head.orig/arch/x86/kernel/asm-offsets_32.c 2012-02-08 11:31:30.000000000 +0100
+--- head.orig/arch/x86/kernel/asm-offsets_32.c 2013-05-23 17:05:42.000000000 +0200
+++ head/arch/x86/kernel/asm-offsets_32.c 2012-02-08 11:41:08.000000000 +0100
@@ -1,7 +1,9 @@
#include <asm/ucontext.h>
@@ -4402,9 +4403,9 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ unsigned long range_end = mm->brk + 0x02000000;
+ return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
+}
---- head.orig/arch/x86/kernel/rtc.c 2013-04-26 09:59:53.000000000 +0200
-+++ head/arch/x86/kernel/rtc.c 2013-03-21 14:22:06.000000000 +0100
-@@ -30,6 +30,7 @@ EXPORT_SYMBOL(cmos_lock);
+--- head.orig/arch/x86/kernel/rtc.c 2013-05-23 08:55:32.000000000 +0200
++++ head/arch/x86/kernel/rtc.c 2013-05-23 17:11:10.000000000 +0200
+@@ -31,6 +31,7 @@ EXPORT_SYMBOL(cmos_lock);
DEFINE_SPINLOCK(rtc_lock);
EXPORT_SYMBOL(rtc_lock);
@@ -4412,7 +4413,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
/*
* In order to set the CMOS clock precisely, set_rtc_mmss has to be
* called 500 ms after the second nowtime has started, because when
-@@ -154,6 +155,7 @@ unsigned long mach_get_cmos_time(void)
+@@ -109,6 +110,7 @@ unsigned long mach_get_cmos_time(void)
return mktime(year, mon, day, hour, min, sec);
}
@@ -13456,100 +13457,70 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+{
+ WARN_ON(1);
+}
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
+--- head.orig/arch/x86/mm/pageattr-xen.c 2011-01-31 17:56:27.000000000 +0100
+++ head/arch/x86/mm/pageattr-xen.c 2011-03-23 09:46:36.000000000 +0100
-@@ -0,0 +1,1436 @@
+@@ -1,22 +1,28 @@
+-/*
+- * Copyright 2002 Andi Kleen, SuSE Labs.
+/*
+ * Copyright 2002 Andi Kleen, SuSE Labs.
-+ * Thanks to Ben LaHaise for precious feedback.
+ * Thanks to Ben LaHaise for precious feedback.
+- */
+-
+-#include <linux/mm.h>
+-#include <linux/sched.h>
+ */
-+#include <linux/highmem.h>
+ #include <linux/highmem.h>
+#include <linux/bootmem.h>
-+#include <linux/module.h>
+ #include <linux/module.h>
+#include <linux/sched.h>
-+#include <linux/slab.h>
+ #include <linux/slab.h>
+-#include <asm/uaccess.h>
+#include <linux/mm.h>
+#include <linux/interrupt.h>
+
+#include <asm/e820.h>
-+#include <asm/processor.h>
-+#include <asm/tlbflush.h>
+ #include <asm/processor.h>
+ #include <asm/tlbflush.h>
+-#include <asm/io.h>
+-
+-#ifdef CONFIG_XEN
+#include <asm/sections.h>
+#include <asm/uaccess.h>
-+#include <asm/pgalloc.h>
+ #include <asm/pgalloc.h>
+#include <asm/proto.h>
-+#include <asm/mmu_context.h>
-+
+ #include <asm/mmu_context.h>
+
+#ifndef CONFIG_X86_64
+#define TASK_SIZE64 TASK_SIZE
+#endif
+
-+static void _pin_lock(struct mm_struct *mm, int lock) {
-+ if (lock)
-+ spin_lock(&mm->page_table_lock);
-+#if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS
-+ /* While mm->page_table_lock protects us against insertions and
-+ * removals of higher level page table pages, it doesn't protect
-+ * against updates of pte-s. Such updates, however, require the
-+ * pte pages to be in consistent state (unpinned+writable or
-+ * pinned+readonly). The pinning and attribute changes, however
-+ * cannot be done atomically, which is why such updates must be
-+ * prevented from happening concurrently.
-+ * Note that no pte lock can ever elsewhere be acquired nesting
-+ * with an already acquired one in the same mm, or with the mm's
-+ * page_table_lock already acquired, as that would break in the
-+ * non-split case (where all these are actually resolving to the
-+ * one page_table_lock). Thus acquiring all of them here is not
-+ * going to result in dead locks, and the order of acquires
-+ * doesn't matter.
-+ */
-+ {
-+ pgd_t *pgd = mm->pgd;
-+ unsigned g;
-+
-+ for (g = 0; g <= ((TASK_SIZE64-1) / PGDIR_SIZE); g++, pgd++) {
-+ pud_t *pud;
-+ unsigned u;
-+
-+ if (pgd_none(*pgd))
-+ continue;
-+ pud = pud_offset(pgd, 0);
-+ for (u = 0; u < PTRS_PER_PUD; u++, pud++) {
-+ pmd_t *pmd;
-+ unsigned m;
-+
-+ if (pud_none(*pud))
-+ continue;
-+ pmd = pmd_offset(pud, 0);
-+ for (m = 0; m < PTRS_PER_PMD; m++, pmd++) {
-+ spinlock_t *ptl;
-+
-+ if (pmd_none(*pmd))
-+ continue;
-+ ptl = pte_lockptr(0, pmd);
-+ if (lock)
-+ spin_lock(ptl);
-+ else
-+ spin_unlock(ptl);
-+ }
-+ }
-+ }
-+ }
-+#endif
-+ if (!lock)
-+ spin_unlock(&mm->page_table_lock);
-+}
-+#define pin_lock(mm) _pin_lock(mm, 1)
-+#define pin_unlock(mm) _pin_lock(mm, 0)
-+
+ static void _pin_lock(struct mm_struct *mm, int lock) {
+ if (lock)
+ spin_lock(&mm->page_table_lock);
+@@ -75,23 +81,29 @@ static void _pin_lock(struct mm_struct *
+ #define pin_lock(mm) _pin_lock(mm, 1)
+ #define pin_unlock(mm) _pin_lock(mm, 0)
+
+-#define PIN_BATCH 8
+#define PIN_BATCH sizeof(void *)
-+static DEFINE_PER_CPU(multicall_entry_t[PIN_BATCH], pb_mcl);
-+
+ static DEFINE_PER_CPU(multicall_entry_t[PIN_BATCH], pb_mcl);
+
+-static inline unsigned int pgd_walk_set_prot(void *pt, pgprot_t flags,
+static inline unsigned int pgd_walk_set_prot(struct page *page, pgprot_t flags,
-+ unsigned int cpu, unsigned int seq)
-+{
-+ unsigned long pfn = page_to_pfn(page);
-+
+ unsigned int cpu, unsigned int seq)
+ {
+- struct page *page = virt_to_page(pt);
+ unsigned long pfn = page_to_pfn(page);
+
+- MULTI_update_va_mapping(per_cpu(pb_mcl, cpu) + seq,
+- (unsigned long)__va(pfn << PAGE_SHIFT),
+- pfn_pte(pfn, flags), 0);
+- if (unlikely(++seq == PIN_BATCH)) {
+- if (unlikely(HYPERVISOR_multicall_check(per_cpu(pb_mcl, cpu),
+- PIN_BATCH, NULL)))
+- BUG();
+- seq = 0;
+ if (PageHighMem(page)) {
+ if (pgprot_val(flags) & _PAGE_RW)
+ ClearPagePinned(page);
@@ -13565,69 +13536,68 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ BUG();
+ seq = 0;
+ }
-+ }
-+
-+ return seq;
-+}
-+
-+static void pgd_walk(pgd_t *pgd_base, pgprot_t flags)
-+{
-+ pgd_t *pgd = pgd_base;
-+ pud_t *pud;
-+ pmd_t *pmd;
-+ int g,u,m;
-+ unsigned int cpu, seq;
-+ multicall_entry_t *mcl;
-+
+ }
+
+ return seq;
+@@ -102,17 +114,19 @@ static void pgd_walk(pgd_t *pgd_base, pg
+ pgd_t *pgd = pgd_base;
+ pud_t *pud;
+ pmd_t *pmd;
+- pte_t *pte;
+ int g,u,m;
+ unsigned int cpu, seq;
+ multicall_entry_t *mcl;
+
+ if (xen_feature(XENFEAT_auto_translated_physmap))
+ return;
+
-+ cpu = get_cpu();
-+
-+ /*
+ cpu = get_cpu();
+
+ /*
+- * Cannot iterate up to USER_PTRS_PER_PGD as these pagetables may not
+- * be the 'current' task's pagetables (e.g., current may be 32-bit,
+- * but the pagetables may be for a 64-bit task).
+ * Cannot iterate up to USER_PTRS_PER_PGD on x86-64 as these pagetables
+ * may not be the 'current' task's pagetables (e.g., current may be
+ * 32-bit, but the pagetables may be for a 64-bit task).
-+ * Subtracting 1 from TASK_SIZE64 means the loop limit is correct
-+ * regardless of whether TASK_SIZE64 is a multiple of PGDIR_SIZE.
-+ */
-+ for (g = 0, seq = 0; g <= ((TASK_SIZE64-1) / PGDIR_SIZE); g++, pgd++) {
-+ if (pgd_none(*pgd))
-+ continue;
-+ pud = pud_offset(pgd, 0);
+ * Subtracting 1 from TASK_SIZE64 means the loop limit is correct
+ * regardless of whether TASK_SIZE64 is a multiple of PGDIR_SIZE.
+ */
+@@ -120,24 +134,24 @@ static void pgd_walk(pgd_t *pgd_base, pg
+ if (pgd_none(*pgd))
+ continue;
+ pud = pud_offset(pgd, 0);
+- if (PTRS_PER_PUD > 1) /* not folded */
+- seq = pgd_walk_set_prot(pud,flags,cpu,seq);
+ if (PTRS_PER_PUD > 1) /* not folded */
+ seq = pgd_walk_set_prot(virt_to_page(pud),flags,cpu,seq);
-+ for (u = 0; u < PTRS_PER_PUD; u++, pud++) {
-+ if (pud_none(*pud))
-+ continue;
-+ pmd = pmd_offset(pud, 0);
+ for (u = 0; u < PTRS_PER_PUD; u++, pud++) {
+ if (pud_none(*pud))
+ continue;
+ pmd = pmd_offset(pud, 0);
+- if (PTRS_PER_PMD > 1) /* not folded */
+- seq = pgd_walk_set_prot(pmd,flags,cpu,seq);
+ if (PTRS_PER_PMD > 1) /* not folded */
+ seq = pgd_walk_set_prot(virt_to_page(pmd),flags,cpu,seq);
-+ for (m = 0; m < PTRS_PER_PMD; m++, pmd++) {
-+ if (pmd_none(*pmd))
-+ continue;
+ for (m = 0; m < PTRS_PER_PMD; m++, pmd++) {
+ if (pmd_none(*pmd))
+ continue;
+- pte = pte_offset_kernel(pmd,0);
+- seq = pgd_walk_set_prot(pte,flags,cpu,seq);
+ seq = pgd_walk_set_prot(pmd_page(*pmd),flags,cpu,seq);
-+ }
-+ }
-+ }
-+
-+ mcl = per_cpu(pb_mcl, cpu);
+ }
+ }
+ }
+
+ mcl = per_cpu(pb_mcl, cpu);
+#ifdef CONFIG_X86_64
-+ if (unlikely(seq > PIN_BATCH - 2)) {
-+ if (unlikely(HYPERVISOR_multicall_check(mcl, seq, NULL)))
-+ BUG();
-+ seq = 0;
-+ }
-+ MULTI_update_va_mapping(mcl + seq,
-+ (unsigned long)__user_pgd(pgd_base),
-+ pfn_pte(virt_to_phys(__user_pgd(pgd_base))>>PAGE_SHIFT, flags),
-+ 0);
-+ MULTI_update_va_mapping(mcl + seq + 1,
-+ (unsigned long)pgd_base,
-+ pfn_pte(virt_to_phys(pgd_base)>>PAGE_SHIFT, flags),
-+ UVMF_TLB_FLUSH);
-+ if (unlikely(HYPERVISOR_multicall_check(mcl, seq + 2, NULL)))
-+ BUG();
+ if (unlikely(seq > PIN_BATCH - 2)) {
+ if (unlikely(HYPERVISOR_multicall_check(mcl, seq, NULL)))
+ BUG();
+@@ -153,6 +167,20 @@ static void pgd_walk(pgd_t *pgd_base, pg
+ UVMF_TLB_FLUSH);
+ if (unlikely(HYPERVISOR_multicall_check(mcl, seq + 2, NULL)))
+ BUG();
+#else
+ if (likely(seq != 0)) {
+ MULTI_update_va_mapping(per_cpu(pb_mcl, cpu) + seq,
@@ -13642,138 +13612,73 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ UVMF_TLB_FLUSH))
+ BUG();
+#endif
-+
-+ put_cpu();
-+}
-+
-+static void __pgd_pin(pgd_t *pgd)
-+{
-+ pgd_walk(pgd, PAGE_KERNEL_RO);
+
+ put_cpu();
+ }
+@@ -160,15 +188,20 @@ static void pgd_walk(pgd_t *pgd_base, pg
+ static void __pgd_pin(pgd_t *pgd)
+ {
+ pgd_walk(pgd, PAGE_KERNEL_RO);
+ kmap_flush_unused();
-+ xen_pgd_pin(__pa(pgd)); /* kernel */
+ xen_pgd_pin(__pa(pgd)); /* kernel */
+#ifdef CONFIG_X86_64
-+ xen_pgd_pin(__pa(__user_pgd(pgd))); /* user */
+ xen_pgd_pin(__pa(__user_pgd(pgd))); /* user */
+#endif
-+ SetPagePinned(virt_to_page(pgd));
-+}
-+
-+static void __pgd_unpin(pgd_t *pgd)
-+{
-+ xen_pgd_unpin(__pa(pgd));
+ SetPagePinned(virt_to_page(pgd));
+ }
+
+ static void __pgd_unpin(pgd_t *pgd)
+ {
+ xen_pgd_unpin(__pa(pgd));
+#ifdef CONFIG_X86_64
-+ xen_pgd_unpin(__pa(__user_pgd(pgd)));
+ xen_pgd_unpin(__pa(__user_pgd(pgd)));
+#endif
-+ pgd_walk(pgd, PAGE_KERNEL);
-+ ClearPagePinned(virt_to_page(pgd));
-+}
-+
-+void pgd_test_and_unpin(pgd_t *pgd)
-+{
-+ if (PagePinned(virt_to_page(pgd)))
-+ __pgd_unpin(pgd);
-+}
-+
-+void mm_pin(struct mm_struct *mm)
-+{
-+ if (xen_feature(XENFEAT_writable_page_tables))
-+ return;
-+
-+ pin_lock(mm);
-+ __pgd_pin(mm->pgd);
-+ pin_unlock(mm);
-+}
-+
-+void mm_unpin(struct mm_struct *mm)
-+{
-+ if (xen_feature(XENFEAT_writable_page_tables))
-+ return;
-+
-+ pin_lock(mm);
-+ __pgd_unpin(mm->pgd);
-+ pin_unlock(mm);
-+}
-+
-+void mm_pin_all(void)
-+{
-+ struct page *page;
-+ unsigned long flags;
-+
-+ if (xen_feature(XENFEAT_writable_page_tables))
-+ return;
-+
-+ /*
-+ * Allow uninterrupted access to the pgd_list. Also protects
-+ * __pgd_pin() by disabling preemption.
-+ * All other CPUs must be at a safe point (e.g., in stop_machine
-+ * or offlined entirely).
-+ */
-+ spin_lock_irqsave(&pgd_lock, flags);
-+ list_for_each_entry(page, &pgd_list, lru) {
-+ if (!PagePinned(page))
-+ __pgd_pin((pgd_t *)page_address(page));
-+ }
-+ spin_unlock_irqrestore(&pgd_lock, flags);
-+}
-+
-+void arch_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm)
-+{
-+ if (!PagePinned(virt_to_page(mm->pgd)))
-+ mm_pin(mm);
-+}
-+
-+void arch_exit_mmap(struct mm_struct *mm)
-+{
-+ struct task_struct *tsk = current;
-+
-+ task_lock(tsk);
-+
-+ /*
-+ * We aggressively remove defunct pgd from cr3. We execute unmap_vmas()
-+ * *much* faster this way, as no tlb flushes means bigger wrpt batches.
-+ */
-+ if (tsk->active_mm == mm) {
-+ tsk->active_mm = &init_mm;
-+ atomic_inc(&init_mm.mm_count);
-+
-+ switch_mm(mm, &init_mm, tsk);
-+
-+ atomic_dec(&mm->mm_count);
-+ BUG_ON(atomic_read(&mm->mm_count) == 0);
-+ }
-+
-+ task_unlock(tsk);
-+
-+ if (PagePinned(virt_to_page(mm->pgd))
+ pgd_walk(pgd, PAGE_KERNEL);
+ ClearPagePinned(virt_to_page(pgd));
+ }
+@@ -250,7 +283,7 @@ void arch_exit_mmap(struct mm_struct *mm
+ task_unlock(tsk);
+
+ if (PagePinned(virt_to_page(mm->pgd))
+- && (atomic_read(&mm->mm_count) == 1)
+ && atomic_read(&mm->mm_count) == 1
-+ && !mm->context.has_foreign_mappings)
-+ mm_unpin(mm);
-+}
-+
-+static void _pte_free(struct page *page, unsigned int order)
-+{
-+ BUG_ON(order);
+ && !mm->context.has_foreign_mappings)
+ mm_unpin(mm);
+ }
+@@ -258,285 +291,1146 @@ void arch_exit_mmap(struct mm_struct *mm
+ static void _pte_free(struct page *page, unsigned int order)
+ {
+ BUG_ON(order);
+- pte_free(page);
+ __pte_free(page);
-+}
-+
+ }
+
+-struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
+pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
-+{
-+ struct page *pte;
-+
+ {
+ struct page *pte;
+
+#ifdef CONFIG_HIGHPTE
+ pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT|__GFP_ZERO, 0);
+#else
-+ pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
+ pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
+#endif
-+ if (pte) {
+ if (pte) {
+ pgtable_page_ctor(pte);
-+ SetPageForeign(pte, _pte_free);
-+ init_page_count(pte);
-+ }
-+ return pte;
-+}
-+
+ SetPageForeign(pte, _pte_free);
+ init_page_count(pte);
+ }
+ return pte;
+ }
+
+-void pte_free(struct page *pte)
+void __pte_free(pgtable_t pte)
-+{
+ {
+- unsigned long va = (unsigned long)__va(page_to_pfn(pte)<<PAGE_SHIFT);
+-
+- if (!pte_write(*virt_to_ptep(va)))
+- if (HYPERVISOR_update_va_mapping(
+- va, pfn_pte(page_to_pfn(pte), PAGE_KERNEL), 0))
+ if (!PageHighMem(pte)) {
+ unsigned long va = (unsigned long)page_address(pte);
+ unsigned int level;
@@ -13784,20 +13689,24 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ && HYPERVISOR_update_va_mapping(va,
+ mk_pte(pte, PAGE_KERNEL),
+ 0))
-+ BUG();
+ BUG();
+ } else
+#ifdef CONFIG_HIGHPTE
+ ClearPagePinned(pte);
+#else
+ BUG();
+#endif
-+
-+ ClearPageForeign(pte);
-+ init_page_count(pte);
+
+ ClearPageForeign(pte);
+ init_page_count(pte);
+-
+ pgtable_page_dtor(pte);
-+ __free_page(pte);
-+}
-+
+ __free_page(pte);
+ }
+-#endif /* CONFIG_XEN */
+
+-pte_t *lookup_address(unsigned long address)
+-{
+#if PAGETABLE_LEVELS >= 3
+static void _pmd_free(struct page *page, unsigned int order)
+{
@@ -14022,16 +13931,19 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ */
+pte_t *lookup_address(unsigned long address, unsigned int *level)
+{
-+ pgd_t *pgd = pgd_offset_k(address);
-+ pud_t *pud;
-+ pmd_t *pmd;
+ pgd_t *pgd = pgd_offset_k(address);
+ pud_t *pud;
+ pmd_t *pmd;
+- pte_t *pte;
+
+ *level = PG_LEVEL_NONE;
+
-+ if (pgd_none(*pgd))
-+ return NULL;
+ if (pgd_none(*pgd))
+ return NULL;
+
-+ pud = pud_offset(pgd, address);
+ pud = pud_offset(pgd, address);
+- if (!pud_present(*pud))
+- return NULL;
+ if (pud_none(*pud))
+ return NULL;
+
@@ -14039,14 +13951,31 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ if (pud_large(*pud) || !pud_present(*pud))
+ return (pte_t *)pud;
+
-+ pmd = pmd_offset(pud, address);
+ pmd = pmd_offset(pud, address);
+- if (!pmd_present(*pmd))
+- return NULL;
+- if (pmd_large(*pmd))
+ if (pmd_none(*pmd))
+ return NULL;
+
+ *level = PG_LEVEL_2M;
+ if (pmd_large(*pmd) || !pmd_present(*pmd))
-+ return (pte_t *)pmd;
-+
+ return (pte_t *)pmd;
+- pte = pte_offset_kernel(pmd, address);
+- if (pte && !pte_present(*pte))
+- pte = NULL;
+- return pte;
+-}
+
+-static struct page *split_large_page(unsigned long address, pgprot_t prot,
+- pgprot_t ref_prot)
+-{
+- int i;
+- unsigned long addr;
+- struct page *base = alloc_pages(GFP_KERNEL, 0);
+- pte_t *pbase;
+- if (!base)
+- return NULL;
+ *level = PG_LEVEL_4K;
+
+ return pte_offset_kernel(pmd, address);
@@ -14124,15 +14053,25 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ goto out_unlock;
+ }
+
-+ /*
+ /*
+- * page_private is used to track the number of entries in
+- * the page table page have non standard attributes.
+ * Calculate the number of pages, which fit into this large
+ * page starting at address:
-+ */
+ */
+- SetPagePrivate(base);
+- page_private(base) = 0;
+ nextpage_addr = (address + psize) & pmask;
+ numpages = (nextpage_addr - address) >> PAGE_SHIFT;
+ if (numpages < cpa->numpages)
+ cpa->numpages = numpages;
-+
+
+- address = __pa(address);
+- addr = address & LARGE_PAGE_MASK;
+- pbase = (pte_t *)page_address(base);
+- for (i = 0; i < PTRS_PER_PTE; i++, addr += PAGE_SIZE) {
+- pbase[i] = pfn_pte(addr >> PAGE_SHIFT,
+- addr == address ? prot : ref_prot);
+ /*
+ * We are safe now. Check whether the new pgprot is the same:
+ */
@@ -14165,8 +14104,15 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ if (pgprot_val(chk_prot) != pgprot_val(new_prot))
+ goto out_unlock;
+ }
-+ }
-+
+ }
+- return base;
+-}
+
+-void clflush_cache_range(void *adr, int size)
+-{
+- int i;
+- for (i = 0; i < size; i += boot_cpu_data.x86_clflush_size)
+- clflush(adr+i);
+ /*
+ * If there are no changes, return. maxpages has been updated
+ * above:
@@ -14199,18 +14145,29 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ spin_unlock_irqrestore(&pgd_lock, flags);
+
+ return do_split;
-+}
-+
+ }
+
+-static void flush_kernel_map(void *arg)
+static LIST_HEAD(page_pool);
+static unsigned long pool_size, pool_pages, pool_low;
+static unsigned long pool_used, pool_failed;
+
+static void cpa_fill_pool(struct page **ret)
-+{
+ {
+- struct list_head *l = (struct list_head *)arg;
+- struct page *pg;
+ gfp_t gfp = GFP_KERNEL;
+ unsigned long flags;
+ struct page *p;
-+
+
+- /* When clflush is available always use it because it is
+- much cheaper than WBINVD. */
+- /* clflush is still broken. Disable for now. */
+- if (1 || !cpu_has_clflush)
+- asm volatile("wbinvd" ::: "memory");
+- else list_for_each_entry(pg, l, lru) {
+- void *adr = page_address(pg);
+- clflush_cache_range(adr, PAGE_SIZE);
+ /*
+ * Avoid recursion (on debug-pagealloc) and also signal
+ * our priority to get to these pagetables:
@@ -14242,18 +14199,27 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ list_add(&p->lru, &page_pool);
+ pool_pages++;
+ spin_unlock_irqrestore(&pgd_lock, flags);
-+ }
-+
+ }
+- __flush_tlb_all();
+-}
+
+-static inline void flush_map(struct list_head *l)
+-{
+- on_each_cpu(flush_kernel_map, l, 1, 1);
+ current->flags &= ~PF_MEMALLOC;
-+}
-+
+ }
+
+-static LIST_HEAD(deferred_pages); /* protected by init_mm.mmap_sem */
+#define SHIFT_MB (20 - PAGE_SHIFT)
+#define ROUND_MB_GB ((1 << 10) - 1)
+#define SHIFT_MB_GB 10
+#define POOL_PAGES_PER_GB 16
-+
+
+-static inline void save_page(struct page *fpage)
+void __init cpa_init(void)
-+{
+ {
+- if (!test_and_set_bit(PG_arch_1, &fpage->flags))
+- list_add(&fpage->lru, &deferred_pages);
+ struct sysinfo si;
+ unsigned long gb;
+
@@ -14277,16 +14243,37 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ printk(KERN_DEBUG
+ "CPA: page pool initialized %lu of %lu pages preallocated\n",
+ pool_pages, pool_size);
-+}
-+
+ }
+
+-/*
+- * No more special protections in this 2/4MB area - revert to a
+- * large page again.
+- */
+-static void revert_page(unsigned long address, pgprot_t ref_prot)
+static int split_large_page(pte_t *kpte, unsigned long address)
-+{
+ {
+- pgd_t *pgd;
+- pud_t *pud;
+- pmd_t *pmd;
+- pte_t large_pte;
+- unsigned long pfn;
+ unsigned long flags, mfn, mfninc = 1;
+ unsigned int i, level;
+ pte_t *pbase, *tmp;
+ pgprot_t ref_prot;
+ struct page *base;
-+
+
+- pgd = pgd_offset_k(address);
+- BUG_ON(pgd_none(*pgd));
+- pud = pud_offset(pgd,address);
+- BUG_ON(pud_none(*pud));
+- pmd = pmd_offset(pud, address);
+- BUG_ON(__pmd_val(*pmd) & _PAGE_PSE);
+- pfn = (__pa(address) & LARGE_PAGE_MASK) >> PAGE_SHIFT;
+- large_pte = pfn_pte(pfn, ref_prot);
+- large_pte = pte_mkhuge(large_pte);
+- set_pte((pte_t *)pmd, large_pte);
+-}
+ /*
+ * Get a page from the pool. The pool list is protected by the
+ * pgd_lock, which we have to take anyway for the split
@@ -14304,7 +14291,43 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ base = list_first_entry(&page_pool, struct page, lru);
+ list_del(&base->lru);
+ pool_pages--;
-+
+
+-static int
+-__change_page_attr(unsigned long address, unsigned long pfn, pgprot_t prot,
+- pgprot_t ref_prot)
+-{
+- pte_t *kpte;
+- struct page *kpte_page;
+- pgprot_t ref_prot2;
+-
+- kpte = lookup_address(address);
+- if (!kpte) return 0;
+- kpte_page = virt_to_page(((unsigned long)kpte) & PAGE_MASK);
+- BUG_ON(PageLRU(kpte_page));
+- BUG_ON(PageCompound(kpte_page));
+- if (pgprot_val(prot) != pgprot_val(ref_prot)) {
+- if (!pte_huge(*kpte)) {
+- set_pte(kpte, pfn_pte(pfn, prot));
+- } else {
+- /*
+- * split_large_page will take the reference for this
+- * change_page_attr on the split page.
+- */
+- struct page *split;
+- ref_prot2 = pte_pgprot(pte_clrhuge(*kpte));
+- split = split_large_page(address, prot, ref_prot2);
+- if (!split)
+- return -ENOMEM;
+- pgprot_val(ref_prot2) &= ~_PAGE_NX;
+- set_pte(kpte, mk_pte(split, ref_prot2));
+- kpte_page = split;
+- }
+- page_private(kpte_page)++;
+- } else if (!pte_huge(*kpte)) {
+- set_pte(kpte, pfn_pte(pfn, ref_prot));
+- BUG_ON(page_private(kpte_page) == 0);
+- page_private(kpte_page)--;
+- } else
+ if (pool_pages < pool_low)
+ pool_low = pool_pages;
+ }
@@ -14350,17 +14373,26 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ if (!xen_feature(XENFEAT_writable_page_tables) &&
+ HYPERVISOR_update_va_mapping((unsigned long)pbase,
+ mk_pte(base, PAGE_KERNEL_RO), 0))
-+ BUG();
+ BUG();
+ ref_prot = pte_pgprot(pte_mkexec(pte_clrhuge(*kpte)));
+ pgprot_val(ref_prot) |= _PAGE_PRESENT;
+ __set_pmd_pte(kpte, address, level, mk_pte(base, ref_prot));
+ base = NULL;
-+
+
+- /* on x86-64 the direct mapping set at boot is not using 4k pages */
+out_unlock:
-+ /*
+ /*
+- * ..., but the XEN guest kernels (currently) do:
+- * If the pte was reserved, it means it was created at boot
+- * time (not via split_large_page) and in turn we must not
+- * replace it with a large page.
+ * If we dropped out via the lookup_address check under
+ * pgd_lock then stick the page back into the pool:
-+ */
+ */
+-#ifndef CONFIG_XEN
+- BUG_ON(PageReserved(kpte_page));
+-#else
+- if (PageReserved(kpte_page))
+ if (base) {
+ list_add(&base->lru, &page_pool);
+ pool_pages++;
@@ -14501,7 +14533,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ * mapping already:
+ */
+ if (within(cpa->vaddr, (unsigned long) _text, (unsigned long) _end))
-+ return 0;
+ return 0;
+
+ /*
+ * If the physical address is inside the kernel map, we need
@@ -14518,14 +14550,17 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ * The high mapping range is imprecise, so ignore the return value.
+ */
+ __change_page_attr_set_clr(&alias_cpa, 0);
-+#endif
+ #endif
+ return ret;
+}
+
+static int __change_page_attr_set_clr(struct cpa_data *cpa, int checkalias)
+{
+ int ret, numpages = cpa->numpages;
-+
+
+- save_page(kpte_page);
+- if (page_private(kpte_page) == 0)
+- revert_page(address, ref_prot);
+ while (numpages) {
+ /*
+ * Store the remaining nr of pages for the large page
@@ -14552,11 +14587,28 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ numpages -= cpa->numpages;
+ cpa->vaddr += cpa->numpages * PAGE_SIZE;
+ }
-+ return 0;
+ return 0;
+-}
+}
-+
+
+-/*
+- * Change the page attributes of an page in the linear mapping.
+- *
+- * This should be used when a page is mapped with a different caching policy
+- * than write-back somewhere - some CPUs do not like it when mappings with
+- * different caching policies exist. This changes the page attributes of the
+- * in kernel linear mapping too.
+- *
+- * The caller needs to ensure that there are no conflicting mappings elsewhere.
+- * This function only deals with the kernel linear map.
+- *
+- * Caller must call global_flush_tlb() after this.
+- */
+-int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot)
+static inline int cache_attr(pgprot_t attr)
-+{
+ {
+- int err = 0, kernel_map = 0;
+- int i;
+ return pgprot_val(attr) &
+ (_PAGE_PAT | _PAGE_PAT_LARGE | _PAGE_PWT | _PAGE_PCD);
+}
@@ -14575,7 +14627,11 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ mask_clr = canon_pgprot(mask_clr);
+ if (!pgprot_val(mask_set) && !pgprot_val(mask_clr))
+ return 0;
-+
+
+- if (address >= __START_KERNEL_map
+- && address < __START_KERNEL_map + KERNEL_TEXT_SIZE) {
+- address = (unsigned long)__va(__pa(address));
+- kernel_map = 1;
+ /* Ensure we are PAGE_SIZE aligned */
+ if (addr & ~PAGE_MASK) {
+ addr &= PAGE_MASK;
@@ -14583,14 +14639,36 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ * People should not be passing in unaligned addresses:
+ */
+ WARN_ON_ONCE(1);
-+ }
-+
+ }
+
+- down_write(&init_mm.mmap_sem);
+- for (i = 0; i < numpages; i++, address += PAGE_SIZE) {
+- unsigned long pfn = __pa(address) >> PAGE_SHIFT;
+ cpa.vaddr = addr;
+ cpa.numpages = numpages;
+ cpa.mask_set = mask_set;
+ cpa.mask_clr = mask_clr;
+ cpa.flushtlb = 0;
-+
+
+- if (!kernel_map || pte_present(pfn_pte(0, prot))) {
+- err = __change_page_attr(address, pfn, prot, PAGE_KERNEL);
+- if (err)
+- break;
+- }
+- /* Handle kernel mapping too which aliases part of the
+- * lowmem */
+- if (__pa(address) < KERNEL_TEXT_SIZE) {
+- unsigned long addr2;
+- pgprot_t prot2;
+- addr2 = __START_KERNEL_map + __pa(address);
+- /* Make sure the kernel mappings stay executable */
+- prot2 = pte_pgprot(pte_mkexec(pfn_pte(0, prot)));
+- err = __change_page_attr(addr2, pfn, prot2,
+- PAGE_KERNEL_EXEC);
+- }
+- }
+- up_write(&init_mm.mmap_sem);
+- return err;
+ /* No alias checking for _NX bit modifications */
+ checkalias = (pgprot_val(mask_set) | pgprot_val(mask_clr)) != _PAGE_NX;
+
@@ -14660,9 +14738,11 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+int set_memory_nx(unsigned long addr, int numpages)
+{
+ return change_page_attr_set(addr, numpages, __pgprot(_PAGE_NX));
-+}
+ }
+EXPORT_SYMBOL(set_memory_nx);
-+
+
+-/* Don't call this for MMIO areas that may not have a mem_map entry */
+-int change_page_attr(struct page *page, int numpages, pgprot_t prot)
+int set_memory_ro(unsigned long addr, int numpages)
+{
+ return change_page_attr_clear(addr, numpages, __pgprot(_PAGE_RW));
@@ -14679,8 +14759,9 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+}
+
+int set_pages_uc(struct page *page, int numpages)
-+{
-+ unsigned long addr = (unsigned long)page_address(page);
+ {
+ unsigned long addr = (unsigned long)page_address(page);
+- return change_page_attr_addr(addr, numpages, prot);
+
+ return set_memory_uc(addr, numpages);
+}
@@ -14691,9 +14772,13 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ unsigned long addr = (unsigned long)page_address(page);
+
+ return set_memory_wb(addr, numpages);
-+}
+ }
+EXPORT_SYMBOL(set_pages_wb);
-+
+
+-void global_flush_tlb(void)
+-{
+- struct page *pg, *next;
+- struct list_head l;
+int set_pages_x(struct page *page, int numpages)
+{
+ unsigned long addr = (unsigned long)page_address(page);
@@ -14754,13 +14839,20 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ debug_check_no_locks_freed(page_address(page),
+ numpages * PAGE_SIZE);
+ }
-+
-+ /*
+
+ /*
+- * Write-protect the semaphore, to exclude two contexts
+- * doing a list_replace_init() call in parallel and to
+- * exclude new additions to the deferred_pages list:
+ * If page allocator is not up yet then do not call c_p_a():
-+ */
+ */
+- down_write(&init_mm.mmap_sem);
+- list_replace_init(&deferred_pages, &l);
+- up_write(&init_mm.mmap_sem);
+ if (!debug_pagealloc_enabled)
+ return;
-+
+
+- flush_map(&l);
+ /*
+ * The return value is ignored as the calls cannot fail.
+ * Large pages are kept enabled at boot time, and are
@@ -14773,13 +14865,24 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+ __set_pages_p(page, numpages);
+ else
+ __set_pages_np(page, numpages);
-+
+
+- list_for_each_entry_safe(pg, next, &l, lru) {
+- list_del(&pg->lru);
+- clear_bit(PG_arch_1, &pg->flags);
+- if (page_private(pg) != 0)
+- continue;
+- ClearPagePrivate(pg);
+- __free_page(pg);
+- }
+-}
+ /*
+ * We should perform an IPI and flush all tlbs,
+ * but that can deadlock->flush only current cpu:
+ */
+ __flush_tlb_all();
-+
+
+-EXPORT_SYMBOL(change_page_attr);
+-EXPORT_SYMBOL(global_flush_tlb);
+ /*
+ * Try to refill the page pool here. We can do this only after
+ * the tlb flush.
@@ -14895,551 +14998,6 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+#ifdef CONFIG_CPA_DEBUG
+#include "pageattr-test.c"
+#endif
---- head.orig/arch/x86/mm/pageattr_64-xen.c 2011-01-31 17:56:27.000000000 +0100
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,542 +0,0 @@
--/*
-- * Copyright 2002 Andi Kleen, SuSE Labs.
-- * Thanks to Ben LaHaise for precious feedback.
-- */
--
--#include <linux/mm.h>
--#include <linux/sched.h>
--#include <linux/highmem.h>
--#include <linux/module.h>
--#include <linux/slab.h>
--#include <asm/uaccess.h>
--#include <asm/processor.h>
--#include <asm/tlbflush.h>
--#include <asm/io.h>
--
--#ifdef CONFIG_XEN
--#include <asm/pgalloc.h>
--#include <asm/mmu_context.h>
--
--static void _pin_lock(struct mm_struct *mm, int lock) {
-- if (lock)
-- spin_lock(&mm->page_table_lock);
--#if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS
-- /* While mm->page_table_lock protects us against insertions and
-- * removals of higher level page table pages, it doesn't protect
-- * against updates of pte-s. Such updates, however, require the
-- * pte pages to be in consistent state (unpinned+writable or
-- * pinned+readonly). The pinning and attribute changes, however
-- * cannot be done atomically, which is why such updates must be
-- * prevented from happening concurrently.
-- * Note that no pte lock can ever elsewhere be acquired nesting
-- * with an already acquired one in the same mm, or with the mm's
-- * page_table_lock already acquired, as that would break in the
-- * non-split case (where all these are actually resolving to the
-- * one page_table_lock). Thus acquiring all of them here is not
-- * going to result in dead locks, and the order of acquires
-- * doesn't matter.
-- */
-- {
-- pgd_t *pgd = mm->pgd;
-- unsigned g;
--
-- for (g = 0; g <= ((TASK_SIZE64-1) / PGDIR_SIZE); g++, pgd++) {
-- pud_t *pud;
-- unsigned u;
--
-- if (pgd_none(*pgd))
-- continue;
-- pud = pud_offset(pgd, 0);
-- for (u = 0; u < PTRS_PER_PUD; u++, pud++) {
-- pmd_t *pmd;
-- unsigned m;
--
-- if (pud_none(*pud))
-- continue;
-- pmd = pmd_offset(pud, 0);
-- for (m = 0; m < PTRS_PER_PMD; m++, pmd++) {
-- spinlock_t *ptl;
--
-- if (pmd_none(*pmd))
-- continue;
-- ptl = pte_lockptr(0, pmd);
-- if (lock)
-- spin_lock(ptl);
-- else
-- spin_unlock(ptl);
-- }
-- }
-- }
-- }
--#endif
-- if (!lock)
-- spin_unlock(&mm->page_table_lock);
--}
--#define pin_lock(mm) _pin_lock(mm, 1)
--#define pin_unlock(mm) _pin_lock(mm, 0)
--
--#define PIN_BATCH 8
--static DEFINE_PER_CPU(multicall_entry_t[PIN_BATCH], pb_mcl);
--
--static inline unsigned int pgd_walk_set_prot(void *pt, pgprot_t flags,
-- unsigned int cpu, unsigned int seq)
--{
-- struct page *page = virt_to_page(pt);
-- unsigned long pfn = page_to_pfn(page);
--
-- MULTI_update_va_mapping(per_cpu(pb_mcl, cpu) + seq,
-- (unsigned long)__va(pfn << PAGE_SHIFT),
-- pfn_pte(pfn, flags), 0);
-- if (unlikely(++seq == PIN_BATCH)) {
-- if (unlikely(HYPERVISOR_multicall_check(per_cpu(pb_mcl, cpu),
-- PIN_BATCH, NULL)))
-- BUG();
-- seq = 0;
-- }
--
-- return seq;
--}
--
--static void pgd_walk(pgd_t *pgd_base, pgprot_t flags)
--{
-- pgd_t *pgd = pgd_base;
-- pud_t *pud;
-- pmd_t *pmd;
-- pte_t *pte;
-- int g,u,m;
-- unsigned int cpu, seq;
-- multicall_entry_t *mcl;
--
-- cpu = get_cpu();
--
-- /*
-- * Cannot iterate up to USER_PTRS_PER_PGD as these pagetables may not
-- * be the 'current' task's pagetables (e.g., current may be 32-bit,
-- * but the pagetables may be for a 64-bit task).
-- * Subtracting 1 from TASK_SIZE64 means the loop limit is correct
-- * regardless of whether TASK_SIZE64 is a multiple of PGDIR_SIZE.
-- */
-- for (g = 0, seq = 0; g <= ((TASK_SIZE64-1) / PGDIR_SIZE); g++, pgd++) {
-- if (pgd_none(*pgd))
-- continue;
-- pud = pud_offset(pgd, 0);
-- if (PTRS_PER_PUD > 1) /* not folded */
-- seq = pgd_walk_set_prot(pud,flags,cpu,seq);
-- for (u = 0; u < PTRS_PER_PUD; u++, pud++) {
-- if (pud_none(*pud))
-- continue;
-- pmd = pmd_offset(pud, 0);
-- if (PTRS_PER_PMD > 1) /* not folded */
-- seq = pgd_walk_set_prot(pmd,flags,cpu,seq);
-- for (m = 0; m < PTRS_PER_PMD; m++, pmd++) {
-- if (pmd_none(*pmd))
-- continue;
-- pte = pte_offset_kernel(pmd,0);
-- seq = pgd_walk_set_prot(pte,flags,cpu,seq);
-- }
-- }
-- }
--
-- mcl = per_cpu(pb_mcl, cpu);
-- if (unlikely(seq > PIN_BATCH - 2)) {
-- if (unlikely(HYPERVISOR_multicall_check(mcl, seq, NULL)))
-- BUG();
-- seq = 0;
-- }
-- MULTI_update_va_mapping(mcl + seq,
-- (unsigned long)__user_pgd(pgd_base),
-- pfn_pte(virt_to_phys(__user_pgd(pgd_base))>>PAGE_SHIFT, flags),
-- 0);
-- MULTI_update_va_mapping(mcl + seq + 1,
-- (unsigned long)pgd_base,
-- pfn_pte(virt_to_phys(pgd_base)>>PAGE_SHIFT, flags),
-- UVMF_TLB_FLUSH);
-- if (unlikely(HYPERVISOR_multicall_check(mcl, seq + 2, NULL)))
-- BUG();
--
-- put_cpu();
--}
--
--static void __pgd_pin(pgd_t *pgd)
--{
-- pgd_walk(pgd, PAGE_KERNEL_RO);
-- xen_pgd_pin(__pa(pgd)); /* kernel */
-- xen_pgd_pin(__pa(__user_pgd(pgd))); /* user */
-- SetPagePinned(virt_to_page(pgd));
--}
--
--static void __pgd_unpin(pgd_t *pgd)
--{
-- xen_pgd_unpin(__pa(pgd));
-- xen_pgd_unpin(__pa(__user_pgd(pgd)));
-- pgd_walk(pgd, PAGE_KERNEL);
-- ClearPagePinned(virt_to_page(pgd));
--}
--
--void pgd_test_and_unpin(pgd_t *pgd)
--{
-- if (PagePinned(virt_to_page(pgd)))
-- __pgd_unpin(pgd);
--}
--
--void mm_pin(struct mm_struct *mm)
--{
-- if (xen_feature(XENFEAT_writable_page_tables))
-- return;
--
-- pin_lock(mm);
-- __pgd_pin(mm->pgd);
-- pin_unlock(mm);
--}
--
--void mm_unpin(struct mm_struct *mm)
--{
-- if (xen_feature(XENFEAT_writable_page_tables))
-- return;
--
-- pin_lock(mm);
-- __pgd_unpin(mm->pgd);
-- pin_unlock(mm);
--}
--
--void mm_pin_all(void)
--{
-- struct page *page;
-- unsigned long flags;
--
-- if (xen_feature(XENFEAT_writable_page_tables))
-- return;
--
-- /*
-- * Allow uninterrupted access to the pgd_list. Also protects
-- * __pgd_pin() by disabling preemption.
-- * All other CPUs must be at a safe point (e.g., in stop_machine
-- * or offlined entirely).
-- */
-- spin_lock_irqsave(&pgd_lock, flags);
-- list_for_each_entry(page, &pgd_list, lru) {
-- if (!PagePinned(page))
-- __pgd_pin((pgd_t *)page_address(page));
-- }
-- spin_unlock_irqrestore(&pgd_lock, flags);
--}
--
--void arch_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm)
--{
-- if (!PagePinned(virt_to_page(mm->pgd)))
-- mm_pin(mm);
--}
--
--void arch_exit_mmap(struct mm_struct *mm)
--{
-- struct task_struct *tsk = current;
--
-- task_lock(tsk);
--
-- /*
-- * We aggressively remove defunct pgd from cr3. We execute unmap_vmas()
-- * *much* faster this way, as no tlb flushes means bigger wrpt batches.
-- */
-- if (tsk->active_mm == mm) {
-- tsk->active_mm = &init_mm;
-- atomic_inc(&init_mm.mm_count);
--
-- switch_mm(mm, &init_mm, tsk);
--
-- atomic_dec(&mm->mm_count);
-- BUG_ON(atomic_read(&mm->mm_count) == 0);
-- }
--
-- task_unlock(tsk);
--
-- if (PagePinned(virt_to_page(mm->pgd))
-- && (atomic_read(&mm->mm_count) == 1)
-- && !mm->context.has_foreign_mappings)
-- mm_unpin(mm);
--}
--
--static void _pte_free(struct page *page, unsigned int order)
--{
-- BUG_ON(order);
-- pte_free(page);
--}
--
--struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
--{
-- struct page *pte;
--
-- pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
-- if (pte) {
-- SetPageForeign(pte, _pte_free);
-- init_page_count(pte);
-- }
-- return pte;
--}
--
--void pte_free(struct page *pte)
--{
-- unsigned long va = (unsigned long)__va(page_to_pfn(pte)<<PAGE_SHIFT);
--
-- if (!pte_write(*virt_to_ptep(va)))
-- if (HYPERVISOR_update_va_mapping(
-- va, pfn_pte(page_to_pfn(pte), PAGE_KERNEL), 0))
-- BUG();
--
-- ClearPageForeign(pte);
-- init_page_count(pte);
--
-- __free_page(pte);
--}
--#endif /* CONFIG_XEN */
--
--pte_t *lookup_address(unsigned long address)
--{
-- pgd_t *pgd = pgd_offset_k(address);
-- pud_t *pud;
-- pmd_t *pmd;
-- pte_t *pte;
-- if (pgd_none(*pgd))
-- return NULL;
-- pud = pud_offset(pgd, address);
-- if (!pud_present(*pud))
-- return NULL;
-- pmd = pmd_offset(pud, address);
-- if (!pmd_present(*pmd))
-- return NULL;
-- if (pmd_large(*pmd))
-- return (pte_t *)pmd;
-- pte = pte_offset_kernel(pmd, address);
-- if (pte && !pte_present(*pte))
-- pte = NULL;
-- return pte;
--}
--
--static struct page *split_large_page(unsigned long address, pgprot_t prot,
-- pgprot_t ref_prot)
--{
-- int i;
-- unsigned long addr;
-- struct page *base = alloc_pages(GFP_KERNEL, 0);
-- pte_t *pbase;
-- if (!base)
-- return NULL;
-- /*
-- * page_private is used to track the number of entries in
-- * the page table page have non standard attributes.
-- */
-- SetPagePrivate(base);
-- page_private(base) = 0;
--
-- address = __pa(address);
-- addr = address & LARGE_PAGE_MASK;
-- pbase = (pte_t *)page_address(base);
-- for (i = 0; i < PTRS_PER_PTE; i++, addr += PAGE_SIZE) {
-- pbase[i] = pfn_pte(addr >> PAGE_SHIFT,
-- addr == address ? prot : ref_prot);
-- }
-- return base;
--}
--
--void clflush_cache_range(void *adr, int size)
--{
-- int i;
-- for (i = 0; i < size; i += boot_cpu_data.x86_clflush_size)
-- clflush(adr+i);
--}
--
--static void flush_kernel_map(void *arg)
--{
-- struct list_head *l = (struct list_head *)arg;
-- struct page *pg;
--
-- /* When clflush is available always use it because it is
-- much cheaper than WBINVD. */
-- /* clflush is still broken. Disable for now. */
-- if (1 || !cpu_has_clflush)
-- asm volatile("wbinvd" ::: "memory");
-- else list_for_each_entry(pg, l, lru) {
-- void *adr = page_address(pg);
-- clflush_cache_range(adr, PAGE_SIZE);
-- }
-- __flush_tlb_all();
--}
--
--static inline void flush_map(struct list_head *l)
--{
-- on_each_cpu(flush_kernel_map, l, 1, 1);
--}
--
--static LIST_HEAD(deferred_pages); /* protected by init_mm.mmap_sem */
--
--static inline void save_page(struct page *fpage)
--{
-- if (!test_and_set_bit(PG_arch_1, &fpage->flags))
-- list_add(&fpage->lru, &deferred_pages);
--}
--
--/*
-- * No more special protections in this 2/4MB area - revert to a
-- * large page again.
-- */
--static void revert_page(unsigned long address, pgprot_t ref_prot)
--{
-- pgd_t *pgd;
-- pud_t *pud;
-- pmd_t *pmd;
-- pte_t large_pte;
-- unsigned long pfn;
--
-- pgd = pgd_offset_k(address);
-- BUG_ON(pgd_none(*pgd));
-- pud = pud_offset(pgd,address);
-- BUG_ON(pud_none(*pud));
-- pmd = pmd_offset(pud, address);
-- BUG_ON(__pmd_val(*pmd) & _PAGE_PSE);
-- pfn = (__pa(address) & LARGE_PAGE_MASK) >> PAGE_SHIFT;
-- large_pte = pfn_pte(pfn, ref_prot);
-- large_pte = pte_mkhuge(large_pte);
-- set_pte((pte_t *)pmd, large_pte);
--}
--
--static int
--__change_page_attr(unsigned long address, unsigned long pfn, pgprot_t prot,
-- pgprot_t ref_prot)
--{
-- pte_t *kpte;
-- struct page *kpte_page;
-- pgprot_t ref_prot2;
--
-- kpte = lookup_address(address);
-- if (!kpte) return 0;
-- kpte_page = virt_to_page(((unsigned long)kpte) & PAGE_MASK);
-- BUG_ON(PageLRU(kpte_page));
-- BUG_ON(PageCompound(kpte_page));
-- if (pgprot_val(prot) != pgprot_val(ref_prot)) {
-- if (!pte_huge(*kpte)) {
-- set_pte(kpte, pfn_pte(pfn, prot));
-- } else {
-- /*
-- * split_large_page will take the reference for this
-- * change_page_attr on the split page.
-- */
-- struct page *split;
-- ref_prot2 = pte_pgprot(pte_clrhuge(*kpte));
-- split = split_large_page(address, prot, ref_prot2);
-- if (!split)
-- return -ENOMEM;
-- pgprot_val(ref_prot2) &= ~_PAGE_NX;
-- set_pte(kpte, mk_pte(split, ref_prot2));
-- kpte_page = split;
-- }
-- page_private(kpte_page)++;
-- } else if (!pte_huge(*kpte)) {
-- set_pte(kpte, pfn_pte(pfn, ref_prot));
-- BUG_ON(page_private(kpte_page) == 0);
-- page_private(kpte_page)--;
-- } else
-- BUG();
--
-- /* on x86-64 the direct mapping set at boot is not using 4k pages */
-- /*
-- * ..., but the XEN guest kernels (currently) do:
-- * If the pte was reserved, it means it was created at boot
-- * time (not via split_large_page) and in turn we must not
-- * replace it with a large page.
-- */
--#ifndef CONFIG_XEN
-- BUG_ON(PageReserved(kpte_page));
--#else
-- if (PageReserved(kpte_page))
-- return 0;
--#endif
--
-- save_page(kpte_page);
-- if (page_private(kpte_page) == 0)
-- revert_page(address, ref_prot);
-- return 0;
--}
--
--/*
-- * Change the page attributes of an page in the linear mapping.
-- *
-- * This should be used when a page is mapped with a different caching policy
-- * than write-back somewhere - some CPUs do not like it when mappings with
-- * different caching policies exist. This changes the page attributes of the
-- * in kernel linear mapping too.
-- *
-- * The caller needs to ensure that there are no conflicting mappings elsewhere.
-- * This function only deals with the kernel linear map.
-- *
-- * Caller must call global_flush_tlb() after this.
-- */
--int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot)
--{
-- int err = 0, kernel_map = 0;
-- int i;
--
-- if (address >= __START_KERNEL_map
-- && address < __START_KERNEL_map + KERNEL_TEXT_SIZE) {
-- address = (unsigned long)__va(__pa(address));
-- kernel_map = 1;
-- }
--
-- down_write(&init_mm.mmap_sem);
-- for (i = 0; i < numpages; i++, address += PAGE_SIZE) {
-- unsigned long pfn = __pa(address) >> PAGE_SHIFT;
--
-- if (!kernel_map || pte_present(pfn_pte(0, prot))) {
-- err = __change_page_attr(address, pfn, prot, PAGE_KERNEL);
-- if (err)
-- break;
-- }
-- /* Handle kernel mapping too which aliases part of the
-- * lowmem */
-- if (__pa(address) < KERNEL_TEXT_SIZE) {
-- unsigned long addr2;
-- pgprot_t prot2;
-- addr2 = __START_KERNEL_map + __pa(address);
-- /* Make sure the kernel mappings stay executable */
-- prot2 = pte_pgprot(pte_mkexec(pfn_pte(0, prot)));
-- err = __change_page_attr(addr2, pfn, prot2,
-- PAGE_KERNEL_EXEC);
-- }
-- }
-- up_write(&init_mm.mmap_sem);
-- return err;
--}
--
--/* Don't call this for MMIO areas that may not have a mem_map entry */
--int change_page_attr(struct page *page, int numpages, pgprot_t prot)
--{
-- unsigned long addr = (unsigned long)page_address(page);
-- return change_page_attr_addr(addr, numpages, prot);
--}
--
--void global_flush_tlb(void)
--{
-- struct page *pg, *next;
-- struct list_head l;
--
-- /*
-- * Write-protect the semaphore, to exclude two contexts
-- * doing a list_replace_init() call in parallel and to
-- * exclude new additions to the deferred_pages list:
-- */
-- down_write(&init_mm.mmap_sem);
-- list_replace_init(&deferred_pages, &l);
-- up_write(&init_mm.mmap_sem);
--
-- flush_map(&l);
--
-- list_for_each_entry_safe(pg, next, &l, lru) {
-- list_del(&pg->lru);
-- clear_bit(PG_arch_1, &pg->flags);
-- if (page_private(pg) != 0)
-- continue;
-- ClearPagePrivate(pg);
-- __free_page(pg);
-- }
--}
--
--EXPORT_SYMBOL(change_page_attr);
--EXPORT_SYMBOL(global_flush_tlb);
--- head.orig/arch/x86/mm/pgtable_32-xen.c 2011-01-31 17:56:27.000000000 +0100
+++ head/arch/x86/mm/pgtable_32-xen.c 2011-01-31 18:01:51.000000000 +0100
@@ -29,8 +29,6 @@
@@ -16252,7 +15810,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
vdso32.so-$(CONFIG_XEN) += $(xen-vdso32-y)
vdso32-images = $(vdso32.so-y:%=vdso32-%.so)
---- head.orig/arch/x86/vdso/vdso32/syscall.S 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/vdso/vdso32/syscall.S 2008-04-17 04:49:44.000000000 +0200
+++ head/arch/x86/vdso/vdso32/syscall.S 2011-01-31 18:01:51.000000000 +0100
@@ -19,8 +19,10 @@ __kernel_vsyscall:
.Lpush_ebp:
@@ -16265,7 +15823,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
movl %ebp, %ecx
popl %ebp
.Lpop_ebp:
---- head.orig/arch/x86/vdso/vdso32.S 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/vdso/vdso32.S 2008-10-10 00:13:53.000000000 +0200
+++ head/arch/x86/vdso/vdso32.S 2011-01-31 18:01:51.000000000 +0100
@@ -19,4 +19,16 @@ vdso32_sysenter_start:
.incbin "arch/x86/vdso/vdso32-sysenter.so"
@@ -17089,7 +16647,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
-{
- return 0;
-}
---- head.orig/drivers/pci/pci.c 2013-03-21 11:44:57.000000000 +0100
+--- head.orig/drivers/pci/pci.c 2013-05-23 15:37:06.000000000 +0200
+++ head/drivers/pci/pci.c 2012-10-23 14:57:20.000000000 +0200
@@ -436,7 +436,12 @@ pci_find_parent_resource(const struct pc
* Restore the BAR values for a given device, so as to make it
@@ -18156,7 +17714,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
.resume = xenoprof_resume,
.suspend = xenoprof_suspend
};
---- head.orig/arch/x86/include/uapi/asm/e820.h 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/include/uapi/asm/e820.h 2013-02-19 00:58:34.000000000 +0100
+++ head/arch/x86/include/uapi/asm/e820.h 2013-01-08 11:47:19.000000000 +0100
@@ -60,7 +60,11 @@ struct e820map {
struct e820entry map[E820_X_MAX];
@@ -18170,9 +17728,9 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
#define ISA_END_ADDRESS 0x100000
#define BIOS_BEGIN 0x000a0000
---- head.orig/arch/x86/include/asm/hardirq.h 2013-04-26 09:59:53.000000000 +0200
-+++ head/arch/x86/include/asm/hardirq.h 2012-04-10 16:43:33.000000000 +0200
-@@ -18,11 +18,15 @@ typedef struct {
+--- head.orig/arch/x86/include/asm/hardirq.h 2013-05-23 08:55:29.000000000 +0200
++++ head/arch/x86/include/asm/hardirq.h 2013-05-23 17:11:22.000000000 +0200
+@@ -21,11 +21,15 @@ typedef struct {
#ifdef CONFIG_SMP
unsigned int irq_resched_count;
unsigned int irq_call_count;
@@ -25626,7 +25184,7 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
void leave_mm(int cpu);
#else
static inline void leave_mm(int cpu)
---- head.orig/arch/x86/include/asm/ptrace.h 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/include/asm/ptrace.h 2013-02-19 00:58:34.000000000 +0100
+++ head/arch/x86/include/asm/ptrace.h 2013-01-08 11:47:39.000000000 +0100
@@ -224,7 +224,9 @@ static inline unsigned long regs_get_ker
}
@@ -25689,9 +25247,9 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
#else
PG_pinned = PG_owner_priv_1,
PG_savepinned = PG_dirty,
---- head.orig/include/linux/pci.h 2013-04-26 10:04:55.000000000 +0200
-+++ head/include/linux/pci.h 2013-03-21 14:22:36.000000000 +0100
-@@ -909,6 +909,9 @@ void pci_update_resource(struct pci_dev
+--- head.orig/include/linux/pci.h 2013-05-23 16:23:04.000000000 +0200
++++ head/include/linux/pci.h 2013-05-23 17:11:34.000000000 +0200
+@@ -927,6 +927,9 @@ void pci_update_resource(struct pci_dev
int __must_check pci_assign_resource(struct pci_dev *dev, int i);
int __must_check pci_reassign_resource(struct pci_dev *dev, int i, resource_size_t add_size, resource_size_t align);
int pci_select_bars(struct pci_dev *dev, unsigned long flags);
@@ -25736,9 +25294,9 @@ Automatically created from "patches.kernel.org/patch-2.6.25" by xen-port-patches
+#endif
+
#endif /* __ASM_EVTCHN_H__ */
---- head.orig/kernel/sysctl_binary.c 2013-03-21 14:20:04.000000000 +0100
-+++ head/kernel/sysctl_binary.c 2013-03-21 14:22:47.000000000 +0100
-@@ -873,7 +873,7 @@ static const struct bin_table bin_bus_ta
+--- head.orig/kernel/sysctl_binary.c 2013-05-23 17:09:34.000000000 +0200
++++ head/kernel/sysctl_binary.c 2013-05-23 17:11:30.000000000 +0200
+@@ -874,7 +874,7 @@ static const struct bin_table bin_bus_ta
#ifdef CONFIG_XEN
diff --git a/patches.xen/xen3-patch-2.6.26 b/patches.xen/xen3-patch-2.6.26
index b36bae1480..614d141e9f 100644
--- a/patches.xen/xen3-patch-2.6.26
+++ b/patches.xen/xen3-patch-2.6.26
@@ -8,9 +8,9 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
2.6.35/arch/x86/include/asm/scatterlist.h (would need to be reverted there)
3.1/init/Kconfig (done differently)
---- head.orig/arch/x86/Kconfig 2013-04-26 10:44:00.000000000 +0200
-+++ head/arch/x86/Kconfig 2013-04-26 10:44:47.000000000 +0200
-@@ -52,7 +52,7 @@ config X86
+--- head.orig/arch/x86/Kconfig 2013-06-05 13:50:57.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:17:20.000000000 +0200
+@@ -53,7 +53,7 @@ config X86
select HAVE_SYSCALL_TRACEPOINTS
select SYSCTL_EXCEPTION_TRACE
select HAVE_KVM if !XEN
@@ -19,7 +19,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
select HAVE_ARCH_TRACEHOOK
select HAVE_GENERIC_DMA_COHERENT if X86_32
select HAVE_EFFICIENT_UNALIGNED_ACCESS
-@@ -701,6 +701,7 @@ config NO_BOOTMEM
+@@ -697,6 +697,7 @@ config NO_BOOTMEM
config MEMTEST
bool "Memtest"
@@ -27,7 +27,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
---help---
This option adds a kernel parameter 'memtest', which allows memtest
to be set.
-@@ -1261,7 +1262,7 @@ config ARCH_DMA_ADDR_T_64BIT
+@@ -1257,7 +1258,7 @@ config ARCH_DMA_ADDR_T_64BIT
config DIRECT_GBPAGES
bool "Enable 1GB pages for kernel pagetables" if EXPERT
default y
@@ -36,14 +36,14 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
---help---
Allow the kernel linear mapping to use 1GB pages on CPUs that
support it. This can improve the kernel's performance a tiny bit by
-@@ -2426,6 +2427,4 @@ source "crypto/Kconfig"
+@@ -2422,6 +2423,4 @@ source "crypto/Kconfig"
source "arch/x86/kvm/Kconfig"
-source "drivers/xen/Kconfig"
-
source "lib/Kconfig"
---- head.orig/arch/x86/ia32/ia32entry-xen.S 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/ia32/ia32entry-xen.S 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/ia32/ia32entry-xen.S 2011-01-31 18:07:35.000000000 +0100
@@ -129,12 +129,14 @@ sysenter_tracesys:
SAVE_REST
@@ -105,7 +105,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
.quad sys_alarm
.quad sys_fstat /* (old)fstat */
.quad sys_pause
---- head.orig/arch/x86/kernel/Makefile 2013-03-21 14:21:54.000000000 +0100
+--- head.orig/arch/x86/kernel/Makefile 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/Makefile 2013-03-21 14:28:23.000000000 +0100
@@ -119,8 +119,7 @@ ifeq ($(CONFIG_X86_64),y)
@@ -114,11 +114,11 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
- pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o
endif
--disabled-obj-$(CONFIG_XEN) := early-quirks.o hpet.o i8237.o i8253.o i8259_$(BITS).o \
+-disabled-obj-$(CONFIG_XEN) := early-quirks.o i8237.o i8253.o i8259_$(BITS).o \
- reboot.o smpboot_$(BITS).o tsc_$(BITS).o tsc_sync.o
-+disabled-obj-$(CONFIG_XEN) := crash.o early-quirks.o hpet.o i8237.o i8253.o i8259_$(BITS).o \
++disabled-obj-$(CONFIG_XEN) := crash.o early-quirks.o i8237.o i8253.o i8259_$(BITS).o \
+ pci-swiotlb_64.o reboot.o smpboot.o tlb_$(BITS).o tsc_$(BITS).o tsc_sync.o vsmp_64.o
---- head.orig/arch/x86/kernel/acpi/boot.c 2013-03-21 14:21:59.000000000 +0100
+--- head.orig/arch/x86/kernel/acpi/boot.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/acpi/boot.c 2013-03-21 14:28:18.000000000 +0100
@@ -205,6 +205,7 @@ static int __init acpi_parse_madt(struct
@@ -136,7 +136,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
}
static int __init
---- head.orig/arch/x86/kernel/cpu/common-xen.c 2012-07-05 15:17:21.000000000 +0200
+--- head.orig/arch/x86/kernel/cpu/common-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/cpu/common-xen.c 2012-07-05 11:22:48.000000000 +0200
@@ -5,7 +5,6 @@
#include <linux/module.h>
@@ -531,7 +531,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
void __cpuinit cpu_uninit(void)
{
int cpu = raw_smp_processor_id();
---- head.orig/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/cpu/mtrr/main-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/cpu/mtrr/main-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -35,6 +35,8 @@ struct mtrr_ops *mtrr_if = &generic_mtrr
unsigned int num_var_ranges;
@@ -689,22 +689,23 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
}
void mtrr_ap_init(void)
---- head.orig/arch/x86/kernel/cpu/bugs.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/kernel/cpu/bugs.c 2013-03-21 14:28:00.000000000 +0100
-@@ -75,9 +75,11 @@ static void __init check_fpu(void)
+--- head.orig/arch/x86/kernel/cpu/bugs.c 2013-06-05 13:50:57.000000000 +0200
++++ head/arch/x86/kernel/cpu/bugs.c 2013-05-23 17:17:14.000000000 +0200
+@@ -75,10 +75,12 @@ static void __init check_fpu(void)
kernel_fpu_end();
+#ifndef CONFIG_XEN
- boot_cpu_data.fdiv_bug = fdiv_bug;
- if (boot_cpu_data.fdiv_bug)
+ if (fdiv_bug) {
+ set_cpu_bug(&boot_cpu_data, X86_BUG_FDIV);
pr_warn("Hmm, FPU with FDIV bug\n");
+ }
+#endif
}
- /*
---- head.orig/arch/x86/kernel/cpu/proc.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/kernel/cpu/proc.c 2013-03-21 14:27:57.000000000 +0100
+ void __init check_bugs(void)
+--- head.orig/arch/x86/kernel/cpu/proc.c 2013-06-05 13:50:57.000000000 +0200
++++ head/arch/x86/kernel/cpu/proc.c 2013-05-23 17:16:30.000000000 +0200
@@ -10,7 +10,7 @@
static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
unsigned int cpu)
@@ -728,14 +729,14 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
"cpuid level\t: %d\n"
"wp\t\t: %s\n",
+#ifndef CONFIG_XEN
- c->fdiv_bug ? "yes" : "no",
- c->f00f_bug ? "yes" : "no",
- c->coma_bug ? "yes" : "no",
+ static_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no",
+ static_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no",
+ static_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no",
+#endif
c->hard_math ? "yes" : "no",
c->hard_math ? "yes" : "no",
c->cpuid_level,
---- head.orig/arch/x86/kernel/e820-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/e820-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/e820-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -41,11 +41,11 @@ unsigned long end_pfn;
@@ -1065,7 +1066,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
e820.nr_map = 0;
userdef = 1;
return 0;
---- head.orig/arch/x86/kernel/early_printk-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/early_printk-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/early_printk-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -13,7 +13,7 @@
#define VGABASE (__ISA_IO_base + 0xb8000)
@@ -1135,7 +1136,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#ifdef CONFIG_XEN
} else if (!strncmp(buf, "xen", 3)) {
early_console = &xenboot_console;
---- head.orig/arch/x86/kernel/entry_32-xen.S 2013-01-30 10:37:01.000000000 +0100
+--- head.orig/arch/x86/kernel/entry_32-xen.S 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/entry_32-xen.S 2011-01-31 18:07:35.000000000 +0100
@@ -1,5 +1,4 @@
/*
@@ -1304,7 +1305,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
GET_THREAD_INFO(%ebp)
movl $-EFAULT,PT_EAX(%esp)
jmp resume_userspace
---- head.orig/arch/x86/kernel/entry_64-xen.S 2011-10-07 11:31:12.000000000 +0200
+--- head.orig/arch/x86/kernel/entry_64-xen.S 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/entry_64-xen.S 2011-10-07 11:33:31.000000000 +0200
@@ -334,19 +334,17 @@ badsys:
/* Do syscall tracing */
@@ -1329,7 +1330,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
/* Use IRET because user could have changed frame */
/*
---- head.orig/arch/x86/kernel/head64-xen.c 2012-07-05 11:14:59.000000000 +0200
+--- head.orig/arch/x86/kernel/head64-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/head64-xen.c 2011-08-09 10:53:20.000000000 +0200
@@ -17,6 +17,7 @@
#include <linux/string.h>
@@ -1482,7 +1483,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
/*
* At this point everything still needed from the boot loader
---- head.orig/arch/x86/kernel/head_32-xen.S 2012-12-06 16:09:14.000000000 +0100
+--- head.orig/arch/x86/kernel/head_32-xen.S 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/head_32-xen.S 2011-08-09 10:53:18.000000000 +0200
@@ -70,7 +70,7 @@ ENTRY(startup_32)
cld # gcc2 wants the direction flag cleared at all times
@@ -1493,7 +1494,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#define HYPERCALL_PAGE_OFFSET 0x1000
.org HYPERCALL_PAGE_OFFSET
---- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/apic/io_apic-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -43,13 +43,15 @@
#include <asm/smp.h>
@@ -1758,7 +1759,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+#include <mach_ipi.h>
+
+#endif
---- head.orig/arch/x86/kernel/machine_kexec_64.c 2013-03-21 14:21:56.000000000 +0100
+--- head.orig/arch/x86/kernel/machine_kexec_64.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/machine_kexec_64.c 2013-03-21 14:28:27.000000000 +0100
@@ -67,15 +67,19 @@ int __init machine_kexec_setup_resources
{
@@ -1785,7 +1786,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#endif /* CONFIG_XEN */
static void free_transition_pgtable(struct kimage *image)
---- head.orig/arch/x86/kernel/microcode_core-xen.c 2011-12-01 15:01:28.000000000 +0100
+--- head.orig/arch/x86/kernel/microcode_core-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/microcode_core-xen.c 2011-12-01 15:01:36.000000000 +0100
@@ -165,7 +165,7 @@ static int request_microcode(void)
c->x86, c->x86_model, c->x86_mask);
@@ -1796,7 +1797,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
return error;
}
---- head.orig/arch/x86/kernel/mmconf-fam10h_64.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/kernel/mmconf-fam10h_64.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/mmconf-fam10h_64.c 2011-01-31 18:07:35.000000000 +0100
@@ -205,12 +205,20 @@ void __cpuinit fam10h_check_enable_mmcfg
return;
@@ -1819,7 +1820,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
}
static int __init set_check_enable_amd_mmconf(const struct dmi_system_id *d)
---- head.orig/arch/x86/kernel/mpparse-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/mpparse-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/mpparse-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -4,84 +4,56 @@
*
@@ -3279,7 +3280,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
return gsi;
}
---- head.orig/arch/x86/kernel/pci-dma-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/pci-dma-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/pci-dma-xen.c 2012-11-14 12:52:25.000000000 +0100
@@ -1,280 +1,250 @@
-/*
@@ -4420,7 +4421,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+}
+early_param("idle", idle_setup);
+
---- head.orig/arch/x86/kernel/process_32-xen.c 2012-08-10 10:30:55.000000000 +0200
+--- head.orig/arch/x86/kernel/process_32-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/process_32-xen.c 2012-08-10 10:31:14.000000000 +0200
@@ -36,6 +36,7 @@
#include <linux/personality.h>
@@ -4701,7 +4702,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
math_state_restore();
/*
---- head.orig/arch/x86/kernel/process_64-xen.c 2012-08-10 10:30:53.000000000 +0200
+--- head.orig/arch/x86/kernel/process_64-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/process_64-xen.c 2012-08-10 10:31:15.000000000 +0200
@@ -39,6 +39,7 @@
#include <linux/kprobes.h>
@@ -4943,9 +4944,9 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
math_state_restore();
return prev_p;
}
---- head.orig/arch/x86/kernel/rtc.c 2013-03-21 14:22:06.000000000 +0100
-+++ head/arch/x86/kernel/rtc.c 2013-03-21 14:28:37.000000000 +0100
-@@ -197,6 +197,7 @@ void read_persistent_clock(struct timesp
+--- head.orig/arch/x86/kernel/rtc.c 2013-06-05 13:50:57.000000000 +0200
++++ head/arch/x86/kernel/rtc.c 2013-05-23 17:17:07.000000000 +0200
+@@ -152,6 +152,7 @@ void read_persistent_clock(struct timesp
}
@@ -4953,7 +4954,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
static struct resource rtc_resources[] = {
[0] = {
.start = RTC_PORT(0),
-@@ -242,6 +243,11 @@ static __init int add_rtc_cmos(void)
+@@ -197,6 +198,11 @@ static __init int add_rtc_cmos(void)
if (mrst_identify_cpu())
return -ENODEV;
@@ -4965,7 +4966,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
platform_device_register(&rtc_device);
dev_info(&rtc_device.dev,
"registered platform RTC device (no PNP device found)\n");
-@@ -249,3 +255,4 @@ static __init int add_rtc_cmos(void)
+@@ -204,3 +210,4 @@ static __init int add_rtc_cmos(void)
return 0;
}
device_initcall(add_rtc_cmos);
@@ -5116,7 +5117,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+}
+
+#endif
---- head.orig/arch/x86/kernel/setup_32-xen.c 2012-06-06 13:57:25.000000000 +0200
+--- head.orig/arch/x86/kernel/setup_32-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/setup_32-xen.c 2012-06-06 13:57:42.000000000 +0200
@@ -39,6 +39,7 @@
#include <linux/efi.h>
@@ -5391,7 +5392,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#ifdef CONFIG_X86_GENERICARCH
generic_apic_probe();
#endif
---- head.orig/arch/x86/kernel/setup_64-xen.c 2012-06-06 13:57:26.000000000 +0200
+--- head.orig/arch/x86/kernel/setup_64-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/setup_64-xen.c 2012-06-06 13:57:44.000000000 +0200
@@ -29,18 +29,22 @@
#include <linux/crash_dump.h>
@@ -6284,7 +6285,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+
+ return IRQ_HANDLED;
+}
---- head.orig/arch/x86/kernel/smp_32-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/smp_32-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,647 +0,0 @@
-/*
@@ -6934,7 +6935,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
-
- return IRQ_HANDLED;
-}
---- head.orig/arch/x86/kernel/smp_64-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/smp_64-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,554 +0,0 @@
-/*
@@ -7491,7 +7492,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
- return IRQ_HANDLED;
-#endif
-}
---- head.orig/arch/x86/kernel/time-xen.c 2012-02-10 13:27:37.000000000 +0100
+--- head.orig/arch/x86/kernel/time-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/time-xen.c 2012-02-10 13:27:59.000000000 +0100
@@ -709,8 +709,6 @@ static void init_missing_ticks_accountin
runstate->time[RUNSTATE_offline];
@@ -7511,7 +7512,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
{
BUG_ON(cpu == 0);
unbind_from_irqhandler(per_cpu(timer_irq, cpu), NULL);
---- head.orig/arch/x86/kernel/traps_32-xen.c 2012-07-05 11:14:48.000000000 +0200
+--- head.orig/arch/x86/kernel/traps_32-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/traps_32-xen.c 2012-07-05 11:22:37.000000000 +0200
@@ -9,26 +9,28 @@
* 'Traps.c' handles hardware traps and faults after we have saved some
@@ -8598,7 +8599,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
return 1;
}
__setup("kstack=", kstack_setup);
---- head.orig/arch/x86/kernel/traps_64-xen.c 2012-07-05 11:14:49.000000000 +0200
+--- head.orig/arch/x86/kernel/traps_64-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/traps_64-xen.c 2012-07-05 11:19:23.000000000 +0200
@@ -33,6 +33,8 @@
#include <linux/kdebug.h>
@@ -8707,7 +8708,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
* Should be a barrier for any external CPU state.
*/
cpu_init();
---- head.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/kernel/vsyscall_64-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/kernel/vsyscall_64-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -216,7 +216,7 @@ vgetcpu(unsigned *cpu, unsigned *node, s
return 0;
@@ -8718,7 +8719,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
{
return -ENOSYS;
}
---- head.orig/arch/x86/mach-xen/setup.c 2012-07-05 11:13:59.000000000 +0200
+--- head.orig/arch/x86/mach-xen/setup.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/mach-xen/setup.c 2011-01-31 18:07:35.000000000 +0100
@@ -56,11 +56,7 @@ char * __init machine_specific_memory_se
{
@@ -9107,7 +9108,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Arjan van de Ven <arjan@linux.intel.com>");
+MODULE_DESCRIPTION("Kernel debugging helper that dumps pagetables");
---- head.orig/arch/x86/mm/fault-xen.c 2011-08-15 10:46:15.000000000 +0200
+--- head.orig/arch/x86/mm/fault-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/mm/fault-xen.c 2011-07-26 09:29:47.000000000 +0200
@@ -511,6 +511,11 @@ static int vmalloc_fault(unsigned long a
unsigned long pgd_paddr;
@@ -9140,7 +9141,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
- (__START_KERNEL & PGDIR_MASK)));
#endif
}
---- head.orig/arch/x86/mm/highmem_32-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/mm/highmem_32-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/mm/highmem_32-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -200,6 +200,8 @@ EXPORT_SYMBOL(kmap);
EXPORT_SYMBOL(kunmap);
@@ -9151,7 +9152,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+#endif
EXPORT_SYMBOL(clear_highpage);
EXPORT_SYMBOL(copy_highpage);
---- head.orig/arch/x86/mm/init_32-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/mm/init_32-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/mm/init_32-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -1,5 +1,4 @@
/*
@@ -9395,7 +9396,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#endif
start += size;
size = (unsigned long)__end_rodata - start;
---- head.orig/arch/x86/mm/init_64-xen.c 2011-11-03 12:12:23.000000000 +0100
+--- head.orig/arch/x86/mm/init_64-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/mm/init_64-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -52,9 +52,6 @@
@@ -9887,7 +9888,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+ }
+}
#endif
---- head.orig/arch/x86/mm/ioremap-xen.c 2012-11-26 14:16:49.000000000 +0100
+--- head.orig/arch/x86/mm/ioremap-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/mm/ioremap-xen.c 2013-01-25 10:43:00.000000000 +0100
@@ -20,14 +20,11 @@
#include <asm/pgtable.h>
@@ -10331,7 +10332,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
if (early_ioremap_debug) {
printk(KERN_INFO "early_iounmap(%p, %08lx) [%d]\n", addr,
---- head.orig/arch/x86/mm/pageattr-xen.c 2011-03-23 09:46:36.000000000 +0100
+--- head.orig/arch/x86/mm/pageattr-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/mm/pageattr-xen.c 2011-03-23 09:53:18.000000000 +0100
@@ -9,6 +9,8 @@
#include <linux/slab.h>
@@ -12234,7 +12235,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+
+ return young;
+}
---- head.orig/arch/x86/mm/pgtable_32-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/mm/pgtable_32-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/mm/pgtable_32-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -1,7 +1,3 @@
-/*
@@ -12499,7 +12500,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
void make_lowmem_page_readonly(void *va, unsigned int feature)
{
pte_t *pte;
---- head.orig/arch/x86/vdso/vdso32-setup-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/vdso/vdso32-setup-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/vdso/vdso32-setup-xen.c 2011-01-31 18:07:35.000000000 +0100
@@ -164,7 +164,7 @@ static __init void relocate_vdso(Elf32_E
Elf32_Shdr *shdr;
@@ -12544,9 +12545,9 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
down_write(&mm->mmap_sem);
/* Test compat mode once here, in case someone
---- head.orig/drivers/acpi/processor_driver.c 2013-03-21 12:21:39.000000000 +0100
-+++ head/drivers/acpi/processor_driver.c 2013-03-21 14:28:49.000000000 +0100
-@@ -376,7 +376,7 @@ static int acpi_processor_get_info(struc
+--- head.orig/drivers/acpi/processor_driver.c 2013-06-05 13:50:57.000000000 +0200
++++ head/drivers/acpi/processor_driver.c 2013-05-23 17:16:50.000000000 +0200
+@@ -372,7 +372,7 @@ static int acpi_processor_get_info(struc
* of /proc/cpuinfo
*/
status = acpi_evaluate_object(pr->handle, "_SUN", NULL, &buffer);
@@ -12555,7 +12556,18 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
arch_fix_phys_package_id(pr->id, object.integer.value);
return 0;
---- head.orig/drivers/oprofile/cpu_buffer.c 2011-04-13 12:44:01.000000000 +0200
+--- head.orig/drivers/firmware/Kconfig 2013-06-05 13:50:36.000000000 +0200
++++ head/drivers/firmware/Kconfig 2013-06-05 13:51:23.000000000 +0200
+@@ -19,7 +19,7 @@ config EDD
+
+ config EDD_OFF
+ bool "Sets default behavior for EDD detection to off"
+- depends on EDD
++ depends on EDD && !XEN
+ default n
+ help
+ Say Y if you want EDD disabled by default, even though it is compiled into the
+--- head.orig/drivers/oprofile/cpu_buffer.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/oprofile/cpu_buffer.c 2011-04-13 12:53:16.000000000 +0200
@@ -485,7 +485,7 @@ fail:
#ifdef CONFIG_XEN
@@ -12566,7 +12578,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
/* should have space for switching into and out of domain
(2 slots each) plus one sample and one cpu mode switch */
---- head.orig/drivers/pci/msi-xen.c 2013-04-26 10:43:55.000000000 +0200
+--- head.orig/drivers/pci/msi-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/pci/msi-xen.c 2013-04-26 10:44:53.000000000 +0200
@@ -538,7 +538,7 @@ int pci_enable_msi(struct pci_dev* dev)
}
@@ -12608,9 +12620,9 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
EXPORT_SYMBOL(pci_disable_msix);
/**
---- head.orig/drivers/video/Kconfig 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/video/Kconfig 2013-03-21 14:28:57.000000000 +0100
-@@ -2271,7 +2271,7 @@ config FB_VIRTUAL
+--- head.orig/drivers/video/Kconfig 2013-06-05 13:50:57.000000000 +0200
++++ head/drivers/video/Kconfig 2013-05-23 17:16:58.000000000 +0200
+@@ -2262,7 +2262,7 @@ config FB_VIRTUAL
config XEN_FBDEV_FRONTEND
tristate "Xen virtual frame buffer support"
@@ -12619,7 +12631,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
select FB_SYS_FILLRECT
select FB_SYS_COPYAREA
select FB_SYS_IMAGEBLIT
---- head.orig/drivers/xen/Kconfig 2013-03-21 11:54:54.000000000 +0100
+--- head.orig/drivers/xen/Kconfig 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/Kconfig 2011-01-31 18:07:35.000000000 +0100
@@ -2,8 +2,6 @@
# This Kconfig describe xen options
@@ -12630,7 +12642,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
config XEN
bool
---- head.orig/drivers/xen/Makefile 2011-01-31 17:49:31.000000000 +0100
+--- head.orig/drivers/xen/Makefile 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/Makefile 2011-11-03 12:14:33.000000000 +0100
@@ -1,5 +1,7 @@
-obj-$(CONFIG_PARAVIRT_XEN) += grant-table.o
@@ -12653,7 +12665,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += blkback/
obj-$(CONFIG_XEN_BLKDEV_TAP) += blktap/
obj-$(filter m,$(CONFIG_XEN_BLKDEV_TAP2)) += blktap2/ blktap2-new/
---- head.orig/drivers/xen/blkfront/blkfront.c 2012-10-04 11:55:00.000000000 +0200
+--- head.orig/drivers/xen/blkfront/blkfront.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/blkfront/blkfront.c 2012-10-04 12:15:06.000000000 +0200
@@ -108,6 +108,7 @@ static int blkfront_probe(struct xenbus_
}
@@ -12838,7 +12850,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
return 0;
}
---- head.orig/drivers/xen/blkfront/block.h 2012-06-06 13:55:33.000000000 +0200
+--- head.orig/drivers/xen/blkfront/block.h 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/blkfront/block.h 2012-06-06 13:58:20.000000000 +0200
@@ -46,6 +46,7 @@
#include <linux/hdreg.h>
@@ -12871,7 +12883,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
};
extern int blkif_open(struct inode *inode, struct file *filep);
---- head.orig/drivers/xen/blkfront/vbd.c 2012-03-12 15:33:32.000000000 +0100
+--- head.orig/drivers/xen/blkfront/vbd.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/blkfront/vbd.c 2012-03-12 16:12:25.000000000 +0100
@@ -387,11 +387,11 @@ xlvbd_init_blk_queue(struct gendisk *gd,
return 0;
@@ -12965,7 +12977,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
void
xlvbd_del(struct blkfront_info *info)
{
---- head.orig/drivers/xen/blktap/blktap.c 2012-01-02 14:26:06.000000000 +0100
+--- head.orig/drivers/xen/blktap/blktap.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/blktap/blktap.c 2012-12-06 16:09:25.000000000 +0100
@@ -112,6 +112,7 @@ typedef struct tap_blkif {
unsigned long mode; /*current switching mode */
@@ -13047,7 +13059,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
} else {
/* this is bad, but not fatal */
WPRINTK("sysfs xen_class not created\n");
---- head.orig/drivers/xen/blktap2/blktap.h 2012-06-06 13:53:14.000000000 +0200
+--- head.orig/drivers/xen/blktap2/blktap.h 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/blktap2/blktap.h 2012-06-06 13:58:26.000000000 +0200
@@ -128,7 +128,7 @@ struct blktap_ring {
wait_queue_head_t poll_wait;
@@ -13058,7 +13070,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
atomic_t sysfs_refcnt;
struct mutex sysfs_mutex;
};
---- head.orig/drivers/xen/blktap2/device.c 2012-02-16 12:33:41.000000000 +0100
+--- head.orig/drivers/xen/blktap2/device.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/blktap2/device.c 2012-02-16 12:34:22.000000000 +0100
@@ -545,7 +545,8 @@ blktap_map(struct blktap *tap,
@@ -13070,7 +13082,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
flush_tlb_page(ring->vma, uvaddr);
blktap_map_uaddr(NULL, kvaddr, mk_pte(page, PAGE_KERNEL));
flush_tlb_kernel_page(kvaddr);
---- head.orig/drivers/xen/blktap2/ring.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/drivers/xen/blktap2/ring.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/blktap2/ring.c 2011-01-31 18:07:35.000000000 +0100
@@ -66,16 +66,15 @@ blktap_read_ring(struct blktap *tap)
return 0;
@@ -13102,7 +13114,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
.zap_pte = blktap_ring_clear_pte,
};
---- head.orig/drivers/xen/blktap2/sysfs.c 2011-01-31 17:49:31.000000000 +0100
+--- head.orig/drivers/xen/blktap2/sysfs.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/blktap2/sysfs.c 2011-03-11 10:58:58.000000000 +0100
@@ -36,16 +36,21 @@ blktap_sysfs_exit(struct blktap *tap)
blktap_sysfs_put(tap);
@@ -13358,7 +13370,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
}
static ssize_t
---- head.orig/drivers/xen/char/mem.c 2012-01-20 14:45:18.000000000 +0100
+--- head.orig/drivers/xen/char/mem.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/char/mem.c 2012-01-20 14:52:38.000000000 +0100
@@ -25,6 +25,27 @@ static inline int uncached_access(struct
return 0;
@@ -13448,7 +13460,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
/* We want to return the real error code, not EAGAIN. */
return direct_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
size, vma->vm_page_prot, DOMID_IO);
---- head.orig/drivers/xen/console/console.c 2013-01-29 14:48:23.000000000 +0100
+--- head.orig/drivers/xen/console/console.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/console/console.c 2013-01-29 14:48:33.000000000 +0100
@@ -541,16 +541,18 @@ static int xencons_write(
return i;
@@ -13491,7 +13503,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
if (tty->ldisc.flush_buffer != NULL)
tty->ldisc.flush_buffer(tty);
tty->closing = 0;
---- head.orig/drivers/xen/core/Makefile 2011-11-03 12:12:01.000000000 +0100
+--- head.orig/drivers/xen/core/Makefile 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/core/Makefile 2012-10-31 11:13:34.000000000 +0100
@@ -2,7 +2,7 @@
# Makefile for the linux kernel.
@@ -13507,7 +13519,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
obj-$(CONFIG_X86_SMP) += spinlock.o
obj-$(CONFIG_KEXEC) += machine_kexec.o
-obj-$(CONFIG_XEN_XENCOMM) += xencomm.o
---- head.orig/drivers/xen/core/machine_kexec.c 2012-02-17 09:56:45.000000000 +0100
+--- head.orig/drivers/xen/core/machine_kexec.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/core/machine_kexec.c 2011-12-21 11:03:09.000000000 +0100
@@ -6,6 +6,7 @@
#include <linux/kexec.h>
@@ -13545,7 +13557,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
/*
* Local variables:
---- head.orig/drivers/xen/core/smpboot.c 2012-03-22 16:09:23.000000000 +0100
+--- head.orig/drivers/xen/core/smpboot.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/core/smpboot.c 2012-03-22 16:09:53.000000000 +0100
@@ -117,7 +117,7 @@ static int __cpuinit xen_smp_intr_init(u
return rc;
@@ -13574,7 +13586,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
{
while (HYPERVISOR_vcpu_op(VCPUOP_is_up, cpu, NULL)) {
current->state = TASK_UNINTERRUPTIBLE;
---- head.orig/drivers/xen/core/xen_proc.c 2011-04-01 13:07:57.000000000 +0200
+--- head.orig/drivers/xen/core/xen_proc.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/core/xen_proc.c 2011-04-04 08:44:27.000000000 +0200
@@ -12,7 +12,7 @@ __init
create_xen_proc_entry(const char *name, mode_t mode)
@@ -13585,7 +13597,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
panic("Couldn't create /proc/xen");
return create_proc_entry(name, mode, xen_base);
}
---- head.orig/drivers/xen/fbfront/xenfb.c 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/drivers/xen/fbfront/xenfb.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/fbfront/xenfb.c 2011-01-31 18:07:35.000000000 +0100
@@ -93,7 +93,7 @@ struct xenfb_info
* only mappings. The former creates unfaulted pages. Preserves
@@ -13656,7 +13668,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
};
static int xenfb_mmap(struct fb_info *fb_info, struct vm_area_struct *vma)
---- head.orig/drivers/xen/features.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/xen/features.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/features.c 2011-01-31 18:07:35.000000000 +0100
@@ -9,14 +9,21 @@
#include <linux/cache.h>
@@ -13681,7 +13693,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
void xen_setup_features(void)
{
---- head.orig/drivers/xen/netfront/netfront.c 2013-05-10 14:26:24.000000000 +0200
+--- head.orig/drivers/xen/netfront/netfront.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/netfront/netfront.c 2013-05-10 14:28:01.000000000 +0200
@@ -1464,8 +1464,7 @@ err:
}
@@ -13703,7 +13715,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
spin_unlock_bh(&np->rx_lock);
}
---- head.orig/drivers/xen/privcmd/privcmd.c 2012-01-20 14:44:49.000000000 +0100
+--- head.orig/drivers/xen/privcmd/privcmd.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/privcmd/privcmd.c 2012-01-20 14:52:30.000000000 +0100
@@ -395,15 +395,13 @@ static long privcmd_ioctl(struct file *f
}
@@ -13724,7 +13736,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
};
static int privcmd_mmap(struct file * file, struct vm_area_struct * vma)
---- head.orig/drivers/xen/xenbus/xenbus_client.c 2011-06-30 16:10:27.000000000 +0200
+--- head.orig/drivers/xen/xenbus/xenbus_client.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_client.c 2011-01-31 18:07:35.000000000 +0100
@@ -437,7 +437,7 @@ int xenbus_map_ring_valloc(struct xenbus
@@ -13753,7 +13765,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
else
xenbus_dev_error(dev, op.status,
"unmapping page at handle %d error %d",
---- head.orig/drivers/xen/xenbus/xenbus_probe.c 2012-03-12 13:39:39.000000000 +0100
+--- head.orig/drivers/xen/xenbus/xenbus_probe.c 2013-06-05 13:50:57.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_probe.c 2012-03-12 13:47:02.000000000 +0100
@@ -175,7 +175,7 @@ static int read_backend_details(struct x
return read_otherend_details(xendev, "backend-id", "backend");
@@ -13821,17 +13833,17 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
device_remove_file(&xendev->dev, &dev_attr_nodename);
fail_unregister:
device_unregister(&xendev->dev);
---- head.orig/fs/aio.c 2013-03-21 14:14:37.000000000 +0100
-+++ head/fs/aio.c 2013-03-21 14:29:03.000000000 +0100
-@@ -1228,6 +1228,7 @@ static void io_destroy(struct kioctx *io
+--- head.orig/fs/aio.c 2013-06-05 13:50:57.000000000 +0200
++++ head/fs/aio.c 2013-06-04 13:56:31.000000000 +0200
+@@ -452,6 +452,7 @@ static void kill_ioctx(struct kioctx *ct
#ifdef CONFIG_EPOLL
- /* forget the poll file, but it's up to the user to close it */
- if (ioctx->file) {
-+ fput(ioctx->file);
- ioctx->file->private_data = 0;
- ioctx->file = 0;
- }
-@@ -1251,6 +1252,7 @@ static int aio_queue_fd_close(struct ino
+ /* forget the poll file, but it's up to the user to close it */
+ if (ctx->file) {
++ fput(ctx->file);
+ ctx->file->private_data = 0;
+ ctx->file = 0;
+ }
+@@ -862,6 +863,7 @@ static int aio_queue_fd_close(struct ino
spin_lock_irq(&ioctx->ctx_lock);
ioctx->file = 0;
spin_unlock_irq(&ioctx->ctx_lock);
@@ -13839,7 +13851,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
}
return 0;
}
-@@ -1286,16 +1288,17 @@ static const struct file_operations aioq
+@@ -897,16 +899,17 @@ static const struct file_operations aioq
static int make_aio_fd(struct kioctx *ioctx)
{
@@ -13863,7 +13875,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
file->private_data = ioctx;
ioctx->file = file;
init_waitqueue_head(&ioctx->poll_wait);
---- head.orig/arch/x86/include/mach-xen/asm/desc.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/desc.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/desc.h 2011-01-31 18:07:35.000000000 +0100
@@ -64,8 +64,8 @@ static inline struct desc_struct *get_cp
}
@@ -14007,7 +14019,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#endif /* __ASSEMBLY__ */
---- head.orig/arch/x86/include/mach-xen/asm/dma-mapping.h 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/dma-mapping.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/dma-mapping.h 2011-01-31 18:07:35.000000000 +0100
@@ -1,5 +1,17 @@
-#ifdef CONFIG_X86_32
@@ -14032,7 +14044,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+extern int range_straddles_page_boundary(paddr_t p, size_t size);
+
+#endif /* _ASM_DMA_MAPPING_H_ */
---- head.orig/arch/x86/include/mach-xen/asm/fixmap.h 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/fixmap.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/fixmap.h 2011-01-31 18:07:35.000000000 +0100
@@ -1,5 +1,13 @@
+#ifndef _ASM_FIXMAP_H
@@ -14048,7 +14060,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+ __set_fixmap(idx, 0, __pgprot(0))
+
+#endif
---- head.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/fixmap_32.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/fixmap_32.h 2011-01-31 18:07:35.000000000 +0100
@@ -10,8 +10,8 @@
* Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
@@ -14105,7 +14117,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
}
static inline unsigned long virt_to_fix(const unsigned long vaddr)
---- head.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/fixmap_64.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/fixmap_64.h 2011-01-31 18:07:35.000000000 +0100
@@ -8,8 +8,8 @@
* Copyright (C) 1998 Ingo Molnar
@@ -14169,7 +14181,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#define FIXADDR_TOP (VSYSCALL_END-PAGE_SIZE)
#define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
---- head.orig/arch/x86/include/mach-xen/asm/highmem.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/highmem.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/highmem.h 2011-01-31 18:07:35.000000000 +0100
@@ -8,7 +8,7 @@
* Gerhard.Wichert@pdb.siemens.de
@@ -14180,7 +14192,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
* up to 16 Terabyte physical memory. With current x86 CPUs
* we now support up to 64 Gigabytes physical RAM.
*
---- head.orig/arch/x86/include/mach-xen/asm/io.h 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/io.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/io.h 2011-01-31 18:07:35.000000000 +0100
@@ -1,5 +1,22 @@
+#ifndef _ASM_X86_IO_H
@@ -14205,7 +14217,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size);
+
+#endif /* _ASM_X86_IO_H */
---- head.orig/arch/x86/include/mach-xen/asm/irqflags.h 2012-05-24 09:50:06.000000000 +0200
+--- head.orig/arch/x86/include/mach-xen/asm/irqflags.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/irqflags.h 2012-05-24 09:11:30.000000000 +0200
@@ -128,11 +128,11 @@ sysexit_ecrit: /**** END OF SYSEXIT CRIT
#endif /* __ASSEMBLY__ */
@@ -14223,7 +14235,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
static inline int raw_irqs_disabled_flags(unsigned long flags)
{
---- head.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/mmu_context_32.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/mmu_context_32.h 2011-01-31 18:07:35.000000000 +0100
@@ -94,7 +94,7 @@ static inline void switch_mm(struct mm_s
BUG_ON(per_cpu(cpu_tlbstate, cpu).active_mm != next);
@@ -14250,7 +14262,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+} while (0)
#endif
---- head.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/mmu_context_64.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/mmu_context_64.h 2011-01-31 18:07:35.000000000 +0100
@@ -21,7 +21,7 @@ void destroy_context(struct mm_struct *m
static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
@@ -14295,7 +14307,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next)
{
---- head.orig/arch/x86/include/mach-xen/asm/pci.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pci.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/pci.h 2011-01-31 18:07:35.000000000 +0100
@@ -8,14 +8,13 @@
#include <asm/scatterlist.h>
@@ -14349,7 +14361,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#ifdef CONFIG_PCI
---- head.orig/arch/x86/include/mach-xen/asm/pgalloc.h 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pgalloc.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/pgalloc.h 2011-01-31 18:07:35.000000000 +0100
@@ -1,5 +1,149 @@
-#ifdef CONFIG_X86_32
@@ -14505,7 +14517,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+#endif /* PAGETABLE_LEVELS > 2 */
+
+#endif /* _ASM_X86_PGALLOC_H */
---- head.orig/arch/x86/include/mach-xen/asm/pgalloc_32.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pgalloc_32.h 2013-06-05 13:50:57.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,111 +0,0 @@
-#ifndef _I386_PGALLOC_H
@@ -14619,7 +14631,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
-#endif /* CONFIG_X86_PAE */
-
-#endif /* _I386_PGALLOC_H */
---- head.orig/arch/x86/include/mach-xen/asm/pgalloc_64.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pgalloc_64.h 2013-06-05 13:50:57.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,182 +0,0 @@
-#ifndef _X86_64_PGALLOC_H
@@ -14804,7 +14816,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
-#define __pud_free_tlb(tlb,x) tlb_remove_page((tlb),virt_to_page(x))
-
-#endif /* _X86_64_PGALLOC_H */
---- head.orig/arch/x86/include/mach-xen/asm/pgtable.h 2012-11-26 14:10:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pgtable.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/pgtable.h 2011-03-23 09:52:33.000000000 +0100
@@ -1,17 +1,15 @@
#ifndef _ASM_X86_PGTABLE_H
@@ -15213,7 +15225,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#define arch_change_pte_range(mm, pmd, addr, end, newprot, dirty_accountable) \
xen_change_pte_range(mm, pmd, addr, end, newprot, dirty_accountable)
---- head.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:14:16.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pgtable-3level.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/pgtable-3level.h 2011-03-23 09:52:36.000000000 +0100
@@ -8,25 +8,28 @@
* Copyright (C) 1999 Ingo Molnar <mingo@redhat.com>
@@ -15299,7 +15311,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#define PTE_FILE_MAX_BITS 32
/* Encode and de-code a swap entry */
---- head.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-02-07 15:38:52.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pgtable_32.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/pgtable_32.h 2011-01-31 18:07:35.000000000 +0100
@@ -38,16 +38,13 @@ void paging_init(void);
#ifdef CONFIG_X86_PAE
@@ -15511,7 +15523,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+ direct_remap_pfn_range(vma, from, pfn, size, prot, DOMID_IO)
#endif /* _I386_PGTABLE_H */
---- head.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:14:24.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pgtable_64.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/pgtable_64.h 2011-03-23 09:52:37.000000000 +0100
@@ -31,7 +31,7 @@ extern void paging_init(void);
@@ -15784,7 +15796,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
#define __HAVE_ARCH_PTE_SAME
#endif /* !__ASSEMBLY__ */
---- head.orig/arch/x86/include/mach-xen/asm/processor.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/processor.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/processor.h 2011-03-03 16:42:13.000000000 +0100
@@ -3,10 +3,6 @@
@@ -16817,7 +16829,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+extern int set_tsc_mode(unsigned int val);
#endif
---- head.orig/arch/x86/include/mach-xen/asm/smp.h 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/smp.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/smp.h 2011-01-31 18:07:35.000000000 +0100
@@ -1,5 +1,225 @@
-#ifdef CONFIG_X86_32
@@ -17048,7 +17060,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+extern void unlock_ipi_call_lock(void);
+#endif /* __ASSEMBLY__ */
#endif
---- head.orig/arch/x86/include/mach-xen/asm/smp_32.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/smp_32.h 2013-06-05 13:50:57.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,173 +0,0 @@
-#ifndef __ASM_SMP_H
@@ -17224,7 +17236,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
-
-#endif /* !ASSEMBLY */
-#endif
---- head.orig/arch/x86/include/mach-xen/asm/smp_64.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/smp_64.h 2013-06-05 13:50:57.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,101 +0,0 @@
-#ifndef __ASM_SMP_H
@@ -17328,7 +17340,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
-
-#endif
-
---- head.orig/arch/x86/include/mach-xen/asm/spinlock.h 2012-04-03 08:23:24.000000000 +0200
+--- head.orig/arch/x86/include/mach-xen/asm/spinlock.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/spinlock.h 2012-01-31 16:50:18.000000000 +0100
@@ -104,7 +104,7 @@ void xen_spin_kick(const raw_spinlock_t
: \
@@ -17392,7 +17404,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
{
unsigned int token;
bool kick;
---- head.orig/arch/x86/include/mach-xen/asm/swiotlb.h 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/swiotlb.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/swiotlb.h 2011-01-31 18:07:35.000000000 +0100
@@ -1,5 +1,4 @@
-#ifdef CONFIG_X86_32
@@ -17404,7 +17416,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+
+dma_addr_t swiotlb_map_single_phys(struct device *, phys_addr_t, size_t size,
+ int dir);
---- head.orig/arch/x86/include/mach-xen/asm/tlbflush.h 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/tlbflush.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/tlbflush.h 2011-01-31 18:07:35.000000000 +0100
@@ -86,8 +86,7 @@ static inline void flush_tlb_range(struc
#define TLBSTATE_LAZY 2
@@ -17416,7 +17428,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
struct mm_struct *active_mm;
int state;
char __cacheline_padding[L1_CACHE_BYTES-8];
---- head.orig/arch/x86/include/mach-xen/asm/vga.h 2007-06-12 13:14:02.000000000 +0200
+--- head.orig/arch/x86/include/mach-xen/asm/vga.h 2013-06-05 13:50:57.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/vga.h 2011-01-31 18:07:35.000000000 +0100
@@ -12,9 +12,9 @@
* access the videoram directly without any black magic.
@@ -17430,7 +17442,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
+#define vga_writeb(x, y) (*(y) = (x))
#endif
---- head.orig/include/linux/page-flags.h 2012-08-20 10:38:52.000000000 +0200
+--- head.orig/include/linux/page-flags.h 2013-06-05 13:50:57.000000000 +0200
+++ head/include/linux/page-flags.h 2013-03-21 14:29:20.000000000 +0100
@@ -326,28 +326,27 @@ static inline void SetPageUptodate(struc
@@ -17482,7 +17494,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
extern void cancel_dirty_page(struct page *page, unsigned int account_size);
---- head.orig/include/xen/balloon.h 2007-06-12 13:14:19.000000000 +0200
+--- head.orig/include/xen/balloon.h 2013-06-05 13:50:57.000000000 +0200
+++ head/include/xen/balloon.h 2011-01-31 18:07:35.000000000 +0100
@@ -31,9 +31,12 @@
* IN THE SOFTWARE.
@@ -17507,7 +17519,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
-#endif /* __ASM_BALLOON_H__ */
+#endif /* __XEN_BALLOON_H__ */
---- head.orig/include/xen/interface/grant_table.h 2012-12-18 10:47:37.000000000 +0100
+--- head.orig/include/xen/interface/grant_table.h 2013-06-05 13:50:57.000000000 +0200
+++ head/include/xen/interface/grant_table.h 2012-12-18 12:05:31.000000000 +0100
@@ -346,6 +346,7 @@ struct gnttab_map_grant_ref {
grant_handle_t handle;
@@ -17565,7 +17577,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
typedef struct gnttab_query_size gnttab_query_size_t;
DEFINE_XEN_GUEST_HANDLE(gnttab_query_size_t);
---- head.orig/include/xen/interface/io/fbif.h 2011-01-31 15:14:12.000000000 +0100
+--- head.orig/include/xen/interface/io/fbif.h 2013-06-05 13:50:57.000000000 +0200
+++ head/include/xen/interface/io/fbif.h 2011-01-31 18:07:35.000000000 +0100
@@ -146,7 +146,12 @@ struct xenfb_page {
* Should be enough for a while with room leftover for
@@ -17580,7 +17592,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
};
/*
---- head.orig/include/xen/interface/memory.h 2013-04-26 10:35:03.000000000 +0200
+--- head.orig/include/xen/interface/memory.h 2013-06-05 13:50:57.000000000 +0200
+++ head/include/xen/interface/memory.h 2013-04-26 10:45:01.000000000 +0200
@@ -96,7 +96,6 @@ struct xen_memory_reservation {
*/
@@ -17618,7 +17630,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
typedef struct xen_add_to_physmap xen_add_to_physmap_t;
DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
---- head.orig/include/xen/interface/vcpu.h 2011-03-17 13:50:24.000000000 +0100
+--- head.orig/include/xen/interface/vcpu.h 2013-06-05 13:50:57.000000000 +0200
+++ head/include/xen/interface/vcpu.h 2011-01-31 18:07:35.000000000 +0100
@@ -87,6 +87,7 @@ struct vcpu_runstate_info {
*/
@@ -17652,7 +17664,7 @@ Automatically created from "patches.kernel.org/patch-2.6.26" by xen-port-patches
typedef struct vcpu_register_vcpu_info vcpu_register_vcpu_info_t;
DEFINE_XEN_GUEST_HANDLE(vcpu_register_vcpu_info_t);
---- head.orig/lib/swiotlb-xen.c 2011-01-31 18:01:51.000000000 +0100
+--- head.orig/lib/swiotlb-xen.c 2013-06-05 13:50:57.000000000 +0200
+++ head/lib/swiotlb-xen.c 2012-11-14 12:52:06.000000000 +0100
@@ -20,6 +20,7 @@
#include <linux/ctype.h>
diff --git a/patches.xen/xen3-patch-2.6.27 b/patches.xen/xen3-patch-2.6.27
index 206b24cc30..1fdbdbb1d9 100644
--- a/patches.xen/xen3-patch-2.6.27
+++ b/patches.xen/xen3-patch-2.6.27
@@ -13,9 +13,9 @@ have been needed - see SLE11 SPn).
2.6.28/arch/x86/kernel/cpu/common_64-xen.c
---- head.orig/arch/x86/Kconfig 2013-04-26 10:44:47.000000000 +0200
-+++ head/arch/x86/Kconfig 2013-03-21 14:31:12.000000000 +0100
-@@ -1525,7 +1525,7 @@ config MTRR
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:17:20.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:17:56.000000000 +0200
+@@ -1521,7 +1521,7 @@ config MTRR
config MTRR_SANITIZER
def_bool y
prompt "MTRR cleanup support"
@@ -309,10 +309,10 @@ have been needed - see SLE11 SPn).
time_64-$(CONFIG_XEN) += time_32.o
endif
--disabled-obj-$(CONFIG_XEN) := crash.o early-quirks.o hpet.o i8237.o i8253.o i8259_$(BITS).o \
+-disabled-obj-$(CONFIG_XEN) := crash.o early-quirks.o i8237.o i8253.o i8259_$(BITS).o \
- pci-swiotlb_64.o reboot.o smpboot.o tlb_$(BITS).o tsc_$(BITS).o tsc_sync.o vsmp_64.o
-+disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o hpet.o i8237.o \
-+ i8253.o i8259.o irqinit_$(BITS).o pci-swiotlb_64.o reboot.o smpboot.o \
++disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o i8237.o i8253.o \
++ 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.orig/arch/x86/kernel/acpi/boot.c 2013-03-21 14:28:18.000000000 +0100
@@ -360,8 +360,8 @@ have been needed - see SLE11 SPn).
/*
* If acpi_disabled, bail out
---- head.orig/arch/x86/kernel/amd_nb.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/kernel/amd_nb.c 2012-08-20 10:54:48.000000000 +0200
+--- head.orig/arch/x86/kernel/amd_nb.c 2013-05-23 08:55:30.000000000 +0200
++++ head/arch/x86/kernel/amd_nb.c 2013-05-23 17:18:02.000000000 +0200
@@ -18,6 +18,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) },
@@ -372,7 +372,7 @@ have been needed - see SLE11 SPn).
+#endif
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) },
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M10H_F3) },
- {}
+ { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) },
--- head.orig/arch/x86/kernel/apic/apic-xen.c 2011-02-24 15:45:13.000000000 +0100
+++ head/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;
@@ -387,9 +387,9 @@ have been needed - see SLE11 SPn).
#ifndef CONFIG_XEN
static int modern_apic(void)
---- head.orig/arch/x86/kernel/cpu/amd.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/kernel/cpu/amd.c 2013-03-21 14:31:31.000000000 +0100
-@@ -669,6 +669,7 @@ static void __cpuinit init_amd(struct cp
+--- head.orig/arch/x86/kernel/cpu/amd.c 2013-05-23 08:55:31.000000000 +0200
++++ head/arch/x86/kernel/cpu/amd.c 2013-05-23 17:18:07.000000000 +0200
+@@ -670,6 +670,7 @@ static void __cpuinit init_amd(struct cp
fam10h_check_enable_mmcfg();
}
@@ -397,7 +397,7 @@ have been needed - see SLE11 SPn).
if (c == &boot_cpu_data && c->x86 >= 0xf) {
unsigned long long tseg;
-@@ -686,6 +687,7 @@ static void __cpuinit init_amd(struct cp
+@@ -687,6 +688,7 @@ static void __cpuinit init_amd(struct cp
}
}
#endif
@@ -405,7 +405,7 @@ have been needed - see SLE11 SPn).
/*
* Family 0x12 and above processors have APIC timer
---- head.orig/arch/x86/kernel/cpu/bugs_64.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/kernel/cpu/bugs_64.c 2009-12-03 04:51:21.000000000 +0100
+++ head/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
@@ -2876,9 +2876,9 @@ have been needed - see SLE11 SPn).
cmpl $nr_syscalls,%eax
jb syscall_call
jmp syscall_exit
---- head.orig/arch/x86/kernel/entry_64.S 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/kernel/entry_64.S 2013-03-21 14:31:35.000000000 +0100
-@@ -1383,7 +1383,7 @@ ENTRY(arch_unwind_init_running)
+--- head.orig/arch/x86/kernel/entry_64.S 2013-06-04 00:00:00.000000000 +0200
++++ head/arch/x86/kernel/entry_64.S 2013-05-23 17:18:12.000000000 +0200
+@@ -1393,7 +1393,7 @@ ENTRY(arch_unwind_init_running)
END(arch_unwind_init_running)
#endif
@@ -2887,7 +2887,7 @@ have been needed - see SLE11 SPn).
zeroentry xen_hypervisor_callback xen_do_hypervisor_callback
/*
-@@ -1483,7 +1483,7 @@ END(xen_failsafe_callback)
+@@ -1493,7 +1493,7 @@ END(xen_failsafe_callback)
apicinterrupt HYPERVISOR_CALLBACK_VECTOR \
xen_hvm_callback_vector xen_evtchn_do_upcall
@@ -6226,7 +6226,7 @@ have been needed - see SLE11 SPn).
};
void __init no_iommu_init(void)
---- head.orig/arch/x86/kernel/probe_roms.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/kernel/probe_roms.c 2012-12-11 04:30:57.000000000 +0100
+++ head/arch/x86/kernel/probe_roms.c 2012-04-10 16:47:21.000000000 +0200
@@ -233,7 +233,7 @@ void __init probe_roms(void)
upper = system_rom_resource.start;
@@ -16831,7 +16831,7 @@ have been needed - see SLE11 SPn).
void make_lowmem_page_readonly(void *va, unsigned int feature)
{
pte_t *pte;
---- head.orig/arch/x86/pci/amd_bus.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/pci/amd_bus.c 2012-10-01 01:47:46.000000000 +0200
+++ head/arch/x86/pci/amd_bus.c 2012-08-20 10:55:14.000000000 +0200
@@ -312,6 +312,7 @@ static int __init early_fill_mp_bus_info
@@ -16880,7 +16880,7 @@ have been needed - see SLE11 SPn).
if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
return 0;
---- head.orig/arch/x86/pci/mmconfig-shared.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/pci/mmconfig-shared.c 2013-04-29 02:36:01.000000000 +0200
+++ head/arch/x86/pci/mmconfig-shared.c 2013-01-14 13:50:37.000000000 +0100
@@ -23,6 +23,10 @@
#include <asm/pci_x86.h>
@@ -17124,7 +17124,7 @@ have been needed - see SLE11 SPn).
}
memcpy(syscall_page, vsyscall, vsyscall_len);
---- head.orig/arch/x86/xen/Kconfig 2011-01-31 17:49:31.000000000 +0100
+--- head.orig/arch/x86/xen/Kconfig 2013-05-23 17:06:53.000000000 +0200
+++ head/arch/x86/xen/Kconfig 2013-01-08 11:51:10.000000000 +0100
@@ -32,14 +32,14 @@ config XEN_MAX_DOMAIN_MEMORY
int
@@ -17178,9 +17178,9 @@ have been needed - see SLE11 SPn).
}
status = acpi_evaluate_object(handle, "_PDC", pdc_in, NULL);
---- head.orig/drivers/acpi/processor_driver.c 2013-03-21 14:28:49.000000000 +0100
-+++ head/drivers/acpi/processor_driver.c 2013-01-30 10:41:41.000000000 +0100
-@@ -619,7 +619,7 @@ static int __cpuinit acpi_processor_add(
+--- head.orig/drivers/acpi/processor_driver.c 2013-05-23 17:16:50.000000000 +0200
++++ head/drivers/acpi/processor_driver.c 2013-05-23 17:17:40.000000000 +0200
+@@ -615,7 +615,7 @@ static int __cpuinit acpi_processor_add(
#ifndef CONFIG_XEN
per_cpu(processor_device_array, pr->id) = device;
#else
@@ -17189,7 +17189,7 @@ have been needed - see SLE11 SPn).
#endif
per_cpu(processors, pr->id) = pr;
-@@ -628,6 +628,9 @@ static int __cpuinit acpi_processor_add(
+@@ -624,6 +624,9 @@ static int __cpuinit acpi_processor_add(
result = -EFAULT;
goto err_clear_processor;
}
@@ -17199,7 +17199,7 @@ have been needed - see SLE11 SPn).
/*
* Do not start hotplugged CPUs now, but when they
-@@ -684,7 +687,8 @@ static int acpi_processor_remove(struct
+@@ -680,7 +683,8 @@ static int acpi_processor_remove(struct
acpi_processor_power_exit(pr);
@@ -17235,9 +17235,9 @@ have been needed - see SLE11 SPn).
unsigned char buffer[1];
struct vtpm_state *vtpms;
vtpms = (struct vtpm_state *)chip_get_private(chip);
---- head.orig/drivers/dma/ioat/dma.h 2013-03-21 14:20:41.000000000 +0100
-+++ head/drivers/dma/ioat/dma.h 2013-03-21 14:30:39.000000000 +0100
-@@ -340,6 +340,7 @@ __ioat_dca_init(struct pci_dev *pdev, vo
+--- head.orig/drivers/dma/ioat/dma.h 2013-05-23 17:09:55.000000000 +0200
++++ head/drivers/dma/ioat/dma.h 2013-05-23 17:17:49.000000000 +0200
+@@ -389,6 +389,7 @@ __ioat_dca_init(struct pci_dev *pdev, vo
}
#define ioat_dca_init __ioat_dca_init
#define ioat2_dca_init __ioat_dca_init
@@ -18497,9 +18497,9 @@ have been needed - see SLE11 SPn).
#if defined(CONFIG_XEN) || defined(MODULE)
static int xenwatch_handle_callback(void *data)
---- head.orig/fs/aio.c 2013-03-21 14:29:03.000000000 +0100
-+++ head/fs/aio.c 2013-03-21 14:30:27.000000000 +0100
-@@ -1291,7 +1291,7 @@ static int make_aio_fd(struct kioctx *io
+--- head.orig/fs/aio.c 2013-06-04 13:56:31.000000000 +0200
++++ head/fs/aio.c 2013-06-04 13:56:38.000000000 +0200
+@@ -902,7 +902,7 @@ static int make_aio_fd(struct kioctx *io
int fd;
struct file *file;
@@ -18508,7 +18508,7 @@ have been needed - see SLE11 SPn).
if (fd < 0)
return fd;
---- head.orig/include/uapi/Kbuild 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/include/uapi/Kbuild 2012-12-11 04:30:57.000000000 +0100
+++ head/include/uapi/Kbuild 2012-10-23 15:01:10.000000000 +0200
@@ -10,5 +10,6 @@ header-y += mtd/
header-y += rdma/
@@ -20720,7 +20720,7 @@ have been needed - see SLE11 SPn).
-#define ARCH_SETUP machine_specific_arch_setup();
-
-static void __init machine_specific_arch_setup(void);
---- head.orig/arch/x86/include/asm/traps.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/include/asm/traps.h 2012-05-21 00:29:13.000000000 +0200
+++ head/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);
@@ -20844,7 +20844,7 @@ have been needed - see SLE11 SPn).
typedef struct xenbus_alloc {
domid_t dom;
__u32 port;
---- head.orig/kernel/kexec.c 2013-04-26 10:43:12.000000000 +0200
+--- head.orig/kernel/kexec.c 2013-05-23 17:09:31.000000000 +0200
+++ head/kernel/kexec.c 2012-10-23 15:02:01.000000000 +0200
@@ -47,7 +47,7 @@ note_buf_t __percpu *crash_notes;
static unsigned char vmcoreinfo_data[VMCOREINFO_BYTES];
diff --git a/patches.xen/xen3-patch-2.6.28 b/patches.xen/xen3-patch-2.6.28
index f71c0f9417..e4b7c3b9a9 100644
--- a/patches.xen/xen3-patch-2.6.28
+++ b/patches.xen/xen3-patch-2.6.28
@@ -9,9 +9,9 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
3.4/arch/x86/Kconfig.cpu
---- head.orig/arch/ia64/Kconfig 2013-04-26 09:59:53.000000000 +0200
-+++ head/arch/ia64/Kconfig 2013-03-21 14:32:53.000000000 +0100
-@@ -236,7 +236,7 @@ config IA64_HP_SIM
+--- head.orig/arch/ia64/Kconfig 2013-05-23 08:55:26.000000000 +0200
++++ head/arch/ia64/Kconfig 2013-05-23 17:19:57.000000000 +0200
+@@ -234,7 +234,7 @@ config IA64_HP_SIM
config IA64_XEN_GUEST
bool "Xen guest"
select SWIOTLB
@@ -20,7 +20,7 @@ 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.orig/arch/ia64/Makefile 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/ia64/Makefile 2010-10-20 22:30:22.000000000 +0200
+++ head/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/
@@ -31,7 +31,7 @@ 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.orig/arch/ia64/include/asm/xen/hypervisor.h 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/ia64/include/asm/xen/hypervisor.h 2010-02-24 19:52:17.000000000 +0100
+++ head/arch/ia64/include/asm/xen/hypervisor.h 2011-02-01 14:39:24.000000000 +0100
@@ -40,7 +40,7 @@
#include <xen/xen.h>
@@ -42,7 +42,7 @@ 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.orig/arch/ia64/include/asm/xen/interface.h 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/ia64/include/asm/xen/interface.h 2012-12-11 04:30:57.000000000 +0100
+++ head/arch/ia64/include/asm/xen/interface.h 2012-10-23 15:08:42.000000000 +0200
@@ -56,14 +56,14 @@
#ifndef _ASM_IA64_XEN_INTERFACE_H
@@ -93,7 +93,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#ifndef __ASSEMBLY__
---- head.orig/arch/ia64/kernel/asm-offsets.c 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/ia64/kernel/asm-offsets.c 2013-04-29 02:36:01.000000000 +0200
+++ head/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,
@@ -104,7 +104,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
BLANK();
DEFINE(XEN_NATIVE_ASM, XEN_NATIVE);
---- head.orig/arch/ia64/xen/Kconfig 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/ia64/xen/Kconfig 2013-04-29 02:36:01.000000000 +0200
+++ head/arch/ia64/xen/Kconfig 2011-02-02 15:36:46.000000000 +0100
@@ -2,7 +2,7 @@
# This Kconfig describes xen/ia64 options
@@ -127,7 +127,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
- depends on XEN
+ depends on PARAVIRT_XEN
bool
---- head.orig/arch/ia64/xen/xcom_hcall.c 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/ia64/xen/xcom_hcall.c 2008-12-25 00:26:37.000000000 +0100
+++ head/arch/ia64/xen/xcom_hcall.c 2011-02-01 14:39:24.000000000 +0100
@@ -343,7 +343,7 @@ xencommize_memory_reservation(struct xen
int
@@ -138,9 +138,9 @@ 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.orig/arch/x86/Kconfig 2013-03-21 14:31:12.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-03-21 14:32:19.000000000 +0100
-@@ -1077,7 +1077,7 @@ config MICROCODE
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:17:56.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:19:40.000000000 +0200
+@@ -1073,7 +1073,7 @@ config MICROCODE
config MICROCODE_INTEL
bool "Intel microcode loading support"
@@ -149,7 +149,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
default MICROCODE
select FW_LOADER
---help---
-@@ -1090,7 +1090,7 @@ config MICROCODE_INTEL
+@@ -1086,7 +1086,7 @@ config MICROCODE_INTEL
config MICROCODE_AMD
bool "AMD microcode loading support"
@@ -158,7 +158,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
select FW_LOADER
---help---
If you select this option, microcode patch loading support for AMD
-@@ -1402,6 +1402,7 @@ config HIGHPTE
+@@ -1398,6 +1398,7 @@ config HIGHPTE
config X86_CHECK_BIOS_CORRUPTION
bool "Check for low memory corruption"
@@ -166,7 +166,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
---help---
Periodically check for memory corruption in low memory, which
is suspected to be caused by BIOS. Even when enabled in the
-@@ -1432,6 +1433,7 @@ config X86_BOOTPARAM_MEMORY_CORRUPTION_C
+@@ -1428,6 +1429,7 @@ config X86_BOOTPARAM_MEMORY_CORRUPTION_C
config X86_RESERVE_LOW
int "Amount of low memory, in kilobytes, to reserve for the BIOS"
@@ -174,7 +174,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
default 64
range 4 640
---help---
-@@ -1555,8 +1557,8 @@ config MTRR_SANITIZER_SPARE_REG_NR_DEFAU
+@@ -1551,8 +1553,8 @@ config MTRR_SANITIZER_SPARE_REG_NR_DEFAU
config X86_PAT
def_bool y
@@ -315,7 +315,7 @@ 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.orig/arch/x86/include/asm/agp.h 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/include/asm/agp.h 2009-12-03 04:51:21.000000000 +0100
+++ head/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)
@@ -327,9 +327,9 @@ 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.orig/arch/x86/include/asm/cpufeature.h 2013-04-26 09:59:53.000000000 +0200
-+++ head/arch/x86/include/asm/cpufeature.h 2013-03-21 14:32:34.000000000 +0100
-@@ -304,7 +304,11 @@ extern const char * const x86_power_flag
+--- head.orig/arch/x86/include/asm/cpufeature.h 2013-05-23 08:55:29.000000000 +0200
++++ head/arch/x86/include/asm/cpufeature.h 2013-05-23 17:19:47.000000000 +0200
+@@ -320,7 +320,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)
#define cpu_has_x2apic boot_cpu_has(X86_FEATURE_X2APIC)
@@ -341,9 +341,9 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#define cpu_has_xsaveopt boot_cpu_has(X86_FEATURE_XSAVEOPT)
#define cpu_has_osxsave boot_cpu_has(X86_FEATURE_OSXSAVE)
#define cpu_has_hypervisor boot_cpu_has(X86_FEATURE_HYPERVISOR)
---- head.orig/arch/x86/include/asm/hw_irq.h 2013-04-26 09:59:53.000000000 +0200
-+++ head/arch/x86/include/asm/hw_irq.h 2013-03-21 14:32:41.000000000 +0100
-@@ -162,6 +162,7 @@ extern void smp_error_interrupt(struct p
+--- head.orig/arch/x86/include/asm/hw_irq.h 2013-05-23 08:55:29.000000000 +0200
++++ head/arch/x86/include/asm/hw_irq.h 2013-05-23 17:19:50.000000000 +0200
+@@ -163,6 +163,7 @@ extern void smp_error_interrupt(struct p
extern asmlinkage void smp_irq_move_cleanup_interrupt(void);
#endif
#ifdef CONFIG_SMP
@@ -351,7 +351,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
extern void smp_reschedule_interrupt(struct pt_regs *);
extern void smp_call_function_interrupt(struct pt_regs *);
extern void smp_call_function_single_interrupt(struct pt_regs *);
-@@ -170,6 +171,12 @@ extern void smp_invalidate_interrupt(str
+@@ -171,6 +172,12 @@ extern void smp_invalidate_interrupt(str
#else
extern asmlinkage void smp_invalidate_interrupt(struct pt_regs *);
#endif
@@ -364,7 +364,7 @@ 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.orig/arch/x86/include/asm/mc146818rtc.h 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/include/asm/mc146818rtc.h 2012-05-21 00:29:13.000000000 +0200
+++ head/arch/x86/include/asm/mc146818rtc.h 2012-04-10 16:51:13.000000000 +0200
@@ -13,7 +13,7 @@
#define RTC_ALWAYS_BCD 1 /* RTC operates in binary mode */
@@ -375,7 +375,7 @@ 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.orig/arch/x86/include/asm/segment.h 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/include/asm/segment.h 2012-07-21 22:58:29.000000000 +0200
+++ head/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)
@@ -1696,12 +1696,12 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
time_64-$(CONFIG_XEN) += time_32.o
endif
--disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o hpet.o i8237.o \
-- i8253.o i8259.o irqinit_$(BITS).o pci-swiotlb_64.o reboot.o smpboot.o \
+-disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o i8237.o i8253.o \
+- 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) := %_uv.o crash.o early-quirks.o genx2apic_%.o \
-+ hpet.o i8237.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
++ i8237.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.orig/arch/x86/kernel/apic/apic-xen.c 2011-02-01 14:38:38.000000000 +0100
+++ head/arch/x86/kernel/apic/apic-xen.c 2011-02-24 15:49:32.000000000 +0100
@@ -1827,7 +1827,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif
return 0;
---- head.orig/arch/x86/kernel/cpu/topology.c 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/kernel/cpu/topology.c 2010-10-20 22:30:22.000000000 +0200
+++ head/arch/x86/kernel/cpu/topology.c 2011-02-01 14:39:24.000000000 +0100
@@ -28,7 +28,7 @@
*/
@@ -3250,7 +3250,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+
+
#endif
---- head.orig/arch/x86/kernel/dumpstack_64.c 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/arch/x86/kernel/dumpstack_64.c 2013-05-23 08:57:02.000000000 +0200
+++ head/arch/x86/kernel/dumpstack_64.c 2011-02-01 14:39:24.000000000 +0100
@@ -21,6 +21,7 @@
#define N_EXCEPTION_STACKS_END \
@@ -15514,9 +15514,9 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
/*
* On UP processor, there is no _MAT or MADT table.
* So above apic_id is always set to -1.
---- head.orig/drivers/acpi/processor_driver.c 2013-01-30 10:41:41.000000000 +0100
-+++ head/drivers/acpi/processor_driver.c 2013-03-21 14:33:06.000000000 +0100
-@@ -332,7 +332,8 @@ static int acpi_processor_get_info(struc
+--- head.orig/drivers/acpi/processor_driver.c 2013-05-23 17:17:40.000000000 +0200
++++ head/drivers/acpi/processor_driver.c 2013-05-23 17:19:15.000000000 +0200
+@@ -328,7 +328,8 @@ static int acpi_processor_get_info(struc
*/
if (pr->id == -1) {
if (ACPI_FAILURE(acpi_processor_hotadd_init(pr)) &&
@@ -15536,7 +15536,7 @@ 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.orig/drivers/char/agp/generic.c 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/drivers/char/agp/generic.c 2012-07-21 22:58:29.000000000 +0200
+++ head/drivers/char/agp/generic.c 2012-06-13 15:28:07.000000000 +0200
@@ -1226,7 +1226,7 @@ int agp_generic_alloc_pages(struct agp_b
}
@@ -15556,9 +15556,9 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
#endif
for (i = 0; i < mem->page_count; i++) {
---- head.orig/drivers/firmware/dmi_scan.c 2013-04-26 09:59:53.000000000 +0200
-+++ head/drivers/firmware/dmi_scan.c 2013-03-21 14:33:18.000000000 +0100
-@@ -528,6 +528,11 @@ static bool dmi_matches(const struct dmi
+--- head.orig/drivers/firmware/dmi_scan.c 2013-05-23 08:55:38.000000000 +0200
++++ head/drivers/firmware/dmi_scan.c 2013-05-23 17:19:20.000000000 +0200
+@@ -545,6 +545,11 @@ static bool dmi_matches(const struct dmi
{
int i;
@@ -15570,7 +15570,7 @@ 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.orig/drivers/idle/Kconfig 2013-04-26 09:59:53.000000000 +0200
+--- head.orig/drivers/idle/Kconfig 2013-04-29 02:36:01.000000000 +0200
+++ head/drivers/idle/Kconfig 2011-02-01 14:39:24.000000000 +0100
@@ -10,7 +10,7 @@ config INTEL_IDLE
processors intel_idle does not support.
@@ -15627,9 +15627,9 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
+ return;
+ msi_acpi_init();
+}
---- head.orig/drivers/pci/probe.c 2013-04-26 09:59:53.000000000 +0200
-+++ head/drivers/pci/probe.c 2013-03-21 14:35:24.000000000 +0100
-@@ -1294,6 +1294,11 @@ static void pci_init_capabilities(struct
+--- head.orig/drivers/pci/probe.c 2013-05-23 08:56:16.000000000 +0200
++++ head/drivers/pci/probe.c 2013-05-23 17:19:25.000000000 +0200
+@@ -1296,6 +1296,11 @@ static void pci_init_capabilities(struct
/* Vital Product Data */
pci_vpd_pci22_init(dev);
@@ -15642,7 +15642,7 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
pci_configure_ari(dev);
--- head.orig/drivers/xen/Kconfig 2012-10-04 12:15:21.000000000 +0200
-+++ head/drivers/xen/Kconfig 2013-03-21 14:33:25.000000000 +0100
++++ head/drivers/xen/Kconfig 2013-05-23 17:19:30.000000000 +0200
@@ -395,9 +395,6 @@ config XEN_SPINLOCK_ACQUIRE_NESTING
This option specifies how many times this can be done for each
individual spin lock (0 disables this behavior).
@@ -15653,15 +15653,15 @@ Automatically created from "patches.kernel.org/patch-2.6.28" by xen-port-patches
config XEN_DEVMEM
def_bool y
-@@ -551,6 +548,9 @@ config SWIOTLB_XEN
- depends on PCI
+@@ -550,6 +547,9 @@ config SWIOTLB_XEN
+ depends on PCI && X86
select SWIOTLB
+config XEN_XENCOMM
+ bool
+
config XEN_TMEM
- bool
+ tristate
depends on !ARM
--- head.orig/drivers/xen/Makefile 2011-02-01 14:38:38.000000000 +0100
+++ head/drivers/xen/Makefile 2011-02-01 14:39:24.000000000 +0100
@@ -16253,9 +16253,9 @@ 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.orig/mm/vmalloc.c 2013-03-21 14:14:43.000000000 +0100
-+++ head/mm/vmalloc.c 2011-09-07 15:49:31.000000000 +0200
-@@ -523,6 +523,8 @@ static void vmap_debug_free_range(unsign
+--- head.orig/mm/vmalloc.c 2013-05-23 17:05:14.000000000 +0200
++++ head/mm/vmalloc.c 2013-05-23 17:19:06.000000000 +0200
+@@ -533,6 +533,8 @@ static void vmap_debug_free_range(unsign
#ifdef CONFIG_DEBUG_PAGEALLOC
vunmap_page_range(start, end);
flush_tlb_kernel_range(start, end);
diff --git a/patches.xen/xen3-patch-2.6.29 b/patches.xen/xen3-patch-2.6.29
index cff30e569f..5bbe12fe42 100644
--- a/patches.xen/xen3-patch-2.6.29
+++ b/patches.xen/xen3-patch-2.6.29
@@ -7,9 +7,9 @@ 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.orig/arch/x86/Kconfig 2013-03-21 14:32:19.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-03-21 14:36:35.000000000 +0100
-@@ -334,7 +334,6 @@ config X86_XEN
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:19:40.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:22:56.000000000 +0200
+@@ -329,7 +329,6 @@ config X86_XEN
depends on X86_32
select XEN
select X86_PAE
@@ -17,7 +17,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
help
Choose this option if you plan to run this kernel on top of the
Xen Hypervisor.
-@@ -377,7 +376,6 @@ config X86_64_XEN
+@@ -372,7 +371,6 @@ config X86_64_XEN
bool "Enable Xen compatible kernel"
depends on X86_64
select XEN
@@ -25,7 +25,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
help
This option will compile a kernel compatible with Xen hypervisor
-@@ -815,7 +813,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
+@@ -811,7 +809,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
# need this always selected by IOMMU for the VIA workaround
config SWIOTLB
@@ -34,7 +34,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
---help---
Support for software bounce buffers used on x86-64 systems
which don't have a hardware IOMMU. Using this PCI devices
-@@ -917,7 +915,7 @@ config X86_XEN_GENAPIC
+@@ -913,7 +911,7 @@ config X86_XEN_GENAPIC
config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
bool "Reroute for broken boot IRQs"
@@ -81,9 +81,9 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
END(ia32_syscall)
ia32_badsys:
---- head.orig/arch/x86/include/asm/hw_irq.h 2013-03-21 14:32:41.000000000 +0100
-+++ head/arch/x86/include/asm/hw_irq.h 2013-03-21 14:37:13.000000000 +0100
-@@ -179,7 +179,9 @@ extern irqreturn_t smp_call_function_sin
+--- head.orig/arch/x86/include/asm/hw_irq.h 2013-05-23 17:19:50.000000000 +0200
++++ head/arch/x86/include/asm/hw_irq.h 2013-05-23 17:22:48.000000000 +0200
+@@ -180,7 +180,9 @@ extern irqreturn_t smp_call_function_sin
#endif
#endif
@@ -93,12 +93,12 @@ 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.orig/arch/x86/include/asm/hypervisor.h 2013-05-10 14:14:38.000000000 +0200
-+++ head/arch/x86/include/asm/hypervisor.h 2013-03-21 14:37:07.000000000 +0100
-@@ -56,3 +56,7 @@ extern const struct hypervisor_x86 x86_h
- extern const struct hypervisor_x86 x86_hyper_kvm;
-
- #endif
+--- head.orig/arch/x86/include/asm/hypervisor.h 2013-05-23 08:55:29.000000000 +0200
++++ head/arch/x86/include/asm/hypervisor.h 2013-05-23 17:21:57.000000000 +0200
+@@ -62,3 +62,7 @@ static inline void init_hypervisor_platf
+ static inline bool hypervisor_x2apic_available(void) { return false; }
+ #endif /* CONFIG_HYPERVISOR_GUEST */
+ #endif /* _ASM_X86_HYPERVISOR_H */
+
+#ifdef HAVE_XEN_PLATFORM_COMPAT_H
+#include_next <asm/hypervisor.h>
@@ -756,17 +756,17 @@ 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.orig/arch/x86/kernel/cpu/Makefile 2012-08-20 10:38:35.000000000 +0200
-+++ head/arch/x86/kernel/cpu/Makefile 2012-08-20 13:10:00.000000000 +0200
-@@ -42,7 +42,7 @@ obj-$(CONFIG_MTRR) += mtrr/
+--- head.orig/arch/x86/kernel/cpu/Makefile 2013-05-23 17:10:46.000000000 +0200
++++ head/arch/x86/kernel/cpu/Makefile 2013-05-23 17:22:36.000000000 +0200
+@@ -43,7 +43,7 @@ obj-$(CONFIG_X86_LOCAL_APIC) += perfctr
- obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o perf_event_amd_ibs.o
+ obj-$(CONFIG_HYPERVISOR_GUEST) += vmware.o hypervisor.o mshyperv.o
-disabled-obj-$(CONFIG_XEN) := perfctr-watchdog.o
+disabled-obj-$(CONFIG_XEN) := hypervisor.o perfctr-watchdog.o vmware.o
quiet_cmd_mkcapflags = MKCAP $@
- cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@
+ cmd_mkcapflags = $(CONFIG_SHELL) $(srctree)/$(src)/mkcapflags.sh $< $@
--- head.orig/arch/x86/kernel/cpu/common-xen.c 2012-07-31 14:30:20.000000000 +0200
+++ head/arch/x86/kernel/cpu/common-xen.c 2012-08-01 11:54:04.000000000 +0200
@@ -38,17 +38,45 @@
@@ -880,7 +880,7 @@ 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.orig/arch/x86/kernel/cpu/intel.c 2013-03-21 14:21:04.000000000 +0100
+--- head.orig/arch/x86/kernel/cpu/intel.c 2013-05-23 17:10:52.000000000 +0200
+++ head/arch/x86/kernel/cpu/intel.c 2013-03-21 14:37:24.000000000 +0100
@@ -35,10 +35,15 @@ static void __cpuinit early_init_intel(s
rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
@@ -1695,7 +1695,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
+ */
+ .popsection
--- head.orig/arch/x86/kernel/entry_64-xen.S 2011-10-07 11:35:24.000000000 +0200
-+++ head/arch/x86/kernel/entry_64-xen.S 2011-10-07 11:38:06.000000000 +0200
++++ head/arch/x86/kernel/entry_64-xen.S 2013-05-24 08:22:09.000000000 +0200
@@ -14,15 +14,15 @@
*
* NOTE: This code handles signal-recognition, which happens every time
@@ -2470,7 +2470,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
xorl %esi,%esi # oldset
movq %rsp,%rdi # &pt_regs
call do_notify_resume
-@@ -707,323 +855,131 @@ ENTRY(retint_kernel)
+@@ -707,324 +855,68 @@ ENTRY(retint_kernel)
jnc retint_restore_args
call preempt_schedule_irq
jmp retint_kernel /* check again */
@@ -2480,26 +2480,19 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
CFI_ENDPROC
END(retint_check)
-
-+
- #ifndef CONFIG_XEN
- /*
- * APIC interrupts.
+-#ifndef CONFIG_XEN
+-/*
+- * APIC interrupts.
- */
- .macro apicinterrupt num,func
-+ */
-+.macro apicinterrupt num sym do_sym
-+ENTRY(\sym)
- INTR_FRAME
- pushq $~(\num)
- CFI_ADJUST_CFA_OFFSET 8
+- INTR_FRAME
+- pushq $~(\num)
+- CFI_ADJUST_CFA_OFFSET 8
- interrupt \func
-+ interrupt \do_sym
- jmp error_entry
- CFI_ENDPROC
+- jmp error_entry
+- CFI_ENDPROC
- .endm
-+END(\sym)
-+.endm
-
+-
-ENTRY(thermal_interrupt)
- apicinterrupt THERMAL_APIC_VECTOR,smp_thermal_interrupt
-END(thermal_interrupt)
@@ -2518,35 +2511,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
- apicinterrupt INVALIDATE_TLB_VECTOR_START+\num,smp_invalidate_interrupt
-END(invalidate_interrupt\num)
- .endm
-+#ifdef CONFIG_SMP
-+apicinterrupt IRQ_MOVE_CLEANUP_VECTOR \
-+ irq_move_cleanup_interrupt smp_irq_move_cleanup_interrupt
-+#endif
-+
-+apicinterrupt UV_BAU_MESSAGE \
-+ uv_bau_message_intr1 uv_bau_message_interrupt
-+apicinterrupt LOCAL_TIMER_VECTOR \
-+ apic_timer_interrupt smp_apic_timer_interrupt
-+
-+#ifdef CONFIG_SMP
-+apicinterrupt INVALIDATE_TLB_VECTOR_START+0 \
-+ invalidate_interrupt0 smp_invalidate_interrupt
-+apicinterrupt INVALIDATE_TLB_VECTOR_START+1 \
-+ invalidate_interrupt1 smp_invalidate_interrupt
-+apicinterrupt INVALIDATE_TLB_VECTOR_START+2 \
-+ invalidate_interrupt2 smp_invalidate_interrupt
-+apicinterrupt INVALIDATE_TLB_VECTOR_START+3 \
-+ invalidate_interrupt3 smp_invalidate_interrupt
-+apicinterrupt INVALIDATE_TLB_VECTOR_START+4 \
-+ invalidate_interrupt4 smp_invalidate_interrupt
-+apicinterrupt INVALIDATE_TLB_VECTOR_START+5 \
-+ invalidate_interrupt5 smp_invalidate_interrupt
-+apicinterrupt INVALIDATE_TLB_VECTOR_START+6 \
-+ invalidate_interrupt6 smp_invalidate_interrupt
-+apicinterrupt INVALIDATE_TLB_VECTOR_START+7 \
-+ invalidate_interrupt7 smp_invalidate_interrupt
-+#endif
-
+-
- INVALIDATE_ENTRY 0
- INVALIDATE_ENTRY 1
- INVALIDATE_ENTRY 2
@@ -2565,19 +2530,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
-ENTRY(irq_move_cleanup_interrupt)
- apicinterrupt IRQ_MOVE_CLEANUP_VECTOR,smp_irq_move_cleanup_interrupt
-END(irq_move_cleanup_interrupt)
-+apicinterrupt THRESHOLD_APIC_VECTOR \
-+ threshold_interrupt mce_threshold_interrupt
-+apicinterrupt THERMAL_APIC_VECTOR \
-+ thermal_interrupt smp_thermal_interrupt
-+
-+#ifdef CONFIG_SMP
-+apicinterrupt CALL_FUNCTION_SINGLE_VECTOR \
-+ call_function_single_interrupt smp_call_function_single_interrupt
-+apicinterrupt CALL_FUNCTION_VECTOR \
-+ call_function_interrupt smp_call_function_interrupt
-+apicinterrupt RESCHEDULE_VECTOR \
-+ reschedule_interrupt smp_reschedule_interrupt
- #endif
+-#endif
-ENTRY(apic_timer_interrupt)
- apicinterrupt LOCAL_TIMER_VECTOR,smp_apic_timer_interrupt
@@ -2594,13 +2547,8 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
-ENTRY(spurious_interrupt)
- apicinterrupt SPURIOUS_APIC_VECTOR,smp_spurious_interrupt
-END(spurious_interrupt)
-+apicinterrupt ERROR_APIC_VECTOR \
-+ error_interrupt smp_error_interrupt
-+apicinterrupt SPURIOUS_APIC_VECTOR \
-+ spurious_interrupt smp_spurious_interrupt
- #endif /* !CONFIG_XEN */
+-#endif /* !CONFIG_XEN */
-
-+
/*
* Exception entry points.
- */
@@ -2778,8 +2726,11 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
- CFI_ENDPROC
- .endm
-#endif
--
--/*
++.macro paranoiderrorentry sym do_sym
++ errorentry \sym \do_sym
++.endm
+
+ /*
- * Exception entry point. This expects an error code/orig_rax on the stack
- * and the exception handler in %rax.
- */
@@ -2845,10 +2796,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
- andl %edi,%edx
- jnz retint_careful
- jmp retint_restore_args
-+.macro paranoiderrorentry sym do_sym
-+ errorentry \sym \do_sym
-+.endm
-
+-
-#if 0
- /*
- * We need to re-write the logic here because we don't do iretq to
@@ -2882,10 +2830,11 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
- zeroentry do_hypervisor_callback
-END(hypervisor_callback)
-
- /*
+-/*
* Copied from arch/xen/i386/kernel/entry.S
*/
-@@ -1044,7 +1000,7 @@ ENTRY(do_hypervisor_callback) # do_hyp
+ # A note on the "critical region" in our callback handler.
+@@ -1044,7 +936,7 @@ ENTRY(do_hypervisor_callback) # do_hyp
# see the correct pointer to the pt_regs
movq %rdi, %rsp # we don't return, adjust the stack frame
CFI_ENDPROC
@@ -2894,7 +2843,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
11: incl %gs:pda_irqcount
movq %rsp,%rbp
CFI_DEF_CFA_REGISTER rbp
-@@ -1060,7 +1016,7 @@ END(do_hypervisor_callback)
+@@ -1060,7 +952,7 @@ END(do_hypervisor_callback)
ALIGN
restore_all_enable_events:
@@ -2903,7 +2852,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
TRACE_IRQS_ON
__ENABLE_INTERRUPTS
-@@ -1096,9 +1052,7 @@ ecrit: /**** END OF CRITICAL REGION ***
+@@ -1096,9 +988,7 @@ ecrit: /**** END OF CRITICAL REGION ***
# We distinguish between categories by comparing each saved segment register
# with its current contents: any discrepancy means we in category 1.
ENTRY(failsafe_callback)
@@ -2914,7 +2863,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
movw %ds,%cx
cmpw %cx,0x10(%rsp)
CFI_REMEMBER_STATE
-@@ -1134,20 +1088,19 @@ ENTRY(failsafe_callback)
+@@ -1134,20 +1024,19 @@ ENTRY(failsafe_callback)
SAVE_ALL
jmp error_exit
CFI_ENDPROC
@@ -2948,7 +2897,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/*
* Create a kernel thread.
-@@ -1171,7 +1124,7 @@ ENTRY(kernel_thread)
+@@ -1171,7 +1060,7 @@ ENTRY(kernel_thread)
xorl %r8d,%r8d
xorl %r9d,%r9d
@@ -2957,7 +2906,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
# clone now
call do_fork
movq %rax,RAX(%rsp)
-@@ -1182,15 +1135,15 @@ ENTRY(kernel_thread)
+@@ -1182,15 +1071,15 @@ ENTRY(kernel_thread)
* so internally to the x86_64 port you can rely on kernel_thread()
* not to reschedule the child before returning, this avoids the need
* of hacks for example to fork off the per-CPU idle tasks.
@@ -2977,7 +2926,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
pushq $0 # fake return address
CFI_STARTPROC
/*
-@@ -1203,8 +1156,9 @@ child_rip:
+@@ -1203,8 +1092,9 @@ child_rip:
# exit
mov %eax, %edi
call do_exit
@@ -2988,7 +2937,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/*
* execve(). This function needs to use IRET, not SYSRET, to set up all state properly.
-@@ -1224,10 +1178,10 @@ ENDPROC(child_rip)
+@@ -1224,10 +1114,10 @@ ENDPROC(child_rip)
ENTRY(kernel_execve)
CFI_STARTPROC
FAKE_STACK_FRAME $0
@@ -3001,7 +2950,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
RESTORE_REST
testq %rax,%rax
jne 1f
-@@ -1236,132 +1190,7 @@ ENTRY(kernel_execve)
+@@ -1236,132 +1126,7 @@ ENTRY(kernel_execve)
UNFAKE_STACK_FRAME
ret
CFI_ENDPROC
@@ -3135,7 +3084,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/* Call softirq on interrupt stack. Interrupts are off. */
ENTRY(call_softirq)
-@@ -1381,25 +1210,192 @@ ENTRY(call_softirq)
+@@ -1381,25 +1146,192 @@ ENTRY(call_softirq)
decl %gs:pda_irqcount
ret
CFI_ENDPROC
@@ -5414,7 +5363,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
+
#endif
--- head.orig/arch/x86/kernel/irq-xen.c 2011-02-01 14:39:24.000000000 +0100
-+++ head/arch/x86/kernel/irq-xen.c 2011-02-01 14:42:26.000000000 +0100
++++ head/arch/x86/kernel/irq-xen.c 2013-05-24 10:30:37.000000000 +0200
@@ -5,10 +5,11 @@
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
@@ -5547,6 +5496,14 @@ 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
+@@ -198,3 +205,7 @@ u64 arch_irq_stat(void)
+ #endif
+ return sum;
+ }
++
++#ifndef CONFIG_XEN
++EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq);
++#endif
--- head.orig/arch/x86/kernel/ldt-xen.c 2011-02-01 14:39:24.000000000 +0100
+++ head/arch/x86/kernel/ldt-xen.c 2011-02-01 14:42:26.000000000 +0100
@@ -12,8 +12,8 @@
@@ -8768,7 +8725,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
{
struct mm_struct *mm = current->mm;
unsigned long addr;
---- head.orig/drivers/acpi/Kconfig 2013-03-21 11:52:45.000000000 +0100
+--- head.orig/drivers/acpi/Kconfig 2013-05-23 15:38:21.000000000 +0200
+++ head/drivers/acpi/Kconfig 2013-03-21 14:36:14.000000000 +0100
@@ -189,7 +189,7 @@ config ACPI_I2C
config ACPI_PROCESSOR
@@ -8790,9 +8747,9 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
return apic_id;
#endif
#else
---- head.orig/drivers/acpi/processor_idle.c 2013-04-26 10:43:27.000000000 +0200
-+++ head/drivers/acpi/processor_idle.c 2013-04-26 10:45:37.000000000 +0200
-@@ -114,6 +114,7 @@ static struct dmi_system_id __cpuinitdat
+--- head.orig/drivers/acpi/processor_idle.c 2013-05-23 17:10:10.000000000 +0200
++++ head/drivers/acpi/processor_idle.c 2013-05-23 17:22:02.000000000 +0200
+@@ -115,6 +115,7 @@ static struct dmi_system_id __cpuinitdat
};
@@ -8800,7 +8757,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/*
* Callers should disable interrupts before the call and enable
* interrupts after return.
-@@ -132,6 +133,7 @@ static void acpi_safe_halt(void)
+@@ -133,6 +134,7 @@ static void acpi_safe_halt(void)
}
current_thread_info()->status |= TS_POLLING;
}
@@ -8808,7 +8765,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
#ifdef ARCH_APICTIMER_STOPS_ON_C3
-@@ -202,7 +204,7 @@ static void lapic_timer_state_broadcast(
+@@ -203,7 +205,7 @@ static void lapic_timer_state_broadcast(
static void lapic_timer_check_state(int state, struct acpi_processor *pr,
struct acpi_processor_cx *cstate) { }
static void lapic_timer_propagate_broadcast(struct acpi_processor *pr) { }
@@ -8817,16 +8774,16 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
struct acpi_processor_cx *cx,
int broadcast)
{
-@@ -238,7 +240,7 @@ int acpi_processor_resume(struct device
- return 0;
+@@ -247,7 +249,7 @@ void acpi_processor_syscore_exit(void)
}
+ #endif /* CONFIG_PM_SLEEP */
-#if defined(CONFIG_X86)
+#if defined(CONFIG_X86) && !defined(CONFIG_PROCESSOR_EXTERNAL_CONTROL)
static void tsc_check_state(int state)
{
switch (boot_cpu_data.x86_vendor) {
-@@ -595,7 +597,9 @@ static int acpi_processor_power_verify(s
+@@ -604,7 +606,9 @@ static int acpi_processor_power_verify(s
unsigned int i;
unsigned int working = 0;
@@ -8836,7 +8793,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
struct acpi_processor_cx *cx = &pr->power.states[i];
-@@ -666,6 +670,7 @@ static int acpi_processor_get_power_info
+@@ -675,6 +679,7 @@ static int acpi_processor_get_power_info
return 0;
}
@@ -8844,7 +8801,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
/**
* acpi_idle_bm_check - checks if bus master activity was detected
*/
-@@ -1108,6 +1113,13 @@ int acpi_processor_hotplug(struct acpi_p
+@@ -1116,6 +1121,13 @@ int acpi_processor_hotplug(struct acpi_p
return ret;
}
@@ -8858,9 +8815,9 @@ 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 cpu;
---- head.orig/drivers/gpu/drm/i915/i915_drv.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/gpu/drm/i915/i915_drv.c 2013-04-03 10:23:16.000000000 +0200
-@@ -1025,7 +1025,7 @@ static const struct file_operations i915
+--- head.orig/drivers/gpu/drm/i915/i915_drv.c 2013-06-04 11:48:49.000000000 +0200
++++ head/drivers/gpu/drm/i915/i915_drv.c 2013-06-04 13:56:56.000000000 +0200
+@@ -1102,7 +1102,7 @@ static const struct file_operations i915
.open = drm_open,
.release = drm_release,
.unlocked_ioctl = drm_ioctl,
@@ -8869,9 +8826,9 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
.poll = drm_poll,
.fasync = drm_fasync,
.read = drm_read,
---- head.orig/drivers/gpu/drm/i915/i915_drv.h 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/gpu/drm/i915/i915_drv.h 2013-04-03 10:23:17.000000000 +0200
-@@ -1633,6 +1633,11 @@ int i915_add_request(struct intel_ring_b
+--- head.orig/drivers/gpu/drm/i915/i915_drv.h 2013-06-04 11:48:49.000000000 +0200
++++ head/drivers/gpu/drm/i915/i915_drv.h 2013-05-23 17:22:15.000000000 +0200
+@@ -1663,6 +1663,11 @@ int i915_add_request(struct intel_ring_b
u32 *seqno);
int __must_check i915_wait_seqno(struct intel_ring_buffer *ring,
uint32_t seqno);
@@ -8883,9 +8840,9 @@ 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.orig/drivers/gpu/drm/i915/i915_gem.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/drivers/gpu/drm/i915/i915_gem.c 2013-03-21 14:36:08.000000000 +0100
-@@ -1315,6 +1315,17 @@ i915_gem_mmap_ioctl(struct drm_device *d
+--- head.orig/drivers/gpu/drm/i915/i915_gem.c 2013-06-04 11:48:49.000000000 +0200
++++ head/drivers/gpu/drm/i915/i915_gem.c 2013-05-23 17:22:16.000000000 +0200
+@@ -1307,6 +1307,17 @@ i915_gem_mmap_ioctl(struct drm_device *d
return 0;
}
@@ -9051,9 +9008,9 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
- msi_acpi_init();
+ INIT_LIST_HEAD(&dev->msi_list);
}
---- head.orig/drivers/xen/Kconfig 2013-03-21 14:33:25.000000000 +0100
-+++ head/drivers/xen/Kconfig 2013-03-21 14:35:49.000000000 +0100
-@@ -491,6 +491,7 @@ config XEN_BACKEND
+--- head.orig/drivers/xen/Kconfig 2013-05-23 17:19:30.000000000 +0200
++++ head/drivers/xen/Kconfig 2013-05-23 17:22:23.000000000 +0200
+@@ -490,6 +490,7 @@ config XEN_BACKEND
config XENFS
tristate "Xen filesystem"
@@ -10373,7 +10330,7 @@ Automatically created from "patches.kernel.org/patch-2.6.29" by xen-port-patches
}
ret = HYPERVISOR_xenoprof_op(XENOPROF_reserve_counters, NULL);
---- head.orig/include/acpi/processor.h 2013-03-21 12:23:28.000000000 +0100
+--- head.orig/include/acpi/processor.h 2013-05-23 16:23:14.000000000 +0200
+++ head/include/acpi/processor.h 2012-10-23 15:11:29.000000000 +0200
@@ -80,12 +80,16 @@ struct acpi_processor_cx {
};
diff --git a/patches.xen/xen3-patch-2.6.30 b/patches.xen/xen3-patch-2.6.30
index 328475240e..078d5edb9d 100644
--- a/patches.xen/xen3-patch-2.6.30
+++ b/patches.xen/xen3-patch-2.6.30
@@ -24,7 +24,7 @@ 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.orig/arch/ia64/kernel/vmlinux.lds.S 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/ia64/kernel/vmlinux.lds.S 2012-05-21 00:29:13.000000000 +0200
+++ head/arch/ia64/kernel/vmlinux.lds.S 2012-04-10 16:57:52.000000000 +0200
@@ -182,7 +182,7 @@ SECTIONS {
__start_gate_section = .;
@@ -35,9 +35,9 @@ 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.orig/arch/x86/Kconfig 2013-03-21 14:36:35.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-03-21 14:43:24.000000000 +0100
-@@ -60,8 +60,8 @@ config X86
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:22:56.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:28:56.000000000 +0200
+@@ -61,8 +61,8 @@ config X86
select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_DMA_API_DEBUG
select HAVE_KERNEL_GZIP
@@ -48,7 +48,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
select HAVE_KERNEL_XZ
select HAVE_KERNEL_LZO
select HAVE_HW_BREAKPOINT
-@@ -340,7 +340,7 @@ config X86_XEN
+@@ -335,7 +335,7 @@ config X86_XEN
config X86_BIGSMP
bool "Support for big SMP systems with more than 8 CPUs"
@@ -57,7 +57,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
---help---
This option is needed for the systems that have more than 8 CPUs
-@@ -348,7 +348,7 @@ config GOLDFISH
+@@ -343,7 +343,7 @@ config GOLDFISH
def_bool y
depends on X86_GOLDFISH
@@ -66,7 +66,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
config X86_EXTENDED_PLATFORM
bool "Support for extended (non-PC) x86 platforms"
default y
-@@ -379,7 +379,7 @@ config X86_64_XEN
+@@ -374,7 +374,7 @@ config X86_64_XEN
help
This option will compile a kernel compatible with Xen hypervisor
@@ -75,7 +75,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
config X86_EXTENDED_PLATFORM
bool "Support for extended (non-PC) x86 platforms"
default y
-@@ -835,7 +835,7 @@ config MAXSMP
+@@ -831,7 +831,7 @@ config MAXSMP
config NR_CPUS
int "Maximum number of CPUs" if SMP && !MAXSMP
@@ -84,7 +84,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
range 2 512 if SMP && !MAXSMP
default "1" if !SMP
default "4096" if MAXSMP
-@@ -909,10 +909,6 @@ config X86_VISWS_APIC
+@@ -905,10 +905,6 @@ config X86_VISWS_APIC
def_bool y
depends on X86_32 && X86_VISWS
@@ -171,7 +171,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
#endif
# define KEXEC_CONTROL_CODE_MAX_SIZE 2048
---- head.orig/arch/x86/include/asm/page_64.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/include/asm/page_64.h 2013-04-29 02:36:01.000000000 +0200
+++ head/arch/x86/include/asm/page_64.h 2013-03-21 14:43:37.000000000 +0100
@@ -31,7 +31,15 @@ extern unsigned long __phys_addr_symbol(
#define __phys_reloc_hide(x) (x)
@@ -3508,11 +3508,11 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
endif
-disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o genx2apic_%.o \
-- hpet.o i8237.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) := %_uv.o crash.o early-quirks.o hpet.o i8237.o \
-+ i8253.o i8259.o irqinit_$(BITS).o pci-swiotlb.o reboot.o smpboot.o \
-+ tsc.o tsc_sync.o uv_%.o vsmp_64.o
+- i8237.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) := %_uv.o crash.o early-quirks.o i8237.o i8253.o \
++ i8259.o irqinit_$(BITS).o pci-swiotlb.o reboot.o smpboot.o tsc.o \
++ tsc_sync.o uv_%.o vsmp_64.o
disabled-obj-$(CONFIG_XEN_UNPRIVILEGED_GUEST) += probe_roms_32.o
--- head.orig/arch/x86/kernel/acpi/boot.c 2013-03-21 14:31:25.000000000 +0100
+++ head/arch/x86/kernel/acpi/boot.c 2013-03-21 14:44:02.000000000 +0100
@@ -3548,7 +3548,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
printk(KERN_WARNING PREFIX "x2apic entry ignored\n");
#endif
---- head.orig/arch/x86/kernel/apic/Makefile 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/kernel/apic/Makefile 2012-03-19 00:15:34.000000000 +0100
+++ head/arch/x86/kernel/apic/Makefile 2012-02-08 12:11:33.000000000 +0100
@@ -25,3 +25,9 @@ obj-$(CONFIG_X86_ES7000) += es7000_32.o
@@ -5642,8 +5642,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
+struct apic *apic = &apic_xen;
+EXPORT_SYMBOL_GPL(apic);
--- head.orig/arch/x86/kernel/asm-offsets_32.c 2012-02-08 11:41:08.000000000 +0100
-+++ head/arch/x86/kernel/asm-offsets_32.c 2012-02-08 12:11:28.000000000 +0100
-@@ -71,6 +71,11 @@ void foo(void)
++++ head/arch/x86/kernel/asm-offsets_32.c 2013-05-23 17:28:59.000000000 +0200
+@@ -74,6 +74,11 @@ void foo(void)
DEFINE(SYSENTER_stack_sp0, 0);
#endif
@@ -6787,8 +6787,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
-
#endif
--- head.orig/arch/x86/kernel/cpu/intel.c 2013-03-21 14:37:24.000000000 +0100
-+++ head/arch/x86/kernel/cpu/intel.c 2013-03-21 14:44:05.000000000 +0100
-@@ -242,9 +242,13 @@ static void __cpuinit intel_workarounds(
++++ head/arch/x86/kernel/cpu/intel.c 2013-05-23 17:29:03.000000000 +0200
+@@ -238,9 +238,13 @@ static void __cpuinit intel_workarounds(
rdmsr(MSR_IA32_MISC_ENABLE, lo, hi);
if ((lo & MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE) == 0) {
printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
@@ -7874,8 +7874,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
/* copy the iret frame of 12 bytes */
.rept 3
pushl 16(%esp)
---- head.orig/arch/x86/kernel/entry_64-xen.S 2011-10-07 11:38:06.000000000 +0200
-+++ head/arch/x86/kernel/entry_64-xen.S 2011-10-07 11:38:41.000000000 +0200
+--- head.orig/arch/x86/kernel/entry_64-xen.S 2013-05-24 08:22:09.000000000 +0200
++++ head/arch/x86/kernel/entry_64-xen.S 2013-05-24 08:22:20.000000000 +0200
@@ -51,10 +51,10 @@
#include <asm/unistd.h>
#include <asm/thread_info.h>
@@ -8014,22 +8014,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
LOCKDEP_SYS_EXIT_IRQ
GET_THREAD_INFO(%rcx)
movl TI_flags(%rcx),%edx
-@@ -880,10 +874,14 @@ apicinterrupt IRQ_MOVE_CLEANUP_VECTOR \
- irq_move_cleanup_interrupt smp_irq_move_cleanup_interrupt
- #endif
-
-+#ifdef CONFIG_X86_UV
- apicinterrupt UV_BAU_MESSAGE \
- uv_bau_message_intr1 uv_bau_message_interrupt
-+#endif
- apicinterrupt LOCAL_TIMER_VECTOR \
- apic_timer_interrupt smp_apic_timer_interrupt
-+apicinterrupt GENERIC_INTERRUPT_VECTOR \
-+ generic_interrupt smp_generic_interrupt
-
- #ifdef CONFIG_SMP
- apicinterrupt INVALIDATE_TLB_VECTOR_START+0 \
-@@ -1001,15 +999,15 @@ ENTRY(do_hypervisor_callback) # do_hyp
+@@ -937,15 +931,15 @@ ENTRY(do_hypervisor_callback) # do_hyp
movq %rdi, %rsp # we don't return, adjust the stack frame
CFI_ENDPROC
DEFAULT_FRAME
@@ -8048,7 +8033,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
jmp error_exit
CFI_ENDPROC
END(do_hypervisor_callback)
-@@ -1200,14 +1198,14 @@ ENTRY(call_softirq)
+@@ -1136,14 +1130,14 @@ ENTRY(call_softirq)
CFI_REL_OFFSET rbp,0
mov %rsp,%rbp
CFI_DEF_CFA_REGISTER rbp
@@ -8066,7 +8051,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
ret
CFI_ENDPROC
END(call_softirq)
-@@ -1253,7 +1251,10 @@ ENTRY(paranoid_exit)
+@@ -1189,7 +1183,10 @@ ENTRY(paranoid_exit)
paranoid_swapgs:
TRACE_IRQS_IRETQ 0
SWAPGS_UNSAFE_STACK
@@ -8566,8 +8551,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
unsigned int level = regs->bx;
#else
asmlinkage long sys_iopl(unsigned int level, struct pt_regs *regs)
---- head.orig/arch/x86/kernel/irq-xen.c 2011-02-01 14:42:26.000000000 +0100
-+++ head/arch/x86/kernel/irq-xen.c 2011-02-01 14:44:12.000000000 +0100
+--- head.orig/arch/x86/kernel/irq-xen.c 2013-05-24 10:30:37.000000000 +0200
++++ head/arch/x86/kernel/irq-xen.c 2013-05-24 10:35:22.000000000 +0200
@@ -6,13 +6,20 @@
#include <linux/kernel_stat.h>
#include <linux/seq_file.h>
@@ -8681,13 +8666,10 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
return sum;
}
-@@ -205,3 +209,64 @@ u64 arch_irq_stat(void)
- #endif
- return sum;
+@@ -207,5 +211,63 @@ u64 arch_irq_stat(void)
}
-+
-+
-+#ifndef CONFIG_XEN
+
+ #ifndef CONFIG_XEN
+/*
+ * do_IRQ handles all normal device IRQ's (the special
+ * SMP cross-CPU interrupts have their own specific
@@ -8745,7 +8727,9 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
+
+ set_irq_regs(old_regs);
+}
-+#endif
++
+ EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq);
+ #endif
--- head.orig/arch/x86/kernel/machine_kexec_64.c 2013-03-21 14:31:41.000000000 +0100
+++ head/arch/x86/kernel/machine_kexec_64.c 2013-03-21 14:43:52.000000000 +0100
@@ -52,13 +52,8 @@ void machine_kexec_setup_load_arg(xen_ke
@@ -11216,7 +11200,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
#ifdef CONFIG_XEN
static int
xen_panic_event(struct notifier_block *this, unsigned long event, void *ptr)
---- head.orig/arch/x86/kernel/setup_percpu.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/kernel/setup_percpu.c 2012-10-01 01:47:46.000000000 +0200
+++ head/arch/x86/kernel/setup_percpu.c 2012-05-23 13:34:18.000000000 +0200
@@ -231,7 +231,7 @@ void __init setup_per_cpu_areas(void)
* are zeroed indicating that the static arrays are
@@ -16832,8 +16816,8 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
/*
* vmalloc=size forces the vmalloc area to be exactly 'size'
* bytes. This can be used to increase (or decrease) the
---- head.orig/drivers/acpi/Makefile 2013-03-21 12:22:01.000000000 +0100
-+++ head/drivers/acpi/Makefile 2013-03-21 14:43:10.000000000 +0100
+--- head.orig/drivers/acpi/Makefile 2013-06-04 13:53:22.000000000 +0200
++++ head/drivers/acpi/Makefile 2013-06-04 13:57:07.000000000 +0200
@@ -77,9 +77,7 @@ obj-$(CONFIG_ACPI_I2C) += acpi_i2c.o
processor-y := processor_driver.o processor_throttling.o
processor-y += processor_idle.o processor_thermal.o
@@ -17020,7 +17004,7 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
if (nvec > nr_entries)
return -EINVAL;
---- head.orig/drivers/xen/Kconfig 2013-03-21 14:35:49.000000000 +0100
+--- head.orig/drivers/xen/Kconfig 2013-05-23 17:22:23.000000000 +0200
+++ head/drivers/xen/Kconfig 2012-10-04 12:38:08.000000000 +0200
@@ -14,7 +14,6 @@ menu "XEN"
@@ -17993,21 +17977,19 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
},
};
---- head.orig/kernel/sched/core.c 2013-05-10 14:14:38.000000000 +0200
-+++ head/kernel/sched/core.c 2013-04-26 10:48:04.000000000 +0200
-@@ -3000,6 +3000,11 @@ void __sched schedule_preempt_disabled(v
- }
-
- #ifdef CONFIG_MUTEX_SPIN_ON_OWNER
-+#include <asm/mutex.h>
-+
+--- head.orig/kernel/mutex.c 2013-05-23 08:56:49.000000000 +0200
++++ head/kernel/mutex.c 2013-05-23 17:28:34.000000000 +0200
+@@ -162,6 +162,9 @@ static void mspin_unlock(struct mspin_no
+ /*
+ * Mutex spinning code migrated from kernel/sched/core.c
+ */
+#ifndef arch_cpu_is_running
+#define arch_cpu_is_running(cpu) true
+#endif
static inline bool owner_running(struct mutex *lock, struct task_struct *owner)
{
-@@ -3014,7 +3019,8 @@ static inline bool owner_running(struct
+@@ -176,7 +179,8 @@ static inline bool owner_running(struct
*/
barrier();
@@ -18202,9 +18184,9 @@ Automatically created from "patches.kernel.org/patch-2.6.30" by xen-port-patches
{
swiotlb_sync_sg(hwdev, sg, nelems, dir, SYNC_FOR_DEVICE);
}
---- head.orig/mm/page_alloc.c 2013-03-21 14:13:35.000000000 +0100
-+++ head/mm/page_alloc.c 2013-03-21 14:43:06.000000000 +0100
-@@ -5314,11 +5314,9 @@ static void __setup_per_zone_wmarks(void
+--- head.orig/mm/page_alloc.c 2013-05-23 17:04:18.000000000 +0200
++++ head/mm/page_alloc.c 2013-05-23 17:28:45.000000000 +0200
+@@ -5378,11 +5378,9 @@ static void __setup_per_zone_wmarks(void
}
#ifdef CONFIG_XEN
diff --git a/patches.xen/xen3-patch-2.6.31 b/patches.xen/xen3-patch-2.6.31
index e3f3165f88..39339ed614 100644
--- a/patches.xen/xen3-patch-2.6.31
+++ b/patches.xen/xen3-patch-2.6.31
@@ -9,9 +9,9 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
2.6.34/drivers/staging/vt6655/ttype.h (VOID no longer used)
---- head.orig/arch/x86/Kconfig 2013-03-21 14:43:24.000000000 +0100
-+++ head/arch/x86/Kconfig 2013-04-26 10:48:55.000000000 +0200
-@@ -27,7 +27,7 @@ config X86
+--- head.orig/arch/x86/Kconfig 2013-05-23 17:28:56.000000000 +0200
++++ head/arch/x86/Kconfig 2013-05-23 17:29:51.000000000 +0200
+@@ -28,7 +28,7 @@ config X86
select HAVE_IDE
select HAVE_OPROFILE
select HAVE_PCSPKR_PLATFORM
@@ -20,7 +20,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
select HAVE_IOREMAP_PROT
select HAVE_KPROBES
select HAVE_MEMBLOCK
-@@ -935,7 +935,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
+@@ -931,7 +931,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
config X86_MCE
bool "Machine Check / overheating reporting"
default y
@@ -29,7 +29,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
---help---
Machine Check support allows the processor to notify the
kernel if it detects a problem (e.g. overheating, data corruption).
-@@ -960,7 +960,7 @@ config X86_MCE_AMD
+@@ -956,7 +956,7 @@ config X86_MCE_AMD
config X86_ANCIENT_MCE
bool "Support for old Pentium 5 / WinChip machine checks"
@@ -38,7 +38,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
---help---
Include support for machine check handling on old Pentium 5 or WinChip
systems. These typically need to be enabled explicitely on the command
-@@ -1687,6 +1687,7 @@ config KEXEC_JUMP
+@@ -1683,6 +1683,7 @@ config KEXEC_JUMP
config PHYSICAL_START
hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP || XEN)
@@ -46,6 +46,16 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
default "0x1000000"
---help---
This gives the physical address where the kernel is loaded.
+--- head.orig/arch/x86/Kconfig.debug 2013-06-05 11:41:35.000000000 +0200
++++ head/arch/x86/Kconfig.debug 2013-06-05 11:43:25.000000000 +0200
+@@ -167,6 +167,7 @@ config IOMMU_DEBUG
+
+ config IOMMU_STRESS
+ bool "Enable IOMMU stress-test mode"
++ depends on !XEN
+ ---help---
+ This option disables various optimizations in IOMMU related
+ code to do real stress testing of the IOMMU code. This option
--- head.orig/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:44:12.000000000 +0100
+++ head/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:50:44.000000000 +0100
@@ -770,9 +770,11 @@ ia32_sys_call_table:
@@ -61,9 +71,9 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
+ .quad compat_sys_rt_tgsigqueueinfo /* 335 */
+ .quad sys_perf_counter_open
ia32_syscall_end:
---- head.orig/arch/x86/include/asm/hw_irq.h 2013-03-21 14:37:13.000000000 +0100
-+++ head/arch/x86/include/asm/hw_irq.h 2013-03-21 14:47:03.000000000 +0100
-@@ -176,6 +176,7 @@ extern asmlinkage void smp_invalidate_in
+--- head.orig/arch/x86/include/asm/hw_irq.h 2013-06-05 11:41:56.000000000 +0200
++++ head/arch/x86/include/asm/hw_irq.h 2013-05-23 17:29:56.000000000 +0200
+@@ -177,6 +177,7 @@ extern asmlinkage void smp_invalidate_in
extern irqreturn_t smp_reschedule_interrupt(int, void *);
extern irqreturn_t smp_call_function_interrupt(int, void *);
extern irqreturn_t smp_call_function_single_interrupt(int, void *);
@@ -71,7 +81,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
#endif
#endif
---- head.orig/arch/x86/include/asm/required-features.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/include/asm/required-features.h 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/include/asm/required-features.h 2013-03-21 14:47:09.000000000 +0100
@@ -54,7 +54,7 @@
#endif
@@ -82,7 +92,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
/* Paravirtualized systems may not have PSE or PGE available */
#define NEED_PSE 0
#define NEED_PGE 0
---- head.orig/arch/x86/include/mach-xen/asm/agp.h 2011-02-01 14:39:24.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/agp.h 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/agp.h 2011-02-01 14:50:44.000000000 +0100
@@ -48,6 +48,7 @@
/* Convert a physical address to an address suitable for the GART. */
@@ -159,7 +169,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
#ifdef CONFIG_X86_32
FIX_WP_TEST,
#endif
---- head.orig/arch/x86/include/mach-xen/asm/hypercall.h 2012-10-31 11:13:48.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/hypercall.h 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/hypercall.h 2012-10-31 11:16:34.000000000 +0100
@@ -267,7 +267,7 @@ HYPERVISOR_memory_op(
unsigned int cmd, void *arg)
@@ -269,7 +279,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
#ifdef CONFIG_NUMA
/* Returns the node based on pci bus */
---- head.orig/arch/x86/include/mach-xen/asm/pgalloc.h 2011-02-01 14:39:24.000000000 +0100
+--- head.orig/arch/x86/include/mach-xen/asm/pgalloc.h 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/include/mach-xen/asm/pgalloc.h 2011-02-01 14:50:44.000000000 +0100
@@ -51,7 +51,13 @@ static inline void pte_free(struct mm_st
__pte_free(pte);
@@ -635,11 +645,11 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
@@ -120,6 +120,6 @@ ifeq ($(CONFIG_X86_64),y)
endif
- disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o hpet.o i8237.o \
-- i8253.o i8259.o irqinit_$(BITS).o pci-swiotlb.o reboot.o smpboot.o \
-- tsc.o tsc_sync.o uv_%.o vsmp_64.o
-+ i8253.o i8259.o irqinit.o pci-swiotlb.o reboot.o smpboot.o tsc.o \
-+ tsc_sync.o uv_%.o vsmp_64.o
+ disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o i8237.o i8253.o \
+- i8259.o irqinit_$(BITS).o pci-swiotlb.o reboot.o smpboot.o tsc.o \
+- tsc_sync.o uv_%.o vsmp_64.o
++ i8259.o irqinit.o pci-swiotlb.o reboot.o smpboot.o tsc.o tsc_sync.o \
++ uv_%.o vsmp_64.o
disabled-obj-$(CONFIG_XEN_UNPRIVILEGED_GUEST) += probe_roms_32.o
--- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2011-02-01 14:44:12.000000000 +0100
+++ head/arch/x86/kernel/apic/io_apic-xen.c 2011-02-01 14:50:44.000000000 +0100
@@ -2317,9 +2327,9 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
static int xen_phys_pkg_id(int cpuid_apic, int index_msb)
{
---- head.orig/arch/x86/kernel/cpu/amd.c 2013-03-21 14:31:31.000000000 +0100
-+++ head/arch/x86/kernel/cpu/amd.c 2013-03-21 14:46:44.000000000 +0100
-@@ -502,7 +502,7 @@ static void __cpuinit early_init_amd(str
+--- head.orig/arch/x86/kernel/cpu/amd.c 2013-06-05 11:41:56.000000000 +0200
++++ head/arch/x86/kernel/cpu/amd.c 2013-05-23 17:29:33.000000000 +0200
+@@ -499,7 +499,7 @@ static void __cpuinit early_init_amd(str
(c->x86_model == 8 && c->x86_mask >= 8))
set_cpu_cap(c, X86_FEATURE_K6_MTRR);
#endif
@@ -2493,7 +2503,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
}
void __cpuinit identify_secondary_cpu(struct cpuinfo_x86 *c)
---- head.orig/arch/x86/kernel/cpu/mcheck/mce.c 2013-03-21 12:24:46.000000000 +0100
+--- head.orig/arch/x86/kernel/cpu/mcheck/mce.c 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/kernel/cpu/mcheck/mce.c 2013-03-21 14:46:46.000000000 +0100
@@ -114,8 +114,10 @@ void mce_setup(struct mce *m)
m->time = get_seconds();
@@ -2515,7 +2525,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
printk(KERN_DEBUG "MCE: bind virq for DOM0 logging\n");
bind_virq_for_mce();
---- head.orig/arch/x86/kernel/cpu/mcheck/mce_dom0.c 2011-08-15 10:44:51.000000000 +0200
+--- head.orig/arch/x86/kernel/cpu/mcheck/mce_dom0.c 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/kernel/cpu/mcheck/mce_dom0.c 2011-08-15 11:03:49.000000000 +0200
@@ -7,12 +7,17 @@
#include <asm/hypercall.h>
@@ -2866,9 +2876,9 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
CFI_ENDPROC
nmi_stack_fixup:
---- head.orig/arch/x86/kernel/entry_64.S 2013-03-21 14:31:35.000000000 +0100
-+++ head/arch/x86/kernel/entry_64.S 2013-03-21 14:46:57.000000000 +0100
-@@ -1498,7 +1498,7 @@ apicinterrupt HYPERVISOR_CALLBACK_VECTOR
+--- head.orig/arch/x86/kernel/entry_64.S 2013-06-05 11:41:56.000000000 +0200
++++ head/arch/x86/kernel/entry_64.S 2013-05-23 17:29:47.000000000 +0200
+@@ -1508,7 +1508,7 @@ apicinterrupt HYPERVISOR_CALLBACK_VECTOR
paranoidzeroentry_ist debug do_debug DEBUG_STACK
paranoidzeroentry_ist int3 do_int3 DEBUG_STACK
paranoiderrorentry stack_segment do_stack_segment
@@ -2877,8 +2887,8 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
zeroentry xen_debug do_debug
zeroentry xen_int3 do_int3
errorentry xen_stack_segment do_stack_segment
---- head.orig/arch/x86/kernel/entry_64-xen.S 2011-10-07 11:38:41.000000000 +0200
-+++ head/arch/x86/kernel/entry_64-xen.S 2011-10-07 11:39:17.000000000 +0200
+--- head.orig/arch/x86/kernel/entry_64-xen.S 2013-05-24 08:22:20.000000000 +0200
++++ head/arch/x86/kernel/entry_64-xen.S 2013-05-24 08:23:11.000000000 +0200
@@ -139,6 +139,7 @@ ENTRY(ftrace_graph_caller)
leaq 8(%rbp), %rdi
@@ -2919,45 +2929,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
movq (%rsp), %rax
addq $72, %rsp
retq
-@@ -872,6 +861,8 @@ END(\sym)
- #ifdef CONFIG_SMP
- apicinterrupt IRQ_MOVE_CLEANUP_VECTOR \
- irq_move_cleanup_interrupt smp_irq_move_cleanup_interrupt
-+apicinterrupt REBOOT_VECTOR \
-+ reboot_interrupt smp_reboot_interrupt
- #endif
-
- #ifdef CONFIG_X86_UV
-@@ -903,10 +894,15 @@ apicinterrupt INVALIDATE_TLB_VECTOR_STAR
- #endif
-
- apicinterrupt THRESHOLD_APIC_VECTOR \
-- threshold_interrupt mce_threshold_interrupt
-+ threshold_interrupt smp_threshold_interrupt
- apicinterrupt THERMAL_APIC_VECTOR \
- thermal_interrupt smp_thermal_interrupt
-
-+#ifdef CONFIG_X86_MCE
-+apicinterrupt MCE_SELF_VECTOR \
-+ mce_self_interrupt smp_mce_self_interrupt
-+#endif
-+
- #ifdef CONFIG_SMP
- apicinterrupt CALL_FUNCTION_SINGLE_VECTOR \
- call_function_single_interrupt smp_call_function_single_interrupt
-@@ -920,6 +916,11 @@ apicinterrupt ERROR_APIC_VECTOR \
- error_interrupt smp_error_interrupt
- apicinterrupt SPURIOUS_APIC_VECTOR \
- spurious_interrupt smp_spurious_interrupt
-+
-+#ifdef CONFIG_PERF_COUNTERS
-+apicinterrupt LOCAL_PENDING_VECTOR \
-+ perf_pending_interrupt smp_perf_pending_interrupt
-+#endif
- #endif /* !CONFIG_XEN */
-
- /*
-@@ -1222,7 +1223,7 @@ paranoiderrorentry stack_segment do_stac
+@@ -1154,7 +1143,7 @@ paranoiderrorentry stack_segment do_stac
errorentry general_protection do_general_protection
errorentry page_fault do_page_fault
#ifdef CONFIG_X86_MCE
@@ -2991,8 +2963,8 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
#include <asm/segment.h>
#include <asm/page.h>
#include <asm/msr.h>
---- head.orig/arch/x86/kernel/irq-xen.c 2011-02-01 14:44:12.000000000 +0100
-+++ head/arch/x86/kernel/irq-xen.c 2011-02-01 14:50:44.000000000 +0100
+--- head.orig/arch/x86/kernel/irq-xen.c 2013-05-24 10:35:22.000000000 +0200
++++ head/arch/x86/kernel/irq-xen.c 2013-05-24 10:35:44.000000000 +0200
@@ -12,6 +12,8 @@
#include <asm/io_apic.h>
#include <asm/irq.h>
@@ -3098,7 +3070,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
#endif
return sum;
}
-@@ -231,14 +257,11 @@ unsigned int __irq_entry do_IRQ(struct p
+@@ -230,14 +256,11 @@ unsigned int __irq_entry do_IRQ(struct p
irq = __get_cpu_var(vector_irq)[vector];
if (!handle_irq(irq, regs)) {
@@ -3909,7 +3881,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
thread->status |= TS_USEDFPU; /* So we fnsave on switch_to() */
tsk->fpu_counter++;
}
---- head.orig/arch/x86/kernel/vsyscall_64-xen.c 2011-02-01 14:42:26.000000000 +0100
+--- head.orig/arch/x86/kernel/vsyscall_64-xen.c 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/kernel/vsyscall_64-xen.c 2011-02-01 14:50:44.000000000 +0100
@@ -132,15 +132,7 @@ static __always_inline void do_vgettimeo
return;
@@ -3927,7 +3899,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
base = __vsyscall_gtod_data.clock.cycle_last;
mask = __vsyscall_gtod_data.clock.mask;
mult = __vsyscall_gtod_data.clock.mult;
---- head.orig/arch/x86/mm/dump_pagetables-xen.c 2011-02-01 14:39:24.000000000 +0100
+--- head.orig/arch/x86/mm/dump_pagetables-xen.c 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/mm/dump_pagetables-xen.c 2011-02-01 14:50:44.000000000 +0100
@@ -173,13 +173,14 @@ static void note_page(struct seq_file *m
st->current_address >= st->marker[1].start_address) {
@@ -4907,7 +4879,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
if (pgd == NULL)
goto out;
---- head.orig/arch/x86/pci/i386.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/pci/i386.c 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/pci/i386.c 2013-03-21 14:47:20.000000000 +0100
@@ -380,12 +380,14 @@ void __init pcibios_resource_survey(void
pcibios_allocate_resources(bus, 1);
@@ -4924,7 +4896,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
}
/**
---- head.orig/arch/x86/pci/pcifront.c 2011-02-01 14:42:26.000000000 +0100
+--- head.orig/arch/x86/pci/pcifront.c 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/pci/pcifront.c 2011-02-01 14:50:44.000000000 +0100
@@ -6,6 +6,7 @@
*/
@@ -4943,7 +4915,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
evtchn_register_pirq(irq);
dev->irq = irq;
---- head.orig/arch/x86/vdso/vdso32-setup-xen.c 2012-02-29 14:12:24.000000000 +0100
+--- head.orig/arch/x86/vdso/vdso32-setup-xen.c 2013-06-05 11:41:56.000000000 +0200
+++ head/arch/x86/vdso/vdso32-setup-xen.c 2012-02-29 14:15:36.000000000 +0100
@@ -386,6 +386,8 @@ int arch_setup_additional_pages(struct l
}
@@ -4969,9 +4941,9 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
up_write(&mm->mmap_sem);
return ret;
---- head.orig/drivers/acpi/processor_driver.c 2013-03-21 14:33:06.000000000 +0100
-+++ head/drivers/acpi/processor_driver.c 2013-03-21 14:47:28.000000000 +0100
-@@ -345,7 +345,14 @@ static int acpi_processor_get_info(struc
+--- head.orig/drivers/acpi/processor_driver.c 2013-06-05 11:41:56.000000000 +0200
++++ head/drivers/acpi/processor_driver.c 2013-05-23 17:29:28.000000000 +0200
+@@ -341,7 +341,14 @@ static int acpi_processor_get_info(struc
* generated as the following format:
* CPU+CPU ID.
*/
@@ -4987,7 +4959,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Processor [%d:%d]\n", pr->id,
pr->acpi_id));
---- head.orig/drivers/char/agp/intel-gtt.c 2013-03-21 12:22:13.000000000 +0100
+--- head.orig/drivers/char/agp/intel-gtt.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/char/agp/intel-gtt.c 2013-03-21 14:47:36.000000000 +0100
@@ -283,7 +283,11 @@ static struct agp_memory *alloc_agpphysm
new->page_count = pg_count;
@@ -5001,7 +4973,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
return new;
}
---- head.orig/drivers/edac/Kconfig 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/edac/Kconfig 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/edac/Kconfig 2013-03-21 14:47:42.000000000 +0100
@@ -106,6 +106,7 @@ config EDAC_GHES
config EDAC_AMD64
@@ -5011,7 +4983,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
help
Support for error detection and correction of DRAM ECC errors on
the AMD64 families of memory controllers (K8 and F10h)
---- head.orig/drivers/gpu/drm/ttm/ttm_bo.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/gpu/drm/ttm/ttm_bo.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/gpu/drm/ttm/ttm_bo.c 2013-03-21 14:48:07.000000000 +0100
@@ -1524,6 +1524,14 @@ int ttm_bo_global_init(struct drm_global
ret = -ENOMEM;
@@ -5028,7 +5000,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
INIT_LIST_HEAD(&glob->swap_lru);
INIT_LIST_HEAD(&glob->device_list);
---- head.orig/drivers/gpu/drm/ttm/ttm_bo_vm.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/gpu/drm/ttm/ttm_bo_vm.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/gpu/drm/ttm/ttm_bo_vm.c 2012-04-10 16:59:52.000000000 +0200
@@ -171,7 +171,13 @@ static int ttm_bo_vm_fault(struct vm_are
if (bo->mem.bus.is_iomem) {
@@ -5200,7 +5172,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
/* Check for any invalid entries */
for (i = 0; i < nvec; i++) {
--- head.orig/drivers/xen/Kconfig 2012-10-04 12:38:08.000000000 +0200
-+++ head/drivers/xen/Kconfig 2013-03-21 14:47:56.000000000 +0100
++++ head/drivers/xen/Kconfig 2013-05-23 17:29:19.000000000 +0200
@@ -305,14 +305,6 @@ config XEN_DISABLE_SERIAL
Disable serial port drivers, allowing the Xen console driver
to provide a serial console at ttyS0.
@@ -5216,7 +5188,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
choice
prompt "Xen version compatibility"
default XEN_COMPAT_030002_AND_LATER
-@@ -469,7 +461,8 @@ config XEN_SCRUB_PAGES
+@@ -468,7 +460,8 @@ config XEN_SCRUB_PAGES
config XEN_DEV_EVTCHN
tristate "Xen /dev/xen/evtchn device"
@@ -5226,7 +5198,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
help
The evtchn driver allows a userspace process to trigger event
channels and to receive notification of an event channel
---- head.orig/drivers/xen/Makefile 2011-11-03 12:20:37.000000000 +0100
+--- head.orig/drivers/xen/Makefile 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/Makefile 2011-11-03 12:27:36.000000000 +0100
@@ -5,7 +5,6 @@ xen-balloon-$(CONFIG_PARAVIRT_XEN) := ba
xen-balloon-$(CONFIG_XEN) := balloon/
@@ -5246,7 +5218,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += blkback/
obj-$(CONFIG_XEN_BLKDEV_TAP) += blktap/
obj-$(filter m,$(CONFIG_XEN_BLKDEV_TAP2)) += blktap2/ blktap2-new/
---- head.orig/drivers/xen/balloon/balloon.c 2012-01-20 14:53:22.000000000 +0100
+--- head.orig/drivers/xen/balloon/balloon.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/balloon/balloon.c 2012-06-06 14:02:30.000000000 +0200
@@ -106,8 +106,8 @@ static DECLARE_WORK(balloon_worker, ball
@@ -5277,7 +5249,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
if (page == NULL)
goto err;
---- head.orig/drivers/xen/blkback/blkback.c 2012-03-26 12:22:21.000000000 +0200
+--- head.orig/drivers/xen/blkback/blkback.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/blkback/blkback.c 2013-03-05 12:34:34.000000000 +0100
@@ -511,7 +511,7 @@ static void dispatch_rw_block_io(blkif_t
@@ -5288,7 +5260,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
DPRINTK("Misaligned I/O request from domain %d",
blkif->domid);
goto fail_put_bio;
---- head.orig/drivers/xen/blkback/vbd.c 2011-06-30 16:48:21.000000000 +0200
+--- head.orig/drivers/xen/blkback/vbd.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/blkback/vbd.c 2011-02-01 14:50:44.000000000 +0100
@@ -47,7 +47,7 @@ unsigned int vbd_info(struct vbd *vbd)
@@ -5299,8 +5271,8 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
}
int vbd_create(blkif_t *blkif, blkif_vdev_t handle, unsigned major,
---- head.orig/drivers/xen/blkback/xenbus.c 2012-12-18 12:04:14.000000000 +0100
-+++ head/drivers/xen/blkback/xenbus.c 2012-12-18 12:07:39.000000000 +0100
+--- head.orig/drivers/xen/blkback/xenbus.c 2013-06-05 11:41:56.000000000 +0200
++++ head/drivers/xen/blkback/xenbus.c 2013-05-31 13:17:26.000000000 +0200
@@ -108,7 +108,7 @@ static void update_blkif_status(blkif_t
if (!get_device(_dev)) \
return ret; \
@@ -5346,8 +5318,21 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
int err;
DPRINTK("%s", xenbus_strstate(frontend_state));
---- head.orig/drivers/xen/blkfront/blkfront.c 2012-10-04 12:17:47.000000000 +0200
-+++ head/drivers/xen/blkfront/blkfront.c 2012-10-04 12:43:43.000000000 +0200
+@@ -452,6 +452,12 @@ again:
+ goto abort;
+ }
+
++ err = xenbus_printf(xbt, dev->nodename, "physical-sector-size", "%u",
++ bdev_physical_block_size(be->blkif->vbd.bdev));
++ if (err)
++ xenbus_dev_error(dev, err, "writing %s/physical-sector-size",
++ dev->nodename);
++
+ err = xenbus_transaction_end(xbt, 0);
+ if (err == -EAGAIN)
+ goto again;
+--- head.orig/drivers/xen/blkfront/blkfront.c 2013-06-05 11:41:56.000000000 +0200
++++ head/drivers/xen/blkfront/blkfront.c 2013-05-31 13:30:09.000000000 +0200
@@ -120,12 +120,12 @@ static int blkfront_probe(struct xenbus_
/* Front end dir is a number, which is used as the id. */
@@ -5381,7 +5366,51 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
struct block_device *bd;
DPRINTK("blkfront:backend_changed.\n");
-@@ -442,7 +442,7 @@ static void blkfront_closing(struct blkf
+@@ -336,8 +336,7 @@ static void backend_changed(struct xenbu
+ static void connect(struct blkfront_info *info)
+ {
+ unsigned long long sectors;
+- unsigned long sector_size;
+- unsigned int binfo;
++ unsigned int binfo, sector_size, physical_sector_size;
+ int err;
+
+ switch (info->connected) {
+@@ -364,7 +363,7 @@ static void connect(struct blkfront_info
+ err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
+ "sectors", "%Lu", &sectors,
+ "info", "%u", &binfo,
+- "sector-size", "%lu", &sector_size,
++ "sector-size", "%u", &sector_size,
+ NULL);
+ if (err) {
+ xenbus_dev_fatal(info->xbdev, err,
+@@ -373,12 +372,23 @@ static void connect(struct blkfront_info
+ return;
+ }
+
++ /*
++ * physcial-sector-size is a newer field, so old backends may not
++ * provide this. Assume physical sector size to be the same as
++ * sector_size in that case.
++ */
++ err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
++ "physical-sector-size", "%u", &physical_sector_size);
++ if (err <= 0)
++ physical_sector_size = sector_size;
++
+ err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
+ "feature-barrier", "%d", &info->feature_barrier);
+ if (err <= 0)
+ info->feature_barrier = 0;
+
+- err = xlvbd_add(sectors, info->vdevice, binfo, sector_size, info);
++ err = xlvbd_add(sectors, info->vdevice, binfo, sector_size,
++ physical_sector_size, info);
+ if (err) {
+ xenbus_dev_fatal(info->xbdev, err, "xlvbd_add at %s",
+ info->xbdev->otherend);
+@@ -442,7 +452,7 @@ static void blkfront_closing(struct blkf
static int blkfront_remove(struct xenbus_device *dev)
{
@@ -5390,7 +5419,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
struct block_device *bd;
struct gendisk *disk;
-@@ -776,7 +776,7 @@ static int blkif_queue_request(struct re
+@@ -776,7 +786,7 @@ static int blkif_queue_request(struct re
info->shadow[id].request = (unsigned long)req;
ring_req->id = id;
@@ -5399,7 +5428,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
ring_req->handle = info->handle;
ring_req->operation = rq_data_dir(req) ?
-@@ -832,31 +832,27 @@ void do_blkif_request(struct request_que
+@@ -832,31 +842,27 @@ void do_blkif_request(struct request_que
queued = 0;
@@ -5445,7 +5474,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
if (blkif_queue_request(req)) {
blk_requeue_request(rq, req);
wait:
-@@ -941,8 +937,7 @@ static irqreturn_t blkif_int(int irq, vo
+@@ -941,8 +947,7 @@ static irqreturn_t blkif_int(int irq, vo
op_name(bret->operation),
bret->status);
@@ -5455,7 +5484,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
break;
default:
BUG();
-@@ -1072,7 +1067,7 @@ static int blkif_recover(struct blkfront
+@@ -1072,7 +1077,7 @@ static int blkif_recover(struct blkfront
int blkfront_is_ready(struct xenbus_device *dev)
{
@@ -5464,18 +5493,64 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
return info->is_ready && info->xbdev;
}
---- head.orig/drivers/xen/blkfront/vbd.c 2012-03-12 16:14:02.000000000 +0100
-+++ head/drivers/xen/blkfront/vbd.c 2012-03-12 16:15:59.000000000 +0100
-@@ -368,7 +368,7 @@ xlvbd_init_blk_queue(struct gendisk *gd,
+--- head.orig/drivers/xen/blkfront/block.h 2013-06-05 11:41:56.000000000 +0200
++++ head/drivers/xen/blkfront/block.h 2013-05-31 13:26:15.000000000 +0200
+@@ -131,8 +131,9 @@ extern void do_blkif_request (struct req
+ /* Note that xlvbd_add doesn't call add_disk for you: you're expected
+ to call add_disk on info->gd once the disk is properly connected
+ up. */
+-int xlvbd_add(blkif_sector_t capacity, int device,
+- u16 vdisk_info, u16 sector_size, struct blkfront_info *info);
++int xlvbd_add(blkif_sector_t capacity, int device, unsigned int vdisk_info,
++ unsigned int sector_size, unsigned int physical_sector_size,
++ struct blkfront_info *);
+ void xlvbd_del(struct blkfront_info *info);
+ int xlvbd_barrier(struct blkfront_info *info);
+
+--- head.orig/drivers/xen/blkfront/vbd.c 2013-06-05 11:41:56.000000000 +0200
++++ head/drivers/xen/blkfront/vbd.c 2013-05-31 13:26:32.000000000 +0200
+@@ -354,7 +354,8 @@ static char *encode_disk_name(char *ptr,
+ }
+
+ static int
+-xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size,
++xlvbd_init_blk_queue(struct gendisk *gd, unsigned int sector_size,
++ unsigned int physical_sector_size,
+ struct blkfront_info *info)
+ {
+ struct request_queue *rq;
+@@ -368,7 +369,8 @@ xlvbd_init_blk_queue(struct gendisk *gd,
#endif
/* Hard sector size and max sectors impersonate the equiv. hardware. */
- blk_queue_hardsect_size(rq, sector_size);
+ blk_queue_logical_block_size(rq, sector_size);
++ blk_queue_physical_block_size(rq, physical_sector_size);
blk_queue_max_sectors(rq, 512);
/* Each segment in a request is up to an aligned page in size. */
-@@ -551,7 +551,7 @@ static ssize_t show_media(struct device
+@@ -392,8 +394,9 @@ xlvbd_init_blk_queue(struct gendisk *gd,
+ }
+
+ int
+-xlvbd_add(blkif_sector_t capacity, int vdevice, u16 vdisk_info,
+- u16 sector_size, struct blkfront_info *info)
++xlvbd_add(blkif_sector_t capacity, int vdevice, unsigned int vdisk_info,
++ unsigned int sector_size, unsigned int physical_sector_size,
++ struct blkfront_info *info)
+ {
+ int major, minor;
+ struct gendisk *gd;
+@@ -468,7 +471,7 @@ xlvbd_add(blkif_sector_t capacity, int v
+ gd->driverfs_dev = &(info->xbdev->dev);
+ set_capacity(gd, capacity);
+
+- if (xlvbd_init_blk_queue(gd, sector_size, info)) {
++ if (xlvbd_init_blk_queue(gd, sector_size, physical_sector_size, info)) {
+ del_gendisk(gd);
+ goto release;
+ }
+@@ -551,7 +554,7 @@ static ssize_t show_media(struct device
struct device_attribute *attr, char *buf)
{
struct xenbus_device *xendev = to_xenbus_device(dev);
@@ -5484,7 +5559,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
if (info->gd->flags & GENHD_FL_CD)
return sprintf(buf, "cdrom\n");
---- head.orig/drivers/xen/blktap/blktap.c 2012-12-06 16:09:35.000000000 +0100
+--- head.orig/drivers/xen/blktap/blktap.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/blktap/blktap.c 2012-12-06 16:11:29.000000000 +0100
@@ -276,6 +276,15 @@ static inline unsigned int OFFSET_TO_SEG
} while(0)
@@ -5562,7 +5637,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
} else {
/* this is bad, but not fatal */
WPRINTK("sysfs xen_class not created\n");
---- head.orig/drivers/xen/blktap/xenbus.c 2012-04-04 10:19:53.000000000 +0200
+--- head.orig/drivers/xen/blktap/xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/blktap/xenbus.c 2012-02-16 13:29:26.000000000 +0100
@@ -126,7 +126,7 @@ static int blktap_name(blkif_t *blkif, c
if (!get_device(_dev)) \
@@ -5626,7 +5701,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
int err;
DPRINTK("fe_changed(%s,%d)\n", dev->nodename, frontend_state);
---- head.orig/drivers/xen/blktap2/blktap.h 2012-06-06 13:58:26.000000000 +0200
+--- head.orig/drivers/xen/blktap2/blktap.h 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/blktap2/blktap.h 2012-06-06 14:02:20.000000000 +0200
@@ -26,6 +26,8 @@ extern int blktap_debug_level;
#define BTWARN(_f, _a...) BTPRINTK(0, KERN_WARNING, 0, _f, ##_a)
@@ -5637,7 +5712,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
#define MAX_BLKTAP_DEVICE 256
#define BLKTAP_CONTROL 1
---- head.orig/drivers/xen/blktap2/control.c 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/drivers/xen/blktap2/control.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/blktap2/control.c 2011-02-01 14:50:44.000000000 +0100
@@ -154,6 +154,7 @@ static const struct file_operations blkt
static struct miscdevice blktap_misc = {
@@ -5647,7 +5722,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
.fops = &blktap_control_file_operations,
};
---- head.orig/drivers/xen/blktap2/device.c 2012-02-16 12:35:01.000000000 +0100
+--- head.orig/drivers/xen/blktap2/device.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/blktap2/device.c 2012-02-16 13:29:12.000000000 +0100
@@ -184,13 +184,6 @@ flush_tlb_kernel_page(unsigned long kvad
#endif
@@ -5806,7 +5881,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
gd->fops = &blktap_device_file_operations;
gd->private_data = dev;
---- head.orig/drivers/xen/blktap2/sysfs.c 2011-02-01 14:38:38.000000000 +0100
+--- head.orig/drivers/xen/blktap2/sysfs.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/blktap2/sysfs.c 2011-02-01 14:50:44.000000000 +0100
@@ -436,6 +436,12 @@ blktap_sysfs_free(void)
class_destroy(class);
@@ -5830,7 +5905,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
err = class_create_file(cls, &class_attr_verbosity);
if (!err) {
err = class_create_file(cls, &class_attr_devices);
---- head.orig/drivers/xen/console/console.c 2013-01-29 14:48:40.000000000 +0100
+--- head.orig/drivers/xen/console/console.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/console/console.c 2013-01-29 14:48:55.000000000 +0100
@@ -44,7 +44,6 @@
#include <linux/slab.h>
@@ -6163,7 +6238,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
xen_spinlock_cleanup(cpu);
}
---- head.orig/drivers/xen/evtchn.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/xen/evtchn.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/evtchn.c 2013-03-05 12:36:12.000000000 +0100
@@ -48,10 +48,17 @@
#include <linux/mutex.h>
@@ -6211,7 +6286,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
.fops = &evtchn_fops,
};
static int __init evtchn_init(void)
---- head.orig/drivers/xen/fbfront/xenfb.c 2012-10-04 12:15:33.000000000 +0200
+--- head.orig/drivers/xen/fbfront/xenfb.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/fbfront/xenfb.c 2011-02-17 10:16:12.000000000 +0100
@@ -597,7 +597,7 @@ static int __devinit xenfb_probe(struct
fb_size = XENFB_DEFAULT_FB_LEN;
@@ -6249,7 +6324,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
int val;
switch (backend_state) {
---- head.orig/drivers/xen/fbfront/xenkbd.c 2012-10-04 12:15:35.000000000 +0200
+--- head.orig/drivers/xen/fbfront/xenkbd.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/fbfront/xenkbd.c 2011-05-23 11:12:20.000000000 +0200
@@ -113,7 +113,7 @@ int __devinit xenkbd_probe(struct xenbus
xenbus_dev_fatal(dev, -ENOMEM, "allocating info structure");
@@ -6287,7 +6362,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
int ret, val;
switch (backend_state) {
---- head.orig/drivers/xen/gntdev/gntdev.c 2012-05-23 13:33:01.000000000 +0200
+--- head.orig/drivers/xen/gntdev/gntdev.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/gntdev/gntdev.c 2012-05-23 13:34:31.000000000 +0200
@@ -356,6 +356,7 @@ nomem_out:
static struct miscdevice gntdev_miscdev = {
@@ -6297,7 +6372,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
.fops = &gntdev_fops,
};
---- head.orig/drivers/xen/netback/accel.c 2011-01-31 17:29:16.000000000 +0100
+--- head.orig/drivers/xen/netback/accel.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/netback/accel.c 2011-02-01 14:50:44.000000000 +0100
@@ -103,7 +103,7 @@ static int netback_accelerator_probe_bac
struct xenbus_device *xendev = to_xenbus_device(dev);
@@ -6317,7 +6392,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
if (be->accelerator == accelerator) {
be->accelerator->hooks->remove(xendev);
---- head.orig/drivers/xen/netback/loopback.c 2011-03-01 11:52:05.000000000 +0100
+--- head.orig/drivers/xen/netback/loopback.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/netback/loopback.c 2011-02-01 14:50:44.000000000 +0100
@@ -139,8 +139,8 @@ static int loopback_start_xmit(struct sk
return 0;
@@ -6330,7 +6405,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
skb_orphan(skb);
---- head.orig/drivers/xen/netback/xenbus.c 2012-01-06 10:44:04.000000000 +0100
+--- head.orig/drivers/xen/netback/xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/netback/xenbus.c 2012-01-03 12:01:46.000000000 +0100
@@ -39,7 +39,7 @@ static void netback_disconnect(struct de
@@ -6448,7 +6523,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
struct net_device *netdev = np->netdev;
DPRINTK("%s\n", xenbus_strstate(backend_state));
---- head.orig/drivers/xen/pcifront/pci_op.c 2012-04-04 09:50:05.000000000 +0200
+--- head.orig/drivers/xen/pcifront/pci_op.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/pcifront/pci_op.c 2012-04-04 10:24:26.000000000 +0200
@@ -407,7 +407,7 @@ void pci_frontend_disable_msi(struct pci
#endif /* CONFIG_PCI_MSI */
@@ -6468,7 +6543,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
}
int __devinit pcifront_scan_root(struct pcifront_device *pdev,
---- head.orig/drivers/xen/pcifront/xenbus.c 2012-03-12 13:33:18.000000000 +0100
+--- head.orig/drivers/xen/pcifront/xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/pcifront/xenbus.c 2012-10-04 12:43:34.000000000 +0200
@@ -33,7 +33,7 @@ static struct pcifront_device *alloc_pde
/*Flag for registering PV AER handler*/
@@ -6508,7 +6583,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
return 0;
}
---- head.orig/drivers/xen/scsiback/scsiback.c 2013-02-06 14:55:59.000000000 +0100
+--- head.orig/drivers/xen/scsiback/scsiback.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/scsiback/scsiback.c 2013-01-30 10:43:03.000000000 +0100
@@ -212,7 +212,7 @@ static void scsiback_cmd_done(struct req
int errors;
@@ -6697,7 +6772,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
scsiback_get(pending_req->info);
blk_execute_rq_nowait(rq->q, NULL, rq, 1, scsiback_cmd_done);
---- head.orig/drivers/xen/scsiback/xenbus.c 2012-08-20 17:18:46.000000000 +0200
+--- head.orig/drivers/xen/scsiback/xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/scsiback/xenbus.c 2011-06-30 17:04:59.000000000 +0200
@@ -225,7 +225,7 @@ static void scsiback_do_lun_hotplug(stru
static void scsiback_frontend_changed(struct xenbus_device *dev,
@@ -6735,7 +6810,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
be->info = vscsibk_info_alloc(dev->otherend_id);
if (IS_ERR(be->info)) {
---- head.orig/drivers/xen/scsifront/xenbus.c 2012-11-14 12:38:02.000000000 +0100
+--- head.orig/drivers/xen/scsifront/xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/scsifront/xenbus.c 2012-11-14 13:09:44.000000000 +0100
@@ -188,7 +188,7 @@ static int scsifront_probe(struct xenbus
info->host = host;
@@ -6764,7 +6839,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
DPRINTK("%p %u %u\n", dev, dev->state, backend_state);
---- head.orig/drivers/xen/sfc_netback/accel_xenbus.c 2011-01-31 17:29:16.000000000 +0100
+--- head.orig/drivers/xen/sfc_netback/accel_xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/sfc_netback/accel_xenbus.c 2011-02-01 14:50:44.000000000 +0100
@@ -36,7 +36,7 @@
#define NODENAME_PATH_FMT "backend/vif/%d/%d"
@@ -6793,7 +6868,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
bend = (struct netback_accel *) binfo->netback_accel_priv;
DPRINTK("%s: dev %p bend %p\n", __FUNCTION__, dev, bend);
---- head.orig/drivers/xen/sfc_netfront/accel_xenbus.c 2011-01-31 17:32:29.000000000 +0100
+--- head.orig/drivers/xen/sfc_netfront/accel_xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/sfc_netfront/accel_xenbus.c 2011-02-01 14:50:44.000000000 +0100
@@ -727,8 +727,7 @@ int netfront_accel_probe(struct net_devi
@@ -6805,7 +6880,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
netfront_accel_vnic *vnic = (netfront_accel_vnic *)np->accel_priv;
DPRINTK("%s %s\n", __FUNCTION__, dev->nodename);
---- head.orig/drivers/xen/sys-hypervisor.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/drivers/xen/sys-hypervisor.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/sys-hypervisor.c 2012-10-31 11:16:11.000000000 +0100
@@ -13,14 +13,20 @@
#include <linux/kobject.h>
@@ -6897,7 +6972,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
xen_properties_destroy();
xen_compilation_destroy();
xen_sysfs_uuid_destroy();
---- head.orig/drivers/xen/tpmback/xenbus.c 2011-12-21 10:02:58.000000000 +0100
+--- head.orig/drivers/xen/tpmback/xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/tpmback/xenbus.c 2011-04-11 15:04:27.000000000 +0200
@@ -39,7 +39,7 @@ long int tpmback_get_instance(struct bac
@@ -6935,7 +7010,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
int err;
switch (frontend_state) {
---- head.orig/drivers/xen/usbback/usbback.h 2012-06-06 13:53:31.000000000 +0200
+--- head.orig/drivers/xen/usbback/usbback.h 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/usbback/usbback.h 2012-06-06 14:02:16.000000000 +0200
@@ -61,6 +61,12 @@
@@ -6988,7 +7063,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
goto out; /* invalid call */
}
---- head.orig/drivers/xen/usbback/xenbus.c 2011-06-30 16:33:08.000000000 +0200
+--- head.orig/drivers/xen/usbback/xenbus.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/usbback/xenbus.c 2011-06-30 17:05:05.000000000 +0200
@@ -112,7 +112,7 @@ again:
*/
@@ -7080,7 +7155,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
struct usb_hcd *hcd = info_to_hcd(info);
destroy_rings(info);
---- head.orig/drivers/xen/util.c 2011-01-31 17:56:27.000000000 +0100
+--- head.orig/drivers/xen/util.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/util.c 2011-02-01 14:50:44.000000000 +0100
@@ -1,20 +1,74 @@
#include <linux/err.h>
@@ -7290,7 +7365,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
if (rc2 != 0)
pr_warning("XENBUS: Error freeing xenstore event channel:"
" %d\n", rc2);
---- head.orig/drivers/xen/xenbus/xenbus_xs.c 2012-03-22 14:04:55.000000000 +0100
+--- head.orig/drivers/xen/xenbus/xenbus_xs.c 2013-06-05 11:41:56.000000000 +0200
+++ head/drivers/xen/xenbus/xenbus_xs.c 2012-03-22 14:09:34.000000000 +0100
@@ -736,6 +736,10 @@ void xs_resume(void)
struct xenbus_watch *watch;
@@ -7303,7 +7378,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
mutex_unlock(&xs_state.response_mutex);
mutex_unlock(&xs_state.request_mutex);
transaction_resume();
---- head.orig/include/uapi/Kbuild 2012-10-23 15:01:10.000000000 +0200
+--- head.orig/include/uapi/Kbuild 2013-06-05 11:41:56.000000000 +0200
+++ head/include/uapi/Kbuild 2012-10-23 15:17:30.000000000 +0200
@@ -10,6 +10,5 @@ header-y += mtd/
header-y += rdma/
@@ -7312,14 +7387,14 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
-header-y += xen/public/
header-y += xen/
header-y += scsi/
---- head.orig/include/uapi/xen/Kbuild 2012-10-22 16:25:23.000000000 +0200
+--- head.orig/include/uapi/xen/Kbuild 2013-06-05 11:41:56.000000000 +0200
+++ head/include/uapi/xen/Kbuild 2011-02-01 14:50:44.000000000 +0100
@@ -1,4 +1,3 @@
# UAPI Header export list
-header-y += evtchn.h
header-y += privcmd.h
header-y += public/
---- head.orig/include/xen/driver_util.h 2011-01-31 17:49:31.000000000 +0100
+--- head.orig/include/xen/driver_util.h 2013-06-05 11:41:56.000000000 +0200
+++ head/include/xen/driver_util.h 2011-02-01 14:50:44.000000000 +0100
@@ -1,8 +1,14 @@
#ifndef __XEN_DRIVER_UTIL_H__
@@ -7336,7 +7411,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
+ __printf(5, 6);
#endif /* __XEN_DRIVER_UTIL_H__ */
---- head.orig/include/xen/evtchn.h 2012-10-23 15:11:34.000000000 +0200
+--- head.orig/include/xen/evtchn.h 2013-06-05 11:41:56.000000000 +0200
+++ head/include/xen/evtchn.h 2012-10-23 15:17:39.000000000 +0200
@@ -110,9 +110,6 @@ void irq_resume(void);
/* Entry point for notifications into Linux subsystems. */
@@ -7375,7 +7450,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
/*
* Use these to access the event channel underlying the IRQ handle returned
* by bind_*_to_irqhandler().
---- head.orig/include/xen/xenbus.h 2011-12-21 11:11:38.000000000 +0100
+--- head.orig/include/xen/xenbus.h 2013-06-05 11:41:56.000000000 +0200
+++ head/include/xen/xenbus.h 2011-02-02 16:59:07.000000000 +0100
@@ -104,8 +104,12 @@ struct xenbus_driver {
void (*otherend_changed)(struct xenbus_device *dev,
@@ -7601,7 +7676,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
}
void
---- head.orig/mm/init-mm.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/mm/init-mm.c 2013-06-05 11:41:56.000000000 +0200
+++ head/mm/init-mm.c 2011-04-13 13:55:08.000000000 +0200
@@ -13,6 +13,10 @@
#define INIT_MM_CONTEXT(name)
@@ -7614,7 +7689,7 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
struct mm_struct init_mm = {
.mm_rb = RB_ROOT,
.pgd = swapper_pg_dir,
---- head.orig/mm/memory.c 2013-04-26 10:43:47.000000000 +0200
+--- head.orig/mm/memory.c 2013-06-05 11:41:56.000000000 +0200
+++ head/mm/memory.c 2013-04-26 10:48:29.000000000 +0200
@@ -1821,7 +1821,7 @@ long __get_user_pages(struct task_struct
vmas[i] = vma;
@@ -7625,9 +7700,9 @@ Automatically created from "patches.kernel.org/patch-2.6.31" by xen-port-patches
continue;
}
}
---- head.orig/mm/page_alloc.c 2013-03-21 14:43:06.000000000 +0100
-+++ head/mm/page_alloc.c 2013-03-21 14:48:17.000000000 +0100
-@@ -703,6 +703,7 @@ static bool free_pages_prepare(struct pa
+--- head.orig/mm/page_alloc.c 2013-05-23 17:28:45.000000000 +0200
++++ head/mm/page_alloc.c 2013-05-23 17:29:10.000000000 +0200
+@@ -704,6 +704,7 @@ static bool free_pages_prepare(struct pa
#ifdef CONFIG_XEN
if (PageForeign(page)) {
diff --git a/patches.xen/xen3-patch-2.6.32 b/patches.xen/xen3-patch-2.6.32
index be7f859308..ab0062f306 100644
--- a/patches.xen/xen3-patch-2.6.32
+++ b/patches.xen/xen3-patch-2.6.32
@@ -11,6 +11,7 @@ Automatically created from "patches.kernel.org/patch-2.6.32" by xen-port-patches
3.7/drivers/usb/early/ehci-dbgp.c
3.7/drivers/usb/host/ehci-hcd.c
3.7/drivers/usb/host/ehci-hub.c
+3.10/drivers/hv/Kconfig
--- head.orig/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:50:44.000000000 +0100
+++ head/arch/x86/ia32/ia32entry-xen.S 2011-02-01 14:54:13.000000000 +0100
@@ -210,7 +211,7 @@ Automatically created from "patches.kernel.org/patch-2.6.32" by xen-port-patches
- .quad sys_perf_counter_open
+ .quad sys_perf_event_open
ia32_syscall_end:
---- head.orig/arch/x86/include/asm/nmi.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/include/asm/nmi.h 2012-10-01 01:47:46.000000000 +0200
+++ head/arch/x86/include/asm/nmi.h 2011-04-13 13:55:46.000000000 +0200
@@ -17,7 +17,10 @@ struct ctl_table;
extern int proc_nmi_enabled(struct ctl_table *, int ,
@@ -223,7 +224,7 @@ Automatically created from "patches.kernel.org/patch-2.6.32" by xen-port-patches
void arch_trigger_all_cpu_backtrace(void);
#define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace
#endif
---- head.orig/arch/x86/include/asm/uv/uv_hub.h 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/include/asm/uv/uv_hub.h 2013-04-29 02:36:01.000000000 +0200
+++ head/arch/x86/include/asm/uv/uv_hub.h 2011-02-01 14:54:13.000000000 +0100
@@ -11,7 +11,7 @@
#ifndef _ASM_X86_UV_UV_HUB_H
@@ -724,8 +725,8 @@ Automatically created from "patches.kernel.org/patch-2.6.32" by xen-port-patches
- time_64-$(CONFIG_XEN) += time_32.o
endif
- disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o hpet.o i8237.o \
---- head.orig/arch/x86/kernel/apic/hw_nmi.c 2013-05-10 14:14:38.000000000 +0200
+ disabled-obj-$(CONFIG_XEN) := %_uv.o crash.o early-quirks.o i8237.o i8253.o \
+--- head.orig/arch/x86/kernel/apic/hw_nmi.c 2012-01-05 00:55:44.000000000 +0100
+++ head/arch/x86/kernel/apic/hw_nmi.c 2011-04-13 13:55:59.000000000 +0200
@@ -26,6 +26,10 @@ u64 hw_nmi_get_sample_period(int watchdo
#endif
@@ -1559,20 +1560,20 @@ Automatically created from "patches.kernel.org/patch-2.6.32" by xen-port-patches
BUG_ON(irq < 0);
notify_remote_via_irq(irq);
}
---- head.orig/arch/x86/kernel/cpu/Makefile 2012-08-20 13:10:00.000000000 +0200
-+++ head/arch/x86/kernel/cpu/Makefile 2012-08-20 13:12:20.000000000 +0200
-@@ -42,7 +42,7 @@ obj-$(CONFIG_MTRR) += mtrr/
+--- head.orig/arch/x86/kernel/cpu/Makefile 2013-05-23 17:22:36.000000000 +0200
++++ head/arch/x86/kernel/cpu/Makefile 2013-05-23 17:34:09.000000000 +0200
+@@ -43,7 +43,7 @@ obj-$(CONFIG_X86_LOCAL_APIC) += perfctr
- obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o perf_event_amd_ibs.o
+ obj-$(CONFIG_HYPERVISOR_GUEST) += vmware.o hypervisor.o mshyperv.o
-disabled-obj-$(CONFIG_XEN) := hypervisor.o perfctr-watchdog.o vmware.o
+disabled-obj-$(CONFIG_XEN) := hypervisor.o perfctr-watchdog.o sched.o vmware.o
quiet_cmd_mkcapflags = MKCAP $@
- cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@
---- head.orig/arch/x86/kernel/cpu/amd.c 2013-03-21 14:46:44.000000000 +0100
-+++ head/arch/x86/kernel/cpu/amd.c 2013-03-21 15:13:42.000000000 +0100
-@@ -365,7 +365,7 @@ static void __cpuinit amd_detect_cmp(str
+ cmd_mkcapflags = $(CONFIG_SHELL) $(srctree)/$(src)/mkcapflags.sh $< $@
+--- head.orig/arch/x86/kernel/cpu/amd.c 2013-05-23 17:29:33.000000000 +0200
++++ head/arch/x86/kernel/cpu/amd.c 2013-05-23 17:34:13.000000000 +0200
+@@ -362,7 +362,7 @@ static void __cpuinit amd_detect_cmp(str
u16 amd_get_nb_id(int cpu)
{
u16 id = 0;
@@ -1581,7 +1582,7 @@ Automatically created from "patches.kernel.org/patch-2.6.32" by xen-port-patches
id = per_cpu(cpu_llc_id, cpu);
#endif
return id;
-@@ -557,18 +557,26 @@ static void __cpuinit init_amd(struct cp
+@@ -558,18 +558,26 @@ static void __cpuinit init_amd(struct cp
*/
if (c->x86_model < 0x14 && cpu_has(c, X86_FEATURE_LAHF_LM)) {
clear_cpu_cap(c, X86_FEATURE_LAHF_LM);
@@ -1775,7 +1776,7 @@ Automatically created from "patches.kernel.org/patch-2.6.32" by xen-port-patches
#endif
/* Make sure %fs and %gs are initialized properly in idle threads */
---- head.orig/arch/x86/kernel/cpu/mcheck/mce-inject.c 2013-05-10 14:14:38.000000000 +0200
+--- head.orig/arch/x86/kernel/cpu/mcheck/mce-inject.c 2012-12-11 04:30:57.000000000 +0100
+++ head/arch/x86/kernel/cpu/mcheck/mce-inject.c 2012-10-23