summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-06-19 15:54:47 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-06-19 15:54:47 +0200
commit7c7fdd0d865e0d65e4a18942fab1fce65e16a94f (patch)
tree780659db0b13e5f754e088f11a588bde44ef3301
parent0784d2686031ae886a960d212e9bedaac8a72ba2 (diff)
linux: update to 4.1.26, refresh realtime patch
-rw-r--r--mk/kernel-ver.mk6
-rw-r--r--target/config/Config.in.kernelversion4
-rw-r--r--target/linux/patches/4.1.26/aufs.patch (renamed from target/linux/patches/4.1.24/aufs.patch)0
-rw-r--r--target/linux/patches/4.1.26/cleankernel.patch (renamed from target/linux/patches/4.1.24/cleankernel.patch)0
-rw-r--r--target/linux/patches/4.1.26/cris-header.patch (renamed from target/linux/patches/4.1.24/cris-header.patch)0
-rw-r--r--target/linux/patches/4.1.26/initramfs-nosizelimit.patch (renamed from target/linux/patches/4.1.24/initramfs-nosizelimit.patch)0
-rw-r--r--target/linux/patches/4.1.26/j2-core.patch (renamed from target/linux/patches/4.1.24/j2-core.patch)0
-rw-r--r--target/linux/patches/4.1.26/mtd-rootfs.patch (renamed from target/linux/patches/4.1.24/mtd-rootfs.patch)0
-rw-r--r--target/linux/patches/4.1.26/realtime.patch (renamed from target/linux/patches/4.1.24/realtime.patch)4442
-rw-r--r--target/linux/patches/4.1.26/regmap-default-on.patch (renamed from target/linux/patches/4.1.24/regmap-default-on.patch)0
-rw-r--r--target/linux/patches/4.1.26/remove-warn.patch (renamed from target/linux/patches/4.1.24/remove-warn.patch)0
-rw-r--r--target/linux/patches/4.1.26/startup.patch (renamed from target/linux/patches/4.1.24/startup.patch)0
-rw-r--r--target/linux/patches/4.1.26/use-gawk.patch (renamed from target/linux/patches/4.1.24/use-gawk.patch)0
-rw-r--r--target/linux/patches/4.1.26/use-libgcc-for-sh.patch (renamed from target/linux/patches/4.1.24/use-libgcc-for-sh.patch)0
14 files changed, 2219 insertions, 2233 deletions
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk
index ce2f8fa44..752703658 100644
--- a/mk/kernel-ver.mk
+++ b/mk/kernel-ver.mk
@@ -37,11 +37,11 @@ KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
KERNEL_HASH:= 4ac22e4a619417213cfdab24714413bb9118fbaebe6012c6c89c279cdadef2ce
endif
-ifeq ($(ADK_TARGET_KERNEL_VERSION_4_1_24),y)
-KERNEL_FILE_VER:= 4.1.24
+ifeq ($(ADK_TARGET_KERNEL_VERSION_4_1_26),y)
+KERNEL_FILE_VER:= 4.1.26
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= 9cc27b7f96adfa3bb48186eb497bebc5fbf5aef1f022d98ae5319300040278df
+KERNEL_HASH:= babcfca252a1427278b7bc4372fdad40fa1388d8fad2d85ca74cf72222e7f071
endif
ifeq ($(ADK_TARGET_KERNEL_VERSION_3_18_33),y)
KERNEL_FILE_VER:= 3.18.33
diff --git a/target/config/Config.in.kernelversion b/target/config/Config.in.kernelversion
index d64d554dd..c6687d92a 100644
--- a/target/config/Config.in.kernelversion
+++ b/target/config/Config.in.kernelversion
@@ -28,8 +28,8 @@ config ADK_TARGET_KERNEL_VERSION_4_4_10
depends on !ADK_TARGET_ARCH_NIOS2
select ADK_TARGET_KERNEL_VERSION_4_4
-config ADK_TARGET_KERNEL_VERSION_4_1_24
- bool "4.1.24"
+config ADK_TARGET_KERNEL_VERSION_4_1_26
+ bool "4.1.26"
depends on !ADK_TARGET_ARCH_ARC
depends on !ADK_TARGET_ARCH_BFIN
depends on !ADK_TARGET_ARCH_H8300
diff --git a/target/linux/patches/4.1.24/aufs.patch b/target/linux/patches/4.1.26/aufs.patch
index 749c90989..749c90989 100644
--- a/target/linux/patches/4.1.24/aufs.patch
+++ b/target/linux/patches/4.1.26/aufs.patch
diff --git a/target/linux/patches/4.1.24/cleankernel.patch b/target/linux/patches/4.1.26/cleankernel.patch
index 59693f426..59693f426 100644
--- a/target/linux/patches/4.1.24/cleankernel.patch
+++ b/target/linux/patches/4.1.26/cleankernel.patch
diff --git a/target/linux/patches/4.1.24/cris-header.patch b/target/linux/patches/4.1.26/cris-header.patch
index 2b5a88461..2b5a88461 100644
--- a/target/linux/patches/4.1.24/cris-header.patch
+++ b/target/linux/patches/4.1.26/cris-header.patch
diff --git a/target/linux/patches/4.1.24/initramfs-nosizelimit.patch b/target/linux/patches/4.1.26/initramfs-nosizelimit.patch
index 40d2f6bd8..40d2f6bd8 100644
--- a/target/linux/patches/4.1.24/initramfs-nosizelimit.patch
+++ b/target/linux/patches/4.1.26/initramfs-nosizelimit.patch
diff --git a/target/linux/patches/4.1.24/j2-core.patch b/target/linux/patches/4.1.26/j2-core.patch
index 38136df2c..38136df2c 100644
--- a/target/linux/patches/4.1.24/j2-core.patch
+++ b/target/linux/patches/4.1.26/j2-core.patch
diff --git a/target/linux/patches/4.1.24/mtd-rootfs.patch b/target/linux/patches/4.1.26/mtd-rootfs.patch
index 5f6d82b5c..5f6d82b5c 100644
--- a/target/linux/patches/4.1.24/mtd-rootfs.patch
+++ b/target/linux/patches/4.1.26/mtd-rootfs.patch
diff --git a/target/linux/patches/4.1.24/realtime.patch b/target/linux/patches/4.1.26/realtime.patch
index 832b82fdf..6ecf019b9 100644
--- a/target/linux/patches/4.1.24/realtime.patch
+++ b/target/linux/patches/4.1.26/realtime.patch
@@ -1,306 +1,6 @@
-diff -Nur linux-4.1.20.orig/Documentation/hwlat_detector.txt linux-4.1.20/Documentation/hwlat_detector.txt
---- linux-4.1.20.orig/Documentation/hwlat_detector.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/Documentation/hwlat_detector.txt 2016-03-21 20:18:28.000000000 +0100
-@@ -0,0 +1,64 @@
-+Introduction:
-+-------------
-+
-+The module hwlat_detector is a special purpose kernel module that is used to
-+detect large system latencies induced by the behavior of certain underlying
-+hardware or firmware, independent of Linux itself. The code was developed
-+originally to detect SMIs (System Management Interrupts) on x86 systems,
-+however there is nothing x86 specific about this patchset. It was
-+originally written for use by the "RT" patch since the Real Time
-+kernel is highly latency sensitive.
-+
-+SMIs are usually not serviced by the Linux kernel, which typically does not
-+even know that they are occuring. SMIs are instead are set up by BIOS code
-+and are serviced by BIOS code, usually for "critical" events such as
-+management of thermal sensors and fans. Sometimes though, SMIs are used for
-+other tasks and those tasks can spend an inordinate amount of time in the
-+handler (sometimes measured in milliseconds). Obviously this is a problem if
-+you are trying to keep event service latencies down in the microsecond range.
-+
-+The hardware latency detector works by hogging all of the cpus for configurable
-+amounts of time (by calling stop_machine()), polling the CPU Time Stamp Counter
-+for some period, then looking for gaps in the TSC data. Any gap indicates a
-+time when the polling was interrupted and since the machine is stopped and
-+interrupts turned off the only thing that could do that would be an SMI.
-+
-+Note that the SMI detector should *NEVER* be used in a production environment.
-+It is intended to be run manually to determine if the hardware platform has a
-+problem with long system firmware service routines.
-+
-+Usage:
-+------
-+
-+Loading the module hwlat_detector passing the parameter "enabled=1" (or by
-+setting the "enable" entry in "hwlat_detector" debugfs toggled on) is the only
-+step required to start the hwlat_detector. It is possible to redefine the
-+threshold in microseconds (us) above which latency spikes will be taken
-+into account (parameter "threshold=").
-+
-+Example:
-+
-+ # modprobe hwlat_detector enabled=1 threshold=100
-+
-+After the module is loaded, it creates a directory named "hwlat_detector" under
-+the debugfs mountpoint, "/debug/hwlat_detector" for this text. It is necessary
-+to have debugfs mounted, which might be on /sys/debug on your system.
-+
-+The /debug/hwlat_detector interface contains the following files:
-+
-+count - number of latency spikes observed since last reset
-+enable - a global enable/disable toggle (0/1), resets count
-+max - maximum hardware latency actually observed (usecs)
-+sample - a pipe from which to read current raw sample data
-+ in the format <timestamp> <latency observed usecs>
-+ (can be opened O_NONBLOCK for a single sample)
-+threshold - minimum latency value to be considered (usecs)
-+width - time period to sample with CPUs held (usecs)
-+ must be less than the total window size (enforced)
-+window - total period of sampling, width being inside (usecs)
-+
-+By default we will set width to 500,000 and window to 1,000,000, meaning that
-+we will sample every 1,000,000 usecs (1s) for 500,000 usecs (0.5s). If we
-+observe any latencies that exceed the threshold (initially 100 usecs),
-+then we write to a global sample ring buffer of 8K samples, which is
-+consumed by reading from the "sample" (pipe) debugfs file interface.
-diff -Nur linux-4.1.20.orig/Documentation/sysrq.txt linux-4.1.20/Documentation/sysrq.txt
---- linux-4.1.20.orig/Documentation/sysrq.txt 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/Documentation/sysrq.txt 2016-03-21 20:18:28.000000000 +0100
-@@ -59,10 +59,17 @@
- On other - If you know of the key combos for other architectures, please
- let me know so I can add them to this section.
-
--On all - write a character to /proc/sysrq-trigger. e.g.:
--
-+On all - write a character to /proc/sysrq-trigger, e.g.:
- echo t > /proc/sysrq-trigger
-
-+On all - Enable network SysRq by writing a cookie to icmp_echo_sysrq, e.g.
-+ echo 0x01020304 >/proc/sys/net/ipv4/icmp_echo_sysrq
-+ Send an ICMP echo request with this pattern plus the particular
-+ SysRq command key. Example:
-+ # ping -c1 -s57 -p0102030468
-+ will trigger the SysRq-H (help) command.
-+
-+
- * What are the 'command' keys?
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 'b' - Will immediately reboot the system without syncing or unmounting
-diff -Nur linux-4.1.20.orig/Documentation/trace/histograms.txt linux-4.1.20/Documentation/trace/histograms.txt
---- linux-4.1.20.orig/Documentation/trace/histograms.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/Documentation/trace/histograms.txt 2016-03-21 20:18:28.000000000 +0100
-@@ -0,0 +1,186 @@
-+ Using the Linux Kernel Latency Histograms
-+
-+
-+This document gives a short explanation how to enable, configure and use
-+latency histograms. Latency histograms are primarily relevant in the
-+context of real-time enabled kernels (CONFIG_PREEMPT/CONFIG_PREEMPT_RT)
-+and are used in the quality management of the Linux real-time
-+capabilities.
-+
-+
-+* Purpose of latency histograms
-+
-+A latency histogram continuously accumulates the frequencies of latency
-+data. There are two types of histograms
-+- potential sources of latencies
-+- effective latencies
-+
-+
-+* Potential sources of latencies
-+
-+Potential sources of latencies are code segments where interrupts,
-+preemption or both are disabled (aka critical sections). To create
-+histograms of potential sources of latency, the kernel stores the time
-+stamp at the start of a critical section, determines the time elapsed
-+when the end of the section is reached, and increments the frequency
-+counter of that latency value - irrespective of whether any concurrently
-+running process is affected by latency or not.
-+- Configuration items (in the Kernel hacking/Tracers submenu)
-+ CONFIG_INTERRUPT_OFF_LATENCY
-+ CONFIG_PREEMPT_OFF_LATENCY
-+
-+
-+* Effective latencies
-+
-+Effective latencies are actually occuring during wakeup of a process. To
-+determine effective latencies, the kernel stores the time stamp when a
-+process is scheduled to be woken up, and determines the duration of the
-+wakeup time shortly before control is passed over to this process. Note
-+that the apparent latency in user space may be somewhat longer, since the
-+process may be interrupted after control is passed over to it but before
-+the execution in user space takes place. Simply measuring the interval
-+between enqueuing and wakeup may also not appropriate in cases when a
-+process is scheduled as a result of a timer expiration. The timer may have
-+missed its deadline, e.g. due to disabled interrupts, but this latency
-+would not be registered. Therefore, the offsets of missed timers are
-+recorded in a separate histogram. If both wakeup latency and missed timer
-+offsets are configured and enabled, a third histogram may be enabled that
-+records the overall latency as a sum of the timer latency, if any, and the
-+wakeup latency. This histogram is called "timerandwakeup".
-+- Configuration items (in the Kernel hacking/Tracers submenu)
-+ CONFIG_WAKEUP_LATENCY
-+ CONFIG_MISSED_TIMER_OFSETS
-+
-+
-+* Usage
-+
-+The interface to the administration of the latency histograms is located
-+in the debugfs file system. To mount it, either enter
-+
-+mount -t sysfs nodev /sys
-+mount -t debugfs nodev /sys/kernel/debug
-+
-+from shell command line level, or add
-+
-+nodev /sys sysfs defaults 0 0
-+nodev /sys/kernel/debug debugfs defaults 0 0
-+
-+to the file /etc/fstab. All latency histogram related files are then
-+available in the directory /sys/kernel/debug/tracing/latency_hist. A
-+particular histogram type is enabled by writing non-zero to the related
-+variable in the /sys/kernel/debug/tracing/latency_hist/enable directory.
-+Select "preemptirqsoff" for the histograms of potential sources of
-+latencies and "wakeup" for histograms of effective latencies etc. The
-+histogram data - one per CPU - are available in the files
-+
-+/sys/kernel/debug/tracing/latency_hist/preemptoff/CPUx
-+/sys/kernel/debug/tracing/latency_hist/irqsoff/CPUx
-+/sys/kernel/debug/tracing/latency_hist/preemptirqsoff/CPUx
-+/sys/kernel/debug/tracing/latency_hist/wakeup/CPUx
-+/sys/kernel/debug/tracing/latency_hist/wakeup/sharedprio/CPUx
-+/sys/kernel/debug/tracing/latency_hist/missed_timer_offsets/CPUx
-+/sys/kernel/debug/tracing/latency_hist/timerandwakeup/CPUx
-+
-+The histograms are reset by writing non-zero to the file "reset" in a
-+particular latency directory. To reset all latency data, use
-+
-+#!/bin/sh
-+
-+TRACINGDIR=/sys/kernel/debug/tracing
-+HISTDIR=$TRACINGDIR/latency_hist
-+
-+if test -d $HISTDIR
-+then
-+ cd $HISTDIR
-+ for i in `find . | grep /reset$`
-+ do
-+ echo 1 >$i
-+ done
-+fi
-+
-+
-+* Data format
-+
-+Latency data are stored with a resolution of one microsecond. The
-+maximum latency is 10,240 microseconds. The data are only valid, if the
-+overflow register is empty. Every output line contains the latency in
-+microseconds in the first row and the number of samples in the second
-+row. To display only lines with a positive latency count, use, for
-+example,
-+
-+grep -v " 0$" /sys/kernel/debug/tracing/latency_hist/preemptoff/CPU0
-+
-+#Minimum latency: 0 microseconds.
-+#Average latency: 0 microseconds.
-+#Maximum latency: 25 microseconds.
-+#Total samples: 3104770694
-+#There are 0 samples greater or equal than 10240 microseconds
-+#usecs samples
-+ 0 2984486876
-+ 1 49843506
-+ 2 58219047
-+ 3 5348126
-+ 4 2187960
-+ 5 3388262
-+ 6 959289
-+ 7 208294
-+ 8 40420
-+ 9 4485
-+ 10 14918
-+ 11 18340
-+ 12 25052
-+ 13 19455
-+ 14 5602
-+ 15 969
-+ 16 47
-+ 17 18
-+ 18 14
-+ 19 1
-+ 20 3
-+ 21 2
-+ 22 5
-+ 23 2
-+ 25 1
-+
-+
-+* Wakeup latency of a selected process
-+
-+To only collect wakeup latency data of a particular process, write the
-+PID of the requested process to
-+
-+/sys/kernel/debug/tracing/latency_hist/wakeup/pid
-+
-+PIDs are not considered, if this variable is set to 0.
-+
-+
-+* Details of the process with the highest wakeup latency so far
-+
-+Selected data of the process that suffered from the highest wakeup
-+latency that occurred in a particular CPU are available in the file
-+
-+/sys/kernel/debug/tracing/latency_hist/wakeup/max_latency-CPUx.
-+
-+In addition, other relevant system data at the time when the
-+latency occurred are given.
-+
-+The format of the data is (all in one line):
-+<PID> <Priority> <Latency> (<Timeroffset>) <Command> \
-+<- <PID> <Priority> <Command> <Timestamp>
-+
-+The value of <Timeroffset> is only relevant in the combined timer
-+and wakeup latency recording. In the wakeup recording, it is
-+always 0, in the missed_timer_offsets recording, it is the same
-+as <Latency>.
-+
-+When retrospectively searching for the origin of a latency and
-+tracing was not enabled, it may be helpful to know the name and
-+some basic data of the task that (finally) was switching to the
-+late real-tlme task. In addition to the victim's data, also the
-+data of the possible culprit are therefore displayed after the
-+"<-" symbol.
-+
-+Finally, the timestamp of the time when the latency occurred
-+in <seconds>.<microseconds> after the most recent system boot
-+is provided.
-+
-+These data are also reset when the wakeup histogram is reset.
-diff -Nur linux-4.1.20.orig/arch/Kconfig linux-4.1.20/arch/Kconfig
---- linux-4.1.20.orig/arch/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/Kconfig 2016-03-21 20:18:28.000000000 +0100
-@@ -6,6 +6,7 @@
- tristate "OProfile system profiling"
- depends on PROFILING
- depends on HAVE_OPROFILE
-+ depends on !PREEMPT_RT_FULL
- select RING_BUFFER
- select RING_BUFFER_ALLOW_SWAP
- help
-@@ -49,6 +50,7 @@
- config JUMP_LABEL
- bool "Optimize very unlikely/likely branches"
- depends on HAVE_ARCH_JUMP_LABEL
-+ depends on (!INTERRUPT_OFF_HIST && !PREEMPT_OFF_HIST && !WAKEUP_LATENCY_HIST && !MISSED_TIMER_OFFSETS_HIST)
- help
- This option enables a transparent branch optimization that
- makes certain almost-always-true or almost-always-false branch
-diff -Nur linux-4.1.20.orig/arch/alpha/mm/fault.c linux-4.1.20/arch/alpha/mm/fault.c
---- linux-4.1.20.orig/arch/alpha/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/alpha/mm/fault.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/alpha/mm/fault.c linux-4.1.26/arch/alpha/mm/fault.c
+--- linux-4.1.26.orig/arch/alpha/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/alpha/mm/fault.c 2016-06-19 15:30:54.915151887 +0200
@@ -23,8 +23,7 @@
#include <linux/smp.h>
#include <linux/interrupt.h>
@@ -320,9 +20,9 @@ diff -Nur linux-4.1.20.orig/arch/alpha/mm/fault.c linux-4.1.20/arch/alpha/mm/fau
goto no_context;
#ifdef CONFIG_ALPHA_LARGE_VMALLOC
-diff -Nur linux-4.1.20.orig/arch/arc/include/asm/futex.h linux-4.1.20/arch/arc/include/asm/futex.h
---- linux-4.1.20.orig/arch/arc/include/asm/futex.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arc/include/asm/futex.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arc/include/asm/futex.h linux-4.1.26/arch/arc/include/asm/futex.h
+--- linux-4.1.26.orig/arch/arc/include/asm/futex.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arc/include/asm/futex.h 2016-06-19 15:30:54.915151887 +0200
@@ -53,7 +53,7 @@
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
return -EFAULT;
@@ -368,9 +68,9 @@ diff -Nur linux-4.1.20.orig/arch/arc/include/asm/futex.h linux-4.1.20/arch/arc/i
*uval = val;
return val;
-diff -Nur linux-4.1.20.orig/arch/arc/mm/fault.c linux-4.1.20/arch/arc/mm/fault.c
---- linux-4.1.20.orig/arch/arc/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arc/mm/fault.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arc/mm/fault.c linux-4.1.26/arch/arc/mm/fault.c
+--- linux-4.1.26.orig/arch/arc/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arc/mm/fault.c 2016-06-19 15:30:54.915151887 +0200
@@ -86,7 +86,7 @@
* If we're in an interrupt or have no user
* context, we must not take the fault..
@@ -380,29 +80,9 @@ diff -Nur linux-4.1.20.orig/arch/arc/mm/fault.c linux-4.1.20/arch/arc/mm/fault.c
goto no_context;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/arm/Kconfig linux-4.1.20/arch/arm/Kconfig
---- linux-4.1.20.orig/arch/arm/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/Kconfig 2016-03-21 20:18:28.000000000 +0100
-@@ -31,7 +31,7 @@
- select HARDIRQS_SW_RESEND
- select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
- select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
-- select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
-+ select HAVE_ARCH_JUMP_LABEL if (!XIP_KERNEL && !PREEMPT_RT_BASE)
- select HAVE_ARCH_KGDB
- select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
- select HAVE_ARCH_TRACEHOOK
-@@ -66,6 +66,7 @@
- select HAVE_PERF_EVENTS
- select HAVE_PERF_REGS
- select HAVE_PERF_USER_STACK_DUMP
-+ select HAVE_PREEMPT_LAZY
- select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE)
- select HAVE_REGS_AND_STACK_ACCESS_API
- select HAVE_SYSCALL_TRACEPOINTS
-diff -Nur linux-4.1.20.orig/arch/arm/include/asm/cmpxchg.h linux-4.1.20/arch/arm/include/asm/cmpxchg.h
---- linux-4.1.20.orig/arch/arm/include/asm/cmpxchg.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/include/asm/cmpxchg.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/include/asm/cmpxchg.h linux-4.1.26/arch/arm/include/asm/cmpxchg.h
+--- linux-4.1.26.orig/arch/arm/include/asm/cmpxchg.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/include/asm/cmpxchg.h 2016-06-19 15:30:54.919152041 +0200
@@ -129,6 +129,8 @@
#else /* min ARCH >= ARMv6 */
@@ -412,9 +92,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/include/asm/cmpxchg.h linux-4.1.20/arch/arm
extern void __bad_cmpxchg(volatile void *ptr, int size);
/*
-diff -Nur linux-4.1.20.orig/arch/arm/include/asm/futex.h linux-4.1.20/arch/arm/include/asm/futex.h
---- linux-4.1.20.orig/arch/arm/include/asm/futex.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/include/asm/futex.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/include/asm/futex.h linux-4.1.26/arch/arm/include/asm/futex.h
+--- linux-4.1.26.orig/arch/arm/include/asm/futex.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/include/asm/futex.h 2016-06-19 15:30:54.919152041 +0200
@@ -93,6 +93,7 @@
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
return -EFAULT;
@@ -456,9 +136,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/include/asm/futex.h linux-4.1.20/arch/arm/i
if (!ret) {
switch (cmp) {
-diff -Nur linux-4.1.20.orig/arch/arm/include/asm/switch_to.h linux-4.1.20/arch/arm/include/asm/switch_to.h
---- linux-4.1.20.orig/arch/arm/include/asm/switch_to.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/include/asm/switch_to.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/include/asm/switch_to.h linux-4.1.26/arch/arm/include/asm/switch_to.h
+--- linux-4.1.26.orig/arch/arm/include/asm/switch_to.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/include/asm/switch_to.h 2016-06-19 15:30:54.919152041 +0200
@@ -3,6 +3,13 @@
#include <linux/thread_info.h>
@@ -481,9 +161,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/include/asm/switch_to.h linux-4.1.20/arch/a
last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \
} while (0)
-diff -Nur linux-4.1.20.orig/arch/arm/include/asm/thread_info.h linux-4.1.20/arch/arm/include/asm/thread_info.h
---- linux-4.1.20.orig/arch/arm/include/asm/thread_info.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/include/asm/thread_info.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/include/asm/thread_info.h linux-4.1.26/arch/arm/include/asm/thread_info.h
+--- linux-4.1.26.orig/arch/arm/include/asm/thread_info.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/include/asm/thread_info.h 2016-06-19 15:30:54.919152041 +0200
@@ -50,6 +50,7 @@
struct thread_info {
unsigned long flags; /* low level flags */
@@ -508,9 +188,29 @@ diff -Nur linux-4.1.20.orig/arch/arm/include/asm/thread_info.h linux-4.1.20/arch
#define _TIF_UPROBE (1 << TIF_UPROBE)
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
-diff -Nur linux-4.1.20.orig/arch/arm/kernel/asm-offsets.c linux-4.1.20/arch/arm/kernel/asm-offsets.c
---- linux-4.1.20.orig/arch/arm/kernel/asm-offsets.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/kernel/asm-offsets.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/Kconfig linux-4.1.26/arch/arm/Kconfig
+--- linux-4.1.26.orig/arch/arm/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/Kconfig 2016-06-19 15:30:54.919152041 +0200
+@@ -31,7 +31,7 @@
+ select HARDIRQS_SW_RESEND
+ select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
+ select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
+- select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
++ select HAVE_ARCH_JUMP_LABEL if (!XIP_KERNEL && !PREEMPT_RT_BASE)
+ select HAVE_ARCH_KGDB
+ select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
+ select HAVE_ARCH_TRACEHOOK
+@@ -66,6 +66,7 @@
+ select HAVE_PERF_EVENTS
+ select HAVE_PERF_REGS
+ select HAVE_PERF_USER_STACK_DUMP
++ select HAVE_PREEMPT_LAZY
+ select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE)
+ select HAVE_REGS_AND_STACK_ACCESS_API
+ select HAVE_SYSCALL_TRACEPOINTS
+diff -Nur linux-4.1.26.orig/arch/arm/kernel/asm-offsets.c linux-4.1.26/arch/arm/kernel/asm-offsets.c
+--- linux-4.1.26.orig/arch/arm/kernel/asm-offsets.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/kernel/asm-offsets.c 2016-06-19 15:30:54.919152041 +0200
@@ -65,6 +65,7 @@
BLANK();
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
@@ -519,9 +219,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/kernel/asm-offsets.c linux-4.1.20/arch/arm/
DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
DEFINE(TI_TASK, offsetof(struct thread_info, task));
DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
-diff -Nur linux-4.1.20.orig/arch/arm/kernel/entry-armv.S linux-4.1.20/arch/arm/kernel/entry-armv.S
---- linux-4.1.20.orig/arch/arm/kernel/entry-armv.S 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/kernel/entry-armv.S 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/kernel/entry-armv.S linux-4.1.26/arch/arm/kernel/entry-armv.S
+--- linux-4.1.26.orig/arch/arm/kernel/entry-armv.S 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/kernel/entry-armv.S 2016-06-19 15:30:54.919152041 +0200
@@ -208,11 +208,18 @@
#ifdef CONFIG_PREEMPT
get_thread_info tsk
@@ -552,9 +252,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/kernel/entry-armv.S linux-4.1.20/arch/arm/k
reteq r8 @ go again
b 1b
#endif
-diff -Nur linux-4.1.20.orig/arch/arm/kernel/process.c linux-4.1.20/arch/arm/kernel/process.c
---- linux-4.1.20.orig/arch/arm/kernel/process.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/kernel/process.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/kernel/process.c linux-4.1.26/arch/arm/kernel/process.c
+--- linux-4.1.26.orig/arch/arm/kernel/process.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/kernel/process.c 2016-06-19 15:30:54.919152041 +0200
@@ -290,6 +290,30 @@
}
@@ -586,9 +286,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/kernel/process.c linux-4.1.20/arch/arm/kern
#ifdef CONFIG_KUSER_HELPERS
/*
* The vectors page is always readable from user space for the
-diff -Nur linux-4.1.20.orig/arch/arm/kernel/signal.c linux-4.1.20/arch/arm/kernel/signal.c
---- linux-4.1.20.orig/arch/arm/kernel/signal.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/kernel/signal.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/kernel/signal.c linux-4.1.26/arch/arm/kernel/signal.c
+--- linux-4.1.26.orig/arch/arm/kernel/signal.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/kernel/signal.c 2016-06-19 15:30:54.919152041 +0200
@@ -568,7 +568,8 @@
do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
{
@@ -599,9 +299,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/kernel/signal.c linux-4.1.20/arch/arm/kerne
schedule();
} else {
if (unlikely(!user_mode(regs)))
-diff -Nur linux-4.1.20.orig/arch/arm/kernel/smp.c linux-4.1.20/arch/arm/kernel/smp.c
---- linux-4.1.20.orig/arch/arm/kernel/smp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/kernel/smp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/kernel/smp.c linux-4.1.26/arch/arm/kernel/smp.c
+--- linux-4.1.26.orig/arch/arm/kernel/smp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/kernel/smp.c 2016-06-19 15:30:54.919152041 +0200
@@ -213,8 +213,6 @@
flush_cache_louis();
local_flush_tlb_all();
@@ -621,9 +321,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/kernel/smp.c linux-4.1.20/arch/arm/kernel/s
pr_notice("CPU%u: shutdown\n", cpu);
/*
-diff -Nur linux-4.1.20.orig/arch/arm/kernel/unwind.c linux-4.1.20/arch/arm/kernel/unwind.c
---- linux-4.1.20.orig/arch/arm/kernel/unwind.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/kernel/unwind.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/kernel/unwind.c linux-4.1.26/arch/arm/kernel/unwind.c
+--- linux-4.1.26.orig/arch/arm/kernel/unwind.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/kernel/unwind.c 2016-06-19 15:30:54.919152041 +0200
@@ -93,7 +93,7 @@
static const struct unwind_idx *__origin_unwind_idx;
extern const struct unwind_idx __stop_unwind_idx[];
@@ -675,9 +375,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/kernel/unwind.c linux-4.1.20/arch/arm/kerne
kfree(tab);
}
-diff -Nur linux-4.1.20.orig/arch/arm/kvm/arm.c linux-4.1.20/arch/arm/kvm/arm.c
---- linux-4.1.20.orig/arch/arm/kvm/arm.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/kvm/arm.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/kvm/arm.c linux-4.1.26/arch/arm/kvm/arm.c
+--- linux-4.1.26.orig/arch/arm/kvm/arm.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/kvm/arm.c 2016-06-19 15:30:54.919152041 +0200
@@ -474,9 +474,9 @@
static void vcpu_pause(struct kvm_vcpu *vcpu)
@@ -690,9 +390,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/kvm/arm.c linux-4.1.20/arch/arm/kvm/arm.c
}
static int kvm_vcpu_initialized(struct kvm_vcpu *vcpu)
-diff -Nur linux-4.1.20.orig/arch/arm/kvm/psci.c linux-4.1.20/arch/arm/kvm/psci.c
---- linux-4.1.20.orig/arch/arm/kvm/psci.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/kvm/psci.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/kvm/psci.c linux-4.1.26/arch/arm/kvm/psci.c
+--- linux-4.1.26.orig/arch/arm/kvm/psci.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/kvm/psci.c 2016-06-19 15:30:54.919152041 +0200
@@ -68,7 +68,7 @@
{
struct kvm *kvm = source_vcpu->kvm;
@@ -711,9 +411,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/kvm/psci.c linux-4.1.20/arch/arm/kvm/psci.c
return PSCI_RET_SUCCESS;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mach-exynos/platsmp.c linux-4.1.20/arch/arm/mach-exynos/platsmp.c
---- linux-4.1.20.orig/arch/arm/mach-exynos/platsmp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-exynos/platsmp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-exynos/platsmp.c linux-4.1.26/arch/arm/mach-exynos/platsmp.c
+--- linux-4.1.26.orig/arch/arm/mach-exynos/platsmp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-exynos/platsmp.c 2016-06-19 15:30:54.919152041 +0200
@@ -231,7 +231,7 @@
return (void __iomem *)(S5P_VA_SCU);
}
@@ -761,9 +461,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-exynos/platsmp.c linux-4.1.20/arch/arm
return pen_release != -1 ? ret : 0;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mach-hisi/platmcpm.c linux-4.1.20/arch/arm/mach-hisi/platmcpm.c
---- linux-4.1.20.orig/arch/arm/mach-hisi/platmcpm.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-hisi/platmcpm.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-hisi/platmcpm.c linux-4.1.26/arch/arm/mach-hisi/platmcpm.c
+--- linux-4.1.26.orig/arch/arm/mach-hisi/platmcpm.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-hisi/platmcpm.c 2016-06-19 15:30:54.923152195 +0200
@@ -57,7 +57,7 @@
static void __iomem *sysctrl, *fabric;
@@ -866,9 +566,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-hisi/platmcpm.c linux-4.1.20/arch/arm/
}
static void __naked hip04_mcpm_power_up_setup(unsigned int affinity_level)
-diff -Nur linux-4.1.20.orig/arch/arm/mach-omap2/gpio.c linux-4.1.20/arch/arm/mach-omap2/gpio.c
---- linux-4.1.20.orig/arch/arm/mach-omap2/gpio.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-omap2/gpio.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-omap2/gpio.c linux-4.1.26/arch/arm/mach-omap2/gpio.c
+--- linux-4.1.26.orig/arch/arm/mach-omap2/gpio.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-omap2/gpio.c 2016-06-19 15:30:54.923152195 +0200
@@ -130,7 +130,6 @@
}
@@ -877,9 +577,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-omap2/gpio.c linux-4.1.20/arch/arm/mac
pdev = omap_device_build(name, id - 1, oh, pdata, sizeof(*pdata));
kfree(pdata);
-diff -Nur linux-4.1.20.orig/arch/arm/mach-omap2/omap-smp.c linux-4.1.20/arch/arm/mach-omap2/omap-smp.c
---- linux-4.1.20.orig/arch/arm/mach-omap2/omap-smp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-omap2/omap-smp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-omap2/omap-smp.c linux-4.1.26/arch/arm/mach-omap2/omap-smp.c
+--- linux-4.1.26.orig/arch/arm/mach-omap2/omap-smp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-omap2/omap-smp.c 2016-06-19 15:30:54.923152195 +0200
@@ -43,7 +43,7 @@
/* SCU base address */
static void __iomem *scu_base;
@@ -918,9 +618,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-omap2/omap-smp.c linux-4.1.20/arch/arm
return 0;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mach-omap2/powerdomain.c linux-4.1.20/arch/arm/mach-omap2/powerdomain.c
---- linux-4.1.20.orig/arch/arm/mach-omap2/powerdomain.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-omap2/powerdomain.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-omap2/powerdomain.c linux-4.1.26/arch/arm/mach-omap2/powerdomain.c
+--- linux-4.1.26.orig/arch/arm/mach-omap2/powerdomain.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-omap2/powerdomain.c 2016-06-19 15:30:54.923152195 +0200
@@ -1166,43 +1166,3 @@
return count;
}
@@ -965,9 +665,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-omap2/powerdomain.c linux-4.1.20/arch/
-
- return 0;
-}
-diff -Nur linux-4.1.20.orig/arch/arm/mach-omap2/powerdomain.h linux-4.1.20/arch/arm/mach-omap2/powerdomain.h
---- linux-4.1.20.orig/arch/arm/mach-omap2/powerdomain.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-omap2/powerdomain.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-omap2/powerdomain.h linux-4.1.26/arch/arm/mach-omap2/powerdomain.h
+--- linux-4.1.26.orig/arch/arm/mach-omap2/powerdomain.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-omap2/powerdomain.h 2016-06-19 15:30:54.923152195 +0200
@@ -244,7 +244,6 @@
int pwrdm_pre_transition(struct powerdomain *pwrdm);
int pwrdm_post_transition(struct powerdomain *pwrdm);
@@ -976,9 +676,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-omap2/powerdomain.h linux-4.1.20/arch/
extern int omap_set_pwrdm_state(struct powerdomain *pwrdm, u8 state);
-diff -Nur linux-4.1.20.orig/arch/arm/mach-prima2/platsmp.c linux-4.1.20/arch/arm/mach-prima2/platsmp.c
---- linux-4.1.20.orig/arch/arm/mach-prima2/platsmp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-prima2/platsmp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-prima2/platsmp.c linux-4.1.26/arch/arm/mach-prima2/platsmp.c
+--- linux-4.1.26.orig/arch/arm/mach-prima2/platsmp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-prima2/platsmp.c 2016-06-19 15:30:54.923152195 +0200
@@ -22,7 +22,7 @@
static void __iomem *clk_base;
@@ -1017,9 +717,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-prima2/platsmp.c linux-4.1.20/arch/arm
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mach-qcom/platsmp.c linux-4.1.20/arch/arm/mach-qcom/platsmp.c
---- linux-4.1.20.orig/arch/arm/mach-qcom/platsmp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-qcom/platsmp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-qcom/platsmp.c linux-4.1.26/arch/arm/mach-qcom/platsmp.c
+--- linux-4.1.26.orig/arch/arm/mach-qcom/platsmp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-qcom/platsmp.c 2016-06-19 15:30:54.923152195 +0200
@@ -46,7 +46,7 @@
extern void secondary_startup_arm(void);
@@ -1058,9 +758,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-qcom/platsmp.c linux-4.1.20/arch/arm/m
return ret;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mach-spear/platsmp.c linux-4.1.20/arch/arm/mach-spear/platsmp.c
---- linux-4.1.20.orig/arch/arm/mach-spear/platsmp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-spear/platsmp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-spear/platsmp.c linux-4.1.26/arch/arm/mach-spear/platsmp.c
+--- linux-4.1.26.orig/arch/arm/mach-spear/platsmp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-spear/platsmp.c 2016-06-19 15:30:54.923152195 +0200
@@ -32,7 +32,7 @@
sync_cache_w(&pen_release);
}
@@ -1099,9 +799,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-spear/platsmp.c linux-4.1.20/arch/arm/
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mach-sti/platsmp.c linux-4.1.20/arch/arm/mach-sti/platsmp.c
---- linux-4.1.20.orig/arch/arm/mach-sti/platsmp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-sti/platsmp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-sti/platsmp.c linux-4.1.26/arch/arm/mach-sti/platsmp.c
+--- linux-4.1.26.orig/arch/arm/mach-sti/platsmp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-sti/platsmp.c 2016-06-19 15:30:54.923152195 +0200
@@ -34,7 +34,7 @@
sync_cache_w(&pen_release);
}
@@ -1140,9 +840,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-sti/platsmp.c linux-4.1.20/arch/arm/ma
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mach-ux500/platsmp.c linux-4.1.20/arch/arm/mach-ux500/platsmp.c
---- linux-4.1.20.orig/arch/arm/mach-ux500/platsmp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mach-ux500/platsmp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mach-ux500/platsmp.c linux-4.1.26/arch/arm/mach-ux500/platsmp.c
+--- linux-4.1.26.orig/arch/arm/mach-ux500/platsmp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mach-ux500/platsmp.c 2016-06-19 15:30:54.923152195 +0200
@@ -51,7 +51,7 @@
return NULL;
}
@@ -1181,9 +881,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mach-ux500/platsmp.c linux-4.1.20/arch/arm/
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mm/fault.c linux-4.1.20/arch/arm/mm/fault.c
---- linux-4.1.20.orig/arch/arm/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mm/fault.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mm/fault.c linux-4.1.26/arch/arm/mm/fault.c
+--- linux-4.1.26.orig/arch/arm/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mm/fault.c 2016-06-19 15:30:54.923152195 +0200
@@ -276,7 +276,7 @@
* If we're in an interrupt or have no user
* context, we must not take the fault..
@@ -1213,9 +913,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mm/fault.c linux-4.1.20/arch/arm/mm/fault.c
do_bad_area(addr, fsr, regs);
return 0;
}
-diff -Nur linux-4.1.20.orig/arch/arm/mm/highmem.c linux-4.1.20/arch/arm/mm/highmem.c
---- linux-4.1.20.orig/arch/arm/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/mm/highmem.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/mm/highmem.c linux-4.1.26/arch/arm/mm/highmem.c
+--- linux-4.1.26.orig/arch/arm/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/mm/highmem.c 2016-06-19 15:30:54.923152195 +0200
@@ -54,11 +54,13 @@
void *kmap_atomic(struct page *page)
@@ -1318,9 +1018,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/mm/highmem.c linux-4.1.20/arch/arm/mm/highm
+ }
+}
+#endif
-diff -Nur linux-4.1.20.orig/arch/arm/plat-versatile/platsmp.c linux-4.1.20/arch/arm/plat-versatile/platsmp.c
---- linux-4.1.20.orig/arch/arm/plat-versatile/platsmp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm/plat-versatile/platsmp.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm/plat-versatile/platsmp.c linux-4.1.26/arch/arm/plat-versatile/platsmp.c
+--- linux-4.1.26.orig/arch/arm/plat-versatile/platsmp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm/plat-versatile/platsmp.c 2016-06-19 15:30:54.923152195 +0200
@@ -30,7 +30,7 @@
sync_cache_w(&pen_release);
}
@@ -1359,32 +1059,9 @@ diff -Nur linux-4.1.20.orig/arch/arm/plat-versatile/platsmp.c linux-4.1.20/arch/
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.1.20.orig/arch/arm64/Kconfig linux-4.1.20/arch/arm64/Kconfig
---- linux-4.1.20.orig/arch/arm64/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm64/Kconfig 2016-03-21 20:18:28.000000000 +0100
-@@ -69,8 +69,10 @@
- select HAVE_PERF_REGS
- select HAVE_PERF_USER_STACK_DUMP
- select HAVE_RCU_TABLE_FREE
-+ select HAVE_PREEMPT_LAZY
- select HAVE_SYSCALL_TRACEPOINTS
- select IRQ_DOMAIN
-+ select IRQ_FORCED_THREADING
- select MODULES_USE_ELF_RELA
- select NO_BOOTMEM
- select OF
-@@ -599,7 +601,7 @@
-
- config XEN
- bool "Xen guest support on ARM64"
-- depends on ARM64 && OF
-+ depends on ARM64 && OF && !PREEMPT_RT_FULL
- select SWIOTLB_XEN
- help
- Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
-diff -Nur linux-4.1.20.orig/arch/arm64/include/asm/futex.h linux-4.1.20/arch/arm64/include/asm/futex.h
---- linux-4.1.20.orig/arch/arm64/include/asm/futex.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm64/include/asm/futex.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm64/include/asm/futex.h linux-4.1.26/arch/arm64/include/asm/futex.h
+--- linux-4.1.26.orig/arch/arm64/include/asm/futex.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm64/include/asm/futex.h 2016-06-19 15:30:54.923152195 +0200
@@ -58,7 +58,7 @@
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
return -EFAULT;
@@ -1403,9 +1080,9 @@ diff -Nur linux-4.1.20.orig/arch/arm64/include/asm/futex.h linux-4.1.20/arch/arm
if (!ret) {
switch (cmp) {
-diff -Nur linux-4.1.20.orig/arch/arm64/include/asm/thread_info.h linux-4.1.20/arch/arm64/include/asm/thread_info.h
---- linux-4.1.20.orig/arch/arm64/include/asm/thread_info.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm64/include/asm/thread_info.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm64/include/asm/thread_info.h linux-4.1.26/arch/arm64/include/asm/thread_info.h
+--- linux-4.1.26.orig/arch/arm64/include/asm/thread_info.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm64/include/asm/thread_info.h 2016-06-19 15:30:54.923152195 +0200
@@ -47,6 +47,7 @@
mm_segment_t addr_limit; /* address limit */
struct task_struct *task; /* main task structure */
@@ -1430,9 +1107,32 @@ diff -Nur linux-4.1.20.orig/arch/arm64/include/asm/thread_info.h linux-4.1.20/ar
#define _TIF_NOHZ (1 << TIF_NOHZ)
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
-diff -Nur linux-4.1.20.orig/arch/arm64/kernel/asm-offsets.c linux-4.1.20/arch/arm64/kernel/asm-offsets.c
---- linux-4.1.20.orig/arch/arm64/kernel/asm-offsets.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm64/kernel/asm-offsets.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm64/Kconfig linux-4.1.26/arch/arm64/Kconfig
+--- linux-4.1.26.orig/arch/arm64/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm64/Kconfig 2016-06-19 15:30:54.923152195 +0200
+@@ -69,8 +69,10 @@
+ select HAVE_PERF_REGS
+ select HAVE_PERF_USER_STACK_DUMP
+ select HAVE_RCU_TABLE_FREE
++ select HAVE_PREEMPT_LAZY
+ select HAVE_SYSCALL_TRACEPOINTS
+ select IRQ_DOMAIN
++ select IRQ_FORCED_THREADING
+ select MODULES_USE_ELF_RELA
+ select NO_BOOTMEM
+ select OF
+@@ -599,7 +601,7 @@
+
+ config XEN
+ bool "Xen guest support on ARM64"
+- depends on ARM64 && OF
++ depends on ARM64 && OF && !PREEMPT_RT_FULL
+ select SWIOTLB_XEN
+ help
+ Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
+diff -Nur linux-4.1.26.orig/arch/arm64/kernel/asm-offsets.c linux-4.1.26/arch/arm64/kernel/asm-offsets.c
+--- linux-4.1.26.orig/arch/arm64/kernel/asm-offsets.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm64/kernel/asm-offsets.c 2016-06-19 15:30:54.923152195 +0200
@@ -35,6 +35,7 @@
BLANK();
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
@@ -1441,9 +1141,9 @@ diff -Nur linux-4.1.20.orig/arch/arm64/kernel/asm-offsets.c linux-4.1.20/arch/ar
DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
DEFINE(TI_TASK, offsetof(struct thread_info, task));
DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
-diff -Nur linux-4.1.20.orig/arch/arm64/kernel/entry.S linux-4.1.20/arch/arm64/kernel/entry.S
---- linux-4.1.20.orig/arch/arm64/kernel/entry.S 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm64/kernel/entry.S 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm64/kernel/entry.S linux-4.1.26/arch/arm64/kernel/entry.S
+--- linux-4.1.26.orig/arch/arm64/kernel/entry.S 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm64/kernel/entry.S 2016-06-19 15:30:58.591293647 +0200
@@ -367,11 +367,16 @@
#ifdef CONFIG_PREEMPT
get_thread_info tsk
@@ -1480,9 +1180,9 @@ diff -Nur linux-4.1.20.orig/arch/arm64/kernel/entry.S linux-4.1.20/arch/arm64/ke
/* TIF_SIGPENDING, TIF_NOTIFY_RESUME or TIF_FOREIGN_FPSTATE case */
ldr x2, [sp, #S_PSTATE]
mov x0, sp // 'regs'
-diff -Nur linux-4.1.20.orig/arch/arm64/kernel/insn.c linux-4.1.20/arch/arm64/kernel/insn.c
---- linux-4.1.20.orig/arch/arm64/kernel/insn.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm64/kernel/insn.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm64/kernel/insn.c linux-4.1.26/arch/arm64/kernel/insn.c
+--- linux-4.1.26.orig/arch/arm64/kernel/insn.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm64/kernel/insn.c 2016-06-19 15:30:58.595293802 +0200
@@ -77,7 +77,7 @@
}
}
@@ -1508,9 +1208,9 @@ diff -Nur linux-4.1.20.orig/arch/arm64/kernel/insn.c linux-4.1.20/arch/arm64/ker
return ret;
}
-diff -Nur linux-4.1.20.orig/arch/arm64/kernel/perf_event.c linux-4.1.20/arch/arm64/kernel/perf_event.c
---- linux-4.1.20.orig/arch/arm64/kernel/perf_event.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm64/kernel/perf_event.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm64/kernel/perf_event.c linux-4.1.26/arch/arm64/kernel/perf_event.c
+--- linux-4.1.26.orig/arch/arm64/kernel/perf_event.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm64/kernel/perf_event.c 2016-06-19 15:30:58.595293802 +0200
@@ -488,7 +488,7 @@
}
@@ -1520,9 +1220,9 @@ diff -Nur linux-4.1.20.orig/arch/arm64/kernel/perf_event.c linux-4.1.20/arch/arm
"arm-pmu", armpmu);
if (err) {
pr_err("unable to request IRQ%d for ARM PMU counters\n",
-diff -Nur linux-4.1.20.orig/arch/arm64/mm/fault.c linux-4.1.20/arch/arm64/mm/fault.c
---- linux-4.1.20.orig/arch/arm64/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/arm64/mm/fault.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/arm64/mm/fault.c linux-4.1.26/arch/arm64/mm/fault.c
+--- linux-4.1.26.orig/arch/arm64/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/arm64/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -211,7 +211,7 @@
* If we're in an interrupt or have no user context, we must not take
* the fault.
@@ -1532,9 +1232,9 @@ diff -Nur linux-4.1.20.orig/arch/arm64/mm/fault.c linux-4.1.20/arch/arm64/mm/fau
goto no_context;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/avr32/include/asm/uaccess.h linux-4.1.20/arch/avr32/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/avr32/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/avr32/include/asm/uaccess.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/avr32/include/asm/uaccess.h linux-4.1.26/arch/avr32/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/avr32/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/avr32/include/asm/uaccess.h 2016-06-19 15:30:58.595293802 +0200
@@ -97,7 +97,8 @@
* @x: Value to copy to user space.
* @ptr: Destination address, in user space.
@@ -1575,9 +1275,9 @@ diff -Nur linux-4.1.20.orig/arch/avr32/include/asm/uaccess.h linux-4.1.20/arch/a
*
* This macro copies a single simple variable from user space to kernel
* space. It supports simple types like char and int, but not larger
-diff -Nur linux-4.1.20.orig/arch/avr32/mm/fault.c linux-4.1.20/arch/avr32/mm/fault.c
---- linux-4.1.20.orig/arch/avr32/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/avr32/mm/fault.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/avr32/mm/fault.c linux-4.1.26/arch/avr32/mm/fault.c
+--- linux-4.1.26.orig/arch/avr32/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/avr32/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -14,11 +14,11 @@
#include <linux/pagemap.h>
#include <linux/kdebug.h>
@@ -1600,9 +1300,9 @@ diff -Nur linux-4.1.20.orig/arch/avr32/mm/fault.c linux-4.1.20/arch/avr32/mm/fau
goto no_context;
local_irq_enable();
-diff -Nur linux-4.1.20.orig/arch/cris/mm/fault.c linux-4.1.20/arch/cris/mm/fault.c
---- linux-4.1.20.orig/arch/cris/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/cris/mm/fault.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/cris/mm/fault.c linux-4.1.26/arch/cris/mm/fault.c
+--- linux-4.1.26.orig/arch/cris/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/cris/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -8,7 +8,7 @@
#include <linux/interrupt.h>
#include <linux/module.h>
@@ -1626,9 +1326,9 @@ diff -Nur linux-4.1.20.orig/arch/cris/mm/fault.c linux-4.1.20/arch/cris/mm/fault
goto no_context;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/frv/mm/fault.c linux-4.1.20/arch/frv/mm/fault.c
---- linux-4.1.20.orig/arch/frv/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/frv/mm/fault.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/frv/mm/fault.c linux-4.1.26/arch/frv/mm/fault.c
+--- linux-4.1.26.orig/arch/frv/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/frv/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -19,9 +19,9 @@
#include <linux/kernel.h>
#include <linux/ptrace.h>
@@ -1649,9 +1349,9 @@ diff -Nur linux-4.1.20.orig/arch/frv/mm/fault.c linux-4.1.20/arch/frv/mm/fault.c
goto no_context;
if (user_mode(__frame))
-diff -Nur linux-4.1.20.orig/arch/frv/mm/highmem.c linux-4.1.20/arch/frv/mm/highmem.c
---- linux-4.1.20.orig/arch/frv/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/frv/mm/highmem.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/frv/mm/highmem.c linux-4.1.26/arch/frv/mm/highmem.c
+--- linux-4.1.26.orig/arch/frv/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/frv/mm/highmem.c 2016-06-19 15:30:58.595293802 +0200
@@ -42,6 +42,7 @@
unsigned long paddr;
int type;
@@ -1667,9 +1367,9 @@ diff -Nur linux-4.1.20.orig/arch/frv/mm/highmem.c linux-4.1.20/arch/frv/mm/highm
+ preempt_enable();
}
EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.20.orig/arch/hexagon/include/asm/uaccess.h linux-4.1.20/arch/hexagon/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/hexagon/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/hexagon/include/asm/uaccess.h 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/hexagon/include/asm/uaccess.h linux-4.1.26/arch/hexagon/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/hexagon/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/hexagon/include/asm/uaccess.h 2016-06-19 15:30:58.595293802 +0200
@@ -36,7 +36,8 @@
* @addr: User space pointer to start of block to check
* @size: Size of block to check
@@ -1680,9 +1380,9 @@ diff -Nur linux-4.1.20.orig/arch/hexagon/include/asm/uaccess.h linux-4.1.20/arch
*
* Checks if a pointer to a block of memory in user space is valid.
*
-diff -Nur linux-4.1.20.orig/arch/ia64/mm/fault.c linux-4.1.20/arch/ia64/mm/fault.c
---- linux-4.1.20.orig/arch/ia64/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/ia64/mm/fault.c 2016-03-21 20:18:28.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/ia64/mm/fault.c linux-4.1.26/arch/ia64/mm/fault.c
+--- linux-4.1.26.orig/arch/ia64/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/ia64/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -11,10 +11,10 @@
#include <linux/kprobes.h>
#include <linux/kdebug.h>
@@ -1704,9 +1404,28 @@ diff -Nur linux-4.1.20.orig/arch/ia64/mm/fault.c linux-4.1.20/arch/ia64/mm/fault
goto no_context;
#ifdef CONFIG_VIRTUAL_MEM_MAP
-diff -Nur linux-4.1.20.orig/arch/m32r/include/asm/uaccess.h linux-4.1.20/arch/m32r/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/m32r/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/m32r/include/asm/uaccess.h 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/Kconfig linux-4.1.26/arch/Kconfig
+--- linux-4.1.26.orig/arch/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/Kconfig 2016-06-19 15:30:54.915151887 +0200
+@@ -6,6 +6,7 @@
+ tristate "OProfile system profiling"
+ depends on PROFILING
+ depends on HAVE_OPROFILE
++ depends on !PREEMPT_RT_FULL
+ select RING_BUFFER
+ select RING_BUFFER_ALLOW_SWAP
+ help
+@@ -49,6 +50,7 @@
+ config JUMP_LABEL
+ bool "Optimize very unlikely/likely branches"
+ depends on HAVE_ARCH_JUMP_LABEL
++ depends on (!INTERRUPT_OFF_HIST && !PREEMPT_OFF_HIST && !WAKEUP_LATENCY_HIST && !MISSED_TIMER_OFFSETS_HIST)
+ help
+ This option enables a transparent branch optimization that
+ makes certain almost-always-true or almost-always-false branch
+diff -Nur linux-4.1.26.orig/arch/m32r/include/asm/uaccess.h linux-4.1.26/arch/m32r/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/m32r/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/m32r/include/asm/uaccess.h 2016-06-19 15:30:58.595293802 +0200
@@ -91,7 +91,8 @@
* @addr: User space pointer to start of block to check
* @size: Size of block to check
@@ -1807,9 +1526,9 @@ diff -Nur linux-4.1.20.orig/arch/m32r/include/asm/uaccess.h linux-4.1.20/arch/m3
*
* Get the size of a NUL-terminated string in user space.
*
-diff -Nur linux-4.1.20.orig/arch/m32r/mm/fault.c linux-4.1.20/arch/m32r/mm/fault.c
---- linux-4.1.20.orig/arch/m32r/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/m32r/mm/fault.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/m32r/mm/fault.c linux-4.1.26/arch/m32r/mm/fault.c
+--- linux-4.1.26.orig/arch/m32r/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/m32r/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -24,9 +24,9 @@
#include <linux/vt_kern.h> /* For unblank_screen() */
#include <linux/highmem.h>
@@ -1835,9 +1554,9 @@ diff -Nur linux-4.1.20.orig/arch/m32r/mm/fault.c linux-4.1.20/arch/m32r/mm/fault
goto bad_area_nosemaphore;
if (error_code & ACE_USERMODE)
-diff -Nur linux-4.1.20.orig/arch/m68k/mm/fault.c linux-4.1.20/arch/m68k/mm/fault.c
---- linux-4.1.20.orig/arch/m68k/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/m68k/mm/fault.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/m68k/mm/fault.c linux-4.1.26/arch/m68k/mm/fault.c
+--- linux-4.1.26.orig/arch/m68k/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/m68k/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -10,10 +10,10 @@
#include <linux/ptrace.h>
#include <linux/interrupt.h>
@@ -1859,9 +1578,9 @@ diff -Nur linux-4.1.20.orig/arch/m68k/mm/fault.c linux-4.1.20/arch/m68k/mm/fault
goto no_context;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/metag/mm/fault.c linux-4.1.20/arch/metag/mm/fault.c
---- linux-4.1.20.orig/arch/metag/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/metag/mm/fault.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/metag/mm/fault.c linux-4.1.26/arch/metag/mm/fault.c
+--- linux-4.1.26.orig/arch/metag/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/metag/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -105,7 +105,7 @@
mm = tsk->mm;
@@ -1871,9 +1590,9 @@ diff -Nur linux-4.1.20.orig/arch/metag/mm/fault.c linux-4.1.20/arch/metag/mm/fau
goto no_context;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/metag/mm/highmem.c linux-4.1.20/arch/metag/mm/highmem.c
---- linux-4.1.20.orig/arch/metag/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/metag/mm/highmem.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/metag/mm/highmem.c linux-4.1.26/arch/metag/mm/highmem.c
+--- linux-4.1.26.orig/arch/metag/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/metag/mm/highmem.c 2016-06-19 15:30:58.595293802 +0200
@@ -43,7 +43,7 @@
unsigned long vaddr;
int type;
@@ -1899,9 +1618,9 @@ diff -Nur linux-4.1.20.orig/arch/metag/mm/highmem.c linux-4.1.20/arch/metag/mm/h
pagefault_disable();
type = kmap_atomic_idx_push();
-diff -Nur linux-4.1.20.orig/arch/microblaze/include/asm/uaccess.h linux-4.1.20/arch/microblaze/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/microblaze/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/microblaze/include/asm/uaccess.h 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/microblaze/include/asm/uaccess.h linux-4.1.26/arch/microblaze/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/microblaze/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/microblaze/include/asm/uaccess.h 2016-06-19 15:30:58.595293802 +0200
@@ -178,7 +178,8 @@
* @x: Variable to store result.
* @ptr: Source address, in user space.
@@ -1922,9 +1641,9 @@ diff -Nur linux-4.1.20.orig/arch/microblaze/include/asm/uaccess.h linux-4.1.20/a
*
* This macro copies a single simple value from kernel space to user
* space. It supports simple types like char and int, but not larger
-diff -Nur linux-4.1.20.orig/arch/microblaze/mm/fault.c linux-4.1.20/arch/microblaze/mm/fault.c
---- linux-4.1.20.orig/arch/microblaze/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/microblaze/mm/fault.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/microblaze/mm/fault.c linux-4.1.26/arch/microblaze/mm/fault.c
+--- linux-4.1.26.orig/arch/microblaze/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/microblaze/mm/fault.c 2016-06-19 15:30:58.595293802 +0200
@@ -107,14 +107,14 @@
if ((error_code & 0x13) == 0x13 || (error_code & 0x11) == 0x11)
is_write = 0;
@@ -1944,9 +1663,9 @@ diff -Nur linux-4.1.20.orig/arch/microblaze/mm/fault.c linux-4.1.20/arch/microbl
pr_emerg("r15 = %lx MSR = %lx\n",
regs->r15, regs->msr);
die("Weird page fault", regs, SIGSEGV);
-diff -Nur linux-4.1.20.orig/arch/microblaze/mm/highmem.c linux-4.1.20/arch/microblaze/mm/highmem.c
---- linux-4.1.20.orig/arch/microblaze/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/microblaze/mm/highmem.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/microblaze/mm/highmem.c linux-4.1.26/arch/microblaze/mm/highmem.c
+--- linux-4.1.26.orig/arch/microblaze/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/microblaze/mm/highmem.c 2016-06-19 15:30:58.599293956 +0200
@@ -37,7 +37,7 @@
unsigned long vaddr;
int idx, type;
@@ -1971,21 +1690,9 @@ diff -Nur linux-4.1.20.orig/arch/microblaze/mm/highmem.c linux-4.1.20/arch/micro
+ preempt_enable();
}
EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.20.orig/arch/mips/Kconfig linux-4.1.20/arch/mips/Kconfig
---- linux-4.1.20.orig/arch/mips/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/mips/Kconfig 2016-03-21 20:18:29.000000000 +0100
-@@ -2366,7 +2366,7 @@
- #
- config HIGHMEM
- bool "High Memory Support"
-- depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
-+ depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA && !PREEMPT_RT_FULL
-
- config CPU_SUPPORTS_HIGHMEM
- bool
-diff -Nur linux-4.1.20.orig/arch/mips/include/asm/uaccess.h linux-4.1.20/arch/mips/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/mips/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/mips/include/asm/uaccess.h 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/mips/include/asm/uaccess.h linux-4.1.26/arch/mips/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/mips/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/mips/include/asm/uaccess.h 2016-06-19 15:30:58.599293956 +0200
@@ -103,7 +103,8 @@
* @addr: User space pointer to start of block to check
* @size: Size of block to check
@@ -2136,9 +1843,21 @@ diff -Nur linux-4.1.20.orig/arch/mips/include/asm/uaccess.h linux-4.1.20/arch/mi
*
* Get the size of a NUL-terminated string in user space.
*
-diff -Nur linux-4.1.20.orig/arch/mips/kernel/signal-common.h linux-4.1.20/arch/mips/kernel/signal-common.h
---- linux-4.1.20.orig/arch/mips/kernel/signal-common.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/mips/kernel/signal-common.h 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/mips/Kconfig linux-4.1.26/arch/mips/Kconfig
+--- linux-4.1.26.orig/arch/mips/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/mips/Kconfig 2016-06-19 15:30:58.599293956 +0200
+@@ -2367,7 +2367,7 @@
+ #
+ config HIGHMEM
+ bool "High Memory Support"
+- depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
++ depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA && !PREEMPT_RT_FULL
+
+ config CPU_SUPPORTS_HIGHMEM
+ bool
+diff -Nur linux-4.1.26.orig/arch/mips/kernel/signal-common.h linux-4.1.26/arch/mips/kernel/signal-common.h
+--- linux-4.1.26.orig/arch/mips/kernel/signal-common.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/mips/kernel/signal-common.h 2016-06-19 15:30:58.599293956 +0200
@@ -28,12 +28,7 @@
extern int fpcsr_pending(unsigned int __user *fpcsr);
@@ -2154,9 +1873,9 @@ diff -Nur linux-4.1.20.orig/arch/mips/kernel/signal-common.h linux-4.1.20/arch/m
+#define unlock_fpu_owner() ({ pagefault_enable(); preempt_enable(); })
#endif /* __SIGNAL_COMMON_H */
-diff -Nur linux-4.1.20.orig/arch/mips/mm/fault.c linux-4.1.20/arch/mips/mm/fault.c
---- linux-4.1.20.orig/arch/mips/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/mips/mm/fault.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/mips/mm/fault.c linux-4.1.26/arch/mips/mm/fault.c
+--- linux-4.1.26.orig/arch/mips/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/mips/mm/fault.c 2016-06-19 15:30:58.599293956 +0200
@@ -21,10 +21,10 @@
#include <linux/module.h>
#include <linux/kprobes.h>
@@ -2178,9 +1897,9 @@ diff -Nur linux-4.1.20.orig/arch/mips/mm/fault.c linux-4.1.20/arch/mips/mm/fault
goto bad_area_nosemaphore;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/mips/mm/highmem.c linux-4.1.20/arch/mips/mm/highmem.c
---- linux-4.1.20.orig/arch/mips/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/mips/mm/highmem.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/mips/mm/highmem.c linux-4.1.26/arch/mips/mm/highmem.c
+--- linux-4.1.26.orig/arch/mips/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/mips/mm/highmem.c 2016-06-19 15:30:58.599293956 +0200
@@ -47,7 +47,7 @@
unsigned long vaddr;
int idx, type;
@@ -2214,9 +1933,9 @@ diff -Nur linux-4.1.20.orig/arch/mips/mm/highmem.c linux-4.1.20/arch/mips/mm/hig
pagefault_disable();
type = kmap_atomic_idx_push();
-diff -Nur linux-4.1.20.orig/arch/mips/mm/init.c linux-4.1.20/arch/mips/mm/init.c
---- linux-4.1.20.orig/arch/mips/mm/init.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/mips/mm/init.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/mips/mm/init.c linux-4.1.26/arch/mips/mm/init.c
+--- linux-4.1.26.orig/arch/mips/mm/init.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/mips/mm/init.c 2016-06-19 15:30:58.599293956 +0200
@@ -90,6 +90,7 @@
BUG_ON(Page_dcache_dirty(page));
@@ -2233,9 +1952,9 @@ diff -Nur linux-4.1.20.orig/arch/mips/mm/init.c linux-4.1.20/arch/mips/mm/init.c
}
void copy_user_highpage(struct page *to, struct page *from,
-diff -Nur linux-4.1.20.orig/arch/mn10300/include/asm/highmem.h linux-4.1.20/arch/mn10300/include/asm/highmem.h
---- linux-4.1.20.orig/arch/mn10300/include/asm/highmem.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/mn10300/include/asm/highmem.h 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/mn10300/include/asm/highmem.h linux-4.1.26/arch/mn10300/include/asm/highmem.h
+--- linux-4.1.26.orig/arch/mn10300/include/asm/highmem.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/mn10300/include/asm/highmem.h 2016-06-19 15:30:58.599293956 +0200
@@ -75,6 +75,7 @@
unsigned long vaddr;
int idx, type;
@@ -2260,9 +1979,9 @@ diff -Nur linux-4.1.20.orig/arch/mn10300/include/asm/highmem.h linux-4.1.20/arch
}
#endif /* __KERNEL__ */
-diff -Nur linux-4.1.20.orig/arch/mn10300/mm/fault.c linux-4.1.20/arch/mn10300/mm/fault.c
---- linux-4.1.20.orig/arch/mn10300/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/mn10300/mm/fault.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/mn10300/mm/fault.c linux-4.1.26/arch/mn10300/mm/fault.c
+--- linux-4.1.26.orig/arch/mn10300/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/mn10300/mm/fault.c 2016-06-19 15:30:58.599293956 +0200
@@ -23,8 +23,8 @@
#include <linux/interrupt.h>
#include <linux/init.h>
@@ -2282,9 +2001,9 @@ diff -Nur linux-4.1.20.orig/arch/mn10300/mm/fault.c linux-4.1.20/arch/mn10300/mm
goto no_context;
if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR)
-diff -Nur linux-4.1.20.orig/arch/nios2/mm/fault.c linux-4.1.20/arch/nios2/mm/fault.c
---- linux-4.1.20.orig/arch/nios2/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/nios2/mm/fault.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/nios2/mm/fault.c linux-4.1.26/arch/nios2/mm/fault.c
+--- linux-4.1.26.orig/arch/nios2/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/nios2/mm/fault.c 2016-06-19 15:30:58.599293956 +0200
@@ -77,7 +77,7 @@
* If we're in an interrupt or have no user
* context, we must not take the fault..
@@ -2294,9 +2013,9 @@ diff -Nur linux-4.1.20.orig/arch/nios2/mm/fault.c linux-4.1.20/arch/nios2/mm/fau
goto bad_area_nosemaphore;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/parisc/include/asm/cacheflush.h linux-4.1.20/arch/parisc/include/asm/cacheflush.h
---- linux-4.1.20.orig/arch/parisc/include/asm/cacheflush.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/parisc/include/asm/cacheflush.h 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/parisc/include/asm/cacheflush.h linux-4.1.26/arch/parisc/include/asm/cacheflush.h
+--- linux-4.1.26.orig/arch/parisc/include/asm/cacheflush.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/parisc/include/asm/cacheflush.h 2016-06-19 15:30:58.599293956 +0200
@@ -142,6 +142,7 @@
static inline void *kmap_atomic(struct page *page)
@@ -2313,9 +2032,9 @@ diff -Nur linux-4.1.20.orig/arch/parisc/include/asm/cacheflush.h linux-4.1.20/ar
}
#define kmap_atomic_prot(page, prot) kmap_atomic(page)
-diff -Nur linux-4.1.20.orig/arch/parisc/kernel/traps.c linux-4.1.20/arch/parisc/kernel/traps.c
---- linux-4.1.20.orig/arch/parisc/kernel/traps.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/parisc/kernel/traps.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/parisc/kernel/traps.c linux-4.1.26/arch/parisc/kernel/traps.c
+--- linux-4.1.26.orig/arch/parisc/kernel/traps.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/parisc/kernel/traps.c 2016-06-19 15:30:58.599293956 +0200
@@ -26,9 +26,9 @@
#include <linux/console.h>
#include <linux/bug.h>
@@ -2334,11 +2053,11 @@ diff -Nur linux-4.1.20.orig/arch/parisc/kernel/traps.c linux-4.1.20/arch/parisc/
- if (fault_space == 0 && !in_atomic())
+ if (fault_space == 0 && !faulthandler_disabled())
{
- pdc_chassis_send_status(PDC_CHASSIS_DIRECT_PANIC);
- parisc_terminate("Kernel Fault", regs, code, fault_address);
-diff -Nur linux-4.1.20.orig/arch/parisc/mm/fault.c linux-4.1.20/arch/parisc/mm/fault.c
---- linux-4.1.20.orig/arch/parisc/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/parisc/mm/fault.c 2016-03-21 20:18:29.000000000 +0100
+ /* Clean up and return if in exception table. */
+ if (fixup_exception(regs))
+diff -Nur linux-4.1.26.orig/arch/parisc/mm/fault.c linux-4.1.26/arch/parisc/mm/fault.c
+--- linux-4.1.26.orig/arch/parisc/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/parisc/mm/fault.c 2016-06-19 15:30:58.599293956 +0200
@@ -15,8 +15,8 @@
#include <linux/sched.h>
#include <linux/interrupt.h>
@@ -2349,7 +2068,7 @@ diff -Nur linux-4.1.20.orig/arch/parisc/mm/fault.c linux-4.1.20/arch/parisc/mm/f
#include <asm/traps.h>
/* Various important other fields */
-@@ -207,7 +207,7 @@
+@@ -208,7 +208,7 @@
int fault;
unsigned int flags;
@@ -2358,42 +2077,9 @@ diff -Nur linux-4.1.20.orig/arch/parisc/mm/fault.c linux-4.1.20/arch/parisc/mm/f
goto no_context;
tsk = current;
-diff -Nur linux-4.1.20.orig/arch/powerpc/Kconfig linux-4.1.20/arch/powerpc/Kconfig
---- linux-4.1.20.orig/arch/powerpc/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/Kconfig 2016-03-21 20:18:29.000000000 +0100
-@@ -60,10 +60,11 @@
-
- config RWSEM_GENERIC_SPINLOCK
- bool
-+ default y if PREEMPT_RT_FULL
-
- config RWSEM_XCHGADD_ALGORITHM
- bool
-- default y
-+ default y if !PREEMPT_RT_FULL
-
- config GENERIC_LOCKBREAK
- bool
-@@ -138,6 +139,7 @@
- select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
- select GENERIC_STRNCPY_FROM_USER
- select GENERIC_STRNLEN_USER
-+ select HAVE_PREEMPT_LAZY
- select HAVE_MOD_ARCH_SPECIFIC
- select MODULES_USE_ELF_RELA
- select CLONE_BACKWARDS
-@@ -312,7 +314,7 @@
-
- config HIGHMEM
- bool "High memory support"
-- depends on PPC32
-+ depends on PPC32 && !PREEMPT_RT_FULL
-
- source kernel/Kconfig.hz
- source kernel/Kconfig.preempt
-diff -Nur linux-4.1.20.orig/arch/powerpc/include/asm/kvm_host.h linux-4.1.20/arch/powerpc/include/asm/kvm_host.h
---- linux-4.1.20.orig/arch/powerpc/include/asm/kvm_host.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/include/asm/kvm_host.h 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/include/asm/kvm_host.h linux-4.1.26/arch/powerpc/include/asm/kvm_host.h
+--- linux-4.1.26.orig/arch/powerpc/include/asm/kvm_host.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/include/asm/kvm_host.h 2016-06-19 15:30:58.599293956 +0200
@@ -280,7 +280,7 @@
u8 in_guest;
struct list_head runnable_threads;
@@ -2412,9 +2098,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/include/asm/kvm_host.h linux-4.1.20/arc
struct kvmppc_vcore *vcore;
int ret;
int trap;
-diff -Nur linux-4.1.20.orig/arch/powerpc/include/asm/thread_info.h linux-4.1.20/arch/powerpc/include/asm/thread_info.h
---- linux-4.1.20.orig/arch/powerpc/include/asm/thread_info.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/include/asm/thread_info.h 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/include/asm/thread_info.h linux-4.1.26/arch/powerpc/include/asm/thread_info.h
+--- linux-4.1.26.orig/arch/powerpc/include/asm/thread_info.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/include/asm/thread_info.h 2016-06-19 15:30:58.603294110 +0200
@@ -42,6 +42,8 @@
int cpu; /* cpu we're on */
int preempt_count; /* 0 => preemptable,
@@ -2461,9 +2147,42 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/include/asm/thread_info.h linux-4.1.20/
/* Bits in local_flags */
/* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
-diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/asm-offsets.c linux-4.1.20/arch/powerpc/kernel/asm-offsets.c
---- linux-4.1.20.orig/arch/powerpc/kernel/asm-offsets.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/kernel/asm-offsets.c 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/Kconfig linux-4.1.26/arch/powerpc/Kconfig
+--- linux-4.1.26.orig/arch/powerpc/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/Kconfig 2016-06-19 15:30:58.599293956 +0200
+@@ -60,10 +60,11 @@
+
+ config RWSEM_GENERIC_SPINLOCK
+ bool
++ default y if PREEMPT_RT_FULL
+
+ config RWSEM_XCHGADD_ALGORITHM
+ bool
+- default y
++ default y if !PREEMPT_RT_FULL
+
+ config GENERIC_LOCKBREAK
+ bool
+@@ -138,6 +139,7 @@
+ select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
++ select HAVE_PREEMPT_LAZY
+ select HAVE_MOD_ARCH_SPECIFIC
+ select MODULES_USE_ELF_RELA
+ select CLONE_BACKWARDS
+@@ -312,7 +314,7 @@
+
+ config HIGHMEM
+ bool "High memory support"
+- depends on PPC32
++ depends on PPC32 && !PREEMPT_RT_FULL
+
+ source kernel/Kconfig.hz
+ source kernel/Kconfig.preempt
+diff -Nur linux-4.1.26.orig/arch/powerpc/kernel/asm-offsets.c linux-4.1.26/arch/powerpc/kernel/asm-offsets.c
+--- linux-4.1.26.orig/arch/powerpc/kernel/asm-offsets.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/kernel/asm-offsets.c 2016-06-19 15:30:58.603294110 +0200
@@ -160,6 +160,7 @@
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
DEFINE(TI_LOCAL_FLAGS, offsetof(struct thread_info, local_flags));
@@ -2472,9 +2191,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/asm-offsets.c linux-4.1.20/arch/
DEFINE(TI_TASK, offsetof(struct thread_info, task));
DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
-diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/entry_32.S linux-4.1.20/arch/powerpc/kernel/entry_32.S
---- linux-4.1.20.orig/arch/powerpc/kernel/entry_32.S 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/kernel/entry_32.S 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/kernel/entry_32.S linux-4.1.26/arch/powerpc/kernel/entry_32.S
+--- linux-4.1.26.orig/arch/powerpc/kernel/entry_32.S 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/kernel/entry_32.S 2016-06-19 15:30:58.603294110 +0200
@@ -813,7 +813,14 @@
cmpwi 0,r0,0 /* if non-zero, just restore regs and return */
bne restore
@@ -2523,9 +2242,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/entry_32.S linux-4.1.20/arch/pow
bne- do_resched
andi. r0,r9,_TIF_USER_WORK_MASK
beq restore_user
-diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/entry_64.S linux-4.1.20/arch/powerpc/kernel/entry_64.S
---- linux-4.1.20.orig/arch/powerpc/kernel/entry_64.S 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/kernel/entry_64.S 2016-03-21 20:18:29.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/kernel/entry_64.S linux-4.1.26/arch/powerpc/kernel/entry_64.S
+--- linux-4.1.26.orig/arch/powerpc/kernel/entry_64.S 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/kernel/entry_64.S 2016-06-19 15:30:58.603294110 +0200
@@ -636,7 +636,7 @@
#else
beq restore
@@ -2564,9 +2283,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/entry_64.S linux-4.1.20/arch/pow
bne 1b
/*
-diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/irq.c linux-4.1.20/arch/powerpc/kernel/irq.c
---- linux-4.1.20.orig/arch/powerpc/kernel/irq.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/kernel/irq.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/kernel/irq.c linux-4.1.26/arch/powerpc/kernel/irq.c
+--- linux-4.1.26.orig/arch/powerpc/kernel/irq.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/kernel/irq.c 2016-06-19 15:30:58.603294110 +0200
@@ -614,6 +614,7 @@
}
}
@@ -2583,9 +2302,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/irq.c linux-4.1.20/arch/powerpc/
irq_hw_number_t virq_to_hw(unsigned int virq)
{
-diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/misc_32.S linux-4.1.20/arch/powerpc/kernel/misc_32.S
---- linux-4.1.20.orig/arch/powerpc/kernel/misc_32.S 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/kernel/misc_32.S 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/kernel/misc_32.S linux-4.1.26/arch/powerpc/kernel/misc_32.S
+--- linux-4.1.26.orig/arch/powerpc/kernel/misc_32.S 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/kernel/misc_32.S 2016-06-19 15:30:58.603294110 +0200
@@ -40,6 +40,7 @@
* We store the saved ksp_limit in the unused part
* of the STACK_FRAME_OVERHEAD
@@ -2602,9 +2321,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/misc_32.S linux-4.1.20/arch/powe
/*
* void call_do_irq(struct pt_regs *regs, struct thread_info *irqtp);
-diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/misc_64.S linux-4.1.20/arch/powerpc/kernel/misc_64.S
---- linux-4.1.20.orig/arch/powerpc/kernel/misc_64.S 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/kernel/misc_64.S 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/kernel/misc_64.S linux-4.1.26/arch/powerpc/kernel/misc_64.S
+--- linux-4.1.26.orig/arch/powerpc/kernel/misc_64.S 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/kernel/misc_64.S 2016-06-19 15:30:58.603294110 +0200
@@ -29,6 +29,7 @@
.text
@@ -2621,20 +2340,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/kernel/misc_64.S linux-4.1.20/arch/powe
_GLOBAL(call_do_irq)
mflr r0
-diff -Nur linux-4.1.20.orig/arch/powerpc/kvm/Kconfig linux-4.1.20/arch/powerpc/kvm/Kconfig
---- linux-4.1.20.orig/arch/powerpc/kvm/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/kvm/Kconfig 2016-03-21 20:18:30.000000000 +0100
-@@ -172,6 +172,7 @@
- config KVM_MPIC
- bool "KVM in-kernel MPIC emulation"
- depends on KVM && E500
-+ depends on !PREEMPT_RT_FULL
- select HAVE_KVM_IRQCHIP
- select HAVE_KVM_IRQFD
- select HAVE_KVM_IRQ_ROUTING
-diff -Nur linux-4.1.20.orig/arch/powerpc/kvm/book3s_hv.c linux-4.1.20/arch/powerpc/kvm/book3s_hv.c
---- linux-4.1.20.orig/arch/powerpc/kvm/book3s_hv.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/kvm/book3s_hv.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/kvm/book3s_hv.c linux-4.1.26/arch/powerpc/kvm/book3s_hv.c
+--- linux-4.1.26.orig/arch/powerpc/kvm/book3s_hv.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/kvm/book3s_hv.c 2016-06-19 15:30:58.603294110 +0200
@@ -115,11 +115,11 @@
static void kvmppc_fast_vcpu_kick_hv(struct kvm_vcpu *vcpu)
{
@@ -2710,9 +2418,20 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/kvm/book3s_hv.c linux-4.1.20/arch/power
}
}
-diff -Nur linux-4.1.20.orig/arch/powerpc/mm/fault.c linux-4.1.20/arch/powerpc/mm/fault.c
---- linux-4.1.20.orig/arch/powerpc/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/mm/fault.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/kvm/Kconfig linux-4.1.26/arch/powerpc/kvm/Kconfig
+--- linux-4.1.26.orig/arch/powerpc/kvm/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/kvm/Kconfig 2016-06-19 15:30:58.603294110 +0200
+@@ -172,6 +172,7 @@
+ config KVM_MPIC
+ bool "KVM in-kernel MPIC emulation"
+ depends on KVM && E500
++ depends on !PREEMPT_RT_FULL
+ select HAVE_KVM_IRQCHIP
+ select HAVE_KVM_IRQFD
+ select HAVE_KVM_IRQ_ROUTING
+diff -Nur linux-4.1.26.orig/arch/powerpc/mm/fault.c linux-4.1.26/arch/powerpc/mm/fault.c
+--- linux-4.1.26.orig/arch/powerpc/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/mm/fault.c 2016-06-19 15:30:58.603294110 +0200
@@ -33,13 +33,13 @@
#include <linux/ratelimit.h>
#include <linux/context_tracking.h>
@@ -2748,9 +2467,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/mm/fault.c linux-4.1.20/arch/powerpc/mm
printk(KERN_EMERG "NIP = %lx MSR = %lx\n",
regs->nip, regs->msr);
die("Weird page fault", regs, SIGSEGV);
-diff -Nur linux-4.1.20.orig/arch/powerpc/mm/highmem.c linux-4.1.20/arch/powerpc/mm/highmem.c
---- linux-4.1.20.orig/arch/powerpc/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/mm/highmem.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/mm/highmem.c linux-4.1.26/arch/powerpc/mm/highmem.c
+--- linux-4.1.26.orig/arch/powerpc/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/mm/highmem.c 2016-06-19 15:30:58.603294110 +0200
@@ -34,7 +34,7 @@
unsigned long vaddr;
int idx, type;
@@ -2775,9 +2494,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/mm/highmem.c linux-4.1.20/arch/powerpc/
+ preempt_enable();
}
EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.20.orig/arch/powerpc/platforms/ps3/device-init.c linux-4.1.20/arch/powerpc/platforms/ps3/device-init.c
---- linux-4.1.20.orig/arch/powerpc/platforms/ps3/device-init.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/powerpc/platforms/ps3/device-init.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/powerpc/platforms/ps3/device-init.c linux-4.1.26/arch/powerpc/platforms/ps3/device-init.c
+--- linux-4.1.26.orig/arch/powerpc/platforms/ps3/device-init.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/powerpc/platforms/ps3/device-init.c 2016-06-19 15:30:58.603294110 +0200
@@ -752,7 +752,7 @@
}
pr_debug("%s:%u: notification %s issued\n", __func__, __LINE__, op);
@@ -2787,9 +2506,9 @@ diff -Nur linux-4.1.20.orig/arch/powerpc/platforms/ps3/device-init.c linux-4.1.2
dev->done.done || kthread_should_stop());
if (kthread_should_stop())
res = -EINTR;
-diff -Nur linux-4.1.20.orig/arch/s390/include/asm/kvm_host.h linux-4.1.20/arch/s390/include/asm/kvm_host.h
---- linux-4.1.20.orig/arch/s390/include/asm/kvm_host.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/s390/include/asm/kvm_host.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/s390/include/asm/kvm_host.h linux-4.1.26/arch/s390/include/asm/kvm_host.h
+--- linux-4.1.26.orig/arch/s390/include/asm/kvm_host.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/s390/include/asm/kvm_host.h 2016-06-19 15:30:58.603294110 +0200
@@ -419,7 +419,7 @@
struct kvm_s390_local_interrupt {
spinlock_t lock;
@@ -2799,9 +2518,9 @@ diff -Nur linux-4.1.20.orig/arch/s390/include/asm/kvm_host.h linux-4.1.20/arch/s
atomic_t *cpuflags;
DECLARE_BITMAP(sigp_emerg_pending, KVM_MAX_VCPUS);
struct kvm_s390_irq_payload irq;
-diff -Nur linux-4.1.20.orig/arch/s390/include/asm/uaccess.h linux-4.1.20/arch/s390/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/s390/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/s390/include/asm/uaccess.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/s390/include/asm/uaccess.h linux-4.1.26/arch/s390/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/s390/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/s390/include/asm/uaccess.h 2016-06-19 15:30:58.603294110 +0200
@@ -98,7 +98,8 @@
* @from: Source address, in user space.
* @n: Number of bytes to copy.
@@ -2852,9 +2571,9 @@ diff -Nur linux-4.1.20.orig/arch/s390/include/asm/uaccess.h linux-4.1.20/arch/s3
*
* Get the size of a NUL-terminated string in user space.
*
-diff -Nur linux-4.1.20.orig/arch/s390/kvm/interrupt.c linux-4.1.20/arch/s390/kvm/interrupt.c
---- linux-4.1.20.orig/arch/s390/kvm/interrupt.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/s390/kvm/interrupt.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/s390/kvm/interrupt.c linux-4.1.26/arch/s390/kvm/interrupt.c
+--- linux-4.1.26.orig/arch/s390/kvm/interrupt.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/s390/kvm/interrupt.c 2016-06-19 15:30:58.607294264 +0200
@@ -875,13 +875,13 @@
void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu)
@@ -2889,9 +2608,9 @@ diff -Nur linux-4.1.20.orig/arch/s390/kvm/interrupt.c linux-4.1.20/arch/s390/kvm
spin_unlock(&li->lock);
return rc;
}
-diff -Nur linux-4.1.20.orig/arch/s390/mm/fault.c linux-4.1.20/arch/s390/mm/fault.c
---- linux-4.1.20.orig/arch/s390/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/s390/mm/fault.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/s390/mm/fault.c linux-4.1.26/arch/s390/mm/fault.c
+--- linux-4.1.26.orig/arch/s390/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/s390/mm/fault.c 2016-06-19 15:30:58.607294264 +0200
@@ -399,7 +399,7 @@
* user context.
*/
@@ -2901,9 +2620,9 @@ diff -Nur linux-4.1.20.orig/arch/s390/mm/fault.c linux-4.1.20/arch/s390/mm/fault
goto out;
address = trans_exc_code & __FAIL_ADDR_MASK;
-diff -Nur linux-4.1.20.orig/arch/score/include/asm/uaccess.h linux-4.1.20/arch/score/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/score/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/score/include/asm/uaccess.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/score/include/asm/uaccess.h linux-4.1.26/arch/score/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/score/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/score/include/asm/uaccess.h 2016-06-19 15:30:58.607294264 +0200
@@ -36,7 +36,8 @@
* @addr: User space pointer to start of block to check
* @size: Size of block to check
@@ -2954,9 +2673,9 @@ diff -Nur linux-4.1.20.orig/arch/score/include/asm/uaccess.h linux-4.1.20/arch/s
*
* This macro copies a single simple variable from user space to kernel
* space. It supports simple types like char and int, but not larger
-diff -Nur linux-4.1.20.orig/arch/score/mm/fault.c linux-4.1.20/arch/score/mm/fault.c
---- linux-4.1.20.orig/arch/score/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/score/mm/fault.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/score/mm/fault.c linux-4.1.26/arch/score/mm/fault.c
+--- linux-4.1.26.orig/arch/score/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/score/mm/fault.c 2016-06-19 15:30:58.607294264 +0200
@@ -34,6 +34,7 @@
#include <linux/string.h>
#include <linux/types.h>
@@ -2974,9 +2693,9 @@ diff -Nur linux-4.1.20.orig/arch/score/mm/fault.c linux-4.1.20/arch/score/mm/fau
goto bad_area_nosemaphore;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/sh/kernel/irq.c linux-4.1.20/arch/sh/kernel/irq.c
---- linux-4.1.20.orig/arch/sh/kernel/irq.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/sh/kernel/irq.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/sh/kernel/irq.c linux-4.1.26/arch/sh/kernel/irq.c
+--- linux-4.1.26.orig/arch/sh/kernel/irq.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/sh/kernel/irq.c 2016-06-19 15:30:58.607294264 +0200
@@ -147,6 +147,7 @@
hardirq_ctx[cpu] = NULL;
}
@@ -2993,9 +2712,9 @@ diff -Nur linux-4.1.20.orig/arch/sh/kernel/irq.c linux-4.1.20/arch/sh/kernel/irq
#else
static inline void handle_one_irq(unsigned int irq)
{
-diff -Nur linux-4.1.20.orig/arch/sh/mm/fault.c linux-4.1.20/arch/sh/mm/fault.c
---- linux-4.1.20.orig/arch/sh/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/sh/mm/fault.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/sh/mm/fault.c linux-4.1.26/arch/sh/mm/fault.c
+--- linux-4.1.26.orig/arch/sh/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/sh/mm/fault.c 2016-06-19 15:30:58.607294264 +0200
@@ -17,6 +17,7 @@
#include <linux/kprobes.h>
#include <linux/perf_event.h>
@@ -3016,9 +2735,9 @@ diff -Nur linux-4.1.20.orig/arch/sh/mm/fault.c linux-4.1.20/arch/sh/mm/fault.c
bad_area_nosemaphore(regs, error_code, address);
return;
}
-diff -Nur linux-4.1.20.orig/arch/sparc/Kconfig linux-4.1.20/arch/sparc/Kconfig
---- linux-4.1.20.orig/arch/sparc/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/sparc/Kconfig 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/sparc/Kconfig linux-4.1.26/arch/sparc/Kconfig
+--- linux-4.1.26.orig/arch/sparc/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/sparc/Kconfig 2016-06-19 15:30:58.607294264 +0200
@@ -189,12 +189,10 @@
source kernel/Kconfig.hz
@@ -3034,9 +2753,9 @@ diff -Nur linux-4.1.20.orig/arch/sparc/Kconfig linux-4.1.20/arch/sparc/Kconfig
config GENERIC_HWEIGHT
bool
-diff -Nur linux-4.1.20.orig/arch/sparc/kernel/irq_64.c linux-4.1.20/arch/sparc/kernel/irq_64.c
---- linux-4.1.20.orig/arch/sparc/kernel/irq_64.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/sparc/kernel/irq_64.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/sparc/kernel/irq_64.c linux-4.1.26/arch/sparc/kernel/irq_64.c
+--- linux-4.1.26.orig/arch/sparc/kernel/irq_64.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/sparc/kernel/irq_64.c 2016-06-19 15:30:58.607294264 +0200
@@ -849,6 +849,7 @@
set_irq_regs(old_regs);
}
@@ -3053,9 +2772,9 @@ diff -Nur linux-4.1.20.orig/arch/sparc/kernel/irq_64.c linux-4.1.20/arch/sparc/k
#ifdef CONFIG_HOTPLUG_CPU
void fixup_irqs(void)
-diff -Nur linux-4.1.20.orig/arch/sparc/mm/fault_32.c linux-4.1.20/arch/sparc/mm/fault_32.c
---- linux-4.1.20.orig/arch/sparc/mm/fault_32.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/sparc/mm/fault_32.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/sparc/mm/fault_32.c linux-4.1.26/arch/sparc/mm/fault_32.c
+--- linux-4.1.26.orig/arch/sparc/mm/fault_32.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/sparc/mm/fault_32.c 2016-06-19 15:30:58.607294264 +0200
@@ -21,6 +21,7 @@
#include <linux/perf_event.h>
#include <linux/interrupt.h>
@@ -3081,9 +2800,9 @@ diff -Nur linux-4.1.20.orig/arch/sparc/mm/fault_32.c linux-4.1.20/arch/sparc/mm/
goto no_context;
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
-diff -Nur linux-4.1.20.orig/arch/sparc/mm/fault_64.c linux-4.1.20/arch/sparc/mm/fault_64.c
---- linux-4.1.20.orig/arch/sparc/mm/fault_64.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/sparc/mm/fault_64.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/sparc/mm/fault_64.c linux-4.1.26/arch/sparc/mm/fault_64.c
+--- linux-4.1.26.orig/arch/sparc/mm/fault_64.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/sparc/mm/fault_64.c 2016-06-19 15:30:58.607294264 +0200
@@ -22,12 +22,12 @@
#include <linux/kdebug.h>
#include <linux/percpu.h>
@@ -3107,9 +2826,9 @@ diff -Nur linux-4.1.20.orig/arch/sparc/mm/fault_64.c linux-4.1.20/arch/sparc/mm/
goto intr_or_no_mm;
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
-diff -Nur linux-4.1.20.orig/arch/sparc/mm/highmem.c linux-4.1.20/arch/sparc/mm/highmem.c
---- linux-4.1.20.orig/arch/sparc/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/sparc/mm/highmem.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/sparc/mm/highmem.c linux-4.1.26/arch/sparc/mm/highmem.c
+--- linux-4.1.26.orig/arch/sparc/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/sparc/mm/highmem.c 2016-06-19 15:30:58.607294264 +0200
@@ -53,7 +53,7 @@
unsigned long vaddr;
long idx, type;
@@ -3134,9 +2853,9 @@ diff -Nur linux-4.1.20.orig/arch/sparc/mm/highmem.c linux-4.1.20/arch/sparc/mm/h
+ preempt_enable();
}
EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.20.orig/arch/sparc/mm/init_64.c linux-4.1.20/arch/sparc/mm/init_64.c
---- linux-4.1.20.orig/arch/sparc/mm/init_64.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/sparc/mm/init_64.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/sparc/mm/init_64.c linux-4.1.26/arch/sparc/mm/init_64.c
+--- linux-4.1.26.orig/arch/sparc/mm/init_64.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/sparc/mm/init_64.c 2016-06-19 15:30:58.607294264 +0200
@@ -2738,7 +2738,7 @@
struct mm_struct *mm = current->mm;
struct tsb_config *tp;
@@ -3146,9 +2865,9 @@ diff -Nur linux-4.1.20.orig/arch/sparc/mm/init_64.c linux-4.1.20/arch/sparc/mm/i
const struct exception_table_entry *entry;
entry = search_exception_tables(regs->tpc);
-diff -Nur linux-4.1.20.orig/arch/tile/include/asm/uaccess.h linux-4.1.20/arch/tile/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/tile/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/tile/include/asm/uaccess.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/tile/include/asm/uaccess.h linux-4.1.26/arch/tile/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/tile/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/tile/include/asm/uaccess.h 2016-06-19 15:30:58.611294419 +0200
@@ -78,7 +78,8 @@
* @addr: User space pointer to start of block to check
* @size: Size of block to check
@@ -3209,9 +2928,9 @@ diff -Nur linux-4.1.20.orig/arch/tile/include/asm/uaccess.h linux-4.1.20/arch/ti
*
* Copy data from user space to user space. Caller must check
* the specified blocks with access_ok() before calling this function.
-diff -Nur linux-4.1.20.orig/arch/tile/mm/fault.c linux-4.1.20/arch/tile/mm/fault.c
---- linux-4.1.20.orig/arch/tile/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/tile/mm/fault.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/tile/mm/fault.c linux-4.1.26/arch/tile/mm/fault.c
+--- linux-4.1.26.orig/arch/tile/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/tile/mm/fault.c 2016-06-19 15:30:58.611294419 +0200
@@ -354,9 +354,9 @@
/*
@@ -3224,9 +2943,9 @@ diff -Nur linux-4.1.20.orig/arch/tile/mm/fault.c linux-4.1.20/arch/tile/mm/fault
vma = NULL; /* happy compiler */
goto bad_area_nosemaphore;
}
-diff -Nur linux-4.1.20.orig/arch/tile/mm/highmem.c linux-4.1.20/arch/tile/mm/highmem.c
---- linux-4.1.20.orig/arch/tile/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/tile/mm/highmem.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/tile/mm/highmem.c linux-4.1.26/arch/tile/mm/highmem.c
+--- linux-4.1.26.orig/arch/tile/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/tile/mm/highmem.c 2016-06-19 15:30:58.611294419 +0200
@@ -201,7 +201,7 @@
int idx, type;
pte_t *pte;
@@ -3244,9 +2963,9 @@ diff -Nur linux-4.1.20.orig/arch/tile/mm/highmem.c linux-4.1.20/arch/tile/mm/hig
}
EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.20.orig/arch/um/kernel/trap.c linux-4.1.20/arch/um/kernel/trap.c
---- linux-4.1.20.orig/arch/um/kernel/trap.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/um/kernel/trap.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/um/kernel/trap.c linux-4.1.26/arch/um/kernel/trap.c
+--- linux-4.1.26.orig/arch/um/kernel/trap.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/um/kernel/trap.c 2016-06-19 15:30:58.611294419 +0200
@@ -35,10 +35,10 @@
*code_out = SEGV_MAPERR;
@@ -3260,9 +2979,9 @@ diff -Nur linux-4.1.20.orig/arch/um/kernel/trap.c linux-4.1.20/arch/um/kernel/tr
goto out_nosemaphore;
if (is_user)
-diff -Nur linux-4.1.20.orig/arch/unicore32/mm/fault.c linux-4.1.20/arch/unicore32/mm/fault.c
---- linux-4.1.20.orig/arch/unicore32/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/unicore32/mm/fault.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/unicore32/mm/fault.c linux-4.1.26/arch/unicore32/mm/fault.c
+--- linux-4.1.26.orig/arch/unicore32/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/unicore32/mm/fault.c 2016-06-19 15:30:58.611294419 +0200
@@ -218,7 +218,7 @@
* If we're in an interrupt or have no user
* context, we must not take the fault..
@@ -3272,42 +2991,9 @@ diff -Nur linux-4.1.20.orig/arch/unicore32/mm/fault.c linux-4.1.20/arch/unicore3
goto no_context;
if (user_mode(regs))
-diff -Nur linux-4.1.20.orig/arch/x86/Kconfig linux-4.1.20/arch/x86/Kconfig
---- linux-4.1.20.orig/arch/x86/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/Kconfig 2016-03-21 20:18:30.000000000 +0100
-@@ -22,6 +22,7 @@
- ### Arch settings
- config X86
- def_bool y
-+ select HAVE_PREEMPT_LAZY
- select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
- select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
- select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
-@@ -203,8 +204,11 @@
- def_bool y
- depends on ISA_DMA_API
-
-+config RWSEM_GENERIC_SPINLOCK
-+ def_bool PREEMPT_RT_FULL
-+
- config RWSEM_XCHGADD_ALGORITHM
-- def_bool y
-+ def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL
-
- config GENERIC_CALIBRATE_DELAY
- def_bool y
-@@ -838,7 +842,7 @@
- config MAXSMP
- bool "Enable Maximum number of SMP Processors and NUMA Nodes"
- depends on X86_64 && SMP && DEBUG_KERNEL
-- select CPUMASK_OFFSTACK
-+ select CPUMASK_OFFSTACK if !PREEMPT_RT_FULL
- ---help---
- Enable maximum number of CPUS and NUMA Nodes for this architecture.
- If unsure, say N.
-diff -Nur linux-4.1.20.orig/arch/x86/crypto/aesni-intel_glue.c linux-4.1.20/arch/x86/crypto/aesni-intel_glue.c
---- linux-4.1.20.orig/arch/x86/crypto/aesni-intel_glue.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/crypto/aesni-intel_glue.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/crypto/aesni-intel_glue.c linux-4.1.26/arch/x86/crypto/aesni-intel_glue.c
+--- linux-4.1.26.orig/arch/x86/crypto/aesni-intel_glue.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/crypto/aesni-intel_glue.c 2016-06-19 15:30:58.611294419 +0200
@@ -382,14 +382,14 @@
err = blkcipher_walk_virt(desc, &walk);
desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
@@ -3400,9 +3086,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/crypto/aesni-intel_glue.c linux-4.1.20/arch
return err;
}
-diff -Nur linux-4.1.20.orig/arch/x86/crypto/cast5_avx_glue.c linux-4.1.20/arch/x86/crypto/cast5_avx_glue.c
---- linux-4.1.20.orig/arch/x86/crypto/cast5_avx_glue.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/crypto/cast5_avx_glue.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/crypto/cast5_avx_glue.c linux-4.1.26/arch/x86/crypto/cast5_avx_glue.c
+--- linux-4.1.26.orig/arch/x86/crypto/cast5_avx_glue.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/crypto/cast5_avx_glue.c 2016-06-19 15:30:58.611294419 +0200
@@ -60,7 +60,7 @@
static int ecb_crypt(struct blkcipher_desc *desc, struct blkcipher_walk *walk,
bool enc)
@@ -3482,9 +3168,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/crypto/cast5_avx_glue.c linux-4.1.20/arch/x
if (walk.nbytes) {
ctr_crypt_final(desc, &walk);
err = blkcipher_walk_done(desc, &walk, 0);
-diff -Nur linux-4.1.20.orig/arch/x86/crypto/glue_helper.c linux-4.1.20/arch/x86/crypto/glue_helper.c
---- linux-4.1.20.orig/arch/x86/crypto/glue_helper.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/crypto/glue_helper.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/crypto/glue_helper.c linux-4.1.26/arch/x86/crypto/glue_helper.c
+--- linux-4.1.26.orig/arch/x86/crypto/glue_helper.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/crypto/glue_helper.c 2016-06-19 15:30:58.611294419 +0200
@@ -39,7 +39,7 @@
void *ctx = crypto_blkcipher_ctx(desc->tfm);
const unsigned int bsize = 128 / 8;
@@ -3600,9 +3286,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/crypto/glue_helper.c linux-4.1.20/arch/x86/
return err;
}
EXPORT_SYMBOL_GPL(glue_xts_crypt_128bit);
-diff -Nur linux-4.1.20.orig/arch/x86/include/asm/preempt.h linux-4.1.20/arch/x86/include/asm/preempt.h
---- linux-4.1.20.orig/arch/x86/include/asm/preempt.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/include/asm/preempt.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/include/asm/preempt.h linux-4.1.26/arch/x86/include/asm/preempt.h
+--- linux-4.1.26.orig/arch/x86/include/asm/preempt.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/include/asm/preempt.h 2016-06-19 15:30:58.611294419 +0200
@@ -82,17 +82,33 @@
* a decrement which hits zero means we have no preempt_count and should
* reschedule.
@@ -3638,9 +3324,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/include/asm/preempt.h linux-4.1.20/arch/x86
}
#ifdef CONFIG_PREEMPT
-diff -Nur linux-4.1.20.orig/arch/x86/include/asm/signal.h linux-4.1.20/arch/x86/include/asm/signal.h
---- linux-4.1.20.orig/arch/x86/include/asm/signal.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/include/asm/signal.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/include/asm/signal.h linux-4.1.26/arch/x86/include/asm/signal.h
+--- linux-4.1.26.orig/arch/x86/include/asm/signal.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/include/asm/signal.h 2016-06-19 15:30:58.611294419 +0200
@@ -23,6 +23,19 @@
unsigned long sig[_NSIG_WORDS];
} sigset_t;
@@ -3661,9 +3347,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/include/asm/signal.h linux-4.1.20/arch/x86/
#ifndef CONFIG_COMPAT
typedef sigset_t compat_sigset_t;
#endif
-diff -Nur linux-4.1.20.orig/arch/x86/include/asm/stackprotector.h linux-4.1.20/arch/x86/include/asm/stackprotector.h
---- linux-4.1.20.orig/arch/x86/include/asm/stackprotector.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/include/asm/stackprotector.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/include/asm/stackprotector.h linux-4.1.26/arch/x86/include/asm/stackprotector.h
+--- linux-4.1.26.orig/arch/x86/include/asm/stackprotector.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/include/asm/stackprotector.h 2016-06-19 15:30:58.611294419 +0200
@@ -57,7 +57,7 @@
*/
static __always_inline void boot_init_stack_canary(void)
@@ -3690,9 +3376,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/include/asm/stackprotector.h linux-4.1.20/a
tsc = __native_read_tsc();
canary += tsc + (tsc << 32UL);
-diff -Nur linux-4.1.20.orig/arch/x86/include/asm/thread_info.h linux-4.1.20/arch/x86/include/asm/thread_info.h
---- linux-4.1.20.orig/arch/x86/include/asm/thread_info.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/include/asm/thread_info.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/include/asm/thread_info.h linux-4.1.26/arch/x86/include/asm/thread_info.h
+--- linux-4.1.26.orig/arch/x86/include/asm/thread_info.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/include/asm/thread_info.h 2016-06-19 15:30:58.611294419 +0200
@@ -55,6 +55,8 @@
__u32 status; /* thread synchronous flags */
__u32 cpu; /* current CPU */
@@ -3727,9 +3413,32 @@ diff -Nur linux-4.1.20.orig/arch/x86/include/asm/thread_info.h linux-4.1.20/arch
#define STACK_WARN (THREAD_SIZE/8)
/*
-diff -Nur linux-4.1.20.orig/arch/x86/include/asm/uaccess.h linux-4.1.20/arch/x86/include/asm/uaccess.h
---- linux-4.1.20.orig/arch/x86/include/asm/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/include/asm/uaccess.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/include/asm/uaccess_32.h linux-4.1.26/arch/x86/include/asm/uaccess_32.h
+--- linux-4.1.26.orig/arch/x86/include/asm/uaccess_32.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/include/asm/uaccess_32.h 2016-06-19 15:30:58.615294573 +0200
+@@ -70,7 +70,8 @@
+ * @from: Source address, in kernel space.
+ * @n: Number of bytes to copy.
+ *
+- * Context: User context only. This function may sleep.
++ * Context: User context only. This function may sleep if pagefaults are
++ * enabled.
+ *
+ * Copy data from kernel space to user space. Caller must check
+ * the specified block with access_ok() before calling this function.
+@@ -117,7 +118,8 @@
+ * @from: Source address, in user space.
+ * @n: Number of bytes to copy.
+ *
+- * Context: User context only. This function may sleep.
++ * Context: User context only. This function may sleep if pagefaults are
++ * enabled.
+ *
+ * Copy data from user space to kernel space. Caller must check
+ * the specified block with access_ok() before calling this function.
+diff -Nur linux-4.1.26.orig/arch/x86/include/asm/uaccess.h linux-4.1.26/arch/x86/include/asm/uaccess.h
+--- linux-4.1.26.orig/arch/x86/include/asm/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/include/asm/uaccess.h 2016-06-19 15:30:58.611294419 +0200
@@ -74,7 +74,8 @@
* @addr: User space pointer to start of block to check
* @size: Size of block to check
@@ -3780,32 +3489,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/include/asm/uaccess.h linux-4.1.20/arch/x86
*
* This macro copies a single simple value from kernel space to user
* space. It supports simple types like char and int, but not larger
-diff -Nur linux-4.1.20.orig/arch/x86/include/asm/uaccess_32.h linux-4.1.20/arch/x86/include/asm/uaccess_32.h
---- linux-4.1.20.orig/arch/x86/include/asm/uaccess_32.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/include/asm/uaccess_32.h 2016-03-21 20:18:30.000000000 +0100
-@@ -70,7 +70,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -117,7 +118,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space. Caller must check
- * the specified block with access_ok() before calling this function.
-diff -Nur linux-4.1.20.orig/arch/x86/include/asm/uv/uv_bau.h linux-4.1.20/arch/x86/include/asm/uv/uv_bau.h
---- linux-4.1.20.orig/arch/x86/include/asm/uv/uv_bau.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/include/asm/uv/uv_bau.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/include/asm/uv/uv_bau.h linux-4.1.26/arch/x86/include/asm/uv/uv_bau.h
+--- linux-4.1.26.orig/arch/x86/include/asm/uv/uv_bau.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/include/asm/uv/uv_bau.h 2016-06-19 15:30:58.615294573 +0200
@@ -615,9 +615,9 @@
cycles_t send_message;
cycles_t period_end;
@@ -3839,9 +3525,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/include/asm/uv/uv_bau.h linux-4.1.20/arch/x
return 1;
}
-diff -Nur linux-4.1.20.orig/arch/x86/include/asm/uv/uv_hub.h linux-4.1.20/arch/x86/include/asm/uv/uv_hub.h
---- linux-4.1.20.orig/arch/x86/include/asm/uv/uv_hub.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/include/asm/uv/uv_hub.h 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/include/asm/uv/uv_hub.h linux-4.1.26/arch/x86/include/asm/uv/uv_hub.h
+--- linux-4.1.26.orig/arch/x86/include/asm/uv/uv_hub.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/include/asm/uv/uv_hub.h 2016-06-19 15:30:58.615294573 +0200
@@ -492,7 +492,7 @@
unsigned short nr_online_cpus;
unsigned short pnode;
@@ -3851,9 +3537,42 @@ diff -Nur linux-4.1.20.orig/arch/x86/include/asm/uv/uv_hub.h linux-4.1.20/arch/x
unsigned long nmi_count; /* obsolete, see uv_hub_nmi */
};
extern struct uv_blade_info *uv_blade_info;
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/apic/io_apic.c linux-4.1.20/arch/x86/kernel/apic/io_apic.c
---- linux-4.1.20.orig/arch/x86/kernel/apic/io_apic.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/apic/io_apic.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/Kconfig linux-4.1.26/arch/x86/Kconfig
+--- linux-4.1.26.orig/arch/x86/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/Kconfig 2016-06-19 15:30:58.611294419 +0200
+@@ -22,6 +22,7 @@
+ ### Arch settings
+ config X86
+ def_bool y
++ select HAVE_PREEMPT_LAZY
+ select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
+ select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
+ select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
+@@ -203,8 +204,11 @@
+ def_bool y
+ depends on ISA_DMA_API
+
++config RWSEM_GENERIC_SPINLOCK
++ def_bool PREEMPT_RT_FULL
++
+ config RWSEM_XCHGADD_ALGORITHM
+- def_bool y
++ def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL
+
+ config GENERIC_CALIBRATE_DELAY
+ def_bool y
+@@ -838,7 +842,7 @@
+ config MAXSMP
+ bool "Enable Maximum number of SMP Processors and NUMA Nodes"
+ depends on X86_64 && SMP && DEBUG_KERNEL
+- select CPUMASK_OFFSTACK
++ select CPUMASK_OFFSTACK if !PREEMPT_RT_FULL
+ ---help---
+ Enable maximum number of CPUS and NUMA Nodes for this architecture.
+ If unsure, say N.
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/apic/io_apic.c linux-4.1.26/arch/x86/kernel/apic/io_apic.c
+--- linux-4.1.26.orig/arch/x86/kernel/apic/io_apic.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/apic/io_apic.c 2016-06-19 15:30:58.615294573 +0200
@@ -1891,7 +1891,8 @@
static inline bool ioapic_irqd_mask(struct irq_data *data, struct irq_cfg *cfg)
{
@@ -3864,9 +3583,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/apic/io_apic.c linux-4.1.20/arch/x86
mask_ioapic(cfg);
return true;
}
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/apic/x2apic_uv_x.c linux-4.1.20/arch/x86/kernel/apic/x2apic_uv_x.c
---- linux-4.1.20.orig/arch/x86/kernel/apic/x2apic_uv_x.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/apic/x2apic_uv_x.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/apic/x2apic_uv_x.c linux-4.1.26/arch/x86/kernel/apic/x2apic_uv_x.c
+--- linux-4.1.26.orig/arch/x86/kernel/apic/x2apic_uv_x.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/apic/x2apic_uv_x.c 2016-06-19 15:30:58.615294573 +0200
@@ -949,7 +949,7 @@
uv_blade_info[blade].pnode = pnode;
uv_blade_info[blade].nr_possible_cpus = 0;
@@ -3876,9 +3595,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/apic/x2apic_uv_x.c linux-4.1.20/arch
min_pnode = min(pnode, min_pnode);
max_pnode = max(pnode, max_pnode);
blade++;
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/asm-offsets.c linux-4.1.20/arch/x86/kernel/asm-offsets.c
---- linux-4.1.20.orig/arch/x86/kernel/asm-offsets.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/asm-offsets.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/asm-offsets.c linux-4.1.26/arch/x86/kernel/asm-offsets.c
+--- linux-4.1.26.orig/arch/x86/kernel/asm-offsets.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/asm-offsets.c 2016-06-19 15:30:58.615294573 +0200
@@ -32,6 +32,7 @@
OFFSET(TI_flags, thread_info, flags);
OFFSET(TI_status, thread_info, status);
@@ -3893,9 +3612,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/asm-offsets.c linux-4.1.20/arch/x86/
DEFINE(PTREGS_SIZE, sizeof(struct pt_regs));
+ DEFINE(_PREEMPT_ENABLED, PREEMPT_ENABLED);
}
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/cpu/mcheck/mce.c linux-4.1.20/arch/x86/kernel/cpu/mcheck/mce.c
---- linux-4.1.20.orig/arch/x86/kernel/cpu/mcheck/mce.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/cpu/mcheck/mce.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/cpu/mcheck/mce.c linux-4.1.26/arch/x86/kernel/cpu/mcheck/mce.c
+--- linux-4.1.26.orig/arch/x86/kernel/cpu/mcheck/mce.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/cpu/mcheck/mce.c 2016-06-19 15:30:58.615294573 +0200
@@ -41,6 +41,8 @@
#include <linux/debugfs.h>
#include <linux/irq_work.h>
@@ -4137,9 +3856,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/cpu/mcheck/mce.c linux-4.1.20/arch/x
if (!zalloc_cpumask_var(&mce_device_initialized, GFP_KERNEL)) {
err = -ENOMEM;
goto err_out;
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/dumpstack_32.c linux-4.1.20/arch/x86/kernel/dumpstack_32.c
---- linux-4.1.20.orig/arch/x86/kernel/dumpstack_32.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/dumpstack_32.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/dumpstack_32.c linux-4.1.26/arch/x86/kernel/dumpstack_32.c
+--- linux-4.1.26.orig/arch/x86/kernel/dumpstack_32.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/dumpstack_32.c 2016-06-19 15:30:58.615294573 +0200
@@ -42,7 +42,7 @@
unsigned long *stack, unsigned long bp,
const struct stacktrace_ops *ops, void *data)
@@ -4158,9 +3877,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/dumpstack_32.c linux-4.1.20/arch/x86
}
EXPORT_SYMBOL(dump_trace);
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/dumpstack_64.c linux-4.1.20/arch/x86/kernel/dumpstack_64.c
---- linux-4.1.20.orig/arch/x86/kernel/dumpstack_64.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/dumpstack_64.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/dumpstack_64.c linux-4.1.26/arch/x86/kernel/dumpstack_64.c
+--- linux-4.1.26.orig/arch/x86/kernel/dumpstack_64.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/dumpstack_64.c 2016-06-19 15:30:58.615294573 +0200
@@ -152,7 +152,7 @@
unsigned long *stack, unsigned long bp,
const struct stacktrace_ops *ops, void *data)
@@ -4197,9 +3916,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/dumpstack_64.c linux-4.1.20/arch/x86
pr_cont("\n");
show_trace_log_lvl(task, regs, sp, bp, log_lvl);
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/entry_32.S linux-4.1.20/arch/x86/kernel/entry_32.S
---- linux-4.1.20.orig/arch/x86/kernel/entry_32.S 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/entry_32.S 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/entry_32.S linux-4.1.26/arch/x86/kernel/entry_32.S
+--- linux-4.1.26.orig/arch/x86/kernel/entry_32.S 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/entry_32.S 2016-06-19 15:30:58.615294573 +0200
@@ -359,8 +359,24 @@
ENTRY(resume_kernel)
DISABLE_INTERRUPTS(CLBR_ANY)
@@ -4243,9 +3962,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/entry_32.S linux-4.1.20/arch/x86/ker
jnz work_resched
work_notifysig: # deal with pending signals and
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/entry_64.S linux-4.1.20/arch/x86/kernel/entry_64.S
---- linux-4.1.20.orig/arch/x86/kernel/entry_64.S 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/entry_64.S 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/entry_64.S linux-4.1.26/arch/x86/kernel/entry_64.S
+--- linux-4.1.26.orig/arch/x86/kernel/entry_64.S 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/entry_64.S 2016-06-19 15:30:58.615294573 +0200
@@ -370,8 +370,8 @@
/* First do a reschedule test. */
/* edx: work, edi: workmask */
@@ -4308,9 +4027,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/entry_64.S linux-4.1.20/arch/x86/ker
#ifdef CONFIG_XEN
idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/irq_32.c linux-4.1.20/arch/x86/kernel/irq_32.c
---- linux-4.1.20.orig/arch/x86/kernel/irq_32.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/irq_32.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/irq_32.c linux-4.1.26/arch/x86/kernel/irq_32.c
+--- linux-4.1.26.orig/arch/x86/kernel/irq_32.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/irq_32.c 2016-06-19 15:30:58.619294727 +0200
@@ -135,6 +135,7 @@
cpu, per_cpu(hardirq_stack, cpu), per_cpu(softirq_stack, cpu));
}
@@ -4327,9 +4046,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/irq_32.c linux-4.1.20/arch/x86/kerne
bool handle_irq(unsigned irq, struct pt_regs *regs)
{
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/process_32.c linux-4.1.20/arch/x86/kernel/process_32.c
---- linux-4.1.20.orig/arch/x86/kernel/process_32.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/process_32.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/process_32.c linux-4.1.26/arch/x86/kernel/process_32.c
+--- linux-4.1.26.orig/arch/x86/kernel/process_32.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/process_32.c 2016-06-19 15:30:58.619294727 +0200
@@ -35,6 +35,7 @@
#include <linux/uaccess.h>
#include <linux/io.h>
@@ -4383,9 +4102,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/process_32.c linux-4.1.20/arch/x86/k
/*
* Leave lazy mode, flushing any hypercalls made here.
* This must be done before restoring TLS segments so
-diff -Nur linux-4.1.20.orig/arch/x86/kernel/signal.c linux-4.1.20/arch/x86/kernel/signal.c
---- linux-4.1.20.orig/arch/x86/kernel/signal.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kernel/signal.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kernel/signal.c linux-4.1.26/arch/x86/kernel/signal.c
+--- linux-4.1.26.orig/arch/x86/kernel/signal.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kernel/signal.c 2016-06-19 15:30:58.619294727 +0200
@@ -726,6 +726,14 @@
{
user_exit();
@@ -4401,9 +4120,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kernel/signal.c linux-4.1.20/arch/x86/kerne
if (thread_info_flags & _TIF_UPROBE)
uprobe_notify_resume(regs);
-diff -Nur linux-4.1.20.orig/arch/x86/kvm/lapic.c linux-4.1.20/arch/x86/kvm/lapic.c
---- linux-4.1.20.orig/arch/x86/kvm/lapic.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kvm/lapic.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/kvm/lapic.c linux-4.1.26/arch/x86/kvm/lapic.c
+--- linux-4.1.26.orig/arch/x86/kvm/lapic.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kvm/lapic.c 2016-06-19 15:30:58.619294727 +0200
@@ -1106,7 +1106,7 @@
static void apic_timer_expired(struct kvm_lapic *apic)
{
@@ -4504,10 +4223,10 @@ diff -Nur linux-4.1.20.orig/arch/x86/kvm/lapic.c linux-4.1.20/arch/x86/kvm/lapic
}
/*
-diff -Nur linux-4.1.20.orig/arch/x86/kvm/x86.c linux-4.1.20/arch/x86/kvm/x86.c
---- linux-4.1.20.orig/arch/x86/kvm/x86.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/kvm/x86.c 2016-03-21 20:18:30.000000000 +0100
-@@ -5809,6 +5809,13 @@
+diff -Nur linux-4.1.26.orig/arch/x86/kvm/x86.c linux-4.1.26/arch/x86/kvm/x86.c
+--- linux-4.1.26.orig/arch/x86/kvm/x86.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/kvm/x86.c 2016-06-19 15:30:58.619294727 +0200
+@@ -5810,6 +5810,13 @@
goto out;
}
@@ -4521,9 +4240,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/kvm/x86.c linux-4.1.20/arch/x86/kvm/x86.c
r = kvm_mmu_module_init();
if (r)
goto out_free_percpu;
-diff -Nur linux-4.1.20.orig/arch/x86/lib/usercopy_32.c linux-4.1.20/arch/x86/lib/usercopy_32.c
---- linux-4.1.20.orig/arch/x86/lib/usercopy_32.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/lib/usercopy_32.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/lib/usercopy_32.c linux-4.1.26/arch/x86/lib/usercopy_32.c
+--- linux-4.1.26.orig/arch/x86/lib/usercopy_32.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/lib/usercopy_32.c 2016-06-19 15:30:58.619294727 +0200
@@ -647,7 +647,8 @@
* @from: Source address, in kernel space.
* @n: Number of bytes to copy.
@@ -4544,9 +4263,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/lib/usercopy_32.c linux-4.1.20/arch/x86/lib
*
* Copy data from user space to kernel space.
*
-diff -Nur linux-4.1.20.orig/arch/x86/mm/fault.c linux-4.1.20/arch/x86/mm/fault.c
---- linux-4.1.20.orig/arch/x86/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/mm/fault.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/mm/fault.c linux-4.1.26/arch/x86/mm/fault.c
+--- linux-4.1.26.orig/arch/x86/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/mm/fault.c 2016-06-19 15:30:58.619294727 +0200
@@ -13,6 +13,7 @@
#include <linux/hugetlb.h> /* hstate_index_to_shift */
#include <linux/prefetch.h> /* prefetchw */
@@ -4567,9 +4286,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/mm/fault.c linux-4.1.20/arch/x86/mm/fault.c
bad_area_nosemaphore(regs, error_code, address);
return;
}
-diff -Nur linux-4.1.20.orig/arch/x86/mm/highmem_32.c linux-4.1.20/arch/x86/mm/highmem_32.c
---- linux-4.1.20.orig/arch/x86/mm/highmem_32.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/mm/highmem_32.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/mm/highmem_32.c linux-4.1.26/arch/x86/mm/highmem_32.c
+--- linux-4.1.26.orig/arch/x86/mm/highmem_32.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/mm/highmem_32.c 2016-06-19 15:30:58.619294727 +0200
@@ -32,10 +32,11 @@
*/
void *kmap_atomic_prot(struct page *page, pgprot_t prot)
@@ -4613,9 +4332,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/mm/highmem_32.c linux-4.1.20/arch/x86/mm/hi
}
EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.20.orig/arch/x86/mm/iomap_32.c linux-4.1.20/arch/x86/mm/iomap_32.c
---- linux-4.1.20.orig/arch/x86/mm/iomap_32.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/mm/iomap_32.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/mm/iomap_32.c linux-4.1.26/arch/x86/mm/iomap_32.c
+--- linux-4.1.26.orig/arch/x86/mm/iomap_32.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/mm/iomap_32.c 2016-06-19 15:30:58.619294727 +0200
@@ -56,15 +56,22 @@
void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
@@ -4655,9 +4374,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/mm/iomap_32.c linux-4.1.20/arch/x86/mm/ioma
+ preempt_enable();
}
EXPORT_SYMBOL_GPL(iounmap_atomic);
-diff -Nur linux-4.1.20.orig/arch/x86/platform/uv/tlb_uv.c linux-4.1.20/arch/x86/platform/uv/tlb_uv.c
---- linux-4.1.20.orig/arch/x86/platform/uv/tlb_uv.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/platform/uv/tlb_uv.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/platform/uv/tlb_uv.c linux-4.1.26/arch/x86/platform/uv/tlb_uv.c
+--- linux-4.1.26.orig/arch/x86/platform/uv/tlb_uv.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/platform/uv/tlb_uv.c 2016-06-19 15:30:58.619294727 +0200
@@ -714,9 +714,9 @@
quiesce_local_uvhub(hmaster);
@@ -4744,9 +4463,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/platform/uv/tlb_uv.c linux-4.1.20/arch/x86/
}
}
-diff -Nur linux-4.1.20.orig/arch/x86/platform/uv/uv_time.c linux-4.1.20/arch/x86/platform/uv/uv_time.c
---- linux-4.1.20.orig/arch/x86/platform/uv/uv_time.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/x86/platform/uv/uv_time.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/x86/platform/uv/uv_time.c linux-4.1.26/arch/x86/platform/uv/uv_time.c
+--- linux-4.1.26.orig/arch/x86/platform/uv/uv_time.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/x86/platform/uv/uv_time.c 2016-06-19 15:30:58.623294881 +0200
@@ -58,7 +58,7 @@
/* There is one of these allocated per node */
@@ -4827,9 +4546,9 @@ diff -Nur linux-4.1.20.orig/arch/x86/platform/uv/uv_time.c linux-4.1.20/arch/x86
}
/*
-diff -Nur linux-4.1.20.orig/arch/xtensa/mm/fault.c linux-4.1.20/arch/xtensa/mm/fault.c
---- linux-4.1.20.orig/arch/xtensa/mm/fault.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/xtensa/mm/fault.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/xtensa/mm/fault.c linux-4.1.26/arch/xtensa/mm/fault.c
+--- linux-4.1.26.orig/arch/xtensa/mm/fault.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/xtensa/mm/fault.c 2016-06-19 15:30:58.623294881 +0200
@@ -15,10 +15,10 @@
#include <linux/mm.h>
#include <linux/module.h>
@@ -4851,9 +4570,9 @@ diff -Nur linux-4.1.20.orig/arch/xtensa/mm/fault.c linux-4.1.20/arch/xtensa/mm/f
bad_page_fault(regs, address, SIGSEGV);
return;
}
-diff -Nur linux-4.1.20.orig/arch/xtensa/mm/highmem.c linux-4.1.20/arch/xtensa/mm/highmem.c
---- linux-4.1.20.orig/arch/xtensa/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/arch/xtensa/mm/highmem.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/arch/xtensa/mm/highmem.c linux-4.1.26/arch/xtensa/mm/highmem.c
+--- linux-4.1.26.orig/arch/xtensa/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/arch/xtensa/mm/highmem.c 2016-06-19 15:30:58.623294881 +0200
@@ -42,6 +42,7 @@
enum fixed_addresses idx;
unsigned long vaddr;
@@ -4870,9 +4589,9 @@ diff -Nur linux-4.1.20.orig/arch/xtensa/mm/highmem.c linux-4.1.20/arch/xtensa/mm
}
EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.20.orig/block/blk-core.c linux-4.1.20/block/blk-core.c
---- linux-4.1.20.orig/block/blk-core.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/block/blk-core.c 2016-03-21 20:18:30.000000000 +0100
+diff -Nur linux-4.1.26.orig/block/blk-core.c linux-4.1.26/block/blk-core.c
+--- linux-4.1.26.orig/block/blk-core.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/block/blk-core.c 2016-06-19 15:30:58.623294881 +0200
@@ -100,6 +100,9 @@
INIT_LIST_HEAD(&rq->queuelist);
@@ -4948,9 +4667,9 @@ diff -Nur linux-4.1.20.orig/block/blk-core.c linux-4.1.20/block/blk-core.c
}
void blk_finish_plug(struct blk_plug *plug)
-diff -Nur linux-4.1.20.orig/block/blk-ioc.c linux-4.1.20/block/blk-ioc.c
---- linux-4.1.20.orig/block/blk-ioc.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/block/blk-ioc.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/block/blk-ioc.c linux-4.1.26/block/blk-ioc.c
+--- linux-4.1.26.orig/block/blk-ioc.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/block/blk-ioc.c 2016-06-19 15:30:58.623294881 +0200
@@ -7,6 +7,7 @@
#include <linux/bio.h>
#include <linux/blkdev.h>
@@ -4977,9 +4696,9 @@ diff -Nur linux-4.1.20.orig/block/blk-ioc.c linux-4.1.20/block/blk-ioc.c
goto retry;
}
}
-diff -Nur linux-4.1.20.orig/block/blk-iopoll.c linux-4.1.20/block/blk-iopoll.c
---- linux-4.1.20.orig/block/blk-iopoll.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/block/blk-iopoll.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/block/blk-iopoll.c linux-4.1.26/block/blk-iopoll.c
+--- linux-4.1.26.orig/block/blk-iopoll.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/block/blk-iopoll.c 2016-06-19 15:30:58.623294881 +0200
@@ -35,6 +35,7 @@
list_add_tail(&iop->list, this_cpu_ptr(&blk_cpu_iopoll));
__raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
@@ -5004,63 +4723,9 @@ diff -Nur linux-4.1.20.orig/block/blk-iopoll.c linux-4.1.20/block/blk-iopoll.c
}
return NOTIFY_OK;
-diff -Nur linux-4.1.20.orig/block/blk-mq-cpu.c linux-4.1.20/block/blk-mq-cpu.c
---- linux-4.1.20.orig/block/blk-mq-cpu.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/block/blk-mq-cpu.c 2016-03-21 20:18:31.000000000 +0100
-@@ -16,7 +16,7 @@
- #include "blk-mq.h"
-
- static LIST_HEAD(blk_mq_cpu_notify_list);
--static DEFINE_RAW_SPINLOCK(blk_mq_cpu_notify_lock);
-+static DEFINE_SPINLOCK(blk_mq_cpu_notify_lock);
-
- static int blk_mq_main_cpu_notify(struct notifier_block *self,
- unsigned long action, void *hcpu)
-@@ -25,7 +25,10 @@
- struct blk_mq_cpu_notifier *notify;
- int ret = NOTIFY_OK;
-
-- raw_spin_lock(&blk_mq_cpu_notify_lock);
-+ if (action != CPU_POST_DEAD)
-+ return NOTIFY_OK;
-+
-+ spin_lock(&blk_mq_cpu_notify_lock);
-
- list_for_each_entry(notify, &blk_mq_cpu_notify_list, list) {
- ret = notify->notify(notify->data, action, cpu);
-@@ -33,7 +36,7 @@
- break;
- }
-
-- raw_spin_unlock(&blk_mq_cpu_notify_lock);
-+ spin_unlock(&blk_mq_cpu_notify_lock);
- return ret;
- }
-
-@@ -41,16 +44,16 @@
- {
- BUG_ON(!notifier->notify);
-
-- raw_spin_lock(&blk_mq_cpu_notify_lock);
-+ spin_lock(&blk_mq_cpu_notify_lock);
- list_add_tail(&notifier->list, &blk_mq_cpu_notify_list);
-- raw_spin_unlock(&blk_mq_cpu_notify_lock);
-+ spin_unlock(&blk_mq_cpu_notify_lock);
- }
-
- void blk_mq_unregister_cpu_notifier(struct blk_mq_cpu_notifier *notifier)
- {
-- raw_spin_lock(&blk_mq_cpu_notify_lock);
-+ spin_lock(&blk_mq_cpu_notify_lock);
- list_del(&notifier->list);
-- raw_spin_unlock(&blk_mq_cpu_notify_lock);
-+ spin_unlock(&blk_mq_cpu_notify_lock);
- }
-
- void blk_mq_init_cpu_notifier(struct blk_mq_cpu_notifier *notifier,
-diff -Nur linux-4.1.20.orig/block/blk-mq.c linux-4.1.20/block/blk-mq.c
---- linux-4.1.20.orig/block/blk-mq.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/block/blk-mq.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/block/blk-mq.c linux-4.1.26/block/blk-mq.c
+--- linux-4.1.26.orig/block/blk-mq.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/block/blk-mq.c 2016-06-19 15:30:58.623294881 +0200
@@ -88,7 +88,7 @@
if (!(gfp & __GFP_WAIT))
return -EBUSY;
@@ -5196,9 +4861,63 @@ diff -Nur linux-4.1.20.orig/block/blk-mq.c linux-4.1.20/block/blk-mq.c
return blk_mq_hctx_cpu_offline(hctx, cpu);
/*
-diff -Nur linux-4.1.20.orig/block/blk-mq.h linux-4.1.20/block/blk-mq.h
---- linux-4.1.20.orig/block/blk-mq.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/block/blk-mq.h 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/block/blk-mq-cpu.c linux-4.1.26/block/blk-mq-cpu.c
+--- linux-4.1.26.orig/block/blk-mq-cpu.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/block/blk-mq-cpu.c 2016-06-19 15:30:58.623294881 +0200
+@@ -16,7 +16,7 @@
+ #include "blk-mq.h"
+
+ static LIST_HEAD(blk_mq_cpu_notify_list);
+-static DEFINE_RAW_SPINLOCK(blk_mq_cpu_notify_lock);
++static DEFINE_SPINLOCK(blk_mq_cpu_notify_lock);
+
+ static int blk_mq_main_cpu_notify(struct notifier_block *self,
+ unsigned long action, void *hcpu)
+@@ -25,7 +25,10 @@
+ struct blk_mq_cpu_notifier *notify;
+ int ret = NOTIFY_OK;
+
+- raw_spin_lock(&blk_mq_cpu_notify_lock);
++ if (action != CPU_POST_DEAD)
++ return NOTIFY_OK;
++
++ spin_lock(&blk_mq_cpu_notify_lock);
+
+ list_for_each_entry(notify, &blk_mq_cpu_notify_list, list) {
+ ret = notify->notify(notify->data, action, cpu);
+@@ -33,7 +36,7 @@
+ break;
+ }
+
+- raw_spin_unlock(&blk_mq_cpu_notify_lock);
++ spin_unlock(&blk_mq_cpu_notify_lock);
+ return ret;
+ }
+
+@@ -41,16 +44,16 @@
+ {
+ BUG_ON(!notifier->notify);
+
+- raw_spin_lock(&blk_mq_cpu_notify_lock);
++ spin_lock(&blk_mq_cpu_notify_lock);
+ list_add_tail(&notifier->list, &blk_mq_cpu_notify_list);
+- raw_spin_unlock(&blk_mq_cpu_notify_lock);
++ spin_unlock(&blk_mq_cpu_notify_lock);
+ }
+
+ void blk_mq_unregister_cpu_notifier(struct blk_mq_cpu_notifier *notifier)
+ {
+- raw_spin_lock(&blk_mq_cpu_notify_lock);
++ spin_lock(&blk_mq_cpu_notify_lock);
+ list_del(&notifier->list);
+- raw_spin_unlock(&blk_mq_cpu_notify_lock);
++ spin_unlock(&blk_mq_cpu_notify_lock);
+ }
+
+ void blk_mq_init_cpu_notifier(struct blk_mq_cpu_notifier *notifier,
+diff -Nur linux-4.1.26.orig/block/blk-mq.h linux-4.1.26/block/blk-mq.h
+--- linux-4.1.26.orig/block/blk-mq.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/block/blk-mq.h 2016-06-19 15:30:58.623294881 +0200
@@ -76,7 +76,10 @@
static inline struct blk_mq_ctx *__blk_mq_get_ctx(struct request_queue *q,
unsigned int cpu)
@@ -5226,9 +4945,9 @@ diff -Nur linux-4.1.20.orig/block/blk-mq.h linux-4.1.20/block/blk-mq.h
}
struct blk_mq_alloc_data {
-diff -Nur linux-4.1.20.orig/block/blk-softirq.c linux-4.1.20/block/blk-softirq.c
---- linux-4.1.20.orig/block/blk-softirq.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/block/blk-softirq.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/block/blk-softirq.c linux-4.1.26/block/blk-softirq.c
+--- linux-4.1.26.orig/block/blk-softirq.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/block/blk-softirq.c 2016-06-19 15:30:58.623294881 +0200
@@ -51,6 +51,7 @@
raise_softirq_irqoff(BLOCK_SOFTIRQ);
@@ -5253,9 +4972,9 @@ diff -Nur linux-4.1.20.orig/block/blk-softirq.c linux-4.1.20/block/blk-softirq.c
}
/**
-diff -Nur linux-4.1.20.orig/block/bounce.c linux-4.1.20/block/bounce.c
---- linux-4.1.20.orig/block/bounce.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/block/bounce.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/block/bounce.c linux-4.1.26/block/bounce.c
+--- linux-4.1.26.orig/block/bounce.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/block/bounce.c 2016-06-19 15:30:58.623294881 +0200
@@ -54,11 +54,11 @@
unsigned long flags;
unsigned char *vto;
@@ -5270,9 +4989,9 @@ diff -Nur linux-4.1.20.orig/block/bounce.c linux-4.1.20/block/bounce.c
}
#else /* CONFIG_HIGHMEM */
-diff -Nur linux-4.1.20.orig/crypto/algapi.c linux-4.1.20/crypto/algapi.c
---- linux-4.1.20.orig/crypto/algapi.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/crypto/algapi.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/crypto/algapi.c linux-4.1.26/crypto/algapi.c
+--- linux-4.1.26.orig/crypto/algapi.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/crypto/algapi.c 2016-06-19 15:30:58.623294881 +0200
@@ -695,13 +695,13 @@
int crypto_register_notifier(struct notifier_block *nb)
@@ -5289,9 +5008,9 @@ diff -Nur linux-4.1.20.orig/crypto/algapi.c linux-4.1.20/crypto/algapi.c
}
EXPORT_SYMBOL_GPL(crypto_unregister_notifier);
-diff -Nur linux-4.1.20.orig/crypto/api.c linux-4.1.20/crypto/api.c
---- linux-4.1.20.orig/crypto/api.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/crypto/api.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/crypto/api.c linux-4.1.26/crypto/api.c
+--- linux-4.1.26.orig/crypto/api.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/crypto/api.c 2016-06-19 15:30:58.623294881 +0200
@@ -31,7 +31,7 @@
DECLARE_RWSEM(crypto_alg_sem);
EXPORT_SYMBOL_GPL(crypto_alg_sem);
@@ -5314,9 +5033,9 @@ diff -Nur linux-4.1.20.orig/crypto/api.c linux-4.1.20/crypto/api.c
}
return ok;
-diff -Nur linux-4.1.20.orig/crypto/internal.h linux-4.1.20/crypto/internal.h
---- linux-4.1.20.orig/crypto/internal.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/crypto/internal.h 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/crypto/internal.h linux-4.1.26/crypto/internal.h
+--- linux-4.1.26.orig/crypto/internal.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/crypto/internal.h 2016-06-19 15:30:58.623294881 +0200
@@ -48,7 +48,7 @@
extern struct list_head crypto_alg_list;
@@ -5335,9 +5054,290 @@ diff -Nur linux-4.1.20.orig/crypto/internal.h linux-4.1.20/crypto/internal.h
}
#endif /* _CRYPTO_INTERNAL_H */
-diff -Nur linux-4.1.20.orig/drivers/acpi/acpica/acglobal.h linux-4.1.20/drivers/acpi/acpica/acglobal.h
---- linux-4.1.20.orig/drivers/acpi/acpica/acglobal.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/acpi/acpica/acglobal.h 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/Documentation/hwlat_detector.txt linux-4.1.26/Documentation/hwlat_detector.txt
+--- linux-4.1.26.orig/Documentation/hwlat_detector.txt 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/Documentation/hwlat_detector.txt 2016-06-19 15:30:54.915151887 +0200
+@@ -0,0 +1,64 @@
++Introduction:
++-------------
++
++The module hwlat_detector is a special purpose kernel module that is used to
++detect large system latencies induced by the behavior of certain underlying
++hardware or firmware, independent of Linux itself. The code was developed
++originally to detect SMIs (System Management Interrupts) on x86 systems,
++however there is nothing x86 specific about this patchset. It was
++originally written for use by the "RT" patch since the Real Time
++kernel is highly latency sensitive.
++
++SMIs are usually not serviced by the Linux kernel, which typically does not
++even know that they are occuring. SMIs are instead are set up by BIOS code
++and are serviced by BIOS code, usually for "critical" events such as
++management of thermal sensors and fans. Sometimes though, SMIs are used for
++other tasks and those tasks can spend an inordinate amount of time in the
++handler (sometimes measured in milliseconds). Obviously this is a problem if
++you are trying to keep event service latencies down in the microsecond range.
++
++The hardware latency detector works by hogging all of the cpus for configurable
++amounts of time (by calling stop_machine()), polling the CPU Time Stamp Counter
++for some period, then looking for gaps in the TSC data. Any gap indicates a
++time when the polling was interrupted and since the machine is stopped and
++interrupts turned off the only thing that could do that would be an SMI.
++
++Note that the SMI detector should *NEVER* be used in a production environment.
++It is intended to be run manually to determine if the hardware platform has a
++problem with long system firmware service routines.
++
++Usage:
++------
++
++Loading the module hwlat_detector passing the parameter "enabled=1" (or by
++setting the "enable" entry in "hwlat_detector" debugfs toggled on) is the only
++step required to start the hwlat_detector. It is possible to redefine the
++threshold in microseconds (us) above which latency spikes will be taken
++into account (parameter "threshold=").
++
++Example:
++
++ # modprobe hwlat_detector enabled=1 threshold=100
++
++After the module is loaded, it creates a directory named "hwlat_detector" under
++the debugfs mountpoint, "/debug/hwlat_detector" for this text. It is necessary
++to have debugfs mounted, which might be on /sys/debug on your system.
++
++The /debug/hwlat_detector interface contains the following files:
++
++count - number of latency spikes observed since last reset
++enable - a global enable/disable toggle (0/1), resets count
++max - maximum hardware latency actually observed (usecs)
++sample - a pipe from which to read current raw sample data
++ in the format <timestamp> <latency observed usecs>
++ (can be opened O_NONBLOCK for a single sample)
++threshold - minimum latency value to be considered (usecs)
++width - time period to sample with CPUs held (usecs)
++ must be less than the total window size (enforced)
++window - total period of sampling, width being inside (usecs)
++
++By default we will set width to 500,000 and window to 1,000,000, meaning that
++we will sample every 1,000,000 usecs (1s) for 500,000 usecs (0.5s). If we
++observe any latencies that exceed the threshold (initially 100 usecs),
++then we write to a global sample ring buffer of 8K samples, which is
++consumed by reading from the "sample" (pipe) debugfs file interface.
+diff -Nur linux-4.1.26.orig/Documentation/sysrq.txt linux-4.1.26/Documentation/sysrq.txt
+--- linux-4.1.26.orig/Documentation/sysrq.txt 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/Documentation/sysrq.txt 2016-06-19 15:30:54.915151887 +0200
+@@ -59,10 +59,17 @@
+ On other - If you know of the key combos for other architectures, please
+ let me know so I can add them to this section.
+
+-On all - write a character to /proc/sysrq-trigger. e.g.:
+-
++On all - write a character to /proc/sysrq-trigger, e.g.:
+ echo t > /proc/sysrq-trigger
+
++On all - Enable network SysRq by writing a cookie to icmp_echo_sysrq, e.g.
++ echo 0x01020304 >/proc/sys/net/ipv4/icmp_echo_sysrq
++ Send an ICMP echo request with this pattern plus the particular
++ SysRq command key. Example:
++ # ping -c1 -s57 -p0102030468
++ will trigger the SysRq-H (help) command.
++
++
+ * What are the 'command' keys?
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 'b' - Will immediately reboot the system without syncing or unmounting
+diff -Nur linux-4.1.26.orig/Documentation/trace/histograms.txt linux-4.1.26/Documentation/trace/histograms.txt
+--- linux-4.1.26.orig/Documentation/trace/histograms.txt 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/Documentation/trace/histograms.txt 2016-06-19 15:30:54.915151887 +0200
+@@ -0,0 +1,186 @@
++ Using the Linux Kernel Latency Histograms
++
++
++This document gives a short explanation how to enable, configure and use
++latency histograms. Latency histograms are primarily relevant in the
++context of real-time enabled kernels (CONFIG_PREEMPT/CONFIG_PREEMPT_RT)
++and are used in the quality management of the Linux real-time
++capabilities.
++
++
++* Purpose of latency histograms
++
++A latency histogram continuously accumulates the frequencies of latency
++data. There are two types of histograms
++- potential sources of latencies
++- effective latencies
++
++
++* Potential sources of latencies
++
++Potential sources of latencies are code segments where interrupts,
++preemption or both are disabled (aka critical sections). To create
++histograms of potential sources of latency, the kernel stores the time
++stamp at the start of a critical section, determines the time elapsed
++when the end of the section is reached, and increments the frequency
++counter of that latency value - irrespective of whether any concurrently
++running process is affected by latency or not.
++- Configuration items (in the Kernel hacking/Tracers submenu)
++ CONFIG_INTERRUPT_OFF_LATENCY
++ CONFIG_PREEMPT_OFF_LATENCY
++
++
++* Effective latencies
++
++Effective latencies are actually occuring during wakeup of a process. To
++determine effective latencies, the kernel stores the time stamp when a
++process is scheduled to be woken up, and determines the duration of the
++wakeup time shortly before control is passed over to this process. Note
++that the apparent latency in user space may be somewhat longer, since the
++process may be interrupted after control is passed over to it but before
++the execution in user space takes place. Simply measuring the interval
++between enqueuing and wakeup may also not appropriate in cases when a
++process is scheduled as a result of a timer expiration. The timer may have
++missed its deadline, e.g. due to disabled interrupts, but this latency
++would not be registered. Therefore, the offsets of missed timers are
++recorded in a separate histogram. If both wakeup latency and missed timer
++offsets are configured and enabled, a third histogram may be enabled that
++records the overall latency as a sum of the timer latency, if any, and the
++wakeup latency. This histogram is called "timerandwakeup".
++- Configuration items (in the Kernel hacking/Tracers submenu)
++ CONFIG_WAKEUP_LATENCY
++ CONFIG_MISSED_TIMER_OFSETS
++
++
++* Usage
++
++The interface to the administration of the latency histograms is located
++in the debugfs file system. To mount it, either enter
++
++mount -t sysfs nodev /sys
++mount -t debugfs nodev /sys/kernel/debug
++
++from shell command line level, or add
++
++nodev /sys sysfs defaults 0 0
++nodev /sys/kernel/debug debugfs defaults 0 0
++
++to the file /etc/fstab. All latency histogram related files are then
++available in the directory /sys/kernel/debug/tracing/latency_hist. A
++particular histogram type is enabled by writing non-zero to the related
++variable in the /sys/kernel/debug/tracing/latency_hist/enable directory.
++Select "preemptirqsoff" for the histograms of potential sources of
++latencies and "wakeup" for histograms of effective latencies etc. The
++histogram data - one per CPU - are available in the files
++
++/sys/kernel/debug/tracing/latency_hist/preemptoff/CPUx
++/sys/kernel/debug/tracing/latency_hist/irqsoff/CPUx
++/sys/kernel/debug/tracing/latency_hist/preemptirqsoff/CPUx
++/sys/kernel/debug/tracing/latency_hist/wakeup/CPUx
++/sys/kernel/debug/tracing/latency_hist/wakeup/sharedprio/CPUx
++/sys/kernel/debug/tracing/latency_hist/missed_timer_offsets/CPUx
++/sys/kernel/debug/tracing/latency_hist/timerandwakeup/CPUx
++
++The histograms are reset by writing non-zero to the file "reset" in a
++particular latency directory. To reset all latency data, use
++
++#!/bin/sh
++
++TRACINGDIR=/sys/kernel/debug/tracing
++HISTDIR=$TRACINGDIR/latency_hist
++
++if test -d $HISTDIR
++then
++ cd $HISTDIR
++ for i in `find . | grep /reset$`
++ do
++ echo 1 >$i
++ done
++fi
++
++
++* Data format
++
++Latency data are stored with a resolution of one microsecond. The
++maximum latency is 10,240 microseconds. The data are only valid, if the
++overflow register is empty. Every output line contains the latency in
++microseconds in the first row and the number of samples in the second
++row. To display only lines with a positive latency count, use, for
++example,
++
++grep -v " 0$" /sys/kernel/debug/tracing/latency_hist/preemptoff/CPU0
++
++#Minimum latency: 0 microseconds.
++#Average latency: 0 microseconds.
++#Maximum latency: 25 microseconds.
++#Total samples: 3104770694
++#There are 0 samples greater or equal than 10240 microseconds
++#usecs samples
++ 0 2984486876
++ 1 49843506
++ 2 58219047
++ 3 5348126
++ 4 2187960
++ 5 3388262
++ 6 959289
++ 7 208294
++ 8 40420
++ 9 4485
++ 10 14918
++ 11 18340
++ 12 25052
++ 13 19455
++ 14 5602
++ 15 969
++ 16 47
++ 17 18
++ 18 14
++ 19 1
++ 20 3
++ 21 2
++ 22 5
++ 23 2
++ 25 1
++
++
++* Wakeup latency of a selected process
++
++To only collect wakeup latency data of a particular process, write the
++PID of the requested process to
++
++/sys/kernel/debug/tracing/latency_hist/wakeup/pid
++
++PIDs are not considered, if this variable is set to 0.
++
++
++* Details of the process with the highest wakeup latency so far
++
++Selected data of the process that suffered from the highest wakeup
++latency that occurred in a particular CPU are available in the file
++
++/sys/kernel/debug/tracing/latency_hist/wakeup/max_latency-CPUx.
++
++In addition, other relevant system data at the time when the
++latency occurred are given.
++
++The format of the data is (all in one line):
++<PID> <Priority> <Latency> (<Timeroffset>) <Command> \
++<- <PID> <Priority> <Command> <Timestamp>
++
++The value of <Timeroffset> is only relevant in the combined timer
++and wakeup latency recording. In the wakeup recording, it is
++always 0, in the missed_timer_offsets recording, it is the same
++as <Latency>.
++
++When retrospectively searching for the origin of a latency and
++tracing was not enabled, it may be helpful to know the name and
++some basic data of the task that (finally) was switching to the
++late real-tlme task. In addition to the victim's data, also the
++data of the possible culprit are therefore displayed after the
++"<-" symbol.
++
++Finally, the timestamp of the time when the latency occurred
++in <seconds>.<microseconds> after the most recent system boot
++is provided.
++
++These data are also reset when the wakeup histogram is reset.
+diff -Nur linux-4.1.26.orig/drivers/acpi/acpica/acglobal.h linux-4.1.26/drivers/acpi/acpica/acglobal.h
+--- linux-4.1.26.orig/drivers/acpi/acpica/acglobal.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/acpi/acpica/acglobal.h 2016-06-19 15:30:58.627295036 +0200
@@ -112,7 +112,7 @@
* interrupt level
*/
@@ -5347,9 +5347,9 @@ diff -Nur linux-4.1.20.orig/drivers/acpi/acpica/acglobal.h linux-4.1.20/drivers/
ACPI_GLOBAL(acpi_spinlock, acpi_gbl_reference_count_lock);
/* Mutex for _OSI support */
-diff -Nur linux-4.1.20.orig/drivers/acpi/acpica/hwregs.c linux-4.1.20/drivers/acpi/acpica/hwregs.c
---- linux-4.1.20.orig/drivers/acpi/acpica/hwregs.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/acpi/acpica/hwregs.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/acpi/acpica/hwregs.c linux-4.1.26/drivers/acpi/acpica/hwregs.c
+--- linux-4.1.26.orig/drivers/acpi/acpica/hwregs.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/acpi/acpica/hwregs.c 2016-06-19 15:30:58.627295036 +0200
@@ -269,14 +269,14 @@
ACPI_BITMASK_ALL_FIXED_STATUS,
ACPI_FORMAT_UINT64(acpi_gbl_xpm1a_status.address)));
@@ -5367,9 +5367,9 @@ diff -Nur linux-4.1.20.orig/drivers/acpi/acpica/hwregs.c linux-4.1.20/drivers/ac
if (ACPI_FAILURE(status)) {
goto exit;
-diff -Nur linux-4.1.20.orig/drivers/acpi/acpica/hwxface.c linux-4.1.20/drivers/acpi/acpica/hwxface.c
---- linux-4.1.20.orig/drivers/acpi/acpica/hwxface.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/acpi/acpica/hwxface.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/acpi/acpica/hwxface.c linux-4.1.26/drivers/acpi/acpica/hwxface.c
+--- linux-4.1.26.orig/drivers/acpi/acpica/hwxface.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/acpi/acpica/hwxface.c 2016-06-19 15:30:58.627295036 +0200
@@ -374,7 +374,7 @@
return_ACPI_STATUS(AE_BAD_PARAMETER);
}
@@ -5388,9 +5388,9 @@ diff -Nur linux-4.1.20.orig/drivers/acpi/acpica/hwxface.c linux-4.1.20/drivers/a
return_ACPI_STATUS(status);
}
-diff -Nur linux-4.1.20.orig/drivers/acpi/acpica/utmutex.c linux-4.1.20/drivers/acpi/acpica/utmutex.c
---- linux-4.1.20.orig/drivers/acpi/acpica/utmutex.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/acpi/acpica/utmutex.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/acpi/acpica/utmutex.c linux-4.1.26/drivers/acpi/acpica/utmutex.c
+--- linux-4.1.26.orig/drivers/acpi/acpica/utmutex.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/acpi/acpica/utmutex.c 2016-06-19 15:30:58.627295036 +0200
@@ -88,7 +88,7 @@
return_ACPI_STATUS (status);
}
@@ -5409,9 +5409,9 @@ diff -Nur linux-4.1.20.orig/drivers/acpi/acpica/utmutex.c linux-4.1.20/drivers/a
acpi_os_delete_lock(acpi_gbl_reference_count_lock);
/* Delete the reader/writer lock */
-diff -Nur linux-4.1.20.orig/drivers/ata/libata-sff.c linux-4.1.20/drivers/ata/libata-sff.c
---- linux-4.1.20.orig/drivers/ata/libata-sff.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/ata/libata-sff.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/ata/libata-sff.c linux-4.1.26/drivers/ata/libata-sff.c
+--- linux-4.1.26.orig/drivers/ata/libata-sff.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/ata/libata-sff.c 2016-06-19 15:30:58.627295036 +0200
@@ -678,9 +678,9 @@
unsigned long flags;
unsigned int consumed;
@@ -5460,9 +5460,9 @@ diff -Nur linux-4.1.20.orig/drivers/ata/libata-sff.c linux-4.1.20/drivers/ata/li
} else {
buf = page_address(page);
consumed = ap->ops->sff_data_xfer(dev, buf + offset,
-diff -Nur linux-4.1.20.orig/drivers/char/random.c linux-4.1.20/drivers/char/random.c
---- linux-4.1.20.orig/drivers/char/random.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/char/random.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/char/random.c linux-4.1.26/drivers/char/random.c
+--- linux-4.1.26.orig/drivers/char/random.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/char/random.c 2016-06-19 15:30:58.627295036 +0200
@@ -776,8 +776,6 @@
} sample;
long delta, delta2, delta3;
@@ -5514,9 +5514,9 @@ diff -Nur linux-4.1.20.orig/drivers/char/random.c linux-4.1.20/drivers/char/rand
fast_mix(fast_pool);
add_interrupt_bench(cycles);
-diff -Nur linux-4.1.20.orig/drivers/clocksource/tcb_clksrc.c linux-4.1.20/drivers/clocksource/tcb_clksrc.c
---- linux-4.1.20.orig/drivers/clocksource/tcb_clksrc.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/clocksource/tcb_clksrc.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/clocksource/tcb_clksrc.c linux-4.1.26/drivers/clocksource/tcb_clksrc.c
+--- linux-4.1.26.orig/drivers/clocksource/tcb_clksrc.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/clocksource/tcb_clksrc.c 2016-06-19 15:30:58.627295036 +0200
@@ -23,8 +23,7 @@
* this 32 bit free-running counter. the second channel is not used.
*
@@ -5631,9 +5631,9 @@ diff -Nur linux-4.1.20.orig/drivers/clocksource/tcb_clksrc.c linux-4.1.20/driver
if (ret)
goto err_unregister_clksrc;
-diff -Nur linux-4.1.20.orig/drivers/clocksource/timer-atmel-pit.c linux-4.1.20/drivers/clocksource/timer-atmel-pit.c
---- linux-4.1.20.orig/drivers/clocksource/timer-atmel-pit.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/clocksource/timer-atmel-pit.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/clocksource/timer-atmel-pit.c linux-4.1.26/drivers/clocksource/timer-atmel-pit.c
+--- linux-4.1.26.orig/drivers/clocksource/timer-atmel-pit.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/clocksource/timer-atmel-pit.c 2016-06-19 15:30:58.627295036 +0200
@@ -90,6 +90,7 @@
return elapsed;
}
@@ -5659,9 +5659,9 @@ diff -Nur linux-4.1.20.orig/drivers/clocksource/timer-atmel-pit.c linux-4.1.20/d
break;
case CLOCK_EVT_MODE_RESUME:
break;
-diff -Nur linux-4.1.20.orig/drivers/clocksource/timer-atmel-st.c linux-4.1.20/drivers/clocksource/timer-atmel-st.c
---- linux-4.1.20.orig/drivers/clocksource/timer-atmel-st.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/clocksource/timer-atmel-st.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/clocksource/timer-atmel-st.c linux-4.1.26/drivers/clocksource/timer-atmel-st.c
+--- linux-4.1.26.orig/drivers/clocksource/timer-atmel-st.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/clocksource/timer-atmel-st.c 2016-06-19 15:30:58.627295036 +0200
@@ -131,6 +131,7 @@
break;
case CLOCK_EVT_MODE_SHUTDOWN:
@@ -5670,21 +5670,9 @@ diff -Nur linux-4.1.20.orig/drivers/clocksource/timer-atmel-st.c linux-4.1.20/dr
case CLOCK_EVT_MODE_RESUME:
irqmask = 0;
break;
-diff -Nur linux-4.1.20.orig/drivers/cpufreq/Kconfig.x86 linux-4.1.20/drivers/cpufreq/Kconfig.x86
---- linux-4.1.20.orig/drivers/cpufreq/Kconfig.x86 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/cpufreq/Kconfig.x86 2016-03-21 20:18:31.000000000 +0100
-@@ -123,7 +123,7 @@
-
- config X86_POWERNOW_K8
- tristate "AMD Opteron/Athlon64 PowerNow!"
-- depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
-+ depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ && !PREEMPT_RT_BASE
- help
- This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
- Support for K10 and newer processors is now in acpi-cpufreq.
-diff -Nur linux-4.1.20.orig/drivers/cpufreq/cpufreq.c linux-4.1.20/drivers/cpufreq/cpufreq.c
---- linux-4.1.20.orig/drivers/cpufreq/cpufreq.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/cpufreq/cpufreq.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/cpufreq/cpufreq.c linux-4.1.26/drivers/cpufreq/cpufreq.c
+--- linux-4.1.26.orig/drivers/cpufreq/cpufreq.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/cpufreq/cpufreq.c 2016-06-19 15:30:58.627295036 +0200
@@ -64,12 +64,6 @@
return cpufreq_driver->target_index || cpufreq_driver->target;
}
@@ -5821,21 +5809,21 @@ diff -Nur linux-4.1.20.orig/drivers/cpufreq/cpufreq.c linux-4.1.20/drivers/cpufr
return 0;
}
-diff -Nur linux-4.1.20.orig/drivers/gpio/Kconfig linux-4.1.20/drivers/gpio/Kconfig
---- linux-4.1.20.orig/drivers/gpio/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/gpio/Kconfig 2016-03-21 20:18:31.000000000 +0100
-@@ -308,7 +308,7 @@
- family of SOCs.
+diff -Nur linux-4.1.26.orig/drivers/cpufreq/Kconfig.x86 linux-4.1.26/drivers/cpufreq/Kconfig.x86
+--- linux-4.1.26.orig/drivers/cpufreq/Kconfig.x86 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/cpufreq/Kconfig.x86 2016-06-19 15:30:58.627295036 +0200
+@@ -123,7 +123,7 @@
- config GPIO_OMAP
-- bool "TI OMAP GPIO support" if COMPILE_TEST && !ARCH_OMAP2PLUS
-+ tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
- default y if ARCH_OMAP
- depends on ARM
- select GENERIC_IRQ_CHIP
-diff -Nur linux-4.1.20.orig/drivers/gpio/gpio-omap.c linux-4.1.20/drivers/gpio/gpio-omap.c
---- linux-4.1.20.orig/drivers/gpio/gpio-omap.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/gpio/gpio-omap.c 2016-03-21 20:18:31.000000000 +0100
+ config X86_POWERNOW_K8
+ tristate "AMD Opteron/Athlon64 PowerNow!"
+- depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
++ depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ && !PREEMPT_RT_BASE
+ help
+ This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
+ Support for K10 and newer processors is now in acpi-cpufreq.
+diff -Nur linux-4.1.26.orig/drivers/gpio/gpio-omap.c linux-4.1.26/drivers/gpio/gpio-omap.c
+--- linux-4.1.26.orig/drivers/gpio/gpio-omap.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/gpio/gpio-omap.c 2016-06-19 15:30:58.631295190 +0200
@@ -29,6 +29,7 @@
#include <linux/platform_data/gpio-omap.h>
@@ -6633,9 +6621,21 @@ diff -Nur linux-4.1.20.orig/drivers/gpio/gpio-omap.c linux-4.1.20/drivers/gpio/g
+MODULE_DESCRIPTION("omap gpio driver");
+MODULE_ALIAS("platform:gpio-omap");
+MODULE_LICENSE("GPL v2");
-diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c linux-4.1.20/drivers/gpu/drm/i915/i915_gem_execbuffer.c
---- linux-4.1.20.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/gpu/drm/i915/i915_gem_execbuffer.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/gpio/Kconfig linux-4.1.26/drivers/gpio/Kconfig
+--- linux-4.1.26.orig/drivers/gpio/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/gpio/Kconfig 2016-06-19 15:30:58.631295190 +0200
+@@ -308,7 +308,7 @@
+ family of SOCs.
+
+ config GPIO_OMAP
+- bool "TI OMAP GPIO support" if COMPILE_TEST && !ARCH_OMAP2PLUS
++ tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
+ default y if ARCH_OMAP
+ depends on ARM
+ select GENERIC_IRQ_CHIP
+diff -Nur linux-4.1.26.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c linux-4.1.26/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+--- linux-4.1.26.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/gpu/drm/i915/i915_gem_execbuffer.c 2016-06-19 15:30:58.631295190 +0200
@@ -32,6 +32,7 @@
#include "i915_trace.h"
#include "intel_drv.h"
@@ -6663,9 +6663,9 @@ diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c linux-4.1
i915_gem_execbuffer_move_to_active(vmas, ring);
i915_gem_execbuffer_retire_commands(dev, file, ring, batch_obj);
-diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/i915_gem_shrinker.c linux-4.1.20/drivers/gpu/drm/i915/i915_gem_shrinker.c
---- linux-4.1.20.orig/drivers/gpu/drm/i915/i915_gem_shrinker.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/gpu/drm/i915/i915_gem_shrinker.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/gpu/drm/i915/i915_gem_shrinker.c linux-4.1.26/drivers/gpu/drm/i915/i915_gem_shrinker.c
+--- linux-4.1.26.orig/drivers/gpu/drm/i915/i915_gem_shrinker.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/gpu/drm/i915/i915_gem_shrinker.c 2016-06-19 15:30:58.631295190 +0200
@@ -39,7 +39,7 @@
if (!mutex_is_locked(mutex))
return false;
@@ -6675,9 +6675,9 @@ diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/i915_gem_shrinker.c linux-4.1.2
return mutex->owner == task;
#else
/* Since UP may be pre-empted, we cannot assume that we own the lock */
-diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/i915_irq.c linux-4.1.20/drivers/gpu/drm/i915/i915_irq.c
---- linux-4.1.20.orig/drivers/gpu/drm/i915/i915_irq.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/gpu/drm/i915/i915_irq.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/gpu/drm/i915/i915_irq.c linux-4.1.26/drivers/gpu/drm/i915/i915_irq.c
+--- linux-4.1.26.orig/drivers/gpu/drm/i915/i915_irq.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/gpu/drm/i915/i915_irq.c 2016-06-19 15:30:58.631295190 +0200
@@ -676,6 +676,7 @@
spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
@@ -6694,10 +6694,10 @@ diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/i915_irq.c linux-4.1.20/drivers
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
-diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/intel_display.c linux-4.1.20/drivers/gpu/drm/i915/intel_display.c
---- linux-4.1.20.orig/drivers/gpu/drm/i915/intel_display.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/gpu/drm/i915/intel_display.c 2016-03-21 20:18:31.000000000 +0100
-@@ -10088,7 +10088,7 @@
+diff -Nur linux-4.1.26.orig/drivers/gpu/drm/i915/intel_display.c linux-4.1.26/drivers/gpu/drm/i915/intel_display.c
+--- linux-4.1.26.orig/drivers/gpu/drm/i915/intel_display.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/gpu/drm/i915/intel_display.c 2016-06-19 15:30:58.635295344 +0200
+@@ -10084,7 +10084,7 @@
struct drm_crtc *crtc = dev_priv->pipe_to_crtc_mapping[pipe];
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -6706,9 +6706,9 @@ diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/intel_display.c linux-4.1.20/dr
if (crtc == NULL)
return;
-diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/intel_sprite.c linux-4.1.20/drivers/gpu/drm/i915/intel_sprite.c
---- linux-4.1.20.orig/drivers/gpu/drm/i915/intel_sprite.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/gpu/drm/i915/intel_sprite.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/gpu/drm/i915/intel_sprite.c linux-4.1.26/drivers/gpu/drm/i915/intel_sprite.c
+--- linux-4.1.26.orig/drivers/gpu/drm/i915/intel_sprite.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/gpu/drm/i915/intel_sprite.c 2016-06-19 15:30:58.635295344 +0200
@@ -37,6 +37,7 @@
#include "intel_drv.h"
#include <drm/i915_drm.h>
@@ -6758,9 +6758,9 @@ diff -Nur linux-4.1.20.orig/drivers/gpu/drm/i915/intel_sprite.c linux-4.1.20/dri
if (start_vbl_count != end_vbl_count)
DRM_ERROR("Atomic update failure on pipe %c (start=%u end=%u)\n",
-diff -Nur linux-4.1.20.orig/drivers/gpu/drm/radeon/radeon_display.c linux-4.1.20/drivers/gpu/drm/radeon/radeon_display.c
---- linux-4.1.20.orig/drivers/gpu/drm/radeon/radeon_display.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/gpu/drm/radeon/radeon_display.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/gpu/drm/radeon/radeon_display.c linux-4.1.26/drivers/gpu/drm/radeon/radeon_display.c
+--- linux-4.1.26.orig/drivers/gpu/drm/radeon/radeon_display.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/gpu/drm/radeon/radeon_display.c 2016-06-19 15:30:58.635295344 +0200
@@ -1798,6 +1798,7 @@
struct radeon_device *rdev = dev->dev_private;
@@ -6777,9 +6777,9 @@ diff -Nur linux-4.1.20.orig/drivers/gpu/drm/radeon/radeon_display.c linux-4.1.20
/* Decode into vertical and horizontal scanout position. */
*vpos = position & 0x1fff;
-diff -Nur linux-4.1.20.orig/drivers/i2c/busses/i2c-omap.c linux-4.1.20/drivers/i2c/busses/i2c-omap.c
---- linux-4.1.20.orig/drivers/i2c/busses/i2c-omap.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/i2c/busses/i2c-omap.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/i2c/busses/i2c-omap.c linux-4.1.26/drivers/i2c/busses/i2c-omap.c
+--- linux-4.1.26.orig/drivers/i2c/busses/i2c-omap.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/i2c/busses/i2c-omap.c 2016-06-19 15:30:58.635295344 +0200
@@ -996,15 +996,12 @@
u16 mask;
u16 stat;
@@ -6797,9 +6797,9 @@ diff -Nur linux-4.1.20.orig/drivers/i2c/busses/i2c-omap.c linux-4.1.20/drivers/i
return ret;
}
-diff -Nur linux-4.1.20.orig/drivers/ide/alim15x3.c linux-4.1.20/drivers/ide/alim15x3.c
---- linux-4.1.20.orig/drivers/ide/alim15x3.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/ide/alim15x3.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/ide/alim15x3.c linux-4.1.26/drivers/ide/alim15x3.c
+--- linux-4.1.26.orig/drivers/ide/alim15x3.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/ide/alim15x3.c 2016-06-19 15:30:58.635295344 +0200
@@ -234,7 +234,7 @@
isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
@@ -6818,9 +6818,9 @@ diff -Nur linux-4.1.20.orig/drivers/ide/alim15x3.c linux-4.1.20/drivers/ide/alim
return 0;
}
-diff -Nur linux-4.1.20.orig/drivers/ide/hpt366.c linux-4.1.20/drivers/ide/hpt366.c
---- linux-4.1.20.orig/drivers/ide/hpt366.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/ide/hpt366.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/ide/hpt366.c linux-4.1.26/drivers/ide/hpt366.c
+--- linux-4.1.26.orig/drivers/ide/hpt366.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/ide/hpt366.c 2016-06-19 15:30:58.635295344 +0200
@@ -1241,7 +1241,7 @@
dma_old = inb(base + 2);
@@ -6839,9 +6839,39 @@ diff -Nur linux-4.1.20.orig/drivers/ide/hpt366.c linux-4.1.20/drivers/ide/hpt366
printk(KERN_INFO " %s: BM-DMA at 0x%04lx-0x%04lx\n",
hwif->name, base, base + 7);
-diff -Nur linux-4.1.20.orig/drivers/ide/ide-io-std.c linux-4.1.20/drivers/ide/ide-io-std.c
---- linux-4.1.20.orig/drivers/ide/ide-io-std.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/ide/ide-io-std.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/ide/ide-io.c linux-4.1.26/drivers/ide/ide-io.c
+--- linux-4.1.26.orig/drivers/ide/ide-io.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/ide/ide-io.c 2016-06-19 15:30:58.635295344 +0200
+@@ -659,7 +659,7 @@
+ /* disable_irq_nosync ?? */
+ disable_irq(hwif->irq);
+ /* local CPU only, as if we were handling an interrupt */
+- local_irq_disable();
++ local_irq_disable_nort();
+ if (hwif->polling) {
+ startstop = handler(drive);
+ } else if (drive_is_ready(drive)) {
+diff -Nur linux-4.1.26.orig/drivers/ide/ide-iops.c linux-4.1.26/drivers/ide/ide-iops.c
+--- linux-4.1.26.orig/drivers/ide/ide-iops.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/ide/ide-iops.c 2016-06-19 15:30:58.635295344 +0200
+@@ -129,12 +129,12 @@
+ if ((stat & ATA_BUSY) == 0)
+ break;
+
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+ *rstat = stat;
+ return -EBUSY;
+ }
+ }
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+ }
+ /*
+ * Allow status to settle, then read it again.
+diff -Nur linux-4.1.26.orig/drivers/ide/ide-io-std.c linux-4.1.26/drivers/ide/ide-io-std.c
+--- linux-4.1.26.orig/drivers/ide/ide-io-std.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/ide/ide-io-std.c 2016-06-19 15:30:58.635295344 +0200
@@ -175,7 +175,7 @@
unsigned long uninitialized_var(flags);
@@ -6878,39 +6908,9 @@ diff -Nur linux-4.1.20.orig/drivers/ide/ide-io-std.c linux-4.1.20/drivers/ide/id
if (((len + 1) & 3) < 2)
return;
-diff -Nur linux-4.1.20.orig/drivers/ide/ide-io.c linux-4.1.20/drivers/ide/ide-io.c
---- linux-4.1.20.orig/drivers/ide/ide-io.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/ide/ide-io.c 2016-03-21 20:18:31.000000000 +0100
-@@ -659,7 +659,7 @@
- /* disable_irq_nosync ?? */
- disable_irq(hwif->irq);
- /* local CPU only, as if we were handling an interrupt */
-- local_irq_disable();
-+ local_irq_disable_nort();
- if (hwif->polling) {
- startstop = handler(drive);
- } else if (drive_is_ready(drive)) {
-diff -Nur linux-4.1.20.orig/drivers/ide/ide-iops.c linux-4.1.20/drivers/ide/ide-iops.c
---- linux-4.1.20.orig/drivers/ide/ide-iops.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/ide/ide-iops.c 2016-03-21 20:18:31.000000000 +0100
-@@ -129,12 +129,12 @@
- if ((stat & ATA_BUSY) == 0)
- break;
-
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- *rstat = stat;
- return -EBUSY;
- }
- }
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
- /*
- * Allow status to settle, then read it again.
-diff -Nur linux-4.1.20.orig/drivers/ide/ide-probe.c linux-4.1.20/drivers/ide/ide-probe.c
---- linux-4.1.20.orig/drivers/ide/ide-probe.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/ide/ide-probe.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/ide/ide-probe.c linux-4.1.26/drivers/ide/ide-probe.c
+--- linux-4.1.26.orig/drivers/ide/ide-probe.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/ide/ide-probe.c 2016-06-19 15:30:58.635295344 +0200
@@ -196,10 +196,10 @@
int bswap = 1;
@@ -6924,9 +6924,9 @@ diff -Nur linux-4.1.20.orig/drivers/ide/ide-probe.c linux-4.1.20/drivers/ide/ide
drive->dev_flags |= IDE_DFLAG_ID_READ;
#ifdef DEBUG
-diff -Nur linux-4.1.20.orig/drivers/ide/ide-taskfile.c linux-4.1.20/drivers/ide/ide-taskfile.c
---- linux-4.1.20.orig/drivers/ide/ide-taskfile.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/ide/ide-taskfile.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/ide/ide-taskfile.c linux-4.1.26/drivers/ide/ide-taskfile.c
+--- linux-4.1.26.orig/drivers/ide/ide-taskfile.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/ide/ide-taskfile.c 2016-06-19 15:30:58.635295344 +0200
@@ -250,7 +250,7 @@
page_is_high = PageHighMem(page);
@@ -6954,9 +6954,9 @@ diff -Nur linux-4.1.20.orig/drivers/ide/ide-taskfile.c linux-4.1.20/drivers/ide/
ide_set_handler(drive, &task_pio_intr, WAIT_WORSTCASE);
-diff -Nur linux-4.1.20.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c linux-4.1.20/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
---- linux-4.1.20.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c linux-4.1.26/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+--- linux-4.1.26.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2016-06-19 15:30:58.639295498 +0200
@@ -821,7 +821,7 @@
ipoib_dbg_mcast(priv, "restarting multicast task\n");
@@ -6975,9 +6975,9 @@ diff -Nur linux-4.1.20.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c linux
/*
* make sure the in-flight joins have finished before we attempt
-diff -Nur linux-4.1.20.orig/drivers/input/gameport/gameport.c linux-4.1.20/drivers/input/gameport/gameport.c
---- linux-4.1.20.orig/drivers/input/gameport/gameport.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/input/gameport/gameport.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/input/gameport/gameport.c linux-4.1.26/drivers/input/gameport/gameport.c
+--- linux-4.1.26.orig/drivers/input/gameport/gameport.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/input/gameport/gameport.c 2016-06-19 15:30:58.639295498 +0200
@@ -124,12 +124,12 @@
tx = 1 << 30;
@@ -7007,9 +7007,9 @@ diff -Nur linux-4.1.20.orig/drivers/input/gameport/gameport.c linux-4.1.20/drive
udelay(i * 10);
if (t2 - t1 < tx) tx = t2 - t1;
}
-diff -Nur linux-4.1.20.orig/drivers/leds/trigger/Kconfig linux-4.1.20/drivers/leds/trigger/Kconfig
---- linux-4.1.20.orig/drivers/leds/trigger/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/leds/trigger/Kconfig 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/leds/trigger/Kconfig linux-4.1.26/drivers/leds/trigger/Kconfig
+--- linux-4.1.26.orig/drivers/leds/trigger/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/leds/trigger/Kconfig 2016-06-19 15:30:58.639295498 +0200
@@ -61,7 +61,7 @@
config LEDS_TRIGGER_CPU
@@ -7019,9 +7019,9 @@ diff -Nur linux-4.1.20.orig/drivers/leds/trigger/Kconfig linux-4.1.20/drivers/le
help
This allows LEDs to be controlled by active CPUs. This shows
the active CPUs across an array of LEDs so you can see which
-diff -Nur linux-4.1.20.orig/drivers/md/bcache/Kconfig linux-4.1.20/drivers/md/bcache/Kconfig
---- linux-4.1.20.orig/drivers/md/bcache/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/md/bcache/Kconfig 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/md/bcache/Kconfig linux-4.1.26/drivers/md/bcache/Kconfig
+--- linux-4.1.26.orig/drivers/md/bcache/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/md/bcache/Kconfig 2016-06-19 15:30:58.639295498 +0200
@@ -1,6 +1,7 @@
config BCACHE
@@ -7030,10 +7030,10 @@ diff -Nur linux-4.1.20.orig/drivers/md/bcache/Kconfig linux-4.1.20/drivers/md/bc
---help---
Allows a block device to be used as cache for other devices; uses
a btree for indexing and the layout is optimized for SSDs.
-diff -Nur linux-4.1.20.orig/drivers/md/dm.c linux-4.1.20/drivers/md/dm.c
---- linux-4.1.20.orig/drivers/md/dm.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/md/dm.c 2016-03-21 20:18:31.000000000 +0100
-@@ -2134,7 +2134,7 @@
+diff -Nur linux-4.1.26.orig/drivers/md/dm.c linux-4.1.26/drivers/md/dm.c
+--- linux-4.1.26.orig/drivers/md/dm.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/md/dm.c 2016-06-19 15:30:58.639295498 +0200
+@@ -2133,7 +2133,7 @@
/* Establish tio->ti before queuing work (map_tio_request) */
tio->ti = ti;
queue_kthread_work(&md->kworker, &tio->work);
@@ -7042,9 +7042,9 @@ diff -Nur linux-4.1.20.orig/drivers/md/dm.c linux-4.1.20/drivers/md/dm.c
}
goto out;
-diff -Nur linux-4.1.20.orig/drivers/md/raid5.c linux-4.1.20/drivers/md/raid5.c
---- linux-4.1.20.orig/drivers/md/raid5.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/md/raid5.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/md/raid5.c linux-4.1.26/drivers/md/raid5.c
+--- linux-4.1.26.orig/drivers/md/raid5.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/md/raid5.c 2016-06-19 15:30:58.639295498 +0200
@@ -1918,8 +1918,9 @@
struct raid5_percpu *percpu;
unsigned long cpu;
@@ -7066,7 +7066,7 @@ diff -Nur linux-4.1.20.orig/drivers/md/raid5.c linux-4.1.20/drivers/md/raid5.c
}
static struct stripe_head *alloc_stripe(struct kmem_cache *sc, gfp_t gfp)
-@@ -6363,6 +6365,7 @@
+@@ -6375,6 +6377,7 @@
__func__, cpu);
break;
}
@@ -7074,9 +7074,9 @@ diff -Nur linux-4.1.20.orig/drivers/md/raid5.c linux-4.1.20/drivers/md/raid5.c
}
put_online_cpus();
-diff -Nur linux-4.1.20.orig/drivers/md/raid5.h linux-4.1.20/drivers/md/raid5.h
---- linux-4.1.20.orig/drivers/md/raid5.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/md/raid5.h 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/md/raid5.h linux-4.1.26/drivers/md/raid5.h
+--- linux-4.1.26.orig/drivers/md/raid5.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/md/raid5.h 2016-06-19 15:30:58.639295498 +0200
@@ -495,6 +495,7 @@
int recovery_disabled;
/* per cpu variables */
@@ -7085,93 +7085,9 @@ diff -Nur linux-4.1.20.orig/drivers/md/raid5.h linux-4.1.20/drivers/md/raid5.h
struct page *spare_page; /* Used when checking P/Q in raid6 */
struct flex_array *scribble; /* space for constructing buffer
* lists and performing address
-diff -Nur linux-4.1.20.orig/drivers/misc/Kconfig linux-4.1.20/drivers/misc/Kconfig
---- linux-4.1.20.orig/drivers/misc/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/misc/Kconfig 2016-03-21 20:18:31.000000000 +0100
-@@ -54,6 +54,7 @@
- config ATMEL_TCLIB
- bool "Atmel AT32/AT91 Timer/Counter Library"
- depends on (AVR32 || ARCH_AT91)
-+ default y if PREEMPT_RT_FULL
- help
- Select this if you want a library to allocate the Timer/Counter
- blocks found on many Atmel processors. This facilitates using
-@@ -69,8 +70,7 @@
- are combined to make a single 32-bit timer.
-
- When GENERIC_CLOCKEVENTS is defined, the third timer channel
-- may be used as a clock event device supporting oneshot mode
-- (delays of up to two seconds) based on the 32 KiHz clock.
-+ may be used as a clock event device supporting oneshot mode.
-
- config ATMEL_TCB_CLKSRC_BLOCK
- int
-@@ -84,6 +84,15 @@
- TC can be used for other purposes, such as PWM generation and
- interval timing.
-
-+config ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
-+ bool "TC Block use 32 KiHz clock"
-+ depends on ATMEL_TCB_CLKSRC
-+ default y if !PREEMPT_RT_FULL
-+ help
-+ Select this to use 32 KiHz base clock rate as TC block clock
-+ source for clock events.
-+
-+
- config DUMMY_IRQ
- tristate "Dummy IRQ handler"
- default n
-@@ -113,6 +122,35 @@
- for information on the specific driver level and support statement
- for your IBM server.
-
-+config HWLAT_DETECTOR
-+ tristate "Testing module to detect hardware-induced latencies"
-+ depends on DEBUG_FS
-+ depends on RING_BUFFER
-+ default m
-+ ---help---
-+ A simple hardware latency detector. Use this module to detect
-+ large latencies introduced by the behavior of the underlying
-+ system firmware external to Linux. We do this using periodic
-+ use of stop_machine to grab all available CPUs and measure
-+ for unexplainable gaps in the CPU timestamp counter(s). By
-+ default, the module is not enabled until the "enable" file
-+ within the "hwlat_detector" debugfs directory is toggled.
-+
-+ This module is often used to detect SMI (System Management
-+ Interrupts) on x86 systems, though is not x86 specific. To
-+ this end, we default to using a sample window of 1 second,
-+ during which we will sample for 0.5 seconds. If an SMI or
-+ similar event occurs during that time, it is recorded
-+ into an 8K samples global ring buffer until retreived.
-+
-+ WARNING: This software should never be enabled (it can be built
-+ but should not be turned on after it is loaded) in a production
-+ environment where high latencies are a concern since the
-+ sampling mechanism actually introduces latencies for
-+ regular tasks while the CPU(s) are being held.
-+
-+ If unsure, say N
-+
- config PHANTOM
- tristate "Sensable PHANToM (PCI)"
- depends on PCI
-diff -Nur linux-4.1.20.orig/drivers/misc/Makefile linux-4.1.20/drivers/misc/Makefile
---- linux-4.1.20.orig/drivers/misc/Makefile 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/misc/Makefile 2016-03-21 20:18:31.000000000 +0100
-@@ -38,6 +38,7 @@
- obj-$(CONFIG_HMC6352) += hmc6352.o
- obj-y += eeprom/
- obj-y += cb710/
-+obj-$(CONFIG_HWLAT_DETECTOR) += hwlat_detector.o
- obj-$(CONFIG_SPEAR13XX_PCIE_GADGET) += spear13xx_pcie_gadget.o
- obj-$(CONFIG_VMWARE_BALLOON) += vmw_balloon.o
- obj-$(CONFIG_ARM_CHARLCD) += arm-charlcd.o
-diff -Nur linux-4.1.20.orig/drivers/misc/hwlat_detector.c linux-4.1.20/drivers/misc/hwlat_detector.c
---- linux-4.1.20.orig/drivers/misc/hwlat_detector.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/drivers/misc/hwlat_detector.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/misc/hwlat_detector.c linux-4.1.26/drivers/misc/hwlat_detector.c
+--- linux-4.1.26.orig/drivers/misc/hwlat_detector.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/drivers/misc/hwlat_detector.c 2016-06-19 15:30:58.643295653 +0200
@@ -0,0 +1,1240 @@
+/*
+ * hwlat_detector.c - A simple Hardware Latency detector.
@@ -8413,9 +8329,93 @@ diff -Nur linux-4.1.20.orig/drivers/misc/hwlat_detector.c linux-4.1.20/drivers/m
+
+module_init(detector_init);
+module_exit(detector_exit);
-diff -Nur linux-4.1.20.orig/drivers/mmc/host/mmci.c linux-4.1.20/drivers/mmc/host/mmci.c
---- linux-4.1.20.orig/drivers/mmc/host/mmci.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/mmc/host/mmci.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/misc/Kconfig linux-4.1.26/drivers/misc/Kconfig
+--- linux-4.1.26.orig/drivers/misc/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/misc/Kconfig 2016-06-19 15:30:58.639295498 +0200
+@@ -54,6 +54,7 @@
+ config ATMEL_TCLIB
+ bool "Atmel AT32/AT91 Timer/Counter Library"
+ depends on (AVR32 || ARCH_AT91)
++ default y if PREEMPT_RT_FULL
+ help
+ Select this if you want a library to allocate the Timer/Counter
+ blocks found on many Atmel processors. This facilitates using
+@@ -69,8 +70,7 @@
+ are combined to make a single 32-bit timer.
+
+ When GENERIC_CLOCKEVENTS is defined, the third timer channel
+- may be used as a clock event device supporting oneshot mode
+- (delays of up to two seconds) based on the 32 KiHz clock.
++ may be used as a clock event device supporting oneshot mode.
+
+ config ATMEL_TCB_CLKSRC_BLOCK
+ int
+@@ -84,6 +84,15 @@
+ TC can be used for other purposes, such as PWM generation and
+ interval timing.
+
++config ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
++ bool "TC Block use 32 KiHz clock"
++ depends on ATMEL_TCB_CLKSRC
++ default y if !PREEMPT_RT_FULL
++ help
++ Select this to use 32 KiHz base clock rate as TC block clock
++ source for clock events.
++
++
+ config DUMMY_IRQ
+ tristate "Dummy IRQ handler"
+ default n
+@@ -113,6 +122,35 @@
+ for information on the specific driver level and support statement
+ for your IBM server.
+
++config HWLAT_DETECTOR
++ tristate "Testing module to detect hardware-induced latencies"
++ depends on DEBUG_FS
++ depends on RING_BUFFER
++ default m
++ ---help---
++ A simple hardware latency detector. Use this module to detect
++ large latencies introduced by the behavior of the underlying
++ system firmware external to Linux. We do this using periodic
++ use of stop_machine to grab all available CPUs and measure
++ for unexplainable gaps in the CPU timestamp counter(s). By
++ default, the module is not enabled until the "enable" file
++ within the "hwlat_detector" debugfs directory is toggled.
++
++ This module is often used to detect SMI (System Management
++ Interrupts) on x86 systems, though is not x86 specific. To
++ this end, we default to using a sample window of 1 second,
++ during which we will sample for 0.5 seconds. If an SMI or
++ similar event occurs during that time, it is recorded
++ into an 8K samples global ring buffer until retreived.
++
++ WARNING: This software should never be enabled (it can be built
++ but should not be turned on after it is loaded) in a production
++ environment where high latencies are a concern since the
++ sampling mechanism actually introduces latencies for
++ regular tasks while the CPU(s) are being held.
++
++ If unsure, say N
++
+ config PHANTOM
+ tristate "Sensable PHANToM (PCI)"
+ depends on PCI
+diff -Nur linux-4.1.26.orig/drivers/misc/Makefile linux-4.1.26/drivers/misc/Makefile
+--- linux-4.1.26.orig/drivers/misc/Makefile 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/misc/Makefile 2016-06-19 15:30:58.639295498 +0200
+@@ -38,6 +38,7 @@
+ obj-$(CONFIG_HMC6352) += hmc6352.o
+ obj-y += eeprom/
+ obj-y += cb710/
++obj-$(CONFIG_HWLAT_DETECTOR) += hwlat_detector.o
+ obj-$(CONFIG_SPEAR13XX_PCIE_GADGET) += spear13xx_pcie_gadget.o
+ obj-$(CONFIG_VMWARE_BALLOON) += vmw_balloon.o
+ obj-$(CONFIG_ARM_CHARLCD) += arm-charlcd.o
+diff -Nur linux-4.1.26.orig/drivers/mmc/host/mmci.c linux-4.1.26/drivers/mmc/host/mmci.c
+--- linux-4.1.26.orig/drivers/mmc/host/mmci.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/mmc/host/mmci.c 2016-06-19 15:30:58.643295653 +0200
@@ -1155,15 +1155,12 @@
struct sg_mapping_iter *sg_miter = &host->sg_miter;
struct variant_data *variant = host->variant;
@@ -8441,9 +8441,9 @@ diff -Nur linux-4.1.20.orig/drivers/mmc/host/mmci.c linux-4.1.20/drivers/mmc/hos
/*
* If we have less than the fifo 'half-full' threshold to transfer,
* trigger a PIO interrupt as soon as any data is available.
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/3com/3c59x.c linux-4.1.20/drivers/net/ethernet/3com/3c59x.c
---- linux-4.1.20.orig/drivers/net/ethernet/3com/3c59x.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/3com/3c59x.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/3com/3c59x.c linux-4.1.26/drivers/net/ethernet/3com/3c59x.c
+--- linux-4.1.26.orig/drivers/net/ethernet/3com/3c59x.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/3com/3c59x.c 2016-06-19 15:30:58.643295653 +0200
@@ -842,9 +842,9 @@
{
struct vortex_private *vp = netdev_priv(dev);
@@ -8471,9 +8471,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/3com/3c59x.c linux-4.1.20/drive
}
}
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c linux-4.1.20/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
---- linux-4.1.20.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/atheros/atl1c/atl1c_main.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c linux-4.1.26/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
+--- linux-4.1.26.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/atheros/atl1c/atl1c_main.c 2016-06-19 15:30:58.643295653 +0200
@@ -2212,11 +2212,7 @@
}
@@ -8487,9 +8487,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c linu
if (atl1c_tpd_avail(adapter, type) < tpd_req) {
/* no enough descriptor, just stop queue */
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c linux-4.1.20/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
---- linux-4.1.20.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/atheros/atl1e/atl1e_main.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c linux-4.1.26/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
+--- linux-4.1.26.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/atheros/atl1e/atl1e_main.c 2016-06-19 15:30:58.643295653 +0200
@@ -1880,8 +1880,7 @@
return NETDEV_TX_OK;
}
@@ -8500,9 +8500,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c linu
if (atl1e_tpd_avail(adapter) < tpd_req) {
/* no enough descriptor, just stop queue */
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/chelsio/cxgb/sge.c linux-4.1.20/drivers/net/ethernet/chelsio/cxgb/sge.c
---- linux-4.1.20.orig/drivers/net/ethernet/chelsio/cxgb/sge.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/chelsio/cxgb/sge.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/chelsio/cxgb/sge.c linux-4.1.26/drivers/net/ethernet/chelsio/cxgb/sge.c
+--- linux-4.1.26.orig/drivers/net/ethernet/chelsio/cxgb/sge.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/chelsio/cxgb/sge.c 2016-06-19 15:30:58.643295653 +0200
@@ -1664,8 +1664,7 @@
struct cmdQ *q = &sge->cmdQ[qid];
unsigned int credits, pidx, genbit, count, use_sched_skb = 0;
@@ -8513,9 +8513,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/chelsio/cxgb/sge.c linux-4.1.20
reclaim_completed_tx(sge, q);
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/freescale/gianfar.c linux-4.1.20/drivers/net/ethernet/freescale/gianfar.c
---- linux-4.1.20.orig/drivers/net/ethernet/freescale/gianfar.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/freescale/gianfar.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/freescale/gianfar.c linux-4.1.26/drivers/net/ethernet/freescale/gianfar.c
+--- linux-4.1.26.orig/drivers/net/ethernet/freescale/gianfar.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/freescale/gianfar.c 2016-06-19 15:30:58.643295653 +0200
@@ -1540,7 +1540,7 @@
if (netif_running(ndev)) {
@@ -8569,9 +8569,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/freescale/gianfar.c linux-4.1.2
}
netif_dbg(priv, tx_err, dev, "Transmit Error\n");
}
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/neterion/s2io.c linux-4.1.20/drivers/net/ethernet/neterion/s2io.c
---- linux-4.1.20.orig/drivers/net/ethernet/neterion/s2io.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/neterion/s2io.c 2016-03-21 20:18:31.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/neterion/s2io.c linux-4.1.26/drivers/net/ethernet/neterion/s2io.c
+--- linux-4.1.26.orig/drivers/net/ethernet/neterion/s2io.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/neterion/s2io.c 2016-06-19 15:30:58.647295807 +0200
@@ -4084,12 +4084,7 @@
[skb->priority & (MAX_TX_FIFOS - 1)];
fifo = &mac_control->fifos[queue];
@@ -8586,9 +8586,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/neterion/s2io.c linux-4.1.20/dr
if (sp->config.multiq) {
if (__netif_subqueue_stopped(dev, fifo->fifo_no)) {
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c linux-4.1.20/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
---- linux-4.1.20.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c linux-4.1.26/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
+--- linux-4.1.26.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c 2016-06-19 15:30:58.647295807 +0200
@@ -2137,10 +2137,8 @@
struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring;
unsigned long flags;
@@ -8602,9 +8602,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
if (unlikely(!PCH_GBE_DESC_UNUSED(tx_ring))) {
netif_stop_queue(netdev);
spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/realtek/8139too.c linux-4.1.20/drivers/net/ethernet/realtek/8139too.c
---- linux-4.1.20.orig/drivers/net/ethernet/realtek/8139too.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/realtek/8139too.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/realtek/8139too.c linux-4.1.26/drivers/net/ethernet/realtek/8139too.c
+--- linux-4.1.26.orig/drivers/net/ethernet/realtek/8139too.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/realtek/8139too.c 2016-06-19 15:30:58.647295807 +0200
@@ -2229,7 +2229,7 @@
struct rtl8139_private *tp = netdev_priv(dev);
const int irq = tp->pci_dev->irq;
@@ -8614,9 +8614,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/realtek/8139too.c linux-4.1.20/
rtl8139_interrupt(irq, dev);
enable_irq(irq);
}
-diff -Nur linux-4.1.20.orig/drivers/net/ethernet/tehuti/tehuti.c linux-4.1.20/drivers/net/ethernet/tehuti/tehuti.c
---- linux-4.1.20.orig/drivers/net/ethernet/tehuti/tehuti.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/ethernet/tehuti/tehuti.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/ethernet/tehuti/tehuti.c linux-4.1.26/drivers/net/ethernet/tehuti/tehuti.c
+--- linux-4.1.26.orig/drivers/net/ethernet/tehuti/tehuti.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/ethernet/tehuti/tehuti.c 2016-06-19 15:30:58.647295807 +0200
@@ -1629,13 +1629,8 @@
unsigned long flags;
@@ -8633,9 +8633,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/ethernet/tehuti/tehuti.c linux-4.1.20/dr
/* build tx descriptor */
BDX_ASSERT(f->m.wptr >= f->m.memsz); /* started with valid wptr */
-diff -Nur linux-4.1.20.orig/drivers/net/rionet.c linux-4.1.20/drivers/net/rionet.c
---- linux-4.1.20.orig/drivers/net/rionet.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/rionet.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/rionet.c linux-4.1.26/drivers/net/rionet.c
+--- linux-4.1.26.orig/drivers/net/rionet.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/rionet.c 2016-06-19 15:30:58.647295807 +0200
@@ -174,11 +174,7 @@
unsigned long flags;
int add_num = 1;
@@ -8649,9 +8649,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/rionet.c linux-4.1.20/drivers/net/rionet
if (is_multicast_ether_addr(eth->h_dest))
add_num = nets[rnet->mport->id].nact;
-diff -Nur linux-4.1.20.orig/drivers/net/wireless/orinoco/orinoco_usb.c linux-4.1.20/drivers/net/wireless/orinoco/orinoco_usb.c
---- linux-4.1.20.orig/drivers/net/wireless/orinoco/orinoco_usb.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/net/wireless/orinoco/orinoco_usb.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/net/wireless/orinoco/orinoco_usb.c linux-4.1.26/drivers/net/wireless/orinoco/orinoco_usb.c
+--- linux-4.1.26.orig/drivers/net/wireless/orinoco/orinoco_usb.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/net/wireless/orinoco/orinoco_usb.c 2016-06-19 15:30:58.647295807 +0200
@@ -697,7 +697,7 @@
while (!ctx->done.done && msecs--)
udelay(1000);
@@ -8661,9 +8661,9 @@ diff -Nur linux-4.1.20.orig/drivers/net/wireless/orinoco/orinoco_usb.c linux-4.1
ctx->done.done);
}
break;
-diff -Nur linux-4.1.20.orig/drivers/pci/access.c linux-4.1.20/drivers/pci/access.c
---- linux-4.1.20.orig/drivers/pci/access.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/pci/access.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/pci/access.c linux-4.1.26/drivers/pci/access.c
+--- linux-4.1.26.orig/drivers/pci/access.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/pci/access.c 2016-06-19 15:30:58.647295807 +0200
@@ -561,7 +561,7 @@
WARN_ON(!dev->block_cfg_access);
@@ -8673,9 +8673,9 @@ diff -Nur linux-4.1.20.orig/drivers/pci/access.c linux-4.1.20/drivers/pci/access
raw_spin_unlock_irqrestore(&pci_lock, flags);
}
EXPORT_SYMBOL_GPL(pci_cfg_access_unlock);
-diff -Nur linux-4.1.20.orig/drivers/scsi/fcoe/fcoe.c linux-4.1.20/drivers/scsi/fcoe/fcoe.c
---- linux-4.1.20.orig/drivers/scsi/fcoe/fcoe.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/scsi/fcoe/fcoe.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/scsi/fcoe/fcoe.c linux-4.1.26/drivers/scsi/fcoe/fcoe.c
+--- linux-4.1.26.orig/drivers/scsi/fcoe/fcoe.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/scsi/fcoe/fcoe.c 2016-06-19 15:30:58.647295807 +0200
@@ -1287,7 +1287,7 @@
struct sk_buff *skb;
#ifdef CONFIG_SMP
@@ -8739,9 +8739,9 @@ diff -Nur linux-4.1.20.orig/drivers/scsi/fcoe/fcoe.c linux-4.1.20/drivers/scsi/f
kfree_skb(skb);
}
-diff -Nur linux-4.1.20.orig/drivers/scsi/fcoe/fcoe_ctlr.c linux-4.1.20/drivers/scsi/fcoe/fcoe_ctlr.c
---- linux-4.1.20.orig/drivers/scsi/fcoe/fcoe_ctlr.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/scsi/fcoe/fcoe_ctlr.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/scsi/fcoe/fcoe_ctlr.c linux-4.1.26/drivers/scsi/fcoe/fcoe_ctlr.c
+--- linux-4.1.26.orig/drivers/scsi/fcoe/fcoe_ctlr.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/scsi/fcoe/fcoe_ctlr.c 2016-06-19 15:30:58.651295961 +0200
@@ -831,7 +831,7 @@
INIT_LIST_HEAD(&del_list);
@@ -8760,9 +8760,9 @@ diff -Nur linux-4.1.20.orig/drivers/scsi/fcoe/fcoe_ctlr.c linux-4.1.20/drivers/s
list_for_each_entry_safe(fcf, next, &del_list, list) {
/* Removes fcf from current list */
-diff -Nur linux-4.1.20.orig/drivers/scsi/libfc/fc_exch.c linux-4.1.20/drivers/scsi/libfc/fc_exch.c
---- linux-4.1.20.orig/drivers/scsi/libfc/fc_exch.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/scsi/libfc/fc_exch.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/scsi/libfc/fc_exch.c linux-4.1.26/drivers/scsi/libfc/fc_exch.c
+--- linux-4.1.26.orig/drivers/scsi/libfc/fc_exch.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/scsi/libfc/fc_exch.c 2016-06-19 15:30:58.651295961 +0200
@@ -814,10 +814,10 @@
}
memset(ep, 0, sizeof(*ep));
@@ -8776,9 +8776,9 @@ diff -Nur linux-4.1.20.orig/drivers/scsi/libfc/fc_exch.c linux-4.1.20/drivers/sc
/* peek cache of free slot */
if (pool->left != FC_XID_UNKNOWN) {
-diff -Nur linux-4.1.20.orig/drivers/scsi/libsas/sas_ata.c linux-4.1.20/drivers/scsi/libsas/sas_ata.c
---- linux-4.1.20.orig/drivers/scsi/libsas/sas_ata.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/scsi/libsas/sas_ata.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/scsi/libsas/sas_ata.c linux-4.1.26/drivers/scsi/libsas/sas_ata.c
+--- linux-4.1.26.orig/drivers/scsi/libsas/sas_ata.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/scsi/libsas/sas_ata.c 2016-06-19 15:30:58.651295961 +0200
@@ -190,7 +190,7 @@
/* TODO: audit callers to ensure they are ready for qc_issue to
* unconditionally re-enable interrupts
@@ -8797,9 +8797,9 @@ diff -Nur linux-4.1.20.orig/drivers/scsi/libsas/sas_ata.c linux-4.1.20/drivers/s
return ret;
}
-diff -Nur linux-4.1.20.orig/drivers/scsi/qla2xxx/qla_inline.h linux-4.1.20/drivers/scsi/qla2xxx/qla_inline.h
---- linux-4.1.20.orig/drivers/scsi/qla2xxx/qla_inline.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/scsi/qla2xxx/qla_inline.h 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/scsi/qla2xxx/qla_inline.h linux-4.1.26/drivers/scsi/qla2xxx/qla_inline.h
+--- linux-4.1.26.orig/drivers/scsi/qla2xxx/qla_inline.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/scsi/qla2xxx/qla_inline.h 2016-06-19 15:30:58.651295961 +0200
@@ -59,12 +59,12 @@
{
unsigned long flags;
@@ -8815,9 +8815,9 @@ diff -Nur linux-4.1.20.orig/drivers/scsi/qla2xxx/qla_inline.h linux-4.1.20/drive
}
static inline uint8_t *
-diff -Nur linux-4.1.20.orig/drivers/thermal/x86_pkg_temp_thermal.c linux-4.1.20/drivers/thermal/x86_pkg_temp_thermal.c
---- linux-4.1.20.orig/drivers/thermal/x86_pkg_temp_thermal.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/thermal/x86_pkg_temp_thermal.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/thermal/x86_pkg_temp_thermal.c linux-4.1.26/drivers/thermal/x86_pkg_temp_thermal.c
+--- linux-4.1.26.orig/drivers/thermal/x86_pkg_temp_thermal.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/thermal/x86_pkg_temp_thermal.c 2016-06-19 15:30:58.651295961 +0200
@@ -29,6 +29,7 @@
#include <linux/pm.h>
#include <linux/thermal.h>
@@ -8920,9 +8920,9 @@ diff -Nur linux-4.1.20.orig/drivers/thermal/x86_pkg_temp_thermal.c linux-4.1.20/
for_each_online_cpu(i)
cancel_delayed_work_sync(
&per_cpu(pkg_temp_thermal_threshold_work, i));
-diff -Nur linux-4.1.20.orig/drivers/tty/serial/8250/8250_core.c linux-4.1.20/drivers/tty/serial/8250/8250_core.c
---- linux-4.1.20.orig/drivers/tty/serial/8250/8250_core.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/tty/serial/8250/8250_core.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/tty/serial/8250/8250_core.c linux-4.1.26/drivers/tty/serial/8250/8250_core.c
+--- linux-4.1.26.orig/drivers/tty/serial/8250/8250_core.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/tty/serial/8250/8250_core.c 2016-06-19 15:30:58.651295961 +0200
@@ -36,6 +36,7 @@
#include <linux/nmi.h>
#include <linux/mutex.h>
@@ -8958,9 +8958,9 @@ diff -Nur linux-4.1.20.orig/drivers/tty/serial/8250/8250_core.c linux-4.1.20/dri
locked = spin_trylock_irqsave(&port->lock, flags);
else
spin_lock_irqsave(&port->lock, flags);
-diff -Nur linux-4.1.20.orig/drivers/tty/serial/amba-pl011.c linux-4.1.20/drivers/tty/serial/amba-pl011.c
---- linux-4.1.20.orig/drivers/tty/serial/amba-pl011.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/tty/serial/amba-pl011.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/tty/serial/amba-pl011.c linux-4.1.26/drivers/tty/serial/amba-pl011.c
+--- linux-4.1.26.orig/drivers/tty/serial/amba-pl011.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/tty/serial/amba-pl011.c 2016-06-19 15:30:58.651295961 +0200
@@ -2000,13 +2000,19 @@
clk_enable(uap->clk);
@@ -8994,9 +8994,9 @@ diff -Nur linux-4.1.20.orig/drivers/tty/serial/amba-pl011.c linux-4.1.20/drivers
clk_disable(uap->clk);
}
-diff -Nur linux-4.1.20.orig/drivers/tty/serial/omap-serial.c linux-4.1.20/drivers/tty/serial/omap-serial.c
---- linux-4.1.20.orig/drivers/tty/serial/omap-serial.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/tty/serial/omap-serial.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/tty/serial/omap-serial.c linux-4.1.26/drivers/tty/serial/omap-serial.c
+--- linux-4.1.26.orig/drivers/tty/serial/omap-serial.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/tty/serial/omap-serial.c 2016-06-19 15:30:58.651295961 +0200
@@ -1282,13 +1282,10 @@
pm_runtime_get_sync(up->dev);
@@ -9024,9 +9024,9 @@ diff -Nur linux-4.1.20.orig/drivers/tty/serial/omap-serial.c linux-4.1.20/driver
}
static int __init
-diff -Nur linux-4.1.20.orig/drivers/usb/core/hcd.c linux-4.1.20/drivers/usb/core/hcd.c
---- linux-4.1.20.orig/drivers/usb/core/hcd.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/usb/core/hcd.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/usb/core/hcd.c linux-4.1.26/drivers/usb/core/hcd.c
+--- linux-4.1.26.orig/drivers/usb/core/hcd.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/usb/core/hcd.c 2016-06-19 15:30:58.655296115 +0200
@@ -1684,9 +1684,9 @@
* and no one may trigger the above deadlock situation when
* running complete() in tasklet.
@@ -9039,10 +9039,10 @@ diff -Nur linux-4.1.20.orig/drivers/usb/core/hcd.c linux-4.1.20/drivers/usb/core
usb_anchor_resume_wakeups(anchor);
atomic_dec(&urb->use_count);
-diff -Nur linux-4.1.20.orig/drivers/usb/gadget/function/f_fs.c linux-4.1.20/drivers/usb/gadget/function/f_fs.c
---- linux-4.1.20.orig/drivers/usb/gadget/function/f_fs.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/usb/gadget/function/f_fs.c 2016-03-21 20:18:32.000000000 +0100
-@@ -1405,7 +1405,7 @@
+diff -Nur linux-4.1.26.orig/drivers/usb/gadget/function/f_fs.c linux-4.1.26/drivers/usb/gadget/function/f_fs.c
+--- linux-4.1.26.orig/drivers/usb/gadget/function/f_fs.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/usb/gadget/function/f_fs.c 2016-06-19 15:30:58.655296115 +0200
+@@ -1404,7 +1404,7 @@
pr_info("%s(): freeing\n", __func__);
ffs_data_clear(ffs);
BUG_ON(waitqueue_active(&ffs->ev.waitq) ||
@@ -9051,9 +9051,9 @@ diff -Nur linux-4.1.20.orig/drivers/usb/gadget/function/f_fs.c linux-4.1.20/driv
kfree(ffs->dev_name);
kfree(ffs);
}
-diff -Nur linux-4.1.20.orig/drivers/usb/gadget/legacy/inode.c linux-4.1.20/drivers/usb/gadget/legacy/inode.c
---- linux-4.1.20.orig/drivers/usb/gadget/legacy/inode.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/drivers/usb/gadget/legacy/inode.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/drivers/usb/gadget/legacy/inode.c linux-4.1.26/drivers/usb/gadget/legacy/inode.c
+--- linux-4.1.26.orig/drivers/usb/gadget/legacy/inode.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/drivers/usb/gadget/legacy/inode.c 2016-06-19 15:30:58.655296115 +0200
@@ -345,7 +345,7 @@
spin_unlock_irq (&epdata->dev->lock);
@@ -9072,9 +9072,9 @@ diff -Nur linux-4.1.20.orig/drivers/usb/gadget/legacy/inode.c linux-4.1.20/drive
if (epdata->status == -ECONNRESET)
epdata->status = -EINTR;
} else {
-diff -Nur linux-4.1.20.orig/fs/aio.c linux-4.1.20/fs/aio.c
---- linux-4.1.20.orig/fs/aio.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/aio.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/aio.c linux-4.1.26/fs/aio.c
+--- linux-4.1.26.orig/fs/aio.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/aio.c 2016-06-19 15:30:58.655296115 +0200
@@ -40,6 +40,7 @@
#include <linux/ramfs.h>
#include <linux/percpu-refcount.h>
@@ -9150,9 +9150,9 @@ diff -Nur linux-4.1.20.orig/fs/aio.c linux-4.1.20/fs/aio.c
static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
{
unsigned i, new_nr;
-diff -Nur linux-4.1.20.orig/fs/autofs4/autofs_i.h linux-4.1.20/fs/autofs4/autofs_i.h
---- linux-4.1.20.orig/fs/autofs4/autofs_i.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/autofs4/autofs_i.h 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/autofs4/autofs_i.h linux-4.1.26/fs/autofs4/autofs_i.h
+--- linux-4.1.26.orig/fs/autofs4/autofs_i.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/autofs4/autofs_i.h 2016-06-19 15:30:58.655296115 +0200
@@ -34,6 +34,7 @@
#include <linux/sched.h>
#include <linux/mount.h>
@@ -9161,9 +9161,9 @@ diff -Nur linux-4.1.20.orig/fs/autofs4/autofs_i.h linux-4.1.20/fs/autofs4/autofs
#include <asm/current.h>
#include <asm/uaccess.h>
-diff -Nur linux-4.1.20.orig/fs/autofs4/expire.c linux-4.1.20/fs/autofs4/expire.c
---- linux-4.1.20.orig/fs/autofs4/expire.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/autofs4/expire.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/autofs4/expire.c linux-4.1.26/fs/autofs4/expire.c
+--- linux-4.1.26.orig/fs/autofs4/expire.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/autofs4/expire.c 2016-06-19 15:30:58.655296115 +0200
@@ -150,7 +150,7 @@
parent = p->d_parent;
if (!spin_trylock(&parent->d_lock)) {
@@ -9173,9 +9173,9 @@ diff -Nur linux-4.1.20.orig/fs/autofs4/expire.c linux-4.1.20/fs/autofs4/expire.c
goto relock;
}
spin_unlock(&p->d_lock);
-diff -Nur linux-4.1.20.orig/fs/buffer.c linux-4.1.20/fs/buffer.c
---- linux-4.1.20.orig/fs/buffer.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/buffer.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/buffer.c linux-4.1.26/fs/buffer.c
+--- linux-4.1.26.orig/fs/buffer.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/buffer.c 2016-06-19 15:30:58.655296115 +0200
@@ -301,8 +301,7 @@
* decide that the page is now completely done.
*/
@@ -9243,9 +9243,9 @@ diff -Nur linux-4.1.20.orig/fs/buffer.c linux-4.1.20/fs/buffer.c
preempt_disable();
__this_cpu_inc(bh_accounting.nr);
recalc_bh_state();
-diff -Nur linux-4.1.20.orig/fs/dcache.c linux-4.1.20/fs/dcache.c
---- linux-4.1.20.orig/fs/dcache.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/dcache.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/dcache.c linux-4.1.26/fs/dcache.c
+--- linux-4.1.26.orig/fs/dcache.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/dcache.c 2016-06-19 15:30:58.655296115 +0200
@@ -19,6 +19,7 @@
#include <linux/mm.h>
#include <linux/fs.h>
@@ -9272,9 +9272,9 @@ diff -Nur linux-4.1.20.orig/fs/dcache.c linux-4.1.20/fs/dcache.c
goto again;
}
dentry->d_flags &= ~DCACHE_CANT_MOUNT;
-diff -Nur linux-4.1.20.orig/fs/eventpoll.c linux-4.1.20/fs/eventpoll.c
---- linux-4.1.20.orig/fs/eventpoll.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/eventpoll.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/eventpoll.c linux-4.1.26/fs/eventpoll.c
+--- linux-4.1.26.orig/fs/eventpoll.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/eventpoll.c 2016-06-19 15:30:58.655296115 +0200
@@ -505,12 +505,12 @@
*/
static void ep_poll_safewake(wait_queue_head_t *wq)
@@ -9290,9 +9290,9 @@ diff -Nur linux-4.1.20.orig/fs/eventpoll.c linux-4.1.20/fs/eventpoll.c
}
static void ep_remove_wait_queue(struct eppoll_entry *pwq)
-diff -Nur linux-4.1.20.orig/fs/exec.c linux-4.1.20/fs/exec.c
---- linux-4.1.20.orig/fs/exec.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/exec.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/exec.c linux-4.1.26/fs/exec.c
+--- linux-4.1.26.orig/fs/exec.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/exec.c 2016-06-19 15:30:58.659296270 +0200
@@ -859,12 +859,14 @@
}
}
@@ -9308,9 +9308,9 @@ diff -Nur linux-4.1.20.orig/fs/exec.c linux-4.1.20/fs/exec.c
task_unlock(tsk);
if (old_mm) {
up_read(&old_mm->mmap_sem);
-diff -Nur linux-4.1.20.orig/fs/f2fs/f2fs.h linux-4.1.20/fs/f2fs/f2fs.h
---- linux-4.1.20.orig/fs/f2fs/f2fs.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/f2fs/f2fs.h 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/f2fs/f2fs.h linux-4.1.26/fs/f2fs/f2fs.h
+--- linux-4.1.26.orig/fs/f2fs/f2fs.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/f2fs/f2fs.h 2016-06-19 15:30:58.659296270 +0200
@@ -22,7 +22,6 @@
#ifdef CONFIG_F2FS_CHECK_FS
@@ -9336,9 +9336,9 @@ diff -Nur linux-4.1.20.orig/fs/f2fs/f2fs.h linux-4.1.20/fs/f2fs/f2fs.h
}
static inline void f2fs_unlock_all(struct f2fs_sb_info *sbi)
-diff -Nur linux-4.1.20.orig/fs/jbd/checkpoint.c linux-4.1.20/fs/jbd/checkpoint.c
---- linux-4.1.20.orig/fs/jbd/checkpoint.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/jbd/checkpoint.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/jbd/checkpoint.c linux-4.1.26/fs/jbd/checkpoint.c
+--- linux-4.1.26.orig/fs/jbd/checkpoint.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/jbd/checkpoint.c 2016-06-19 15:30:58.659296270 +0200
@@ -129,6 +129,8 @@
if (journal->j_flags & JFS_ABORT)
return;
@@ -9348,9 +9348,9 @@ diff -Nur linux-4.1.20.orig/fs/jbd/checkpoint.c linux-4.1.20/fs/jbd/checkpoint.c
mutex_lock(&journal->j_checkpoint_mutex);
/*
-diff -Nur linux-4.1.20.orig/fs/jbd2/checkpoint.c linux-4.1.20/fs/jbd2/checkpoint.c
---- linux-4.1.20.orig/fs/jbd2/checkpoint.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/jbd2/checkpoint.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/jbd2/checkpoint.c linux-4.1.26/fs/jbd2/checkpoint.c
+--- linux-4.1.26.orig/fs/jbd2/checkpoint.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/jbd2/checkpoint.c 2016-06-19 15:30:58.659296270 +0200
@@ -116,6 +116,8 @@
nblocks = jbd2_space_needed(journal);
while (jbd2_log_space_left(journal) < nblocks) {
@@ -9360,9 +9360,9 @@ diff -Nur linux-4.1.20.orig/fs/jbd2/checkpoint.c linux-4.1.20/fs/jbd2/checkpoint
mutex_lock(&journal->j_checkpoint_mutex);
/*
-diff -Nur linux-4.1.20.orig/fs/namespace.c linux-4.1.20/fs/namespace.c
---- linux-4.1.20.orig/fs/namespace.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/namespace.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/namespace.c linux-4.1.26/fs/namespace.c
+--- linux-4.1.26.orig/fs/namespace.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/namespace.c 2016-06-19 15:30:58.659296270 +0200
@@ -14,6 +14,7 @@
#include <linux/mnt_namespace.h>
#include <linux/user_namespace.h>
@@ -9385,9 +9385,9 @@ diff -Nur linux-4.1.20.orig/fs/namespace.c linux-4.1.20/fs/namespace.c
/*
* After the slowpath clears MNT_WRITE_HOLD, mnt_is_readonly will
* be set to match its requirements. So we must not load that until
-diff -Nur linux-4.1.20.orig/fs/ntfs/aops.c linux-4.1.20/fs/ntfs/aops.c
---- linux-4.1.20.orig/fs/ntfs/aops.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/ntfs/aops.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/ntfs/aops.c linux-4.1.26/fs/ntfs/aops.c
+--- linux-4.1.26.orig/fs/ntfs/aops.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/ntfs/aops.c 2016-06-19 15:30:58.659296270 +0200
@@ -107,8 +107,7 @@
"0x%llx.", (unsigned long long)bh->b_blocknr);
}
@@ -9435,9 +9435,9 @@ diff -Nur linux-4.1.20.orig/fs/ntfs/aops.c linux-4.1.20/fs/ntfs/aops.c
}
/**
-diff -Nur linux-4.1.20.orig/fs/timerfd.c linux-4.1.20/fs/timerfd.c
---- linux-4.1.20.orig/fs/timerfd.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/timerfd.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/timerfd.c linux-4.1.26/fs/timerfd.c
+--- linux-4.1.26.orig/fs/timerfd.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/timerfd.c 2016-06-19 15:30:58.659296270 +0200
@@ -450,7 +450,10 @@
break;
}
@@ -9450,9 +9450,9 @@ diff -Nur linux-4.1.20.orig/fs/timerfd.c linux-4.1.20/fs/timerfd.c
}
/*
-diff -Nur linux-4.1.20.orig/fs/xfs/xfs_inode.c linux-4.1.20/fs/xfs/xfs_inode.c
---- linux-4.1.20.orig/fs/xfs/xfs_inode.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/xfs/xfs_inode.c 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/xfs/xfs_inode.c linux-4.1.26/fs/xfs/xfs_inode.c
+--- linux-4.1.26.orig/fs/xfs/xfs_inode.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/xfs/xfs_inode.c 2016-06-19 15:30:58.659296270 +0200
@@ -164,7 +164,7 @@
(XFS_MMAPLOCK_SHARED | XFS_MMAPLOCK_EXCL));
ASSERT((lock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL)) !=
@@ -9575,9 +9575,9 @@ diff -Nur linux-4.1.20.orig/fs/xfs/xfs_inode.c linux-4.1.20/fs/xfs/xfs_inode.c
try_lock = 0;
i = 0;
-diff -Nur linux-4.1.20.orig/fs/xfs/xfs_inode.h linux-4.1.20/fs/xfs/xfs_inode.h
---- linux-4.1.20.orig/fs/xfs/xfs_inode.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/fs/xfs/xfs_inode.h 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/fs/xfs/xfs_inode.h linux-4.1.26/fs/xfs/xfs_inode.h
+--- linux-4.1.26.orig/fs/xfs/xfs_inode.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/fs/xfs/xfs_inode.h 2016-06-19 15:30:58.659296270 +0200
@@ -284,9 +284,9 @@
* Flags for lockdep annotations.
*
@@ -9641,29 +9641,22 @@ diff -Nur linux-4.1.20.orig/fs/xfs/xfs_inode.h linux-4.1.20/fs/xfs/xfs_inode.h
-
-#define XFS_IOLOCK_SHIFT 16
-#define XFS_IOLOCK_PARENT (XFS_LOCK_PARENT << XFS_IOLOCK_SHIFT)
--
--#define XFS_MMAPLOCK_SHIFT 20
--
--#define XFS_ILOCK_SHIFT 24
--#define XFS_ILOCK_PARENT (XFS_LOCK_PARENT << XFS_ILOCK_SHIFT)
--#define XFS_ILOCK_RTBITMAP (XFS_LOCK_RTBITMAP << XFS_ILOCK_SHIFT)
--#define XFS_ILOCK_RTSUM (XFS_LOCK_RTSUM << XFS_ILOCK_SHIFT)
--
--#define XFS_IOLOCK_DEP_MASK 0x000f0000
--#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
--#define XFS_ILOCK_DEP_MASK 0xff000000
--#define XFS_LOCK_DEP_MASK (XFS_IOLOCK_DEP_MASK | \
+#define XFS_IOLOCK_SHIFT 16
+#define XFS_IOLOCK_PARENT_VAL 4
+#define XFS_IOLOCK_MAX_SUBCLASS (XFS_IOLOCK_PARENT_VAL - 1)
+#define XFS_IOLOCK_DEP_MASK 0x000f0000
+#define XFS_IOLOCK_PARENT (XFS_IOLOCK_PARENT_VAL << XFS_IOLOCK_SHIFT)
-+
+
+-#define XFS_MMAPLOCK_SHIFT 20
+#define XFS_MMAPLOCK_SHIFT 20
+#define XFS_MMAPLOCK_NUMORDER 0
+#define XFS_MMAPLOCK_MAX_SUBCLASS 3
+#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
-+
+
+-#define XFS_ILOCK_SHIFT 24
+-#define XFS_ILOCK_PARENT (XFS_LOCK_PARENT << XFS_ILOCK_SHIFT)
+-#define XFS_ILOCK_RTBITMAP (XFS_LOCK_RTBITMAP << XFS_ILOCK_SHIFT)
+-#define XFS_ILOCK_RTSUM (XFS_LOCK_RTSUM << XFS_ILOCK_SHIFT)
+#define XFS_ILOCK_SHIFT 24
+#define XFS_ILOCK_PARENT_VAL 5
+#define XFS_ILOCK_MAX_SUBCLASS (XFS_ILOCK_PARENT_VAL - 1)
@@ -9673,14 +9666,18 @@ diff -Nur linux-4.1.20.orig/fs/xfs/xfs_inode.h linux-4.1.20/fs/xfs/xfs_inode.h
+#define XFS_ILOCK_PARENT (XFS_ILOCK_PARENT_VAL << XFS_ILOCK_SHIFT)
+#define XFS_ILOCK_RTBITMAP (XFS_ILOCK_RTBITMAP_VAL << XFS_ILOCK_SHIFT)
+#define XFS_ILOCK_RTSUM (XFS_ILOCK_RTSUM_VAL << XFS_ILOCK_SHIFT)
-+
+
+-#define XFS_IOLOCK_DEP_MASK 0x000f0000
+-#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
+-#define XFS_ILOCK_DEP_MASK 0xff000000
+-#define XFS_LOCK_DEP_MASK (XFS_IOLOCK_DEP_MASK | \
+#define XFS_LOCK_SUBCLASS_MASK (XFS_IOLOCK_DEP_MASK | \
XFS_MMAPLOCK_DEP_MASK | \
XFS_ILOCK_DEP_MASK)
-diff -Nur linux-4.1.20.orig/include/acpi/platform/aclinux.h linux-4.1.20/include/acpi/platform/aclinux.h
---- linux-4.1.20.orig/include/acpi/platform/aclinux.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/acpi/platform/aclinux.h 2016-03-21 20:18:32.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/acpi/platform/aclinux.h linux-4.1.26/include/acpi/platform/aclinux.h
+--- linux-4.1.26.orig/include/acpi/platform/aclinux.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/acpi/platform/aclinux.h 2016-06-19 15:30:58.659296270 +0200
@@ -123,6 +123,7 @@
#define acpi_cache_t struct kmem_cache
@@ -9710,9 +9707,9 @@ diff -Nur linux-4.1.20.orig/include/acpi/platform/aclinux.h linux-4.1.20/include
/*
* OSL interfaces used by debugger/disassembler
*/
-diff -Nur linux-4.1.20.orig/include/asm-generic/bug.h linux-4.1.20/include/asm-generic/bug.h
---- linux-4.1.20.orig/include/asm-generic/bug.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/asm-generic/bug.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/asm-generic/bug.h linux-4.1.26/include/asm-generic/bug.h
+--- linux-4.1.26.orig/include/asm-generic/bug.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/asm-generic/bug.h 2016-06-19 15:30:58.663296424 +0200
@@ -206,6 +206,20 @@
# define WARN_ON_SMP(x) ({0;})
#endif
@@ -9734,9 +9731,9 @@ diff -Nur linux-4.1.20.orig/include/asm-generic/bug.h linux-4.1.20/include/asm-g
#endif /* __ASSEMBLY__ */
#endif
-diff -Nur linux-4.1.20.orig/include/asm-generic/futex.h linux-4.1.20/include/asm-generic/futex.h
---- linux-4.1.20.orig/include/asm-generic/futex.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/asm-generic/futex.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/asm-generic/futex.h linux-4.1.26/include/asm-generic/futex.h
+--- linux-4.1.26.orig/include/asm-generic/futex.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/asm-generic/futex.h 2016-06-19 15:30:58.663296424 +0200
@@ -8,8 +8,7 @@
#ifndef CONFIG_SMP
/*
@@ -9779,20 +9776,9 @@ diff -Nur linux-4.1.20.orig/include/asm-generic/futex.h linux-4.1.20/include/asm
return 0;
}
-diff -Nur linux-4.1.20.orig/include/linux/blk-mq.h linux-4.1.20/include/linux/blk-mq.h
---- linux-4.1.20.orig/include/linux/blk-mq.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/blk-mq.h 2016-03-21 20:18:33.000000000 +0100
-@@ -202,6 +202,7 @@
-
- struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *, const int ctx_index);
- struct blk_mq_hw_ctx *blk_mq_alloc_single_hw_queue(struct blk_mq_tag_set *, unsigned int, int);
-+void __blk_mq_complete_request_remote_work(struct work_struct *work);
-
- int blk_mq_request_started(struct request *rq);
- void blk_mq_start_request(struct request *rq);
-diff -Nur linux-4.1.20.orig/include/linux/blkdev.h linux-4.1.20/include/linux/blkdev.h
---- linux-4.1.20.orig/include/linux/blkdev.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/blkdev.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/blkdev.h linux-4.1.26/include/linux/blkdev.h
+--- linux-4.1.26.orig/include/linux/blkdev.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/blkdev.h 2016-06-19 15:30:58.663296424 +0200
@@ -101,6 +101,7 @@
struct list_head queuelist;
union {
@@ -9810,9 +9796,20 @@ diff -Nur linux-4.1.20.orig/include/linux/blkdev.h linux-4.1.20/include/linux/bl
struct percpu_ref mq_usage_counter;
struct list_head all_q_node;
-diff -Nur linux-4.1.20.orig/include/linux/bottom_half.h linux-4.1.20/include/linux/bottom_half.h
---- linux-4.1.20.orig/include/linux/bottom_half.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/bottom_half.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/blk-mq.h linux-4.1.26/include/linux/blk-mq.h
+--- linux-4.1.26.orig/include/linux/blk-mq.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/blk-mq.h 2016-06-19 15:30:58.663296424 +0200
+@@ -202,6 +202,7 @@
+
+ struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *, const int ctx_index);
+ struct blk_mq_hw_ctx *blk_mq_alloc_single_hw_queue(struct blk_mq_tag_set *, unsigned int, int);
++void __blk_mq_complete_request_remote_work(struct work_struct *work);
+
+ int blk_mq_request_started(struct request *rq);
+ void blk_mq_start_request(struct request *rq);
+diff -Nur linux-4.1.26.orig/include/linux/bottom_half.h linux-4.1.26/include/linux/bottom_half.h
+--- linux-4.1.26.orig/include/linux/bottom_half.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/bottom_half.h 2016-06-19 15:30:58.663296424 +0200
@@ -4,6 +4,39 @@
#include <linux/preempt.h>
#include <linux/preempt_mask.h>
@@ -9860,9 +9857,9 @@ diff -Nur linux-4.1.20.orig/include/linux/bottom_half.h linux-4.1.20/include/lin
+#endif
#endif /* _LINUX_BH_H */
-diff -Nur linux-4.1.20.orig/include/linux/buffer_head.h linux-4.1.20/include/linux/buffer_head.h
---- linux-4.1.20.orig/include/linux/buffer_head.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/buffer_head.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/buffer_head.h linux-4.1.26/include/linux/buffer_head.h
+--- linux-4.1.26.orig/include/linux/buffer_head.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/buffer_head.h 2016-06-19 15:30:58.663296424 +0200
@@ -75,8 +75,52 @@
struct address_space *b_assoc_map; /* mapping this buffer is
associated with */
@@ -9916,9 +9913,9 @@ diff -Nur linux-4.1.20.orig/include/linux/buffer_head.h linux-4.1.20/include/lin
/*
* macro tricks to expand the set_buffer_foo(), clear_buffer_foo()
* and buffer_foo() functions.
-diff -Nur linux-4.1.20.orig/include/linux/cgroup-defs.h linux-4.1.20/include/linux/cgroup-defs.h
---- linux-4.1.20.orig/include/linux/cgroup-defs.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/cgroup-defs.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/cgroup-defs.h linux-4.1.26/include/linux/cgroup-defs.h
+--- linux-4.1.26.orig/include/linux/cgroup-defs.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/cgroup-defs.h 2016-06-19 15:30:58.663296424 +0200
@@ -124,6 +124,7 @@
/* percpu_ref killing and RCU release */
struct rcu_head rcu_head;
@@ -9927,9 +9924,9 @@ diff -Nur linux-4.1.20.orig/include/linux/cgroup-defs.h linux-4.1.20/include/lin
};
/*
-diff -Nur linux-4.1.20.orig/include/linux/cgroup.h linux-4.1.20/include/linux/cgroup.h
---- linux-4.1.20.orig/include/linux/cgroup.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/cgroup.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/cgroup.h linux-4.1.26/include/linux/cgroup.h
+--- linux-4.1.26.orig/include/linux/cgroup.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/cgroup.h 2016-06-19 15:30:58.663296424 +0200
@@ -17,6 +17,8 @@
#include <linux/fs.h>
#include <linux/seq_file.h>
@@ -9939,9 +9936,9 @@ diff -Nur linux-4.1.20.orig/include/linux/cgroup.h linux-4.1.20/include/linux/cg
#include <linux/cgroup-defs.h>
-diff -Nur linux-4.1.20.orig/include/linux/completion.h linux-4.1.20/include/linux/completion.h
---- linux-4.1.20.orig/include/linux/completion.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/completion.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/completion.h linux-4.1.26/include/linux/completion.h
+--- linux-4.1.26.orig/include/linux/completion.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/completion.h 2016-06-19 15:30:58.663296424 +0200
@@ -7,8 +7,7 @@
* Atomic wait-for-completion handler data structures.
* See kernel/sched/completion.c for details.
@@ -9975,9 +9972,9 @@ diff -Nur linux-4.1.20.orig/include/linux/completion.h linux-4.1.20/include/linu
}
/**
-diff -Nur linux-4.1.20.orig/include/linux/cpu.h linux-4.1.20/include/linux/cpu.h
---- linux-4.1.20.orig/include/linux/cpu.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/cpu.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/cpu.h linux-4.1.26/include/linux/cpu.h
+--- linux-4.1.26.orig/include/linux/cpu.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/cpu.h 2016-06-19 15:30:58.663296424 +0200
@@ -231,6 +231,8 @@
extern void put_online_cpus(void);
extern void cpu_hotplug_disable(void);
@@ -9996,9 +9993,9 @@ diff -Nur linux-4.1.20.orig/include/linux/cpu.h linux-4.1.20/include/linux/cpu.h
#define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
#define __hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
/* These aren't inline functions due to a GCC bug. */
-diff -Nur linux-4.1.20.orig/include/linux/delay.h linux-4.1.20/include/linux/delay.h
---- linux-4.1.20.orig/include/linux/delay.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/delay.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/delay.h linux-4.1.26/include/linux/delay.h
+--- linux-4.1.26.orig/include/linux/delay.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/delay.h 2016-06-19 15:30:58.663296424 +0200
@@ -52,4 +52,10 @@
msleep(seconds * 1000);
}
@@ -10010,9 +10007,22 @@ diff -Nur linux-4.1.20.orig/include/linux/delay.h linux-4.1.20/include/linux/del
+#endif
+
#endif /* defined(_LINUX_DELAY_H) */
-diff -Nur linux-4.1.20.orig/include/linux/ftrace.h linux-4.1.20/include/linux/ftrace.h
---- linux-4.1.20.orig/include/linux/ftrace.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/ftrace.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/ftrace_event.h linux-4.1.26/include/linux/ftrace_event.h
+--- linux-4.1.26.orig/include/linux/ftrace_event.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/ftrace_event.h 2016-06-19 15:30:58.663296424 +0200
+@@ -66,6 +66,9 @@
+ unsigned char flags;
+ unsigned char preempt_count;
+ int pid;
++ unsigned short migrate_disable;
++ unsigned short padding;
++ unsigned char preempt_lazy_count;
+ };
+
+ #define FTRACE_MAX_EVENT \
+diff -Nur linux-4.1.26.orig/include/linux/ftrace.h linux-4.1.26/include/linux/ftrace.h
+--- linux-4.1.26.orig/include/linux/ftrace.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/ftrace.h 2016-06-19 15:30:58.663296424 +0200
@@ -682,6 +682,18 @@
#define CALLER_ADDR5 ((unsigned long)ftrace_return_address(5))
#define CALLER_ADDR6 ((unsigned long)ftrace_return_address(6))
@@ -10032,22 +10042,9 @@ diff -Nur linux-4.1.20.orig/include/linux/ftrace.h linux-4.1.20/include/linux/ft
#ifdef CONFIG_IRQSOFF_TRACER
extern void time_hardirqs_on(unsigned long a0, unsigned long a1);
extern void time_hardirqs_off(unsigned long a0, unsigned long a1);
-diff -Nur linux-4.1.20.orig/include/linux/ftrace_event.h linux-4.1.20/include/linux/ftrace_event.h
---- linux-4.1.20.orig/include/linux/ftrace_event.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/ftrace_event.h 2016-03-21 20:18:33.000000000 +0100
-@@ -66,6 +66,9 @@
- unsigned char flags;
- unsigned char preempt_count;
- int pid;
-+ unsigned short migrate_disable;
-+ unsigned short padding;
-+ unsigned char preempt_lazy_count;
- };
-
- #define FTRACE_MAX_EVENT \
-diff -Nur linux-4.1.20.orig/include/linux/highmem.h linux-4.1.20/include/linux/highmem.h
---- linux-4.1.20.orig/include/linux/highmem.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/highmem.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/highmem.h linux-4.1.26/include/linux/highmem.h
+--- linux-4.1.26.orig/include/linux/highmem.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/highmem.h 2016-06-19 15:30:58.663296424 +0200
@@ -7,6 +7,7 @@
#include <linux/mm.h>
#include <linux/uaccess.h>
@@ -10128,9 +10125,9 @@ diff -Nur linux-4.1.20.orig/include/linux/highmem.h linux-4.1.20/include/linux/h
#endif
}
-diff -Nur linux-4.1.20.orig/include/linux/hrtimer.h linux-4.1.20/include/linux/hrtimer.h
---- linux-4.1.20.orig/include/linux/hrtimer.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/hrtimer.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/hrtimer.h linux-4.1.26/include/linux/hrtimer.h
+--- linux-4.1.26.orig/include/linux/hrtimer.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/hrtimer.h 2016-06-19 15:30:58.663296424 +0200
@@ -111,6 +111,11 @@
enum hrtimer_restart (*function)(struct hrtimer *);
struct hrtimer_clock_base *base;
@@ -10175,9 +10172,9 @@ diff -Nur linux-4.1.20.orig/include/linux/hrtimer.h linux-4.1.20/include/linux/h
/* Query timers: */
extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
-diff -Nur linux-4.1.20.orig/include/linux/idr.h linux-4.1.20/include/linux/idr.h
---- linux-4.1.20.orig/include/linux/idr.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/idr.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/idr.h linux-4.1.26/include/linux/idr.h
+--- linux-4.1.26.orig/include/linux/idr.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/idr.h 2016-06-19 15:30:58.663296424 +0200
@@ -95,10 +95,14 @@
* Each idr_preload() should be matched with an invocation of this
* function. See idr_preload() for details.
@@ -10193,9 +10190,9 @@ diff -Nur linux-4.1.20.orig/include/linux/idr.h linux-4.1.20/include/linux/idr.h
/**
* idr_find - return pointer for given id
-diff -Nur linux-4.1.20.orig/include/linux/init_task.h linux-4.1.20/include/linux/init_task.h
---- linux-4.1.20.orig/include/linux/init_task.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/init_task.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/init_task.h linux-4.1.26/include/linux/init_task.h
+--- linux-4.1.26.orig/include/linux/init_task.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/init_task.h 2016-06-19 15:30:58.667296578 +0200
@@ -147,9 +147,16 @@
# define INIT_PERF_EVENTS(tsk)
#endif
@@ -10222,9 +10219,9 @@ diff -Nur linux-4.1.20.orig/include/linux/init_task.h linux-4.1.20/include/linux
.pids = { \
[PIDTYPE_PID] = INIT_PID_LINK(PIDTYPE_PID), \
[PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID), \
-diff -Nur linux-4.1.20.orig/include/linux/interrupt.h linux-4.1.20/include/linux/interrupt.h
---- linux-4.1.20.orig/include/linux/interrupt.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/interrupt.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/interrupt.h linux-4.1.26/include/linux/interrupt.h
+--- linux-4.1.26.orig/include/linux/interrupt.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/interrupt.h 2016-06-19 15:30:58.667296578 +0200
@@ -61,6 +61,7 @@
* interrupt handler after suspending interrupts. For system
* wakeup devices users need to implement wakeup detection in
@@ -10409,9 +10406,9 @@ diff -Nur linux-4.1.20.orig/include/linux/interrupt.h linux-4.1.20/include/linux
/*
* Autoprobing for irqs:
*
-diff -Nur linux-4.1.20.orig/include/linux/io-mapping.h linux-4.1.20/include/linux/io-mapping.h
---- linux-4.1.20.orig/include/linux/io-mapping.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/io-mapping.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/io-mapping.h linux-4.1.26/include/linux/io-mapping.h
+--- linux-4.1.26.orig/include/linux/io-mapping.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/io-mapping.h 2016-06-19 15:30:58.667296578 +0200
@@ -141,6 +141,7 @@
io_mapping_map_atomic_wc(struct io_mapping *mapping,
unsigned long offset)
@@ -10428,58 +10425,9 @@ diff -Nur linux-4.1.20.orig/include/linux/io-mapping.h linux-4.1.20/include/linu
}
/* Non-atomic map/unmap */
-diff -Nur linux-4.1.20.orig/include/linux/irq.h linux-4.1.20/include/linux/irq.h
---- linux-4.1.20.orig/include/linux/irq.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/irq.h 2016-03-21 20:18:33.000000000 +0100
-@@ -72,6 +72,7 @@
- * IRQ_IS_POLLED - Always polled by another interrupt. Exclude
- * it from the spurious interrupt detection
- * mechanism and from core side polling.
-+ * IRQ_NO_SOFTIRQ_CALL - No softirq processing in the irq thread context (RT)
- */
- enum {
- IRQ_TYPE_NONE = 0x00000000,
-@@ -97,13 +98,14 @@
- IRQ_NOTHREAD = (1 << 16),
- IRQ_PER_CPU_DEVID = (1 << 17),
- IRQ_IS_POLLED = (1 << 18),
-+ IRQ_NO_SOFTIRQ_CALL = (1 << 19),
- };
-
- #define IRQF_MODIFY_MASK \
- (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \
- IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \
- IRQ_PER_CPU | IRQ_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID | \
-- IRQ_IS_POLLED)
-+ IRQ_IS_POLLED | IRQ_NO_SOFTIRQ_CALL)
-
- #define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
-
-diff -Nur linux-4.1.20.orig/include/linux/irq_work.h linux-4.1.20/include/linux/irq_work.h
---- linux-4.1.20.orig/include/linux/irq_work.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/irq_work.h 2016-03-21 20:18:33.000000000 +0100
-@@ -16,6 +16,7 @@
- #define IRQ_WORK_BUSY 2UL
- #define IRQ_WORK_FLAGS 3UL
- #define IRQ_WORK_LAZY 4UL /* Doesn't want IPI, wait for tick */
-+#define IRQ_WORK_HARD_IRQ 8UL /* Run hard IRQ context, even on RT */
-
- struct irq_work {
- unsigned long flags;
-@@ -51,4 +52,10 @@
- static inline void irq_work_run(void) { }
- #endif
-
-+#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL)
-+void irq_work_tick_soft(void);
-+#else
-+static inline void irq_work_tick_soft(void) { }
-+#endif
-+
- #endif /* _LINUX_IRQ_WORK_H */
-diff -Nur linux-4.1.20.orig/include/linux/irqdesc.h linux-4.1.20/include/linux/irqdesc.h
---- linux-4.1.20.orig/include/linux/irqdesc.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/irqdesc.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/irqdesc.h linux-4.1.26/include/linux/irqdesc.h
+--- linux-4.1.26.orig/include/linux/irqdesc.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/irqdesc.h 2016-06-19 15:30:58.667296578 +0200
@@ -63,6 +63,7 @@
unsigned int irqs_unhandled;
atomic_t threads_handled;
@@ -10488,9 +10436,9 @@ diff -Nur linux-4.1.20.orig/include/linux/irqdesc.h linux-4.1.20/include/linux/i
raw_spinlock_t lock;
struct cpumask *percpu_enabled;
#ifdef CONFIG_SMP
-diff -Nur linux-4.1.20.orig/include/linux/irqflags.h linux-4.1.20/include/linux/irqflags.h
---- linux-4.1.20.orig/include/linux/irqflags.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/irqflags.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/irqflags.h linux-4.1.26/include/linux/irqflags.h
+--- linux-4.1.26.orig/include/linux/irqflags.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/irqflags.h 2016-06-19 15:30:58.667296578 +0200
@@ -25,8 +25,6 @@
# define trace_softirqs_enabled(p) ((p)->softirqs_enabled)
# define trace_hardirq_enter() do { current->hardirq_context++; } while (0)
@@ -10541,9 +10489,58 @@ diff -Nur linux-4.1.20.orig/include/linux/irqflags.h linux-4.1.20/include/linux/
+#endif
+
#endif
-diff -Nur linux-4.1.20.orig/include/linux/jbd_common.h linux-4.1.20/include/linux/jbd_common.h
---- linux-4.1.20.orig/include/linux/jbd_common.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/jbd_common.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/irq.h linux-4.1.26/include/linux/irq.h
+--- linux-4.1.26.orig/include/linux/irq.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/irq.h 2016-06-19 15:30:58.667296578 +0200
+@@ -72,6 +72,7 @@
+ * IRQ_IS_POLLED - Always polled by another interrupt. Exclude
+ * it from the spurious interrupt detection
+ * mechanism and from core side polling.
++ * IRQ_NO_SOFTIRQ_CALL - No softirq processing in the irq thread context (RT)
+ */
+ enum {
+ IRQ_TYPE_NONE = 0x00000000,
+@@ -97,13 +98,14 @@
+ IRQ_NOTHREAD = (1 << 16),
+ IRQ_PER_CPU_DEVID = (1 << 17),
+ IRQ_IS_POLLED = (1 << 18),
++ IRQ_NO_SOFTIRQ_CALL = (1 << 19),
+ };
+
+ #define IRQF_MODIFY_MASK \
+ (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \
+ IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \
+ IRQ_PER_CPU | IRQ_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID | \
+- IRQ_IS_POLLED)
++ IRQ_IS_POLLED | IRQ_NO_SOFTIRQ_CALL)
+
+ #define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
+
+diff -Nur linux-4.1.26.orig/include/linux/irq_work.h linux-4.1.26/include/linux/irq_work.h
+--- linux-4.1.26.orig/include/linux/irq_work.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/irq_work.h 2016-06-19 15:30:58.667296578 +0200
+@@ -16,6 +16,7 @@
+ #define IRQ_WORK_BUSY 2UL
+ #define IRQ_WORK_FLAGS 3UL
+ #define IRQ_WORK_LAZY 4UL /* Doesn't want IPI, wait for tick */
++#define IRQ_WORK_HARD_IRQ 8UL /* Run hard IRQ context, even on RT */
+
+ struct irq_work {
+ unsigned long flags;
+@@ -51,4 +52,10 @@
+ static inline void irq_work_run(void) { }
+ #endif
+
++#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL)
++void irq_work_tick_soft(void);
++#else
++static inline void irq_work_tick_soft(void) { }
++#endif
++
+ #endif /* _LINUX_IRQ_WORK_H */
+diff -Nur linux-4.1.26.orig/include/linux/jbd_common.h linux-4.1.26/include/linux/jbd_common.h
+--- linux-4.1.26.orig/include/linux/jbd_common.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/jbd_common.h 2016-06-19 15:30:58.667296578 +0200
@@ -15,32 +15,56 @@
static inline void jbd_lock_bh_state(struct buffer_head *bh)
@@ -10601,9 +10598,9 @@ diff -Nur linux-4.1.20.orig/include/linux/jbd_common.h linux-4.1.20/include/linu
}
#endif
-diff -Nur linux-4.1.20.orig/include/linux/kdb.h linux-4.1.20/include/linux/kdb.h
---- linux-4.1.20.orig/include/linux/kdb.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/kdb.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/kdb.h linux-4.1.26/include/linux/kdb.h
+--- linux-4.1.26.orig/include/linux/kdb.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/kdb.h 2016-06-19 15:30:58.667296578 +0200
@@ -167,6 +167,7 @@
extern __printf(1, 2) int kdb_printf(const char *, ...);
typedef __printf(1, 2) int (*kdb_printf_t)(const char *, ...);
@@ -10620,9 +10617,9 @@ diff -Nur linux-4.1.20.orig/include/linux/kdb.h linux-4.1.20/include/linux/kdb.h
static inline void kdb_init(int level) {}
static inline int kdb_register(char *cmd, kdb_func_t func, char *usage,
char *help, short minlen) { return 0; }
-diff -Nur linux-4.1.20.orig/include/linux/kernel.h linux-4.1.20/include/linux/kernel.h
---- linux-4.1.20.orig/include/linux/kernel.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/kernel.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/kernel.h linux-4.1.26/include/linux/kernel.h
+--- linux-4.1.26.orig/include/linux/kernel.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/kernel.h 2016-06-19 15:30:58.667296578 +0200
@@ -188,6 +188,9 @@
*/
# define might_sleep() \
@@ -10659,9 +10656,9 @@ diff -Nur linux-4.1.20.orig/include/linux/kernel.h linux-4.1.20/include/linux/ke
} system_state;
#define TAINT_PROPRIETARY_MODULE 0
-diff -Nur linux-4.1.20.orig/include/linux/kvm_host.h linux-4.1.20/include/linux/kvm_host.h
---- linux-4.1.20.orig/include/linux/kvm_host.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/kvm_host.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/kvm_host.h linux-4.1.26/include/linux/kvm_host.h
+--- linux-4.1.26.orig/include/linux/kvm_host.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/kvm_host.h 2016-06-19 15:30:58.667296578 +0200
@@ -230,7 +230,7 @@
int fpu_active;
@@ -10680,9 +10677,9 @@ diff -Nur linux-4.1.20.orig/include/linux/kvm_host.h linux-4.1.20/include/linux/
{
#ifdef __KVM_HAVE_ARCH_WQP
return vcpu->arch.wqp;
-diff -Nur linux-4.1.20.orig/include/linux/lglock.h linux-4.1.20/include/linux/lglock.h
---- linux-4.1.20.orig/include/linux/lglock.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/lglock.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/lglock.h linux-4.1.26/include/linux/lglock.h
+--- linux-4.1.26.orig/include/linux/lglock.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/lglock.h 2016-06-19 15:30:58.667296578 +0200
@@ -34,22 +34,39 @@
#endif
@@ -10738,9 +10735,9 @@ diff -Nur linux-4.1.20.orig/include/linux/lglock.h linux-4.1.20/include/linux/lg
#else
/* When !CONFIG_SMP, map lglock to spinlock */
#define lglock spinlock
-diff -Nur linux-4.1.20.orig/include/linux/list_bl.h linux-4.1.20/include/linux/list_bl.h
---- linux-4.1.20.orig/include/linux/list_bl.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/list_bl.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/list_bl.h linux-4.1.26/include/linux/list_bl.h
+--- linux-4.1.26.orig/include/linux/list_bl.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/list_bl.h 2016-06-19 15:30:58.667296578 +0200
@@ -2,6 +2,7 @@
#define _LINUX_LIST_BL_H
@@ -10801,9 +10798,9 @@ diff -Nur linux-4.1.20.orig/include/linux/list_bl.h linux-4.1.20/include/linux/l
}
static inline bool hlist_bl_is_locked(struct hlist_bl_head *b)
-diff -Nur linux-4.1.20.orig/include/linux/locallock.h linux-4.1.20/include/linux/locallock.h
---- linux-4.1.20.orig/include/linux/locallock.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/locallock.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/locallock.h linux-4.1.26/include/linux/locallock.h
+--- linux-4.1.26.orig/include/linux/locallock.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/locallock.h 2016-06-19 15:30:58.667296578 +0200
@@ -0,0 +1,270 @@
+#ifndef _LINUX_LOCALLOCK_H
+#define _LINUX_LOCALLOCK_H
@@ -11075,9 +11072,9 @@ diff -Nur linux-4.1.20.orig/include/linux/locallock.h linux-4.1.20/include/linux
+#endif
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/mm_types.h linux-4.1.20/include/linux/mm_types.h
---- linux-4.1.20.orig/include/linux/mm_types.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/mm_types.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/mm_types.h linux-4.1.26/include/linux/mm_types.h
+--- linux-4.1.26.orig/include/linux/mm_types.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/mm_types.h 2016-06-19 15:30:58.667296578 +0200
@@ -11,6 +11,7 @@
#include <linux/completion.h>
#include <linux/cpumask.h>
@@ -11096,9 +11093,9 @@ diff -Nur linux-4.1.20.orig/include/linux/mm_types.h linux-4.1.20/include/linux/
#ifdef CONFIG_X86_INTEL_MPX
/* address of the bounds directory */
void __user *bd_addr;
-diff -Nur linux-4.1.20.orig/include/linux/mutex.h linux-4.1.20/include/linux/mutex.h
---- linux-4.1.20.orig/include/linux/mutex.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/mutex.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/mutex.h linux-4.1.26/include/linux/mutex.h
+--- linux-4.1.26.orig/include/linux/mutex.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/mutex.h 2016-06-19 15:30:58.671296732 +0200
@@ -19,6 +19,17 @@
#include <asm/processor.h>
#include <linux/osq_lock.h>
@@ -11140,9 +11137,9 @@ diff -Nur linux-4.1.20.orig/include/linux/mutex.h linux-4.1.20/include/linux/mut
extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock);
#endif /* __LINUX_MUTEX_H */
-diff -Nur linux-4.1.20.orig/include/linux/mutex_rt.h linux-4.1.20/include/linux/mutex_rt.h
---- linux-4.1.20.orig/include/linux/mutex_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/mutex_rt.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/mutex_rt.h linux-4.1.26/include/linux/mutex_rt.h
+--- linux-4.1.26.orig/include/linux/mutex_rt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/mutex_rt.h 2016-06-19 15:30:58.671296732 +0200
@@ -0,0 +1,84 @@
+#ifndef __LINUX_MUTEX_RT_H
+#define __LINUX_MUTEX_RT_H
@@ -11228,9 +11225,9 @@ diff -Nur linux-4.1.20.orig/include/linux/mutex_rt.h linux-4.1.20/include/linux/
+} while (0)
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/netdevice.h linux-4.1.20/include/linux/netdevice.h
---- linux-4.1.20.orig/include/linux/netdevice.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/netdevice.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/netdevice.h linux-4.1.26/include/linux/netdevice.h
+--- linux-4.1.26.orig/include/linux/netdevice.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/netdevice.h 2016-06-19 15:30:58.671296732 +0200
@@ -2192,11 +2192,20 @@
void synchronize_net(void);
int init_dummy_netdev(struct net_device *dev);
@@ -11260,9 +11257,9 @@ diff -Nur linux-4.1.20.orig/include/linux/netdevice.h linux-4.1.20/include/linux
};
-diff -Nur linux-4.1.20.orig/include/linux/netfilter/x_tables.h linux-4.1.20/include/linux/netfilter/x_tables.h
---- linux-4.1.20.orig/include/linux/netfilter/x_tables.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/netfilter/x_tables.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/netfilter/x_tables.h linux-4.1.26/include/linux/netfilter/x_tables.h
+--- linux-4.1.26.orig/include/linux/netfilter/x_tables.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/netfilter/x_tables.h 2016-06-19 15:30:58.671296732 +0200
@@ -3,6 +3,7 @@
@@ -11298,9 +11295,9 @@ diff -Nur linux-4.1.20.orig/include/linux/netfilter/x_tables.h linux-4.1.20/incl
}
/*
-diff -Nur linux-4.1.20.orig/include/linux/notifier.h linux-4.1.20/include/linux/notifier.h
---- linux-4.1.20.orig/include/linux/notifier.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/notifier.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/notifier.h linux-4.1.26/include/linux/notifier.h
+--- linux-4.1.26.orig/include/linux/notifier.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/notifier.h 2016-06-19 15:30:58.671296732 +0200
@@ -6,7 +6,7 @@
*
* Alan Cox <Alan.Cox@linux.org>
@@ -11380,9 +11377,9 @@ diff -Nur linux-4.1.20.orig/include/linux/notifier.h linux-4.1.20/include/linux/
/* CPU notfiers are defined in include/linux/cpu.h. */
/* netdevice notifiers are defined in include/linux/netdevice.h */
-diff -Nur linux-4.1.20.orig/include/linux/percpu.h linux-4.1.20/include/linux/percpu.h
---- linux-4.1.20.orig/include/linux/percpu.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/percpu.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/percpu.h linux-4.1.26/include/linux/percpu.h
+--- linux-4.1.26.orig/include/linux/percpu.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/percpu.h 2016-06-19 15:30:58.671296732 +0200
@@ -24,6 +24,35 @@
PERCPU_MODULE_RESERVE)
#endif
@@ -11419,9 +11416,9 @@ diff -Nur linux-4.1.20.orig/include/linux/percpu.h linux-4.1.20/include/linux/pe
/* minimum unit size, also is the maximum supported allocation size */
#define PCPU_MIN_UNIT_SIZE PFN_ALIGN(32 << 10)
-diff -Nur linux-4.1.20.orig/include/linux/pid.h linux-4.1.20/include/linux/pid.h
---- linux-4.1.20.orig/include/linux/pid.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/pid.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/pid.h linux-4.1.26/include/linux/pid.h
+--- linux-4.1.26.orig/include/linux/pid.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/pid.h 2016-06-19 15:30:58.671296732 +0200
@@ -2,6 +2,7 @@
#define _LINUX_PID_H
@@ -11430,9 +11427,9 @@ diff -Nur linux-4.1.20.orig/include/linux/pid.h linux-4.1.20/include/linux/pid.h
enum pid_type
{
-diff -Nur linux-4.1.20.orig/include/linux/platform_data/gpio-omap.h linux-4.1.20/include/linux/platform_data/gpio-omap.h
---- linux-4.1.20.orig/include/linux/platform_data/gpio-omap.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/platform_data/gpio-omap.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/platform_data/gpio-omap.h linux-4.1.26/include/linux/platform_data/gpio-omap.h
+--- linux-4.1.26.orig/include/linux/platform_data/gpio-omap.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/platform_data/gpio-omap.h 2016-06-19 15:30:58.671296732 +0200
@@ -198,7 +198,6 @@
int bank_width; /* GPIO bank width */
int bank_stride; /* Only needed for omap1 MPUIO */
@@ -11461,9 +11458,9 @@ diff -Nur linux-4.1.20.orig/include/linux/platform_data/gpio-omap.h linux-4.1.20
+#endif
#endif
-diff -Nur linux-4.1.20.orig/include/linux/preempt.h linux-4.1.20/include/linux/preempt.h
---- linux-4.1.20.orig/include/linux/preempt.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/preempt.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/preempt.h linux-4.1.26/include/linux/preempt.h
+--- linux-4.1.26.orig/include/linux/preempt.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/preempt.h 2016-06-19 15:30:58.671296732 +0200
@@ -34,6 +34,20 @@
#define preempt_count_inc() preempt_count_add(1)
#define preempt_count_dec() preempt_count_sub(1)
@@ -11567,9 +11564,9 @@ diff -Nur linux-4.1.20.orig/include/linux/preempt.h linux-4.1.20/include/linux/p
#ifdef CONFIG_PREEMPT_NOTIFIERS
struct preempt_notifier;
-diff -Nur linux-4.1.20.orig/include/linux/preempt_mask.h linux-4.1.20/include/linux/preempt_mask.h
---- linux-4.1.20.orig/include/linux/preempt_mask.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/preempt_mask.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/preempt_mask.h linux-4.1.26/include/linux/preempt_mask.h
+--- linux-4.1.26.orig/include/linux/preempt_mask.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/preempt_mask.h 2016-06-19 15:30:58.671296732 +0200
@@ -44,16 +44,26 @@
#define HARDIRQ_OFFSET (1UL << HARDIRQ_SHIFT)
#define NMI_OFFSET (1UL << NMI_SHIFT)
@@ -11619,9 +11616,9 @@ diff -Nur linux-4.1.20.orig/include/linux/preempt_mask.h linux-4.1.20/include/li
/*
* The preempt_count offset needed for things like:
-diff -Nur linux-4.1.20.orig/include/linux/printk.h linux-4.1.20/include/linux/printk.h
---- linux-4.1.20.orig/include/linux/printk.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/printk.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/printk.h linux-4.1.26/include/linux/printk.h
+--- linux-4.1.26.orig/include/linux/printk.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/printk.h 2016-06-19 15:30:58.671296732 +0200
@@ -115,9 +115,11 @@
#ifdef CONFIG_EARLY_PRINTK
extern asmlinkage __printf(1, 2)
@@ -11634,9 +11631,9 @@ diff -Nur linux-4.1.20.orig/include/linux/printk.h linux-4.1.20/include/linux/pr
#endif
typedef int(*printk_func_t)(const char *fmt, va_list args);
-diff -Nur linux-4.1.20.orig/include/linux/radix-tree.h linux-4.1.20/include/linux/radix-tree.h
---- linux-4.1.20.orig/include/linux/radix-tree.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/radix-tree.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/radix-tree.h linux-4.1.26/include/linux/radix-tree.h
+--- linux-4.1.26.orig/include/linux/radix-tree.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/radix-tree.h 2016-06-19 15:30:58.671296732 +0200
@@ -277,8 +277,13 @@
unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root,
void ***results, unsigned long *indices,
@@ -11660,9 +11657,9 @@ diff -Nur linux-4.1.20.orig/include/linux/radix-tree.h linux-4.1.20/include/linu
}
/**
-diff -Nur linux-4.1.20.orig/include/linux/random.h linux-4.1.20/include/linux/random.h
---- linux-4.1.20.orig/include/linux/random.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/random.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/random.h linux-4.1.26/include/linux/random.h
+--- linux-4.1.26.orig/include/linux/random.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/random.h 2016-06-19 15:30:58.671296732 +0200
@@ -11,7 +11,7 @@
extern void add_device_randomness(const void *, unsigned int);
extern void add_input_randomness(unsigned int type, unsigned int code,
@@ -11672,9 +11669,9 @@ diff -Nur linux-4.1.20.orig/include/linux/random.h linux-4.1.20/include/linux/ra
extern void get_random_bytes(void *buf, int nbytes);
extern void get_random_bytes_arch(void *buf, int nbytes);
-diff -Nur linux-4.1.20.orig/include/linux/rcupdate.h linux-4.1.20/include/linux/rcupdate.h
---- linux-4.1.20.orig/include/linux/rcupdate.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/rcupdate.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/rcupdate.h linux-4.1.26/include/linux/rcupdate.h
+--- linux-4.1.26.orig/include/linux/rcupdate.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/rcupdate.h 2016-06-19 15:30:58.671296732 +0200
@@ -167,6 +167,9 @@
#endif /* #else #ifdef CONFIG_PREEMPT_RCU */
@@ -11759,9 +11756,9 @@ diff -Nur linux-4.1.20.orig/include/linux/rcupdate.h linux-4.1.20/include/linux/
local_bh_enable();
}
-diff -Nur linux-4.1.20.orig/include/linux/rcutree.h linux-4.1.20/include/linux/rcutree.h
---- linux-4.1.20.orig/include/linux/rcutree.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/rcutree.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/rcutree.h linux-4.1.26/include/linux/rcutree.h
+--- linux-4.1.26.orig/include/linux/rcutree.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/rcutree.h 2016-06-19 15:30:58.671296732 +0200
@@ -46,7 +46,11 @@
rcu_note_context_switch();
}
@@ -11814,9 +11811,9 @@ diff -Nur linux-4.1.20.orig/include/linux/rcutree.h linux-4.1.20/include/linux/r
void rcu_all_qs(void);
#endif /* __LINUX_RCUTREE_H */
-diff -Nur linux-4.1.20.orig/include/linux/rtmutex.h linux-4.1.20/include/linux/rtmutex.h
---- linux-4.1.20.orig/include/linux/rtmutex.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/rtmutex.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/rtmutex.h linux-4.1.26/include/linux/rtmutex.h
+--- linux-4.1.26.orig/include/linux/rtmutex.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/rtmutex.h 2016-06-19 15:30:58.675296887 +0200
@@ -14,10 +14,14 @@
#include <linux/linkage.h>
@@ -11890,9 +11887,9 @@ diff -Nur linux-4.1.20.orig/include/linux/rtmutex.h linux-4.1.20/include/linux/r
extern int rt_mutex_timed_lock(struct rt_mutex *lock,
struct hrtimer_sleeper *timeout);
-diff -Nur linux-4.1.20.orig/include/linux/rwlock_rt.h linux-4.1.20/include/linux/rwlock_rt.h
---- linux-4.1.20.orig/include/linux/rwlock_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/rwlock_rt.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/rwlock_rt.h linux-4.1.26/include/linux/rwlock_rt.h
+--- linux-4.1.26.orig/include/linux/rwlock_rt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/rwlock_rt.h 2016-06-19 15:30:58.675296887 +0200
@@ -0,0 +1,99 @@
+#ifndef __LINUX_RWLOCK_RT_H
+#define __LINUX_RWLOCK_RT_H
@@ -11993,9 +11990,9 @@ diff -Nur linux-4.1.20.orig/include/linux/rwlock_rt.h linux-4.1.20/include/linux
+ } while (0)
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/rwlock_types.h linux-4.1.20/include/linux/rwlock_types.h
---- linux-4.1.20.orig/include/linux/rwlock_types.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/rwlock_types.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/rwlock_types.h linux-4.1.26/include/linux/rwlock_types.h
+--- linux-4.1.26.orig/include/linux/rwlock_types.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/rwlock_types.h 2016-06-19 15:30:58.675296887 +0200
@@ -1,6 +1,10 @@
#ifndef __LINUX_RWLOCK_TYPES_H
#define __LINUX_RWLOCK_TYPES_H
@@ -12016,9 +12013,9 @@ diff -Nur linux-4.1.20.orig/include/linux/rwlock_types.h linux-4.1.20/include/li
+ rwlock_t name __cacheline_aligned_in_smp = __RW_LOCK_UNLOCKED(name)
#endif /* __LINUX_RWLOCK_TYPES_H */
-diff -Nur linux-4.1.20.orig/include/linux/rwlock_types_rt.h linux-4.1.20/include/linux/rwlock_types_rt.h
---- linux-4.1.20.orig/include/linux/rwlock_types_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/rwlock_types_rt.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/rwlock_types_rt.h linux-4.1.26/include/linux/rwlock_types_rt.h
+--- linux-4.1.26.orig/include/linux/rwlock_types_rt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/rwlock_types_rt.h 2016-06-19 15:30:58.675296887 +0200
@@ -0,0 +1,33 @@
+#ifndef __LINUX_RWLOCK_TYPES_RT_H
+#define __LINUX_RWLOCK_TYPES_RT_H
@@ -12053,9 +12050,9 @@ diff -Nur linux-4.1.20.orig/include/linux/rwlock_types_rt.h linux-4.1.20/include
+ rwlock_t name __cacheline_aligned_in_smp = __RW_LOCK_UNLOCKED(name)
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/rwsem.h linux-4.1.20/include/linux/rwsem.h
---- linux-4.1.20.orig/include/linux/rwsem.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/rwsem.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/rwsem.h linux-4.1.26/include/linux/rwsem.h
+--- linux-4.1.26.orig/include/linux/rwsem.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/rwsem.h 2016-06-19 15:30:58.675296887 +0200
@@ -18,6 +18,10 @@
#include <linux/osq_lock.h>
#endif
@@ -12074,9 +12071,9 @@ diff -Nur linux-4.1.20.orig/include/linux/rwsem.h linux-4.1.20/include/linux/rws
+#endif /* !PREEMPT_RT_FULL */
+
#endif /* _LINUX_RWSEM_H */
-diff -Nur linux-4.1.20.orig/include/linux/rwsem_rt.h linux-4.1.20/include/linux/rwsem_rt.h
---- linux-4.1.20.orig/include/linux/rwsem_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/rwsem_rt.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/rwsem_rt.h linux-4.1.26/include/linux/rwsem_rt.h
+--- linux-4.1.26.orig/include/linux/rwsem_rt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/rwsem_rt.h 2016-06-19 15:30:58.675296887 +0200
@@ -0,0 +1,140 @@
+#ifndef _LINUX_RWSEM_RT_H
+#define _LINUX_RWSEM_RT_H
@@ -12218,9 +12215,9 @@ diff -Nur linux-4.1.20.orig/include/linux/rwsem_rt.h linux-4.1.20/include/linux/
+}
+#endif
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/sched.h linux-4.1.20/include/linux/sched.h
---- linux-4.1.20.orig/include/linux/sched.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/sched.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/sched.h linux-4.1.26/include/linux/sched.h
+--- linux-4.1.26.orig/include/linux/sched.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/sched.h 2016-06-19 15:30:58.675296887 +0200
@@ -26,6 +26,7 @@
#include <linux/nodemask.h>
#include <linux/mm_types.h>
@@ -12647,9 +12644,9 @@ diff -Nur linux-4.1.20.orig/include/linux/sched.h linux-4.1.20/include/linux/sch
extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
extern long sched_getaffinity(pid_t pid, struct cpumask *mask);
-diff -Nur linux-4.1.20.orig/include/linux/seqlock.h linux-4.1.20/include/linux/seqlock.h
---- linux-4.1.20.orig/include/linux/seqlock.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/seqlock.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/seqlock.h linux-4.1.26/include/linux/seqlock.h
+--- linux-4.1.26.orig/include/linux/seqlock.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/seqlock.h 2016-06-19 15:30:58.675296887 +0200
@@ -219,20 +219,30 @@
return __read_seqcount_retry(s, start);
}
@@ -12779,10 +12776,10 @@ diff -Nur linux-4.1.20.orig/include/linux/seqlock.h linux-4.1.20/include/linux/s
spin_unlock_irqrestore(&sl->lock, flags);
}
-diff -Nur linux-4.1.20.orig/include/linux/signal.h linux-4.1.20/include/linux/signal.h
---- linux-4.1.20.orig/include/linux/signal.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/signal.h 2016-03-21 20:18:33.000000000 +0100
-@@ -218,6 +218,7 @@
+diff -Nur linux-4.1.26.orig/include/linux/signal.h linux-4.1.26/include/linux/signal.h
+--- linux-4.1.26.orig/include/linux/signal.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/signal.h 2016-06-19 15:30:58.675296887 +0200
+@@ -233,6 +233,7 @@
}
extern void flush_sigqueue(struct sigpending *queue);
@@ -12790,9 +12787,9 @@ diff -Nur linux-4.1.20.orig/include/linux/signal.h linux-4.1.20/include/linux/si
/* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */
static inline int valid_signal(unsigned long sig)
-diff -Nur linux-4.1.20.orig/include/linux/skbuff.h linux-4.1.20/include/linux/skbuff.h
---- linux-4.1.20.orig/include/linux/skbuff.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/skbuff.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/skbuff.h linux-4.1.26/include/linux/skbuff.h
+--- linux-4.1.26.orig/include/linux/skbuff.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/skbuff.h 2016-06-19 15:30:58.675296887 +0200
@@ -187,6 +187,7 @@
__u32 qlen;
@@ -12814,9 +12811,9 @@ diff -Nur linux-4.1.20.orig/include/linux/skbuff.h linux-4.1.20/include/linux/sk
static inline void skb_queue_head_init_class(struct sk_buff_head *list,
struct lock_class_key *class)
{
-diff -Nur linux-4.1.20.orig/include/linux/smp.h linux-4.1.20/include/linux/smp.h
---- linux-4.1.20.orig/include/linux/smp.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/smp.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/smp.h linux-4.1.26/include/linux/smp.h
+--- linux-4.1.26.orig/include/linux/smp.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/smp.h 2016-06-19 15:30:58.675296887 +0200
@@ -185,6 +185,9 @@
#define get_cpu() ({ preempt_disable(); smp_processor_id(); })
#define put_cpu() preempt_enable()
@@ -12827,9 +12824,22 @@ diff -Nur linux-4.1.20.orig/include/linux/smp.h linux-4.1.20/include/linux/smp.h
/*
* Callback to arch code if there's nosmp or maxcpus=0 on the
* boot command line:
-diff -Nur linux-4.1.20.orig/include/linux/spinlock.h linux-4.1.20/include/linux/spinlock.h
---- linux-4.1.20.orig/include/linux/spinlock.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/spinlock.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/spinlock_api_smp.h linux-4.1.26/include/linux/spinlock_api_smp.h
+--- linux-4.1.26.orig/include/linux/spinlock_api_smp.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/spinlock_api_smp.h 2016-06-19 15:30:58.679297041 +0200
+@@ -189,6 +189,8 @@
+ return 0;
+ }
+
+-#include <linux/rwlock_api_smp.h>
++#ifndef CONFIG_PREEMPT_RT_FULL
++# include <linux/rwlock_api_smp.h>
++#endif
+
+ #endif /* __LINUX_SPINLOCK_API_SMP_H */
+diff -Nur linux-4.1.26.orig/include/linux/spinlock.h linux-4.1.26/include/linux/spinlock.h
+--- linux-4.1.26.orig/include/linux/spinlock.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/spinlock.h 2016-06-19 15:30:58.679297041 +0200
@@ -281,7 +281,11 @@
#define raw_spin_can_lock(lock) (!raw_spin_is_locked(lock))
@@ -12861,22 +12871,9 @@ diff -Nur linux-4.1.20.orig/include/linux/spinlock.h linux-4.1.20/include/linux/
+#endif /* !PREEMPT_RT_FULL */
+
#endif /* __LINUX_SPINLOCK_H */
-diff -Nur linux-4.1.20.orig/include/linux/spinlock_api_smp.h linux-4.1.20/include/linux/spinlock_api_smp.h
---- linux-4.1.20.orig/include/linux/spinlock_api_smp.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/spinlock_api_smp.h 2016-03-21 20:18:33.000000000 +0100
-@@ -189,6 +189,8 @@
- return 0;
- }
-
--#include <linux/rwlock_api_smp.h>
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+# include <linux/rwlock_api_smp.h>
-+#endif
-
- #endif /* __LINUX_SPINLOCK_API_SMP_H */
-diff -Nur linux-4.1.20.orig/include/linux/spinlock_rt.h linux-4.1.20/include/linux/spinlock_rt.h
---- linux-4.1.20.orig/include/linux/spinlock_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/spinlock_rt.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/spinlock_rt.h linux-4.1.26/include/linux/spinlock_rt.h
+--- linux-4.1.26.orig/include/linux/spinlock_rt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/spinlock_rt.h 2016-06-19 15:30:58.679297041 +0200
@@ -0,0 +1,174 @@
+#ifndef __LINUX_SPINLOCK_RT_H
+#define __LINUX_SPINLOCK_RT_H
@@ -13052,9 +13049,9 @@ diff -Nur linux-4.1.20.orig/include/linux/spinlock_rt.h linux-4.1.20/include/lin
+ atomic_dec_and_spin_lock(atomic, lock)
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/spinlock_types.h linux-4.1.20/include/linux/spinlock_types.h
---- linux-4.1.20.orig/include/linux/spinlock_types.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/spinlock_types.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/spinlock_types.h linux-4.1.26/include/linux/spinlock_types.h
+--- linux-4.1.26.orig/include/linux/spinlock_types.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/spinlock_types.h 2016-06-19 15:30:58.679297041 +0200
@@ -9,80 +9,15 @@
* Released under the General Public License (GPL).
*/
@@ -13143,9 +13140,9 @@ diff -Nur linux-4.1.20.orig/include/linux/spinlock_types.h linux-4.1.20/include/
-#include <linux/rwlock_types.h>
-
#endif /* __LINUX_SPINLOCK_TYPES_H */
-diff -Nur linux-4.1.20.orig/include/linux/spinlock_types_nort.h linux-4.1.20/include/linux/spinlock_types_nort.h
---- linux-4.1.20.orig/include/linux/spinlock_types_nort.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/spinlock_types_nort.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/spinlock_types_nort.h linux-4.1.26/include/linux/spinlock_types_nort.h
+--- linux-4.1.26.orig/include/linux/spinlock_types_nort.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/spinlock_types_nort.h 2016-06-19 15:30:58.679297041 +0200
@@ -0,0 +1,33 @@
+#ifndef __LINUX_SPINLOCK_TYPES_NORT_H
+#define __LINUX_SPINLOCK_TYPES_NORT_H
@@ -13180,9 +13177,9 @@ diff -Nur linux-4.1.20.orig/include/linux/spinlock_types_nort.h linux-4.1.20/inc
+#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/spinlock_types_raw.h linux-4.1.20/include/linux/spinlock_types_raw.h
---- linux-4.1.20.orig/include/linux/spinlock_types_raw.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/spinlock_types_raw.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/spinlock_types_raw.h linux-4.1.26/include/linux/spinlock_types_raw.h
+--- linux-4.1.26.orig/include/linux/spinlock_types_raw.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/spinlock_types_raw.h 2016-06-19 15:30:58.679297041 +0200
@@ -0,0 +1,56 @@
+#ifndef __LINUX_SPINLOCK_TYPES_RAW_H
+#define __LINUX_SPINLOCK_TYPES_RAW_H
@@ -13240,9 +13237,9 @@ diff -Nur linux-4.1.20.orig/include/linux/spinlock_types_raw.h linux-4.1.20/incl
+#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/spinlock_types_rt.h linux-4.1.20/include/linux/spinlock_types_rt.h
---- linux-4.1.20.orig/include/linux/spinlock_types_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/spinlock_types_rt.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/spinlock_types_rt.h linux-4.1.26/include/linux/spinlock_types_rt.h
+--- linux-4.1.26.orig/include/linux/spinlock_types_rt.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/spinlock_types_rt.h 2016-06-19 15:30:58.679297041 +0200
@@ -0,0 +1,51 @@
+#ifndef __LINUX_SPINLOCK_TYPES_RT_H
+#define __LINUX_SPINLOCK_TYPES_RT_H
@@ -13295,9 +13292,9 @@ diff -Nur linux-4.1.20.orig/include/linux/spinlock_types_rt.h linux-4.1.20/inclu
+ spinlock_t name __cacheline_aligned_in_smp = __SPIN_LOCK_UNLOCKED(name)
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/srcu.h linux-4.1.20/include/linux/srcu.h
---- linux-4.1.20.orig/include/linux/srcu.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/srcu.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/srcu.h linux-4.1.26/include/linux/srcu.h
+--- linux-4.1.26.orig/include/linux/srcu.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/srcu.h 2016-06-19 15:30:58.679297041 +0200
@@ -84,10 +84,10 @@
void process_srcu(struct work_struct *work);
@@ -13320,9 +13317,9 @@ diff -Nur linux-4.1.20.orig/include/linux/srcu.h linux-4.1.20/include/linux/srcu
#define DEFINE_SRCU(name) __DEFINE_SRCU(name, /* not static */)
#define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, static)
-diff -Nur linux-4.1.20.orig/include/linux/swap.h linux-4.1.20/include/linux/swap.h
---- linux-4.1.20.orig/include/linux/swap.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/swap.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/swap.h linux-4.1.26/include/linux/swap.h
+--- linux-4.1.26.orig/include/linux/swap.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/swap.h 2016-06-19 15:30:58.679297041 +0200
@@ -11,6 +11,7 @@
#include <linux/fs.h>
#include <linux/atomic.h>
@@ -13349,9 +13346,9 @@ diff -Nur linux-4.1.20.orig/include/linux/swap.h linux-4.1.20/include/linux/swap
extern void lru_cache_add(struct page *);
extern void lru_cache_add_anon(struct page *page);
extern void lru_cache_add_file(struct page *page);
-diff -Nur linux-4.1.20.orig/include/linux/thread_info.h linux-4.1.20/include/linux/thread_info.h
---- linux-4.1.20.orig/include/linux/thread_info.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/thread_info.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/thread_info.h linux-4.1.26/include/linux/thread_info.h
+--- linux-4.1.26.orig/include/linux/thread_info.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/thread_info.h 2016-06-19 15:30:58.679297041 +0200
@@ -102,7 +102,17 @@
#define test_thread_flag(flag) \
test_ti_thread_flag(current_thread_info(), flag)
@@ -13371,9 +13368,9 @@ diff -Nur linux-4.1.20.orig/include/linux/thread_info.h linux-4.1.20/include/lin
#if defined TIF_RESTORE_SIGMASK && !defined HAVE_SET_RESTORE_SIGMASK
/*
-diff -Nur linux-4.1.20.orig/include/linux/timer.h linux-4.1.20/include/linux/timer.h
---- linux-4.1.20.orig/include/linux/timer.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/timer.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/timer.h linux-4.1.26/include/linux/timer.h
+--- linux-4.1.26.orig/include/linux/timer.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/timer.h 2016-06-19 15:30:58.679297041 +0200
@@ -241,7 +241,7 @@
extern int try_to_del_timer_sync(struct timer_list *timer);
@@ -13383,9 +13380,9 @@ diff -Nur linux-4.1.20.orig/include/linux/timer.h linux-4.1.20/include/linux/tim
extern int del_timer_sync(struct timer_list *timer);
#else
# define del_timer_sync(t) del_timer(t)
-diff -Nur linux-4.1.20.orig/include/linux/uaccess.h linux-4.1.20/include/linux/uaccess.h
---- linux-4.1.20.orig/include/linux/uaccess.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/uaccess.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/uaccess.h linux-4.1.26/include/linux/uaccess.h
+--- linux-4.1.26.orig/include/linux/uaccess.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/uaccess.h 2016-06-19 15:30:58.679297041 +0200
@@ -1,21 +1,31 @@
#ifndef __LINUX_UACCESS_H__
#define __LINUX_UACCESS_H__
@@ -13464,9 +13461,9 @@ diff -Nur linux-4.1.20.orig/include/linux/uaccess.h linux-4.1.20/include/linux/u
#ifndef ARCH_HAS_NOCACHE_UACCESS
static inline unsigned long __copy_from_user_inatomic_nocache(void *to,
-diff -Nur linux-4.1.20.orig/include/linux/uprobes.h linux-4.1.20/include/linux/uprobes.h
---- linux-4.1.20.orig/include/linux/uprobes.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/uprobes.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/uprobes.h linux-4.1.26/include/linux/uprobes.h
+--- linux-4.1.26.orig/include/linux/uprobes.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/uprobes.h 2016-06-19 15:30:58.679297041 +0200
@@ -27,6 +27,7 @@
#include <linux/errno.h>
#include <linux/rbtree.h>
@@ -13475,9 +13472,9 @@ diff -Nur linux-4.1.20.orig/include/linux/uprobes.h linux-4.1.20/include/linux/u
struct vm_area_struct;
struct mm_struct;
-diff -Nur linux-4.1.20.orig/include/linux/vmstat.h linux-4.1.20/include/linux/vmstat.h
---- linux-4.1.20.orig/include/linux/vmstat.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/vmstat.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/vmstat.h linux-4.1.26/include/linux/vmstat.h
+--- linux-4.1.26.orig/include/linux/vmstat.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/vmstat.h 2016-06-19 15:30:58.679297041 +0200
@@ -33,7 +33,9 @@
*/
static inline void __count_vm_event(enum vm_event_item item)
@@ -13498,9 +13495,20 @@ diff -Nur linux-4.1.20.orig/include/linux/vmstat.h linux-4.1.20/include/linux/vm
}
static inline void count_vm_events(enum vm_event_item item, long delta)
-diff -Nur linux-4.1.20.orig/include/linux/wait-simple.h linux-4.1.20/include/linux/wait-simple.h
---- linux-4.1.20.orig/include/linux/wait-simple.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/wait-simple.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/wait.h linux-4.1.26/include/linux/wait.h
+--- linux-4.1.26.orig/include/linux/wait.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/linux/wait.h 2016-06-19 15:30:58.679297041 +0200
+@@ -8,6 +8,7 @@
+ #include <linux/spinlock.h>
+ #include <asm/current.h>
+ #include <uapi/linux/wait.h>
++#include <linux/atomic.h>
+
+ typedef struct __wait_queue wait_queue_t;
+ typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key);
+diff -Nur linux-4.1.26.orig/include/linux/wait-simple.h linux-4.1.26/include/linux/wait-simple.h
+--- linux-4.1.26.orig/include/linux/wait-simple.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/wait-simple.h 2016-06-19 15:30:58.679297041 +0200
@@ -0,0 +1,207 @@
+#ifndef _LINUX_WAIT_SIMPLE_H
+#define _LINUX_WAIT_SIMPLE_H
@@ -13709,20 +13717,9 @@ diff -Nur linux-4.1.20.orig/include/linux/wait-simple.h linux-4.1.20/include/lin
+})
+
+#endif
-diff -Nur linux-4.1.20.orig/include/linux/wait.h linux-4.1.20/include/linux/wait.h
---- linux-4.1.20.orig/include/linux/wait.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/linux/wait.h 2016-03-21 20:18:33.000000000 +0100
-@@ -8,6 +8,7 @@
- #include <linux/spinlock.h>
- #include <asm/current.h>
- #include <uapi/linux/wait.h>
-+#include <linux/atomic.h>
-
- typedef struct __wait_queue wait_queue_t;
- typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key);
-diff -Nur linux-4.1.20.orig/include/linux/work-simple.h linux-4.1.20/include/linux/work-simple.h
---- linux-4.1.20.orig/include/linux/work-simple.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/linux/work-simple.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/linux/work-simple.h linux-4.1.26/include/linux/work-simple.h
+--- linux-4.1.26.orig/include/linux/work-simple.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/linux/work-simple.h 2016-06-19 15:30:58.679297041 +0200
@@ -0,0 +1,24 @@
+#ifndef _LINUX_SWORK_H
+#define _LINUX_SWORK_H
@@ -13748,9 +13745,9 @@ diff -Nur linux-4.1.20.orig/include/linux/work-simple.h linux-4.1.20/include/lin
+void swork_put(void);
+
+#endif /* _LINUX_SWORK_H */
-diff -Nur linux-4.1.20.orig/include/net/dst.h linux-4.1.20/include/net/dst.h
---- linux-4.1.20.orig/include/net/dst.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/net/dst.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/net/dst.h linux-4.1.26/include/net/dst.h
+--- linux-4.1.26.orig/include/net/dst.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/net/dst.h 2016-06-19 15:30:58.679297041 +0200
@@ -436,7 +436,7 @@
static inline int dst_neigh_output(struct dst_entry *dst, struct neighbour *n,
struct sk_buff *skb)
@@ -13760,9 +13757,9 @@ diff -Nur linux-4.1.20.orig/include/net/dst.h linux-4.1.20/include/net/dst.h
if (dst->pending_confirm) {
unsigned long now = jiffies;
-diff -Nur linux-4.1.20.orig/include/net/neighbour.h linux-4.1.20/include/net/neighbour.h
---- linux-4.1.20.orig/include/net/neighbour.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/net/neighbour.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/net/neighbour.h linux-4.1.26/include/net/neighbour.h
+--- linux-4.1.26.orig/include/net/neighbour.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/net/neighbour.h 2016-06-19 15:30:58.679297041 +0200
@@ -445,7 +445,7 @@
}
#endif
@@ -13781,9 +13778,9 @@ diff -Nur linux-4.1.20.orig/include/net/neighbour.h linux-4.1.20/include/net/nei
const struct net_device *dev)
{
unsigned int seq;
-diff -Nur linux-4.1.20.orig/include/net/netns/ipv4.h linux-4.1.20/include/net/netns/ipv4.h
---- linux-4.1.20.orig/include/net/netns/ipv4.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/net/netns/ipv4.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/net/netns/ipv4.h linux-4.1.26/include/net/netns/ipv4.h
+--- linux-4.1.26.orig/include/net/netns/ipv4.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/net/netns/ipv4.h 2016-06-19 15:30:58.683297195 +0200
@@ -69,6 +69,7 @@
int sysctl_icmp_echo_ignore_all;
@@ -13792,9 +13789,9 @@ diff -Nur linux-4.1.20.orig/include/net/netns/ipv4.h linux-4.1.20/include/net/ne
int sysctl_icmp_ignore_bogus_error_responses;
int sysctl_icmp_ratelimit;
int sysctl_icmp_ratemask;
-diff -Nur linux-4.1.20.orig/include/trace/events/hist.h linux-4.1.20/include/trace/events/hist.h
---- linux-4.1.20.orig/include/trace/events/hist.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/trace/events/hist.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/trace/events/hist.h linux-4.1.26/include/trace/events/hist.h
+--- linux-4.1.26.orig/include/trace/events/hist.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/trace/events/hist.h 2016-06-19 15:30:58.683297195 +0200
@@ -0,0 +1,74 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM hist
@@ -13870,9 +13867,9 @@ diff -Nur linux-4.1.20.orig/include/trace/events/hist.h linux-4.1.20/include/tra
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
-diff -Nur linux-4.1.20.orig/include/trace/events/latency_hist.h linux-4.1.20/include/trace/events/latency_hist.h
---- linux-4.1.20.orig/include/trace/events/latency_hist.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/include/trace/events/latency_hist.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/trace/events/latency_hist.h linux-4.1.26/include/trace/events/latency_hist.h
+--- linux-4.1.26.orig/include/trace/events/latency_hist.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/include/trace/events/latency_hist.h 2016-06-19 15:30:58.683297195 +0200
@@ -0,0 +1,29 @@
+#ifndef _LATENCY_HIST_H
+#define _LATENCY_HIST_H
@@ -13903,9 +13900,9 @@ diff -Nur linux-4.1.20.orig/include/trace/events/latency_hist.h linux-4.1.20/inc
+}
+
+#endif /* _LATENCY_HIST_H */
-diff -Nur linux-4.1.20.orig/include/trace/events/sched.h linux-4.1.20/include/trace/events/sched.h
---- linux-4.1.20.orig/include/trace/events/sched.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/include/trace/events/sched.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/include/trace/events/sched.h linux-4.1.26/include/trace/events/sched.h
+--- linux-4.1.26.orig/include/trace/events/sched.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/include/trace/events/sched.h 2016-06-19 15:30:58.683297195 +0200
@@ -55,9 +55,9 @@
*/
DECLARE_EVENT_CLASS(sched_wakeup_template,
@@ -13963,9 +13960,9 @@ diff -Nur linux-4.1.20.orig/include/trace/events/sched.h linux-4.1.20/include/tr
#ifdef CREATE_TRACE_POINTS
static inline long __trace_sched_switch_state(struct task_struct *p)
-diff -Nur linux-4.1.20.orig/init/Kconfig linux-4.1.20/init/Kconfig
---- linux-4.1.20.orig/init/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/init/Kconfig 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/init/Kconfig linux-4.1.26/init/Kconfig
+--- linux-4.1.26.orig/init/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/init/Kconfig 2016-06-19 15:30:58.683297195 +0200
@@ -637,7 +637,7 @@
config RCU_FAST_NO_HZ
@@ -14017,18 +14014,9 @@ diff -Nur linux-4.1.20.orig/init/Kconfig linux-4.1.20/init/Kconfig
bool "SLUB per cpu partial cache"
help
Per cpu partial caches accellerate objects allocation and freeing
-diff -Nur linux-4.1.20.orig/init/Makefile linux-4.1.20/init/Makefile
---- linux-4.1.20.orig/init/Makefile 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/init/Makefile 2016-03-21 20:18:33.000000000 +0100
-@@ -33,4 +33,4 @@
- include/generated/compile.h: FORCE
- @$($(quiet)chk_compile.h)
- $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
-- "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
-+ "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)"
-diff -Nur linux-4.1.20.orig/init/main.c linux-4.1.20/init/main.c
---- linux-4.1.20.orig/init/main.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/init/main.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/init/main.c linux-4.1.26/init/main.c
+--- linux-4.1.26.orig/init/main.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/init/main.c 2016-06-19 15:30:58.683297195 +0200
@@ -525,6 +525,7 @@
setup_command_line(command_line);
setup_nr_cpu_ids();
@@ -14037,9 +14025,18 @@ diff -Nur linux-4.1.20.orig/init/main.c linux-4.1.20/init/main.c
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
build_all_zonelists(NULL, NULL);
-diff -Nur linux-4.1.20.orig/ipc/mqueue.c linux-4.1.20/ipc/mqueue.c
---- linux-4.1.20.orig/ipc/mqueue.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/ipc/mqueue.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/init/Makefile linux-4.1.26/init/Makefile
+--- linux-4.1.26.orig/init/Makefile 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/init/Makefile 2016-06-19 15:30:58.683297195 +0200
+@@ -33,4 +33,4 @@
+ include/generated/compile.h: FORCE
+ @$($(quiet)chk_compile.h)
+ $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
+- "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
++ "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)"
+diff -Nur linux-4.1.26.orig/ipc/mqueue.c linux-4.1.26/ipc/mqueue.c
+--- linux-4.1.26.orig/ipc/mqueue.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/ipc/mqueue.c 2016-06-19 15:30:58.683297195 +0200
@@ -47,8 +47,7 @@
#define RECV 1
@@ -14180,9 +14177,9 @@ diff -Nur linux-4.1.20.orig/ipc/mqueue.c linux-4.1.20/ipc/mqueue.c
ret = 0;
}
if (ret == 0) {
-diff -Nur linux-4.1.20.orig/ipc/msg.c linux-4.1.20/ipc/msg.c
---- linux-4.1.20.orig/ipc/msg.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/ipc/msg.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/ipc/msg.c linux-4.1.26/ipc/msg.c
+--- linux-4.1.26.orig/ipc/msg.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/ipc/msg.c 2016-06-19 15:30:58.683297195 +0200
@@ -188,6 +188,12 @@
struct msg_receiver *msr, *t;
@@ -14232,9 +14229,9 @@ diff -Nur linux-4.1.20.orig/ipc/msg.c linux-4.1.20/ipc/msg.c
return 0;
}
-diff -Nur linux-4.1.20.orig/ipc/sem.c linux-4.1.20/ipc/sem.c
---- linux-4.1.20.orig/ipc/sem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/ipc/sem.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/ipc/sem.c linux-4.1.26/ipc/sem.c
+--- linux-4.1.26.orig/ipc/sem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/ipc/sem.c 2016-06-19 15:30:58.683297195 +0200
@@ -690,6 +690,13 @@
static void wake_up_sem_queue_prepare(struct list_head *pt,
struct sem_queue *q, int error)
@@ -14273,81 +14270,9 @@ diff -Nur linux-4.1.20.orig/ipc/sem.c linux-4.1.20/ipc/sem.c
}
static void unlink_queue(struct sem_array *sma, struct sem_queue *q)
-diff -Nur linux-4.1.20.orig/kernel/Kconfig.locks linux-4.1.20/kernel/Kconfig.locks
---- linux-4.1.20.orig/kernel/Kconfig.locks 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/Kconfig.locks 2016-03-21 20:18:33.000000000 +0100
-@@ -225,11 +225,11 @@
-
- config MUTEX_SPIN_ON_OWNER
- def_bool y
-- depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW
-+ depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
-
- config RWSEM_SPIN_ON_OWNER
- def_bool y
-- depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW
-+ depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
-
- config LOCK_SPIN_ON_OWNER
- def_bool y
-diff -Nur linux-4.1.20.orig/kernel/Kconfig.preempt linux-4.1.20/kernel/Kconfig.preempt
---- linux-4.1.20.orig/kernel/Kconfig.preempt 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/Kconfig.preempt 2016-03-21 20:18:33.000000000 +0100
-@@ -1,3 +1,16 @@
-+config PREEMPT
-+ bool
-+ select PREEMPT_COUNT
-+
-+config PREEMPT_RT_BASE
-+ bool
-+ select PREEMPT
-+
-+config HAVE_PREEMPT_LAZY
-+ bool
-+
-+config PREEMPT_LAZY
-+ def_bool y if HAVE_PREEMPT_LAZY && PREEMPT_RT_FULL
-
- choice
- prompt "Preemption Model"
-@@ -33,9 +46,9 @@
-
- Select this if you are building a kernel for a desktop system.
-
--config PREEMPT
-+config PREEMPT__LL
- bool "Preemptible Kernel (Low-Latency Desktop)"
-- select PREEMPT_COUNT
-+ select PREEMPT
- select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
- help
- This option reduces the latency of the kernel by making
-@@ -52,6 +65,22 @@
- embedded system with latency requirements in the milliseconds
- range.
-
-+config PREEMPT_RTB
-+ bool "Preemptible Kernel (Basic RT)"
-+ select PREEMPT_RT_BASE
-+ help
-+ This option is basically the same as (Low-Latency Desktop) but
-+ enables changes which are preliminary for the full preemptible
-+ RT kernel.
-+
-+config PREEMPT_RT_FULL
-+ bool "Fully Preemptible Kernel (RT)"
-+ depends on IRQ_FORCED_THREADING
-+ select PREEMPT_RT_BASE
-+ select PREEMPT_RCU
-+ help
-+ All and everything
-+
- endchoice
-
- config PREEMPT_COUNT
-diff -Nur linux-4.1.20.orig/kernel/bpf/hashtab.c linux-4.1.20/kernel/bpf/hashtab.c
---- linux-4.1.20.orig/kernel/bpf/hashtab.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/bpf/hashtab.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/bpf/hashtab.c linux-4.1.26/kernel/bpf/hashtab.c
+--- linux-4.1.26.orig/kernel/bpf/hashtab.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/bpf/hashtab.c 2016-06-19 15:30:58.683297195 +0200
@@ -17,7 +17,7 @@
struct bpf_htab {
struct bpf_map map;
@@ -14407,9 +14332,9 @@ diff -Nur linux-4.1.20.orig/kernel/bpf/hashtab.c linux-4.1.20/kernel/bpf/hashtab
return ret;
}
-diff -Nur linux-4.1.20.orig/kernel/cgroup.c linux-4.1.20/kernel/cgroup.c
---- linux-4.1.20.orig/kernel/cgroup.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/cgroup.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/cgroup.c linux-4.1.26/kernel/cgroup.c
+--- linux-4.1.26.orig/kernel/cgroup.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/cgroup.c 2016-06-19 15:30:58.687297349 +0200
@@ -4422,10 +4422,10 @@
queue_work(cgroup_destroy_wq, &css->destroy_work);
}
@@ -14442,9 +14367,9 @@ diff -Nur linux-4.1.20.orig/kernel/cgroup.c linux-4.1.20/kernel/cgroup.c
/*
* Used to destroy pidlists and separate to serve as flush domain.
-diff -Nur linux-4.1.20.orig/kernel/cpu.c linux-4.1.20/kernel/cpu.c
---- linux-4.1.20.orig/kernel/cpu.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/cpu.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/cpu.c linux-4.1.26/kernel/cpu.c
+--- linux-4.1.26.orig/kernel/cpu.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/cpu.c 2016-06-19 15:30:58.687297349 +0200
@@ -74,8 +74,8 @@
#endif
} cpu_hotplug = {
@@ -14825,9 +14750,9 @@ diff -Nur linux-4.1.20.orig/kernel/cpu.c linux-4.1.20/kernel/cpu.c
return err;
}
-diff -Nur linux-4.1.20.orig/kernel/debug/kdb/kdb_io.c linux-4.1.20/kernel/debug/kdb/kdb_io.c
---- linux-4.1.20.orig/kernel/debug/kdb/kdb_io.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/debug/kdb/kdb_io.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/debug/kdb/kdb_io.c linux-4.1.26/kernel/debug/kdb/kdb_io.c
+--- linux-4.1.26.orig/kernel/debug/kdb/kdb_io.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/debug/kdb/kdb_io.c 2016-06-19 15:30:58.687297349 +0200
@@ -554,7 +554,6 @@
int linecount;
int colcount;
@@ -14865,9 +14790,9 @@ diff -Nur linux-4.1.20.orig/kernel/debug/kdb/kdb_io.c linux-4.1.20/kernel/debug/
return r;
}
-diff -Nur linux-4.1.20.orig/kernel/events/core.c linux-4.1.20/kernel/events/core.c
---- linux-4.1.20.orig/kernel/events/core.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/events/core.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/events/core.c linux-4.1.26/kernel/events/core.c
+--- linux-4.1.26.orig/kernel/events/core.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/events/core.c 2016-06-19 15:30:58.687297349 +0200
@@ -6925,6 +6925,7 @@
hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
@@ -14876,9 +14801,9 @@ diff -Nur linux-4.1.20.orig/kernel/events/core.c linux-4.1.20/kernel/events/core
/*
* Since hrtimers have a fixed rate, we can do a static freq->period
-diff -Nur linux-4.1.20.orig/kernel/exit.c linux-4.1.20/kernel/exit.c
---- linux-4.1.20.orig/kernel/exit.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/exit.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/exit.c linux-4.1.26/kernel/exit.c
+--- linux-4.1.26.orig/kernel/exit.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/exit.c 2016-06-19 15:30:58.687297349 +0200
@@ -144,7 +144,7 @@
* Do this under ->siglock, we can race with another thread
* doing sigqueue_free() if we have SIGQUEUE_PREALLOC signals.
@@ -14888,9 +14813,9 @@ diff -Nur linux-4.1.20.orig/kernel/exit.c linux-4.1.20/kernel/exit.c
tsk->sighand = NULL;
spin_unlock(&sighand->siglock);
-diff -Nur linux-4.1.20.orig/kernel/fork.c linux-4.1.20/kernel/fork.c
---- linux-4.1.20.orig/kernel/fork.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/fork.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/fork.c linux-4.1.26/kernel/fork.c
+--- linux-4.1.26.orig/kernel/fork.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/fork.c 2016-06-19 15:30:58.687297349 +0200
@@ -108,7 +108,7 @@
DEFINE_PER_CPU(unsigned long, process_counts) = 0;
@@ -14996,9 +14921,9 @@ diff -Nur linux-4.1.20.orig/kernel/fork.c linux-4.1.20/kernel/fork.c
#ifdef CONFIG_LOCKDEP
p->lockdep_depth = 0; /* no locks held yet */
p->curr_chain_key = 0;
-diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
---- linux-4.1.20.orig/kernel/futex.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/futex.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/futex.c linux-4.1.26/kernel/futex.c
+--- linux-4.1.26.orig/kernel/futex.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/futex.c 2016-06-19 15:32:42.447298576 +0200
@@ -738,7 +738,9 @@
* task still owns the PI-state:
*/
@@ -15061,7 +14986,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
int ret = 0;
if (!pi_state)
-@@ -1178,7 +1177,17 @@
+@@ -1188,7 +1187,17 @@
raw_spin_unlock_irq(&new_owner->pi_lock);
raw_spin_unlock(&pi_state->pi_mutex.wait_lock);
@@ -15080,7 +15005,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
return 0;
}
-@@ -1217,6 +1226,7 @@
+@@ -1227,6 +1236,7 @@
struct futex_q *this, *next;
union futex_key key = FUTEX_KEY_INIT;
int ret;
@@ -15088,7 +15013,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
if (!bitset)
return -EINVAL;
-@@ -1244,13 +1254,14 @@
+@@ -1254,13 +1264,14 @@
if (!(this->bitset & bitset))
continue;
@@ -15104,7 +15029,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
out_put_key:
put_futex_key(&key);
out:
-@@ -1269,6 +1280,7 @@
+@@ -1279,6 +1290,7 @@
struct futex_hash_bucket *hb1, *hb2;
struct futex_q *this, *next;
int ret, op_ret;
@@ -15112,7 +15037,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
retry:
ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1, VERIFY_READ);
-@@ -1320,7 +1332,7 @@
+@@ -1330,7 +1342,7 @@
ret = -EINVAL;
goto out_unlock;
}
@@ -15121,7 +15046,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
if (++ret >= nr_wake)
break;
}
-@@ -1334,7 +1346,7 @@
+@@ -1344,7 +1356,7 @@
ret = -EINVAL;
goto out_unlock;
}
@@ -15130,7 +15055,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
if (++op_ret >= nr_wake2)
break;
}
-@@ -1344,6 +1356,7 @@
+@@ -1354,6 +1366,7 @@
out_unlock:
double_unlock_hb(hb1, hb2);
@@ -15138,7 +15063,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
out_put_keys:
put_futex_key(&key2);
out_put_key1:
-@@ -1503,6 +1516,7 @@
+@@ -1513,6 +1526,7 @@
struct futex_pi_state *pi_state = NULL;
struct futex_hash_bucket *hb1, *hb2;
struct futex_q *this, *next;
@@ -15146,7 +15071,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
if (requeue_pi) {
/*
-@@ -1679,7 +1693,7 @@
+@@ -1689,7 +1703,7 @@
* woken by futex_unlock_pi().
*/
if (++task_count <= nr_wake && !requeue_pi) {
@@ -15155,7 +15080,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
continue;
}
-@@ -1705,6 +1719,16 @@
+@@ -1715,6 +1729,16 @@
requeue_pi_wake_futex(this, &key2, hb2);
drop_count++;
continue;
@@ -15172,7 +15097,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
} else if (ret) {
/* -EDEADLK */
this->pi_state = NULL;
-@@ -1719,6 +1743,7 @@
+@@ -1729,6 +1753,7 @@
out_unlock:
free_pi_state(pi_state);
double_unlock_hb(hb1, hb2);
@@ -15180,35 +15105,24 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
hb_waiters_dec(hb2);
/*
-@@ -2412,13 +2437,26 @@
+@@ -2422,7 +2447,15 @@
*/
match = futex_top_waiter(hb, &key);
if (match) {
- ret = wake_futex_pi(uaddr, uval, match);
-+ ret = wake_futex_pi(uaddr, uval, match, hb);
++ ret = wake_futex_pi(uaddr, uval, match, hb);
+
-+ /*
-+ * In case of success wake_futex_pi dropped the hash
-+ * bucket lock.
-+ */
-+ if (!ret)
-+ goto out_putkey;
++ /*
++ * In case of success wake_futex_pi dropped the hash
++ * bucket lock.
++ */
++ if (!ret)
++ goto out_putkey;
+
/*
* The atomic access to the futex value generated a
* pagefault, so retry the user-access and the wakeup:
- */
- if (ret == -EFAULT)
- goto pi_faulted;
-+
-+ /*
-+ * wake_futex_pi has detected invalid state. Tell user
-+ * space.
-+ */
- goto out_unlock;
- }
-
-@@ -2439,6 +2477,7 @@
+@@ -2458,6 +2491,7 @@
out_unlock:
spin_unlock(&hb->lock);
@@ -15216,7 +15130,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
put_futex_key(&key);
return ret;
-@@ -2549,7 +2588,7 @@
+@@ -2568,7 +2602,7 @@
struct hrtimer_sleeper timeout, *to = NULL;
struct rt_mutex_waiter rt_waiter;
struct rt_mutex *pi_mutex = NULL;
@@ -15225,7 +15139,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
union futex_key key2 = FUTEX_KEY_INIT;
struct futex_q q = futex_q_init;
int res, ret;
-@@ -2574,10 +2613,7 @@
+@@ -2593,10 +2627,7 @@
* The waiter is allocated on our stack, manipulated by the requeue
* code while we sleep on uaddr.
*/
@@ -15237,7 +15151,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, VERIFY_WRITE);
if (unlikely(ret != 0))
-@@ -2608,20 +2644,55 @@
+@@ -2627,20 +2658,55 @@
/* Queue the futex_q, drop the hb lock, wait for wakeup. */
futex_wait_queue_me(hb, &q, to);
@@ -15304,7 +15218,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
/* Check if the requeue code acquired the second futex for us. */
if (!q.rt_waiter) {
-@@ -2630,14 +2701,15 @@
+@@ -2649,14 +2715,15 @@
* did a lock-steal - fix up the PI-state in that case.
*/
if (q.pi_state && (q.pi_state->owner != current)) {
@@ -15322,7 +15236,7 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
}
} else {
/*
-@@ -2650,7 +2722,8 @@
+@@ -2669,7 +2736,8 @@
ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter);
debug_rt_mutex_free_waiter(&rt_waiter);
@@ -15332,9 +15246,9 @@ diff -Nur linux-4.1.20.orig/kernel/futex.c linux-4.1.20/kernel/futex.c
/*
* Fixup the pi_state owner and possibly acquire the lock if we
* haven't already.
-diff -Nur linux-4.1.20.orig/kernel/irq/handle.c linux-4.1.20/kernel/irq/handle.c
---- linux-4.1.20.orig/kernel/irq/handle.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/irq/handle.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/irq/handle.c linux-4.1.26/kernel/irq/handle.c
+--- linux-4.1.26.orig/kernel/irq/handle.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/irq/handle.c 2016-06-19 15:30:58.691297504 +0200
@@ -133,6 +133,8 @@
irqreturn_t
handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
@@ -15357,9 +15271,9 @@ diff -Nur linux-4.1.20.orig/kernel/irq/handle.c linux-4.1.20/kernel/irq/handle.c
if (!noirqdebug)
note_interrupt(irq, desc, retval);
-diff -Nur linux-4.1.20.orig/kernel/irq/manage.c linux-4.1.20/kernel/irq/manage.c
---- linux-4.1.20.orig/kernel/irq/manage.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/irq/manage.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/irq/manage.c linux-4.1.26/kernel/irq/manage.c
+--- linux-4.1.26.orig/kernel/irq/manage.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/irq/manage.c 2016-06-19 15:30:58.691297504 +0200
@@ -22,6 +22,7 @@
#include "internals.h"
@@ -15796,9 +15710,9 @@ diff -Nur linux-4.1.20.orig/kernel/irq/manage.c linux-4.1.20/kernel/irq/manage.c
#ifdef CONFIG_DEBUG_SHIRQ_FIXME
if (!retval && (irqflags & IRQF_SHARED)) {
-diff -Nur linux-4.1.20.orig/kernel/irq/settings.h linux-4.1.20/kernel/irq/settings.h
---- linux-4.1.20.orig/kernel/irq/settings.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/irq/settings.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/irq/settings.h linux-4.1.26/kernel/irq/settings.h
+--- linux-4.1.26.orig/kernel/irq/settings.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/irq/settings.h 2016-06-19 15:30:58.691297504 +0200
@@ -15,6 +15,7 @@
_IRQ_NESTED_THREAD = IRQ_NESTED_THREAD,
_IRQ_PER_CPU_DEVID = IRQ_PER_CPU_DEVID,
@@ -15832,9 +15746,9 @@ diff -Nur linux-4.1.20.orig/kernel/irq/settings.h linux-4.1.20/kernel/irq/settin
static inline bool irq_settings_is_per_cpu(struct irq_desc *desc)
{
return desc->status_use_accessors & _IRQ_PER_CPU;
-diff -Nur linux-4.1.20.orig/kernel/irq/spurious.c linux-4.1.20/kernel/irq/spurious.c
---- linux-4.1.20.orig/kernel/irq/spurious.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/irq/spurious.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/irq/spurious.c linux-4.1.26/kernel/irq/spurious.c
+--- linux-4.1.26.orig/kernel/irq/spurious.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/irq/spurious.c 2016-06-19 15:30:58.691297504 +0200
@@ -444,6 +444,10 @@
static int __init irqfixup_setup(char *str)
@@ -15857,9 +15771,9 @@ diff -Nur linux-4.1.20.orig/kernel/irq/spurious.c linux-4.1.20/kernel/irq/spurio
irqfixup = 2;
printk(KERN_WARNING "Misrouted IRQ fixup and polling support "
"enabled\n");
-diff -Nur linux-4.1.20.orig/kernel/irq_work.c linux-4.1.20/kernel/irq_work.c
---- linux-4.1.20.orig/kernel/irq_work.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/irq_work.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/irq_work.c linux-4.1.26/kernel/irq_work.c
+--- linux-4.1.26.orig/kernel/irq_work.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/irq_work.c 2016-06-19 15:30:58.691297504 +0200
@@ -17,6 +17,7 @@
#include <linux/cpu.h>
#include <linux/notifier.h>
@@ -15981,9 +15895,81 @@ diff -Nur linux-4.1.20.orig/kernel/irq_work.c linux-4.1.20/kernel/irq_work.c
/*
* Synchronize against the irq_work @entry, ensures the entry is not
-diff -Nur linux-4.1.20.orig/kernel/ksysfs.c linux-4.1.20/kernel/ksysfs.c
---- linux-4.1.20.orig/kernel/ksysfs.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/ksysfs.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/Kconfig.locks linux-4.1.26/kernel/Kconfig.locks
+--- linux-4.1.26.orig/kernel/Kconfig.locks 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/Kconfig.locks 2016-06-19 15:30:58.683297195 +0200
+@@ -225,11 +225,11 @@
+
+ config MUTEX_SPIN_ON_OWNER
+ def_bool y
+- depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW
++ depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
+
+ config RWSEM_SPIN_ON_OWNER
+ def_bool y
+- depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW
++ depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
+
+ config LOCK_SPIN_ON_OWNER
+ def_bool y
+diff -Nur linux-4.1.26.orig/kernel/Kconfig.preempt linux-4.1.26/kernel/Kconfig.preempt
+--- linux-4.1.26.orig/kernel/Kconfig.preempt 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/Kconfig.preempt 2016-06-19 15:30:58.683297195 +0200
+@@ -1,3 +1,16 @@
++config PREEMPT
++ bool
++ select PREEMPT_COUNT
++
++config PREEMPT_RT_BASE
++ bool
++ select PREEMPT
++
++config HAVE_PREEMPT_LAZY
++ bool
++
++config PREEMPT_LAZY
++ def_bool y if HAVE_PREEMPT_LAZY && PREEMPT_RT_FULL
+
+ choice
+ prompt "Preemption Model"
+@@ -33,9 +46,9 @@
+
+ Select this if you are building a kernel for a desktop system.
+
+-config PREEMPT
++config PREEMPT__LL
+ bool "Preemptible Kernel (Low-Latency Desktop)"
+- select PREEMPT_COUNT
++ select PREEMPT
+ select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
+ help
+ This option reduces the latency of the kernel by making
+@@ -52,6 +65,22 @@
+ embedded system with latency requirements in the milliseconds
+ range.
+
++config PREEMPT_RTB
++ bool "Preemptible Kernel (Basic RT)"
++ select PREEMPT_RT_BASE
++ help
++ This option is basically the same as (Low-Latency Desktop) but
++ enables changes which are preliminary for the full preemptible
++ RT kernel.
++
++config PREEMPT_RT_FULL
++ bool "Fully Preemptible Kernel (RT)"
++ depends on IRQ_FORCED_THREADING
++ select PREEMPT_RT_BASE
++ select PREEMPT_RCU
++ help
++ All and everything
++
+ endchoice
+
+ config PREEMPT_COUNT
+diff -Nur linux-4.1.26.orig/kernel/ksysfs.c linux-4.1.26/kernel/ksysfs.c
+--- linux-4.1.26.orig/kernel/ksysfs.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/ksysfs.c 2016-06-19 15:30:58.691297504 +0200
@@ -136,6 +136,15 @@
#endif /* CONFIG_KEXEC */
@@ -16010,43 +15996,9 @@ diff -Nur linux-4.1.20.orig/kernel/ksysfs.c linux-4.1.20/kernel/ksysfs.c
NULL
};
-diff -Nur linux-4.1.20.orig/kernel/locking/Makefile linux-4.1.20/kernel/locking/Makefile
---- linux-4.1.20.orig/kernel/locking/Makefile 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/locking/Makefile 2016-03-21 20:18:33.000000000 +0100
-@@ -1,5 +1,5 @@
-
--obj-y += mutex.o semaphore.o rwsem.o
-+obj-y += semaphore.o
-
- ifdef CONFIG_FUNCTION_TRACER
- CFLAGS_REMOVE_lockdep.o = $(CC_FLAGS_FTRACE)
-@@ -8,7 +8,11 @@
- CFLAGS_REMOVE_rtmutex-debug.o = $(CC_FLAGS_FTRACE)
- endif
-
-+ifneq ($(CONFIG_PREEMPT_RT_FULL),y)
-+obj-y += mutex.o
- obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
-+obj-y += rwsem.o
-+endif
- obj-$(CONFIG_LOCKDEP) += lockdep.o
- ifeq ($(CONFIG_PROC_FS),y)
- obj-$(CONFIG_LOCKDEP) += lockdep_proc.o
-@@ -22,8 +26,11 @@
- obj-$(CONFIG_RT_MUTEX_TESTER) += rtmutex-tester.o
- obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o
- obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
-+ifneq ($(CONFIG_PREEMPT_RT_FULL),y)
- obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
- obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem-xadd.o
-+endif
- obj-$(CONFIG_PERCPU_RWSEM) += percpu-rwsem.o
-+obj-$(CONFIG_PREEMPT_RT_FULL) += rt.o
- obj-$(CONFIG_QUEUE_RWLOCK) += qrwlock.o
- obj-$(CONFIG_LOCK_TORTURE_TEST) += locktorture.o
-diff -Nur linux-4.1.20.orig/kernel/locking/lglock.c linux-4.1.20/kernel/locking/lglock.c
---- linux-4.1.20.orig/kernel/locking/lglock.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/locking/lglock.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/locking/lglock.c linux-4.1.26/kernel/locking/lglock.c
+--- linux-4.1.26.orig/kernel/locking/lglock.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/locking/lglock.c 2016-06-19 15:30:58.691297504 +0200
@@ -4,6 +4,15 @@
#include <linux/cpu.h>
#include <linux/string.h>
@@ -16191,9 +16143,9 @@ diff -Nur linux-4.1.20.orig/kernel/locking/lglock.c linux-4.1.20/kernel/locking/
+ }
+}
+#endif
-diff -Nur linux-4.1.20.orig/kernel/locking/lockdep.c linux-4.1.20/kernel/locking/lockdep.c
---- linux-4.1.20.orig/kernel/locking/lockdep.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/locking/lockdep.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/locking/lockdep.c linux-4.1.26/kernel/locking/lockdep.c
+--- linux-4.1.26.orig/kernel/locking/lockdep.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/locking/lockdep.c 2016-06-19 15:30:58.691297504 +0200
@@ -3563,6 +3563,7 @@
}
}
@@ -16210,9 +16162,9 @@ diff -Nur linux-4.1.20.orig/kernel/locking/lockdep.c linux-4.1.20/kernel/locking
if (!debug_locks)
print_irqtrace_events(current);
-diff -Nur linux-4.1.20.orig/kernel/locking/locktorture.c linux-4.1.20/kernel/locking/locktorture.c
---- linux-4.1.20.orig/kernel/locking/locktorture.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/locking/locktorture.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/locking/locktorture.c linux-4.1.26/kernel/locking/locktorture.c
+--- linux-4.1.26.orig/kernel/locking/locktorture.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/locking/locktorture.c 2016-06-19 15:30:58.695297658 +0200
@@ -24,7 +24,6 @@
#include <linux/module.h>
#include <linux/kthread.h>
@@ -16221,9 +16173,43 @@ diff -Nur linux-4.1.20.orig/kernel/locking/locktorture.c linux-4.1.20/kernel/loc
#include <linux/mutex.h>
#include <linux/rwsem.h>
#include <linux/smp.h>
-diff -Nur linux-4.1.20.orig/kernel/locking/rt.c linux-4.1.20/kernel/locking/rt.c
---- linux-4.1.20.orig/kernel/locking/rt.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/kernel/locking/rt.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/locking/Makefile linux-4.1.26/kernel/locking/Makefile
+--- linux-4.1.26.orig/kernel/locking/Makefile 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/locking/Makefile 2016-06-19 15:30:58.691297504 +0200
+@@ -1,5 +1,5 @@
+
+-obj-y += mutex.o semaphore.o rwsem.o
++obj-y += semaphore.o
+
+ ifdef CONFIG_FUNCTION_TRACER
+ CFLAGS_REMOVE_lockdep.o = $(CC_FLAGS_FTRACE)
+@@ -8,7 +8,11 @@
+ CFLAGS_REMOVE_rtmutex-debug.o = $(CC_FLAGS_FTRACE)
+ endif
+
++ifneq ($(CONFIG_PREEMPT_RT_FULL),y)
++obj-y += mutex.o
+ obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
++obj-y += rwsem.o
++endif
+ obj-$(CONFIG_LOCKDEP) += lockdep.o
+ ifeq ($(CONFIG_PROC_FS),y)
+ obj-$(CONFIG_LOCKDEP) += lockdep_proc.o
+@@ -22,8 +26,11 @@
+ obj-$(CONFIG_RT_MUTEX_TESTER) += rtmutex-tester.o
+ obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o
+ obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
++ifneq ($(CONFIG_PREEMPT_RT_FULL),y)
+ obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
+ obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem-xadd.o
++endif
+ obj-$(CONFIG_PERCPU_RWSEM) += percpu-rwsem.o
++obj-$(CONFIG_PREEMPT_RT_FULL) += rt.o
+ obj-$(CONFIG_QUEUE_RWLOCK) += qrwlock.o
+ obj-$(CONFIG_LOCK_TORTURE_TEST) += locktorture.o
+diff -Nur linux-4.1.26.orig/kernel/locking/rt.c linux-4.1.26/kernel/locking/rt.c
+--- linux-4.1.26.orig/kernel/locking/rt.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/kernel/locking/rt.c 2016-06-19 15:30:58.695297658 +0200
@@ -0,0 +1,461 @@
+/*
+ * kernel/rt.c
@@ -16686,9 +16672,9 @@ diff -Nur linux-4.1.20.orig/kernel/locking/rt.c linux-4.1.20/kernel/locking/rt.c
+ return 1;
+}
+EXPORT_SYMBOL(atomic_dec_and_mutex_lock);
-diff -Nur linux-4.1.20.orig/kernel/locking/rtmutex.c linux-4.1.20/kernel/locking/rtmutex.c
---- linux-4.1.20.orig/kernel/locking/rtmutex.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/locking/rtmutex.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/locking/rtmutex.c linux-4.1.26/kernel/locking/rtmutex.c
+--- linux-4.1.26.orig/kernel/locking/rtmutex.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/locking/rtmutex.c 2016-06-19 15:30:58.695297658 +0200
@@ -7,6 +7,11 @@
* Copyright (C) 2005-2006 Timesys Corp., Thomas Gleixner <tglx@timesys.com>
* Copyright (C) 2005 Kihon Technologies Inc., Steven Rostedt
@@ -17786,9 +17772,9 @@ diff -Nur linux-4.1.20.orig/kernel/locking/rtmutex.c linux-4.1.20/kernel/locking
+}
+EXPORT_SYMBOL(ww_mutex_unlock);
+#endif
-diff -Nur linux-4.1.20.orig/kernel/locking/rtmutex_common.h linux-4.1.20/kernel/locking/rtmutex_common.h
---- linux-4.1.20.orig/kernel/locking/rtmutex_common.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/locking/rtmutex_common.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/locking/rtmutex_common.h linux-4.1.26/kernel/locking/rtmutex_common.h
+--- linux-4.1.26.orig/kernel/locking/rtmutex_common.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/locking/rtmutex_common.h 2016-06-19 15:30:58.695297658 +0200
@@ -49,6 +49,7 @@
struct rb_node pi_tree_entry;
struct task_struct *task;
@@ -17832,9 +17818,9 @@ diff -Nur linux-4.1.20.orig/kernel/locking/rtmutex_common.h linux-4.1.20/kernel/
+}
+
#endif
-diff -Nur linux-4.1.20.orig/kernel/locking/spinlock.c linux-4.1.20/kernel/locking/spinlock.c
---- linux-4.1.20.orig/kernel/locking/spinlock.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/locking/spinlock.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/locking/spinlock.c linux-4.1.26/kernel/locking/spinlock.c
+--- linux-4.1.26.orig/kernel/locking/spinlock.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/locking/spinlock.c 2016-06-19 15:30:58.695297658 +0200
@@ -124,8 +124,11 @@
* __[spin|read|write]_lock_bh()
*/
@@ -17865,9 +17851,9 @@ diff -Nur linux-4.1.20.orig/kernel/locking/spinlock.c linux-4.1.20/kernel/lockin
#ifdef CONFIG_DEBUG_LOCK_ALLOC
void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass)
-diff -Nur linux-4.1.20.orig/kernel/locking/spinlock_debug.c linux-4.1.20/kernel/locking/spinlock_debug.c
---- linux-4.1.20.orig/kernel/locking/spinlock_debug.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/locking/spinlock_debug.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/locking/spinlock_debug.c linux-4.1.26/kernel/locking/spinlock_debug.c
+--- linux-4.1.26.orig/kernel/locking/spinlock_debug.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/locking/spinlock_debug.c 2016-06-19 15:30:58.695297658 +0200
@@ -31,6 +31,7 @@
EXPORT_SYMBOL(__raw_spin_lock_init);
@@ -17898,9 +17884,9 @@ diff -Nur linux-4.1.20.orig/kernel/locking/spinlock_debug.c linux-4.1.20/kernel/
}
+
+#endif
-diff -Nur linux-4.1.20.orig/kernel/panic.c linux-4.1.20/kernel/panic.c
---- linux-4.1.20.orig/kernel/panic.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/panic.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/panic.c linux-4.1.26/kernel/panic.c
+--- linux-4.1.26.orig/kernel/panic.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/panic.c 2016-06-19 15:30:58.695297658 +0200
@@ -399,9 +399,11 @@
static int init_oops_id(void)
@@ -17913,9 +17899,9 @@ diff -Nur linux-4.1.20.orig/kernel/panic.c linux-4.1.20/kernel/panic.c
oops_id++;
return 0;
-diff -Nur linux-4.1.20.orig/kernel/power/hibernate.c linux-4.1.20/kernel/power/hibernate.c
---- linux-4.1.20.orig/kernel/power/hibernate.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/power/hibernate.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/power/hibernate.c linux-4.1.26/kernel/power/hibernate.c
+--- linux-4.1.26.orig/kernel/power/hibernate.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/power/hibernate.c 2016-06-19 15:30:58.695297658 +0200
@@ -285,6 +285,8 @@
local_irq_disable();
@@ -17965,9 +17951,9 @@ diff -Nur linux-4.1.20.orig/kernel/power/hibernate.c linux-4.1.20/kernel/power/h
local_irq_enable();
enable_nonboot_cpus();
-diff -Nur linux-4.1.20.orig/kernel/power/suspend.c linux-4.1.20/kernel/power/suspend.c
---- linux-4.1.20.orig/kernel/power/suspend.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/power/suspend.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/power/suspend.c linux-4.1.26/kernel/power/suspend.c
+--- linux-4.1.26.orig/kernel/power/suspend.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/power/suspend.c 2016-06-19 15:30:58.695297658 +0200
@@ -356,6 +356,8 @@
arch_suspend_disable_irqs();
BUG_ON(!irqs_disabled());
@@ -17986,9 +17972,9 @@ diff -Nur linux-4.1.20.orig/kernel/power/suspend.c linux-4.1.20/kernel/power/sus
arch_suspend_enable_irqs();
BUG_ON(irqs_disabled());
-diff -Nur linux-4.1.20.orig/kernel/printk/printk.c linux-4.1.20/kernel/printk/printk.c
---- linux-4.1.20.orig/kernel/printk/printk.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/printk/printk.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/printk/printk.c linux-4.1.26/kernel/printk/printk.c
+--- linux-4.1.26.orig/kernel/printk/printk.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/printk/printk.c 2016-06-19 15:30:58.695297658 +0200
@@ -1163,6 +1163,7 @@
{
char *text;
@@ -18241,9 +18227,9 @@ diff -Nur linux-4.1.20.orig/kernel/printk/printk.c linux-4.1.20/kernel/printk/pr
if (do_cond_resched)
cond_resched();
-diff -Nur linux-4.1.20.orig/kernel/ptrace.c linux-4.1.20/kernel/ptrace.c
---- linux-4.1.20.orig/kernel/ptrace.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/ptrace.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/ptrace.c linux-4.1.26/kernel/ptrace.c
+--- linux-4.1.26.orig/kernel/ptrace.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/ptrace.c 2016-06-19 15:30:58.699297812 +0200
@@ -129,7 +129,14 @@
spin_lock_irq(&task->sighand->siglock);
@@ -18260,9 +18246,9 @@ diff -Nur linux-4.1.20.orig/kernel/ptrace.c linux-4.1.20/kernel/ptrace.c
ret = true;
}
spin_unlock_irq(&task->sighand->siglock);
-diff -Nur linux-4.1.20.orig/kernel/rcu/rcutorture.c linux-4.1.20/kernel/rcu/rcutorture.c
---- linux-4.1.20.orig/kernel/rcu/rcutorture.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/rcu/rcutorture.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/rcu/rcutorture.c linux-4.1.26/kernel/rcu/rcutorture.c
+--- linux-4.1.26.orig/kernel/rcu/rcutorture.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/rcu/rcutorture.c 2016-06-19 15:30:58.699297812 +0200
@@ -389,6 +389,7 @@
.name = "rcu"
};
@@ -18284,9 +18270,9 @@ diff -Nur linux-4.1.20.orig/kernel/rcu/rcutorture.c linux-4.1.20/kernel/rcu/rcut
/*
* Don't even think about trying any of these in real life!!!
* The names includes "busted", and they really means it!
-diff -Nur linux-4.1.20.orig/kernel/rcu/tree.c linux-4.1.20/kernel/rcu/tree.c
---- linux-4.1.20.orig/kernel/rcu/tree.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/rcu/tree.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/rcu/tree.c linux-4.1.26/kernel/rcu/tree.c
+--- linux-4.1.26.orig/kernel/rcu/tree.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/rcu/tree.c 2016-06-19 15:30:58.699297812 +0200
@@ -56,6 +56,11 @@
#include <linux/random.h>
#include <linux/ftrace_event.h>
@@ -18574,9 +18560,9 @@ diff -Nur linux-4.1.20.orig/kernel/rcu/tree.c linux-4.1.20/kernel/rcu/tree.c
/*
* We don't need protection against CPU-hotplug here because
-diff -Nur linux-4.1.20.orig/kernel/rcu/tree.h linux-4.1.20/kernel/rcu/tree.h
---- linux-4.1.20.orig/kernel/rcu/tree.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/rcu/tree.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/rcu/tree.h linux-4.1.26/kernel/rcu/tree.h
+--- linux-4.1.26.orig/kernel/rcu/tree.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/rcu/tree.h 2016-06-19 15:30:58.699297812 +0200
@@ -27,6 +27,7 @@
#include <linux/threads.h>
#include <linux/cpumask.h>
@@ -18637,9 +18623,9 @@ diff -Nur linux-4.1.20.orig/kernel/rcu/tree.h linux-4.1.20/kernel/rcu/tree.h
static int rcu_spawn_one_boost_kthread(struct rcu_state *rsp,
struct rcu_node *rnp);
#endif /* #ifdef CONFIG_RCU_BOOST */
-diff -Nur linux-4.1.20.orig/kernel/rcu/tree_plugin.h linux-4.1.20/kernel/rcu/tree_plugin.h
---- linux-4.1.20.orig/kernel/rcu/tree_plugin.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/rcu/tree_plugin.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/rcu/tree_plugin.h linux-4.1.26/kernel/rcu/tree_plugin.h
+--- linux-4.1.26.orig/kernel/rcu/tree_plugin.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/rcu/tree_plugin.h 2016-06-19 15:30:58.699297812 +0200
@@ -24,27 +24,20 @@
* Paul E. McKenney <paulmck@linux.vnet.ibm.com>
*/
@@ -18974,9 +18960,9 @@ diff -Nur linux-4.1.20.orig/kernel/rcu/tree_plugin.h linux-4.1.20/kernel/rcu/tre
rdp->nocb_follower_tail = &rdp->nocb_follower_head;
}
-diff -Nur linux-4.1.20.orig/kernel/rcu/update.c linux-4.1.20/kernel/rcu/update.c
---- linux-4.1.20.orig/kernel/rcu/update.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/rcu/update.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/rcu/update.c linux-4.1.26/kernel/rcu/update.c
+--- linux-4.1.26.orig/kernel/rcu/update.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/rcu/update.c 2016-06-19 15:30:58.699297812 +0200
@@ -227,6 +227,7 @@
}
EXPORT_SYMBOL_GPL(rcu_read_lock_held);
@@ -18993,9 +18979,9 @@ diff -Nur linux-4.1.20.orig/kernel/rcu/update.c linux-4.1.20/kernel/rcu/update.c
#endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-diff -Nur linux-4.1.20.orig/kernel/relay.c linux-4.1.20/kernel/relay.c
---- linux-4.1.20.orig/kernel/relay.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/relay.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/relay.c linux-4.1.26/kernel/relay.c
+--- linux-4.1.26.orig/kernel/relay.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/relay.c 2016-06-19 15:30:58.699297812 +0200
@@ -339,6 +339,10 @@
{
struct rchan_buf *buf = (struct rchan_buf *)data;
@@ -19031,21 +19017,9 @@ diff -Nur linux-4.1.20.orig/kernel/relay.c linux-4.1.20/kernel/relay.c
}
old = buf->data;
-diff -Nur linux-4.1.20.orig/kernel/sched/Makefile linux-4.1.20/kernel/sched/Makefile
---- linux-4.1.20.orig/kernel/sched/Makefile 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/Makefile 2016-03-21 20:18:33.000000000 +0100
-@@ -13,7 +13,7 @@
-
- obj-y += core.o proc.o clock.o cputime.o
- obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o
--obj-y += wait.o completion.o idle.o
-+obj-y += wait.o wait-simple.o work-simple.o completion.o idle.o
- obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o
- obj-$(CONFIG_SCHED_AUTOGROUP) += auto_group.o
- obj-$(CONFIG_SCHEDSTATS) += stats.o
-diff -Nur linux-4.1.20.orig/kernel/sched/completion.c linux-4.1.20/kernel/sched/completion.c
---- linux-4.1.20.orig/kernel/sched/completion.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/completion.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/completion.c linux-4.1.26/kernel/sched/completion.c
+--- linux-4.1.26.orig/kernel/sched/completion.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/completion.c 2016-06-19 15:30:58.699297812 +0200
@@ -30,10 +30,10 @@
{
unsigned long flags;
@@ -19136,9 +19110,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/completion.c linux-4.1.20/kernel/sched/
return true;
}
EXPORT_SYMBOL(completion_done);
-diff -Nur linux-4.1.20.orig/kernel/sched/core.c linux-4.1.20/kernel/sched/core.c
---- linux-4.1.20.orig/kernel/sched/core.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/core.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/core.c linux-4.1.26/kernel/sched/core.c
+--- linux-4.1.26.orig/kernel/sched/core.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/core.c 2016-06-19 15:30:58.703297966 +0200
@@ -282,7 +282,11 @@
* Number of tasks to iterate in a single balance run.
* Limited because this is done with IRQs disabled.
@@ -19958,9 +19932,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/core.c linux-4.1.20/kernel/sched/core.c
return (nested == preempt_offset);
}
-diff -Nur linux-4.1.20.orig/kernel/sched/cputime.c linux-4.1.20/kernel/sched/cputime.c
---- linux-4.1.20.orig/kernel/sched/cputime.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/cputime.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/cputime.c linux-4.1.26/kernel/sched/cputime.c
+--- linux-4.1.26.orig/kernel/sched/cputime.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/cputime.c 2016-06-19 15:30:58.703297966 +0200
@@ -675,37 +675,45 @@
void vtime_account_system(struct task_struct *tsk)
@@ -20114,9 +20088,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/cputime.c linux-4.1.20/kernel/sched/cpu
}
-diff -Nur linux-4.1.20.orig/kernel/sched/deadline.c linux-4.1.20/kernel/sched/deadline.c
---- linux-4.1.20.orig/kernel/sched/deadline.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/deadline.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/deadline.c linux-4.1.26/kernel/sched/deadline.c
+--- linux-4.1.26.orig/kernel/sched/deadline.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/deadline.c 2016-06-19 15:30:58.703297966 +0200
@@ -637,6 +637,7 @@
hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
@@ -20125,9 +20099,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/deadline.c linux-4.1.20/kernel/sched/de
}
static
-diff -Nur linux-4.1.20.orig/kernel/sched/debug.c linux-4.1.20/kernel/sched/debug.c
---- linux-4.1.20.orig/kernel/sched/debug.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/debug.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/debug.c linux-4.1.26/kernel/sched/debug.c
+--- linux-4.1.26.orig/kernel/sched/debug.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/debug.c 2016-06-19 15:30:58.703297966 +0200
@@ -260,6 +260,9 @@
P(rt_throttled);
PN(rt_time);
@@ -20149,9 +20123,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/debug.c linux-4.1.20/kernel/sched/debug
#undef PN
#undef __PN
#undef P
-diff -Nur linux-4.1.20.orig/kernel/sched/fair.c linux-4.1.20/kernel/sched/fair.c
---- linux-4.1.20.orig/kernel/sched/fair.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/fair.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/fair.c linux-4.1.26/kernel/sched/fair.c
+--- linux-4.1.26.orig/kernel/sched/fair.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/fair.c 2016-06-19 15:30:58.703297966 +0200
@@ -3201,7 +3201,7 @@
ideal_runtime = sched_slice(cfs_rq, curr);
delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime;
@@ -20224,9 +20198,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/fair.c linux-4.1.20/kernel/sched/fair.c
} else
check_preempt_curr(rq, p, 0);
}
-diff -Nur linux-4.1.20.orig/kernel/sched/features.h linux-4.1.20/kernel/sched/features.h
---- linux-4.1.20.orig/kernel/sched/features.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/features.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/features.h linux-4.1.26/kernel/sched/features.h
+--- linux-4.1.26.orig/kernel/sched/features.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/features.h 2016-06-19 15:30:58.707298121 +0200
@@ -50,11 +50,19 @@
*/
SCHED_FEAT(NONTASK_CAPACITY, true)
@@ -20247,9 +20221,21 @@ diff -Nur linux-4.1.20.orig/kernel/sched/features.h linux-4.1.20/kernel/sched/fe
#ifdef HAVE_RT_PUSH_IPI
/*
-diff -Nur linux-4.1.20.orig/kernel/sched/rt.c linux-4.1.20/kernel/sched/rt.c
---- linux-4.1.20.orig/kernel/sched/rt.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/rt.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/Makefile linux-4.1.26/kernel/sched/Makefile
+--- linux-4.1.26.orig/kernel/sched/Makefile 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/Makefile 2016-06-19 15:30:58.699297812 +0200
+@@ -13,7 +13,7 @@
+
+ obj-y += core.o proc.o clock.o cputime.o
+ obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o
+-obj-y += wait.o completion.o idle.o
++obj-y += wait.o wait-simple.o work-simple.o completion.o idle.o
+ obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o
+ obj-$(CONFIG_SCHED_AUTOGROUP) += auto_group.o
+ obj-$(CONFIG_SCHEDSTATS) += stats.o
+diff -Nur linux-4.1.26.orig/kernel/sched/rt.c linux-4.1.26/kernel/sched/rt.c
+--- linux-4.1.26.orig/kernel/sched/rt.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/rt.c 2016-06-19 15:30:58.707298121 +0200
@@ -44,6 +44,7 @@
hrtimer_init(&rt_b->rt_period_timer,
@@ -20266,9 +20252,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/rt.c linux-4.1.20/kernel/sched/rt.c
#endif
#endif /* CONFIG_SMP */
/* We start is dequeued state, because no RT tasks are queued */
-diff -Nur linux-4.1.20.orig/kernel/sched/sched.h linux-4.1.20/kernel/sched/sched.h
---- linux-4.1.20.orig/kernel/sched/sched.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/sched/sched.h 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/sched.h linux-4.1.26/kernel/sched/sched.h
+--- linux-4.1.26.orig/kernel/sched/sched.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/sched/sched.h 2016-06-19 15:30:58.707298121 +0200
@@ -1093,6 +1093,7 @@
#define WF_SYNC 0x01 /* waker goes to sleep after wakeup */
#define WF_FORK 0x02 /* child wakeup after fork */
@@ -20293,9 +20279,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/sched.h linux-4.1.20/kernel/sched/sched
extern struct rt_bandwidth def_rt_bandwidth;
extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime);
-diff -Nur linux-4.1.20.orig/kernel/sched/wait-simple.c linux-4.1.20/kernel/sched/wait-simple.c
---- linux-4.1.20.orig/kernel/sched/wait-simple.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/kernel/sched/wait-simple.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/wait-simple.c linux-4.1.26/kernel/sched/wait-simple.c
+--- linux-4.1.26.orig/kernel/sched/wait-simple.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/kernel/sched/wait-simple.c 2016-06-19 15:30:58.707298121 +0200
@@ -0,0 +1,115 @@
+/*
+ * Simple waitqueues without fancy flags and callbacks
@@ -20412,9 +20398,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/wait-simple.c linux-4.1.20/kernel/sched
+ return woken;
+}
+EXPORT_SYMBOL(__swait_wake);
-diff -Nur linux-4.1.20.orig/kernel/sched/work-simple.c linux-4.1.20/kernel/sched/work-simple.c
---- linux-4.1.20.orig/kernel/sched/work-simple.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/kernel/sched/work-simple.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/sched/work-simple.c linux-4.1.26/kernel/sched/work-simple.c
+--- linux-4.1.26.orig/kernel/sched/work-simple.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/kernel/sched/work-simple.c 2016-06-19 15:30:58.707298121 +0200
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2014 BMW Car IT GmbH, Daniel Wagner daniel.wagner@bmw-carit.de
@@ -20589,9 +20575,9 @@ diff -Nur linux-4.1.20.orig/kernel/sched/work-simple.c linux-4.1.20/kernel/sched
+ mutex_unlock(&worker_mutex);
+}
+EXPORT_SYMBOL_GPL(swork_put);
-diff -Nur linux-4.1.20.orig/kernel/signal.c linux-4.1.20/kernel/signal.c
---- linux-4.1.20.orig/kernel/signal.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/signal.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/signal.c linux-4.1.26/kernel/signal.c
+--- linux-4.1.26.orig/kernel/signal.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/signal.c 2016-06-19 15:30:58.707298121 +0200
@@ -14,6 +14,7 @@
#include <linux/export.h>
#include <linux/init.h>
@@ -20836,9 +20822,9 @@ diff -Nur linux-4.1.20.orig/kernel/signal.c linux-4.1.20/kernel/signal.c
freezable_schedule();
} else {
/*
-diff -Nur linux-4.1.20.orig/kernel/softirq.c linux-4.1.20/kernel/softirq.c
---- linux-4.1.20.orig/kernel/softirq.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/softirq.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/softirq.c linux-4.1.26/kernel/softirq.c
+--- linux-4.1.26.orig/kernel/softirq.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/softirq.c 2016-06-19 15:30:58.707298121 +0200
@@ -21,10 +21,12 @@
#include <linux/freezer.h>
#include <linux/kthread.h>
@@ -21809,9 +21795,9 @@ diff -Nur linux-4.1.20.orig/kernel/softirq.c linux-4.1.20/kernel/softirq.c
return 0;
}
-diff -Nur linux-4.1.20.orig/kernel/stop_machine.c linux-4.1.20/kernel/stop_machine.c
---- linux-4.1.20.orig/kernel/stop_machine.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/stop_machine.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/stop_machine.c linux-4.1.26/kernel/stop_machine.c
+--- linux-4.1.26.orig/kernel/stop_machine.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/stop_machine.c 2016-06-19 15:30:58.707298121 +0200
@@ -35,7 +35,7 @@
/* the actual stopper, one per every possible cpu, enabled on online cpus */
@@ -21995,9 +21981,9 @@ diff -Nur linux-4.1.20.orig/kernel/stop_machine.c linux-4.1.20/kernel/stop_machi
ret = multi_cpu_stop(&msdata);
/* Busy wait for completion. */
-diff -Nur linux-4.1.20.orig/kernel/time/hrtimer.c linux-4.1.20/kernel/time/hrtimer.c
---- linux-4.1.20.orig/kernel/time/hrtimer.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/hrtimer.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/hrtimer.c linux-4.1.26/kernel/time/hrtimer.c
+--- linux-4.1.26.orig/kernel/time/hrtimer.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/hrtimer.c 2016-06-19 15:30:58.707298121 +0200
@@ -48,11 +48,13 @@
#include <linux/sched/rt.h>
#include <linux/sched/deadline.h>
@@ -22602,9 +22588,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/hrtimer.c linux-4.1.20/kernel/time/hrtim
}
/**
-diff -Nur linux-4.1.20.orig/kernel/time/itimer.c linux-4.1.20/kernel/time/itimer.c
---- linux-4.1.20.orig/kernel/time/itimer.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/itimer.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/itimer.c linux-4.1.26/kernel/time/itimer.c
+--- linux-4.1.26.orig/kernel/time/itimer.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/itimer.c 2016-06-19 15:30:58.711298275 +0200
@@ -213,6 +213,7 @@
/* We are sharing ->siglock with it_real_fn() */
if (hrtimer_try_to_cancel(timer) < 0) {
@@ -22613,9 +22599,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/itimer.c linux-4.1.20/kernel/time/itimer
goto again;
}
expires = timeval_to_ktime(value->it_value);
-diff -Nur linux-4.1.20.orig/kernel/time/jiffies.c linux-4.1.20/kernel/time/jiffies.c
---- linux-4.1.20.orig/kernel/time/jiffies.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/jiffies.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/jiffies.c linux-4.1.26/kernel/time/jiffies.c
+--- linux-4.1.26.orig/kernel/time/jiffies.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/jiffies.c 2016-06-19 15:30:58.711298275 +0200
@@ -74,7 +74,8 @@
.max_cycles = 10,
};
@@ -22638,9 +22624,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/jiffies.c linux-4.1.20/kernel/time/jiffi
return ret;
}
EXPORT_SYMBOL(get_jiffies_64);
-diff -Nur linux-4.1.20.orig/kernel/time/ntp.c linux-4.1.20/kernel/time/ntp.c
---- linux-4.1.20.orig/kernel/time/ntp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/ntp.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/ntp.c linux-4.1.26/kernel/time/ntp.c
+--- linux-4.1.26.orig/kernel/time/ntp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/ntp.c 2016-06-19 15:30:58.711298275 +0200
@@ -10,6 +10,7 @@
#include <linux/workqueue.h>
#include <linux/hrtimer.h>
@@ -22702,9 +22688,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/ntp.c linux-4.1.20/kernel/time/ntp.c
#else
void ntp_notify_cmos_timer(void) { }
-diff -Nur linux-4.1.20.orig/kernel/time/posix-cpu-timers.c linux-4.1.20/kernel/time/posix-cpu-timers.c
---- linux-4.1.20.orig/kernel/time/posix-cpu-timers.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/posix-cpu-timers.c 2016-03-21 20:18:33.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/posix-cpu-timers.c linux-4.1.26/kernel/time/posix-cpu-timers.c
+--- linux-4.1.26.orig/kernel/time/posix-cpu-timers.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/posix-cpu-timers.c 2016-06-19 15:30:58.711298275 +0200
@@ -3,6 +3,7 @@
*/
@@ -22952,9 +22938,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/posix-cpu-timers.c linux-4.1.20/kernel/t
/*
* Set one of the process-wide special case CPU timers or RLIMIT_CPU.
* The tsk->sighand->siglock must be held by the caller.
-diff -Nur linux-4.1.20.orig/kernel/time/posix-timers.c linux-4.1.20/kernel/time/posix-timers.c
---- linux-4.1.20.orig/kernel/time/posix-timers.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/posix-timers.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/posix-timers.c linux-4.1.26/kernel/time/posix-timers.c
+--- linux-4.1.26.orig/kernel/time/posix-timers.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/posix-timers.c 2016-06-19 15:30:58.711298275 +0200
@@ -499,6 +499,7 @@
static struct pid *good_sigevent(sigevent_t * event)
{
@@ -23050,9 +23036,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/posix-timers.c linux-4.1.20/kernel/time/
goto retry_delete;
}
list_del(&timer->list);
-diff -Nur linux-4.1.20.orig/kernel/time/tick-broadcast-hrtimer.c linux-4.1.20/kernel/time/tick-broadcast-hrtimer.c
---- linux-4.1.20.orig/kernel/time/tick-broadcast-hrtimer.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/tick-broadcast-hrtimer.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/tick-broadcast-hrtimer.c linux-4.1.26/kernel/time/tick-broadcast-hrtimer.c
+--- linux-4.1.26.orig/kernel/time/tick-broadcast-hrtimer.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/tick-broadcast-hrtimer.c 2016-06-19 15:30:58.711298275 +0200
@@ -109,5 +109,6 @@
{
hrtimer_init(&bctimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
@@ -23060,9 +23046,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/tick-broadcast-hrtimer.c linux-4.1.20/ke
+ bctimer.irqsafe = true;
clockevents_register_device(&ce_broadcast_hrtimer);
}
-diff -Nur linux-4.1.20.orig/kernel/time/tick-common.c linux-4.1.20/kernel/time/tick-common.c
---- linux-4.1.20.orig/kernel/time/tick-common.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/tick-common.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/tick-common.c linux-4.1.26/kernel/time/tick-common.c
+--- linux-4.1.26.orig/kernel/time/tick-common.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/tick-common.c 2016-06-19 15:30:58.711298275 +0200
@@ -78,13 +78,15 @@
static void tick_periodic(int cpu)
{
@@ -23093,9 +23079,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/tick-common.c linux-4.1.20/kernel/time/t
clockevents_set_state(dev, CLOCK_EVT_STATE_ONESHOT);
-diff -Nur linux-4.1.20.orig/kernel/time/tick-sched.c linux-4.1.20/kernel/time/tick-sched.c
---- linux-4.1.20.orig/kernel/time/tick-sched.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/tick-sched.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/tick-sched.c linux-4.1.26/kernel/time/tick-sched.c
+--- linux-4.1.26.orig/kernel/time/tick-sched.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/tick-sched.c 2016-06-19 15:30:58.711298275 +0200
@@ -62,7 +62,8 @@
return;
@@ -23195,9 +23181,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/tick-sched.c linux-4.1.20/kernel/time/ti
ts->sched_timer.function = tick_sched_timer;
/* Get the next period (per cpu) */
-diff -Nur linux-4.1.20.orig/kernel/time/timekeeping.c linux-4.1.20/kernel/time/timekeeping.c
---- linux-4.1.20.orig/kernel/time/timekeeping.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/timekeeping.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/timekeeping.c linux-4.1.26/kernel/time/timekeeping.c
+--- linux-4.1.26.orig/kernel/time/timekeeping.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/timekeeping.c 2016-06-19 15:30:58.711298275 +0200
@@ -2064,8 +2064,10 @@
*/
void xtime_update(unsigned long ticks)
@@ -23211,9 +23197,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/timekeeping.c linux-4.1.20/kernel/time/t
+ raw_spin_unlock(&jiffies_lock);
update_wall_time();
}
-diff -Nur linux-4.1.20.orig/kernel/time/timekeeping.h linux-4.1.20/kernel/time/timekeeping.h
---- linux-4.1.20.orig/kernel/time/timekeeping.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/timekeeping.h 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/timekeeping.h linux-4.1.26/kernel/time/timekeeping.h
+--- linux-4.1.26.orig/kernel/time/timekeeping.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/timekeeping.h 2016-06-19 15:30:58.711298275 +0200
@@ -22,7 +22,8 @@
extern void do_timer(unsigned long ticks);
extern void update_wall_time(void);
@@ -23224,9 +23210,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/timekeeping.h linux-4.1.20/kernel/time/t
#define CS_NAME_LEN 32
-diff -Nur linux-4.1.20.orig/kernel/time/timer.c linux-4.1.20/kernel/time/timer.c
---- linux-4.1.20.orig/kernel/time/timer.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/time/timer.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/time/timer.c linux-4.1.26/kernel/time/timer.c
+--- linux-4.1.26.orig/kernel/time/timer.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/time/timer.c 2016-06-19 15:30:58.711298275 +0200
@@ -78,6 +78,9 @@
struct tvec_base {
spinlock_t lock;
@@ -23426,9 +23412,9 @@ diff -Nur linux-4.1.20.orig/kernel/time/timer.c linux-4.1.20/kernel/time/timer.c
for (j = 0; j < TVN_SIZE; j++) {
INIT_LIST_HEAD(base->tv5.vec + j);
-diff -Nur linux-4.1.20.orig/kernel/trace/Kconfig linux-4.1.20/kernel/trace/Kconfig
---- linux-4.1.20.orig/kernel/trace/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/Kconfig 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/trace/Kconfig linux-4.1.26/kernel/trace/Kconfig
+--- linux-4.1.26.orig/kernel/trace/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/Kconfig 2016-06-19 15:30:58.711298275 +0200
@@ -187,6 +187,24 @@
enabled. This option and the preempt-off timing option can be
used together or separately.)
@@ -23554,23 +23540,9 @@ diff -Nur linux-4.1.20.orig/kernel/trace/Kconfig linux-4.1.20/kernel/trace/Kconf
config ENABLE_DEFAULT_TRACERS
bool "Trace process context switches and events"
depends on !GENERIC_TRACER
-diff -Nur linux-4.1.20.orig/kernel/trace/Makefile linux-4.1.20/kernel/trace/Makefile
---- linux-4.1.20.orig/kernel/trace/Makefile 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/Makefile 2016-03-21 20:18:34.000000000 +0100
-@@ -36,6 +36,10 @@
- obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o
- obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff.o
- obj-$(CONFIG_SCHED_TRACER) += trace_sched_wakeup.o
-+obj-$(CONFIG_INTERRUPT_OFF_HIST) += latency_hist.o
-+obj-$(CONFIG_PREEMPT_OFF_HIST) += latency_hist.o
-+obj-$(CONFIG_WAKEUP_LATENCY_HIST) += latency_hist.o
-+obj-$(CONFIG_MISSED_TIMER_OFFSETS_HIST) += latency_hist.o
- obj-$(CONFIG_NOP_TRACER) += trace_nop.o
- obj-$(CONFIG_STACK_TRACER) += trace_stack.o
- obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o
-diff -Nur linux-4.1.20.orig/kernel/trace/latency_hist.c linux-4.1.20/kernel/trace/latency_hist.c
---- linux-4.1.20.orig/kernel/trace/latency_hist.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.20/kernel/trace/latency_hist.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/trace/latency_hist.c linux-4.1.26/kernel/trace/latency_hist.c
+--- linux-4.1.26.orig/kernel/trace/latency_hist.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.1.26/kernel/trace/latency_hist.c 2016-06-19 15:30:58.715298429 +0200
@@ -0,0 +1,1178 @@
+/*
+ * kernel/trace/latency_hist.c
@@ -24750,9 +24722,23 @@ diff -Nur linux-4.1.20.orig/kernel/trace/latency_hist.c linux-4.1.20/kernel/trac
+}
+
+device_initcall(latency_hist_init);
-diff -Nur linux-4.1.20.orig/kernel/trace/trace.c linux-4.1.20/kernel/trace/trace.c
---- linux-4.1.20.orig/kernel/trace/trace.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/trace.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/trace/Makefile linux-4.1.26/kernel/trace/Makefile
+--- linux-4.1.26.orig/kernel/trace/Makefile 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/Makefile 2016-06-19 15:30:58.715298429 +0200
+@@ -36,6 +36,10 @@
+ obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o
+ obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff.o
+ obj-$(CONFIG_SCHED_TRACER) += trace_sched_wakeup.o
++obj-$(CONFIG_INTERRUPT_OFF_HIST) += latency_hist.o
++obj-$(CONFIG_PREEMPT_OFF_HIST) += latency_hist.o
++obj-$(CONFIG_WAKEUP_LATENCY_HIST) += latency_hist.o
++obj-$(CONFIG_MISSED_TIMER_OFFSETS_HIST) += latency_hist.o
+ obj-$(CONFIG_NOP_TRACER) += trace_nop.o
+ obj-$(CONFIG_STACK_TRACER) += trace_stack.o
+ obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o
+diff -Nur linux-4.1.26.orig/kernel/trace/trace.c linux-4.1.26/kernel/trace/trace.c
+--- linux-4.1.26.orig/kernel/trace/trace.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/trace.c 2016-06-19 15:30:58.715298429 +0200
@@ -1630,6 +1630,7 @@
struct task_struct *tsk = current;
@@ -24820,9 +24806,21 @@ diff -Nur linux-4.1.20.orig/kernel/trace/trace.c linux-4.1.20/kernel/trace/trace
}
void
-diff -Nur linux-4.1.20.orig/kernel/trace/trace.h linux-4.1.20/kernel/trace/trace.h
---- linux-4.1.20.orig/kernel/trace/trace.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/trace.h 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/trace/trace_events.c linux-4.1.26/kernel/trace/trace_events.c
+--- linux-4.1.26.orig/kernel/trace/trace_events.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/trace_events.c 2016-06-19 15:30:58.715298429 +0200
+@@ -162,6 +162,8 @@
+ __common_field(unsigned char, flags);
+ __common_field(unsigned char, preempt_count);
+ __common_field(int, pid);
++ __common_field(unsigned short, migrate_disable);
++ __common_field(unsigned short, padding);
+
+ return ret;
+ }
+diff -Nur linux-4.1.26.orig/kernel/trace/trace.h linux-4.1.26/kernel/trace/trace.h
+--- linux-4.1.26.orig/kernel/trace/trace.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/trace.h 2016-06-19 15:30:58.715298429 +0200
@@ -120,6 +120,7 @@
* NEED_RESCHED - reschedule is requested
* HARDIRQ - inside an interrupt handler
@@ -24839,21 +24837,9 @@ diff -Nur linux-4.1.20.orig/kernel/trace/trace.h linux-4.1.20/kernel/trace/trace
};
#define TRACE_BUF_SIZE 1024
-diff -Nur linux-4.1.20.orig/kernel/trace/trace_events.c linux-4.1.20/kernel/trace/trace_events.c
---- linux-4.1.20.orig/kernel/trace/trace_events.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/trace_events.c 2016-03-21 20:18:34.000000000 +0100
-@@ -162,6 +162,8 @@
- __common_field(unsigned char, flags);
- __common_field(unsigned char, preempt_count);
- __common_field(int, pid);
-+ __common_field(unsigned short, migrate_disable);
-+ __common_field(unsigned short, padding);
-
- return ret;
- }
-diff -Nur linux-4.1.20.orig/kernel/trace/trace_irqsoff.c linux-4.1.20/kernel/trace/trace_irqsoff.c
---- linux-4.1.20.orig/kernel/trace/trace_irqsoff.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/trace_irqsoff.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/trace/trace_irqsoff.c linux-4.1.26/kernel/trace/trace_irqsoff.c
+--- linux-4.1.26.orig/kernel/trace/trace_irqsoff.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/trace_irqsoff.c 2016-06-19 15:30:58.715298429 +0200
@@ -13,6 +13,7 @@
#include <linux/uaccess.h>
#include <linux/module.h>
@@ -24937,9 +24923,9 @@ diff -Nur linux-4.1.20.orig/kernel/trace/trace_irqsoff.c linux-4.1.20/kernel/tra
if (preempt_trace() && !irq_trace())
start_critical_timing(a0, a1);
}
-diff -Nur linux-4.1.20.orig/kernel/trace/trace_output.c linux-4.1.20/kernel/trace/trace_output.c
---- linux-4.1.20.orig/kernel/trace/trace_output.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/trace_output.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/trace/trace_output.c linux-4.1.26/kernel/trace/trace_output.c
+--- linux-4.1.26.orig/kernel/trace/trace_output.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/trace_output.c 2016-06-19 15:30:58.715298429 +0200
@@ -430,6 +430,7 @@
{
char hardsoft_irq;
@@ -24985,9 +24971,9 @@ diff -Nur linux-4.1.20.orig/kernel/trace/trace_output.c linux-4.1.20/kernel/trac
return !trace_seq_has_overflowed(s);
}
-diff -Nur linux-4.1.20.orig/kernel/trace/trace_sched_switch.c linux-4.1.20/kernel/trace/trace_sched_switch.c
---- linux-4.1.20.orig/kernel/trace/trace_sched_switch.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/trace_sched_switch.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/trace/trace_sched_switch.c linux-4.1.26/kernel/trace/trace_sched_switch.c
+--- linux-4.1.26.orig/kernel/trace/trace_sched_switch.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/trace_sched_switch.c 2016-06-19 15:30:58.715298429 +0200
@@ -26,7 +26,7 @@
}
@@ -24997,9 +24983,9 @@ diff -Nur linux-4.1.20.orig/kernel/trace/trace_sched_switch.c linux-4.1.20/kerne
{
if (unlikely(!sched_ref))
return;
-diff -Nur linux-4.1.20.orig/kernel/trace/trace_sched_wakeup.c linux-4.1.20/kernel/trace/trace_sched_wakeup.c
---- linux-4.1.20.orig/kernel/trace/trace_sched_wakeup.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/trace/trace_sched_wakeup.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/trace/trace_sched_wakeup.c linux-4.1.26/kernel/trace/trace_sched_wakeup.c
+--- linux-4.1.26.orig/kernel/trace/trace_sched_wakeup.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/trace/trace_sched_wakeup.c 2016-06-19 15:30:58.719298583 +0200
@@ -514,7 +514,7 @@
}
@@ -25009,9 +24995,9 @@ diff -Nur linux-4.1.20.orig/kernel/trace/trace_sched_wakeup.c linux-4.1.20/kerne
{
struct trace_array_cpu *data;
int cpu = smp_processor_id();
-diff -Nur linux-4.1.20.orig/kernel/user.c linux-4.1.20/kernel/user.c
---- linux-4.1.20.orig/kernel/user.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/user.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/user.c linux-4.1.26/kernel/user.c
+--- linux-4.1.26.orig/kernel/user.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/user.c 2016-06-19 15:30:58.719298583 +0200
@@ -161,11 +161,11 @@
if (!up)
return;
@@ -25026,9 +25012,9 @@ diff -Nur linux-4.1.20.orig/kernel/user.c linux-4.1.20/kernel/user.c
}
struct user_struct *alloc_uid(kuid_t uid)
-diff -Nur linux-4.1.20.orig/kernel/watchdog.c linux-4.1.20/kernel/watchdog.c
---- linux-4.1.20.orig/kernel/watchdog.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/watchdog.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/watchdog.c linux-4.1.26/kernel/watchdog.c
+--- linux-4.1.26.orig/kernel/watchdog.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/watchdog.c 2016-06-19 15:30:58.719298583 +0200
@@ -262,6 +262,8 @@
#ifdef CONFIG_HARDLOCKUP_DETECTOR
@@ -25070,9 +25056,9 @@ diff -Nur linux-4.1.20.orig/kernel/watchdog.c linux-4.1.20/kernel/watchdog.c
/* Enable the perf event */
watchdog_nmi_enable(cpu);
-diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
---- linux-4.1.20.orig/kernel/workqueue.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/workqueue.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/workqueue.c linux-4.1.26/kernel/workqueue.c
+--- linux-4.1.26.orig/kernel/workqueue.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/workqueue.c 2016-06-19 15:30:58.719298583 +0200
@@ -48,6 +48,8 @@
#include <linux/nodemask.h>
#include <linux/moduleparam.h>
@@ -25215,7 +25201,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
*
-@@ -677,8 +710,8 @@
+@@ -706,8 +739,8 @@
* @work: the work item of interest
*
* Pools are created and destroyed under wq_pool_mutex, and allows read
@@ -25226,7 +25212,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
*
* All fields of the returned pool are accessible as long as the above
* mentioned locking is in effect. If the returned pool needs to be used
-@@ -815,51 +848,44 @@
+@@ -844,51 +877,44 @@
*/
static void wake_up_worker(struct worker_pool *pool)
{
@@ -25297,7 +25283,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
struct worker_pool *pool;
/*
-@@ -868,29 +894,26 @@
+@@ -897,29 +923,26 @@
* checking NOT_RUNNING.
*/
if (worker->flags & WORKER_NOT_RUNNING)
@@ -25337,7 +25323,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
/**
-@@ -1084,12 +1107,12 @@
+@@ -1113,12 +1136,12 @@
{
if (pwq) {
/*
@@ -25353,7 +25339,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
}
-@@ -1191,7 +1214,7 @@
+@@ -1220,7 +1243,7 @@
struct worker_pool *pool;
struct pool_workqueue *pwq;
@@ -25362,7 +25348,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
/* try to steal the timer if it exists */
if (is_dwork) {
-@@ -1210,6 +1233,7 @@
+@@ -1239,6 +1262,7 @@
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work)))
return 0;
@@ -25370,7 +25356,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
/*
* The queueing is in progress, or it is already queued. Try to
* steal it from ->worklist without clearing WORK_STRUCT_PENDING.
-@@ -1248,14 +1272,16 @@
+@@ -1277,14 +1301,16 @@
set_work_pool_and_keep_pending(work, pool->id);
spin_unlock(&pool->lock);
@@ -25389,7 +25375,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return -EAGAIN;
}
-@@ -1324,7 +1350,7 @@
+@@ -1353,7 +1379,7 @@
* queued or lose PENDING. Grabbing PENDING and queueing should
* happen with IRQ disabled.
*/
@@ -25398,7 +25384,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
debug_work_activate(work);
-@@ -1332,6 +1358,8 @@
+@@ -1361,6 +1387,8 @@
if (unlikely(wq->flags & __WQ_DRAINING) &&
WARN_ON_ONCE(!is_chained_work(wq)))
return;
@@ -25407,7 +25393,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
retry:
if (req_cpu == WORK_CPU_UNBOUND)
cpu = raw_smp_processor_id();
-@@ -1388,10 +1416,8 @@
+@@ -1417,10 +1445,8 @@
/* pwq determined, queue */
trace_workqueue_queue_work(req_cpu, pwq, work);
@@ -25420,7 +25406,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
pwq->nr_in_flight[pwq->work_color]++;
work_flags = work_color_to_flags(pwq->work_color);
-@@ -1407,7 +1433,9 @@
+@@ -1436,7 +1462,9 @@
insert_work(pwq, work, worklist, work_flags);
@@ -25430,7 +25416,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
/**
-@@ -1427,14 +1455,14 @@
+@@ -1456,14 +1484,14 @@
bool ret = false;
unsigned long flags;
@@ -25447,7 +25433,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return ret;
}
EXPORT_SYMBOL(queue_work_on);
-@@ -1501,14 +1529,14 @@
+@@ -1530,14 +1558,14 @@
unsigned long flags;
/* read the comment in __queue_work() */
@@ -25464,7 +25450,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return ret;
}
EXPORT_SYMBOL(queue_delayed_work_on);
-@@ -1543,7 +1571,7 @@
+@@ -1572,7 +1600,7 @@
if (likely(ret >= 0)) {
__queue_delayed_work(cpu, wq, dwork, delay);
@@ -25473,7 +25459,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
/* -ENOENT from try_to_grab_pending() becomes %true */
-@@ -1576,7 +1604,9 @@
+@@ -1605,7 +1633,9 @@
worker->last_active = jiffies;
/* idle_list is LIFO */
@@ -25483,7 +25469,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
-@@ -1609,7 +1639,9 @@
+@@ -1638,7 +1668,9 @@
return;
worker_clr_flags(worker, WORKER_IDLE);
pool->nr_idle--;
@@ -25493,7 +25479,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
static struct worker *alloc_worker(int node)
-@@ -1777,7 +1809,9 @@
+@@ -1806,7 +1838,9 @@
pool->nr_workers--;
pool->nr_idle--;
@@ -25503,7 +25489,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
worker->flags |= WORKER_DIE;
wake_up_process(worker->task);
}
-@@ -2694,14 +2728,14 @@
+@@ -2723,14 +2757,14 @@
might_sleep();
@@ -25521,7 +25507,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
/* see the comment in try_to_grab_pending() with the same code */
pwq = get_work_pwq(work);
if (pwq) {
-@@ -2728,10 +2762,11 @@
+@@ -2757,10 +2791,11 @@
else
lock_map_acquire_read(&pwq->wq->lockdep_map);
lock_map_release(&pwq->wq->lockdep_map);
@@ -25534,7 +25520,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return false;
}
-@@ -2818,7 +2853,7 @@
+@@ -2847,7 +2882,7 @@
/* tell other tasks trying to grab @work to back off */
mark_work_canceling(work);
@@ -25543,7 +25529,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
flush_work(work);
clear_work_data(work);
-@@ -2873,10 +2908,10 @@
+@@ -2902,10 +2937,10 @@
*/
bool flush_delayed_work(struct delayed_work *dwork)
{
@@ -25556,7 +25542,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return flush_work(&dwork->work);
}
EXPORT_SYMBOL(flush_delayed_work);
-@@ -2911,7 +2946,7 @@
+@@ -2940,7 +2975,7 @@
set_work_pool_and_clear_pending(&dwork->work,
get_work_pool_id(&dwork->work));
@@ -25565,7 +25551,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return ret;
}
EXPORT_SYMBOL(cancel_delayed_work);
-@@ -3169,7 +3204,7 @@
+@@ -3198,7 +3233,7 @@
* put_unbound_pool - put a worker_pool
* @pool: worker_pool to put
*
@@ -25574,7 +25560,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
* safe manner. get_unbound_pool() calls this function on its failure path
* and this function should be able to release pools which went through,
* successfully or not, init_worker_pool().
-@@ -3223,8 +3258,8 @@
+@@ -3252,8 +3287,8 @@
del_timer_sync(&pool->idle_timer);
del_timer_sync(&pool->mayday_timer);
@@ -25585,7 +25571,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
/**
-@@ -3329,14 +3364,14 @@
+@@ -3358,14 +3393,14 @@
put_unbound_pool(pool);
mutex_unlock(&wq_pool_mutex);
@@ -25602,7 +25588,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
/**
-@@ -3974,7 +4009,7 @@
+@@ -4003,7 +4038,7 @@
* The base ref is never dropped on per-cpu pwqs. Directly
* schedule RCU free.
*/
@@ -25611,7 +25597,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
} else {
/*
* We're the sole accessor of @wq at this point. Directly
-@@ -4067,7 +4102,8 @@
+@@ -4096,7 +4131,8 @@
struct pool_workqueue *pwq;
bool ret;
@@ -25621,7 +25607,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
if (cpu == WORK_CPU_UNBOUND)
cpu = smp_processor_id();
-@@ -4078,7 +4114,8 @@
+@@ -4107,7 +4143,8 @@
pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
ret = !list_empty(&pwq->delayed_works);
@@ -25631,7 +25617,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return ret;
}
-@@ -4104,15 +4141,15 @@
+@@ -4133,15 +4170,15 @@
if (work_pending(work))
ret |= WORK_BUSY_PENDING;
@@ -25651,7 +25637,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return ret;
}
-@@ -4301,7 +4338,7 @@
+@@ -4330,7 +4367,7 @@
unsigned long flags;
int pi;
@@ -25660,7 +25646,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
pr_info("Showing busy workqueues and worker pools:\n");
-@@ -4352,7 +4389,7 @@
+@@ -4381,7 +4418,7 @@
spin_unlock_irqrestore(&pool->lock, flags);
}
@@ -25669,7 +25655,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
/*
-@@ -4702,16 +4739,16 @@
+@@ -4742,16 +4779,16 @@
* nr_active is monotonically decreasing. It's safe
* to peek without lock.
*/
@@ -25689,7 +25675,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
}
out_unlock:
mutex_unlock(&wq_pool_mutex);
-@@ -4825,7 +4862,8 @@
+@@ -4865,7 +4902,8 @@
const char *delim = "";
int node, written = 0;
@@ -25699,7 +25685,7 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
for_each_node(node) {
written += scnprintf(buf + written, PAGE_SIZE - written,
"%s%d:%d", delim, node,
-@@ -4833,7 +4871,8 @@
+@@ -4873,7 +4911,8 @@
delim = " ";
}
written += scnprintf(buf + written, PAGE_SIZE - written, "\n");
@@ -25709,9 +25695,9 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue.c linux-4.1.20/kernel/workqueue.c
return written;
}
-diff -Nur linux-4.1.20.orig/kernel/workqueue_internal.h linux-4.1.20/kernel/workqueue_internal.h
---- linux-4.1.20.orig/kernel/workqueue_internal.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/kernel/workqueue_internal.h 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/kernel/workqueue_internal.h linux-4.1.26/kernel/workqueue_internal.h
+--- linux-4.1.26.orig/kernel/workqueue_internal.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/kernel/workqueue_internal.h 2016-06-19 15:30:58.719298583 +0200
@@ -43,6 +43,7 @@
unsigned long last_active; /* L: last active timestamp */
unsigned int flags; /* X: flags */
@@ -25730,20 +25716,9 @@ diff -Nur linux-4.1.20.orig/kernel/workqueue_internal.h linux-4.1.20/kernel/work
+void wq_worker_sleeping(struct task_struct *task);
#endif /* _KERNEL_WORKQUEUE_INTERNAL_H */
-diff -Nur linux-4.1.20.orig/lib/Kconfig linux-4.1.20/lib/Kconfig
---- linux-4.1.20.orig/lib/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/Kconfig 2016-03-21 20:18:34.000000000 +0100
-@@ -391,6 +391,7 @@
-
- config CPUMASK_OFFSTACK
- bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
-+ depends on !PREEMPT_RT_FULL
- help
- Use dynamic allocation for cpumask_var_t, instead of putting
- them on the stack. This is a bit more expensive, but avoids
-diff -Nur linux-4.1.20.orig/lib/debugobjects.c linux-4.1.20/lib/debugobjects.c
---- linux-4.1.20.orig/lib/debugobjects.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/debugobjects.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/debugobjects.c linux-4.1.26/lib/debugobjects.c
+--- linux-4.1.26.orig/lib/debugobjects.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/debugobjects.c 2016-06-19 15:30:58.719298583 +0200
@@ -309,7 +309,10 @@
struct debug_obj *obj;
unsigned long flags;
@@ -25756,9 +25731,9 @@ diff -Nur linux-4.1.20.orig/lib/debugobjects.c linux-4.1.20/lib/debugobjects.c
db = get_bucket((unsigned long) addr);
-diff -Nur linux-4.1.20.orig/lib/dump_stack.c linux-4.1.20/lib/dump_stack.c
---- linux-4.1.20.orig/lib/dump_stack.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/dump_stack.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/dump_stack.c linux-4.1.26/lib/dump_stack.c
+--- linux-4.1.26.orig/lib/dump_stack.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/dump_stack.c 2016-06-19 15:30:58.719298583 +0200
@@ -8,6 +8,7 @@
#include <linux/sched.h>
#include <linux/smp.h>
@@ -25767,9 +25742,9 @@ diff -Nur linux-4.1.20.orig/lib/dump_stack.c linux-4.1.20/lib/dump_stack.c
static void __dump_stack(void)
{
-diff -Nur linux-4.1.20.orig/lib/idr.c linux-4.1.20/lib/idr.c
---- linux-4.1.20.orig/lib/idr.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/idr.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/idr.c linux-4.1.26/lib/idr.c
+--- linux-4.1.26.orig/lib/idr.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/idr.c 2016-06-19 15:30:58.723298738 +0200
@@ -30,6 +30,7 @@
#include <linux/idr.h>
#include <linux/spinlock.h>
@@ -25835,9 +25810,20 @@ diff -Nur linux-4.1.20.orig/lib/idr.c linux-4.1.20/lib/idr.c
if (!new)
break;
-diff -Nur linux-4.1.20.orig/lib/locking-selftest.c linux-4.1.20/lib/locking-selftest.c
---- linux-4.1.20.orig/lib/locking-selftest.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/locking-selftest.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/Kconfig linux-4.1.26/lib/Kconfig
+--- linux-4.1.26.orig/lib/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/Kconfig 2016-06-19 15:30:58.719298583 +0200
+@@ -391,6 +391,7 @@
+
+ config CPUMASK_OFFSTACK
+ bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
++ depends on !PREEMPT_RT_FULL
+ help
+ Use dynamic allocation for cpumask_var_t, instead of putting
+ them on the stack. This is a bit more expensive, but avoids
+diff -Nur linux-4.1.26.orig/lib/locking-selftest.c linux-4.1.26/lib/locking-selftest.c
+--- linux-4.1.26.orig/lib/locking-selftest.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/locking-selftest.c 2016-06-19 15:30:58.723298738 +0200
@@ -590,6 +590,8 @@
#include "locking-selftest-spin-hardirq.h"
GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_spin)
@@ -25986,9 +25972,9 @@ diff -Nur linux-4.1.20.orig/lib/locking-selftest.c linux-4.1.20/lib/locking-self
ww_tests();
-diff -Nur linux-4.1.20.orig/lib/percpu_ida.c linux-4.1.20/lib/percpu_ida.c
---- linux-4.1.20.orig/lib/percpu_ida.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/percpu_ida.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/percpu_ida.c linux-4.1.26/lib/percpu_ida.c
+--- linux-4.1.26.orig/lib/percpu_ida.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/percpu_ida.c 2016-06-19 15:30:58.723298738 +0200
@@ -26,6 +26,9 @@
#include <linux/string.h>
#include <linux/spinlock.h>
@@ -26077,9 +26063,9 @@ diff -Nur linux-4.1.20.orig/lib/percpu_ida.c linux-4.1.20/lib/percpu_ida.c
return err;
}
EXPORT_SYMBOL_GPL(percpu_ida_for_each_free);
-diff -Nur linux-4.1.20.orig/lib/radix-tree.c linux-4.1.20/lib/radix-tree.c
---- linux-4.1.20.orig/lib/radix-tree.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/radix-tree.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/radix-tree.c linux-4.1.26/lib/radix-tree.c
+--- linux-4.1.26.orig/lib/radix-tree.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/radix-tree.c 2016-06-19 15:30:58.723298738 +0200
@@ -195,12 +195,13 @@
* succeed in getting a node here (and never reach
* kmem_cache_alloc)
@@ -26111,9 +26097,9 @@ diff -Nur linux-4.1.20.orig/lib/radix-tree.c linux-4.1.20/lib/radix-tree.c
/*
* Return the maximum key which can be store into a
-diff -Nur linux-4.1.20.orig/lib/scatterlist.c linux-4.1.20/lib/scatterlist.c
---- linux-4.1.20.orig/lib/scatterlist.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/scatterlist.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/scatterlist.c linux-4.1.26/lib/scatterlist.c
+--- linux-4.1.26.orig/lib/scatterlist.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/scatterlist.c 2016-06-19 15:30:58.723298738 +0200
@@ -592,7 +592,7 @@
flush_kernel_dcache_page(miter->page);
@@ -26141,9 +26127,9 @@ diff -Nur linux-4.1.20.orig/lib/scatterlist.c linux-4.1.20/lib/scatterlist.c
return offset;
}
-diff -Nur linux-4.1.20.orig/lib/smp_processor_id.c linux-4.1.20/lib/smp_processor_id.c
---- linux-4.1.20.orig/lib/smp_processor_id.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/smp_processor_id.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/smp_processor_id.c linux-4.1.26/lib/smp_processor_id.c
+--- linux-4.1.26.orig/lib/smp_processor_id.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/smp_processor_id.c 2016-06-19 15:30:58.723298738 +0200
@@ -39,8 +39,9 @@
if (!printk_ratelimit())
goto out_enable;
@@ -26156,9 +26142,9 @@ diff -Nur linux-4.1.20.orig/lib/smp_processor_id.c linux-4.1.20/lib/smp_processo
print_symbol("caller is %s\n", (long)__builtin_return_address(0));
dump_stack();
-diff -Nur linux-4.1.20.orig/lib/strnlen_user.c linux-4.1.20/lib/strnlen_user.c
---- linux-4.1.20.orig/lib/strnlen_user.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/strnlen_user.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/lib/strnlen_user.c linux-4.1.26/lib/strnlen_user.c
+--- linux-4.1.26.orig/lib/strnlen_user.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/lib/strnlen_user.c 2016-06-19 15:30:58.723298738 +0200
@@ -85,7 +85,8 @@
* @str: The string to measure.
* @count: Maximum count (including NUL character)
@@ -26179,22 +26165,10 @@ diff -Nur linux-4.1.20.orig/lib/strnlen_user.c linux-4.1.20/lib/strnlen_user.c
*
* Get the size of a NUL-terminated string in user space.
*
-diff -Nur linux-4.1.20.orig/mm/Kconfig linux-4.1.20/mm/Kconfig
---- linux-4.1.20.orig/mm/Kconfig 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/Kconfig 2016-03-21 20:18:34.000000000 +0100
-@@ -409,7 +409,7 @@
-
- config TRANSPARENT_HUGEPAGE
- bool "Transparent Hugepage Support"
-- depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE
-+ depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE && !PREEMPT_RT_FULL
- select COMPACTION
- help
- Transparent Hugepages allows the kernel to use huge pages and
-diff -Nur linux-4.1.20.orig/mm/compaction.c linux-4.1.20/mm/compaction.c
---- linux-4.1.20.orig/mm/compaction.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/compaction.c 2016-03-21 20:18:34.000000000 +0100
-@@ -1406,10 +1406,12 @@
+diff -Nur linux-4.1.26.orig/mm/compaction.c linux-4.1.26/mm/compaction.c
+--- linux-4.1.26.orig/mm/compaction.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/compaction.c 2016-06-19 15:30:58.823302594 +0200
+@@ -1398,10 +1398,12 @@
cc->migrate_pfn & ~((1UL << cc->order) - 1);
if (last_migrated_pfn < current_block_start) {
@@ -26209,9 +26183,9 @@ diff -Nur linux-4.1.20.orig/mm/compaction.c linux-4.1.20/mm/compaction.c
/* No more flushing until we migrate again */
last_migrated_pfn = 0;
}
-diff -Nur linux-4.1.20.orig/mm/filemap.c linux-4.1.20/mm/filemap.c
---- linux-4.1.20.orig/mm/filemap.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/filemap.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/filemap.c linux-4.1.26/mm/filemap.c
+--- linux-4.1.26.orig/mm/filemap.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/filemap.c 2016-06-19 15:30:58.823302594 +0200
@@ -167,7 +167,9 @@
if (!workingset_node_pages(node) &&
list_empty(&node->private_list)) {
@@ -26238,9 +26212,9 @@ diff -Nur linux-4.1.20.orig/mm/filemap.c linux-4.1.20/mm/filemap.c
}
return 0;
}
-diff -Nur linux-4.1.20.orig/mm/highmem.c linux-4.1.20/mm/highmem.c
---- linux-4.1.20.orig/mm/highmem.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/highmem.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/highmem.c linux-4.1.26/mm/highmem.c
+--- linux-4.1.26.orig/mm/highmem.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/highmem.c 2016-06-19 15:30:58.823302594 +0200
@@ -29,10 +29,11 @@
#include <linux/kgdb.h>
#include <asm/tlbflush.h>
@@ -26265,9 +26239,21 @@ diff -Nur linux-4.1.20.orig/mm/highmem.c linux-4.1.20/mm/highmem.c
unsigned int nr_free_highpages (void)
{
-diff -Nur linux-4.1.20.orig/mm/memcontrol.c linux-4.1.20/mm/memcontrol.c
---- linux-4.1.20.orig/mm/memcontrol.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/memcontrol.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/Kconfig linux-4.1.26/mm/Kconfig
+--- linux-4.1.26.orig/mm/Kconfig 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/Kconfig 2016-06-19 15:30:58.823302594 +0200
+@@ -409,7 +409,7 @@
+
+ config TRANSPARENT_HUGEPAGE
+ bool "Transparent Hugepage Support"
+- depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE
++ depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE && !PREEMPT_RT_FULL
+ select COMPACTION
+ help
+ Transparent Hugepages allows the kernel to use huge pages and
+diff -Nur linux-4.1.26.orig/mm/memcontrol.c linux-4.1.26/mm/memcontrol.c
+--- linux-4.1.26.orig/mm/memcontrol.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/memcontrol.c 2016-06-19 15:30:58.827302748 +0200
@@ -66,6 +66,8 @@
#include <net/sock.h>
#include <net/ip.h>
@@ -26338,7 +26324,7 @@ diff -Nur linux-4.1.20.orig/mm/memcontrol.c linux-4.1.20/mm/memcontrol.c
out_unlock:
unlock_page(page);
out:
-@@ -5545,10 +5551,10 @@
+@@ -5551,10 +5557,10 @@
VM_BUG_ON_PAGE(!PageTransHuge(page), page);
}
@@ -26351,7 +26337,7 @@ diff -Nur linux-4.1.20.orig/mm/memcontrol.c linux-4.1.20/mm/memcontrol.c
if (do_swap_account && PageSwapCache(page)) {
swp_entry_t entry = { .val = page_private(page) };
-@@ -5604,14 +5610,14 @@
+@@ -5610,14 +5616,14 @@
memcg_oom_recover(memcg);
}
@@ -26368,7 +26354,7 @@ diff -Nur linux-4.1.20.orig/mm/memcontrol.c linux-4.1.20/mm/memcontrol.c
if (!mem_cgroup_is_root(memcg))
css_put_many(&memcg->css, nr_pages);
-@@ -5815,6 +5821,7 @@
+@@ -5821,6 +5827,7 @@
{
struct mem_cgroup *memcg;
unsigned short oldid;
@@ -26376,7 +26362,7 @@ diff -Nur linux-4.1.20.orig/mm/memcontrol.c linux-4.1.20/mm/memcontrol.c
VM_BUG_ON_PAGE(PageLRU(page), page);
VM_BUG_ON_PAGE(page_count(page), page);
-@@ -5837,9 +5844,11 @@
+@@ -5843,9 +5850,11 @@
if (!mem_cgroup_is_root(memcg))
page_counter_uncharge(&memcg->memory, 1);
@@ -26388,9 +26374,9 @@ diff -Nur linux-4.1.20.orig/mm/memcontrol.c linux-4.1.20/mm/memcontrol.c
}
/**
-diff -Nur linux-4.1.20.orig/mm/memory.c linux-4.1.20/mm/memory.c
---- linux-4.1.20.orig/mm/memory.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/memory.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/memory.c linux-4.1.26/mm/memory.c
+--- linux-4.1.26.orig/mm/memory.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/memory.c 2016-06-19 15:30:58.827302748 +0200
@@ -3753,7 +3753,7 @@
}
@@ -26427,9 +26413,9 @@ diff -Nur linux-4.1.20.orig/mm/memory.c linux-4.1.20/mm/memory.c
#endif
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLBFS)
-diff -Nur linux-4.1.20.orig/mm/mmu_context.c linux-4.1.20/mm/mmu_context.c
---- linux-4.1.20.orig/mm/mmu_context.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/mmu_context.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/mmu_context.c linux-4.1.26/mm/mmu_context.c
+--- linux-4.1.26.orig/mm/mmu_context.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/mmu_context.c 2016-06-19 15:30:58.827302748 +0200
@@ -23,6 +23,7 @@
struct task_struct *tsk = current;
@@ -26446,9 +26432,9 @@ diff -Nur linux-4.1.20.orig/mm/mmu_context.c linux-4.1.20/mm/mmu_context.c
task_unlock(tsk);
#ifdef finish_arch_post_lock_switch
finish_arch_post_lock_switch();
-diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
---- linux-4.1.20.orig/mm/page_alloc.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/page_alloc.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/page_alloc.c linux-4.1.26/mm/page_alloc.c
+--- linux-4.1.26.orig/mm/page_alloc.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/page_alloc.c 2016-06-19 15:30:58.827302748 +0200
@@ -60,6 +60,7 @@
#include <linux/page_ext.h>
#include <linux/hugetlb.h>
@@ -26476,7 +26462,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
int page_group_by_mobility_disabled __read_mostly;
void set_pageblock_migratetype(struct page *page, int migratetype)
-@@ -681,7 +694,7 @@
+@@ -701,7 +714,7 @@
}
/*
@@ -26485,7 +26471,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
* Assumes all pages on list are in same zone, and of same order.
* count is the number of pages to free.
*
-@@ -692,18 +705,51 @@
+@@ -712,18 +725,51 @@
* pinned" detection logic.
*/
static void free_pcppages_bulk(struct zone *zone, int count,
@@ -26541,7 +26527,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
while (to_free) {
struct page *page;
struct list_head *list;
-@@ -719,7 +765,7 @@
+@@ -739,7 +785,7 @@
batch_free++;
if (++migratetype == MIGRATE_PCPTYPES)
migratetype = 0;
@@ -26550,7 +26536,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
} while (list_empty(list));
/* This is the only non-empty list. Free them all. */
-@@ -727,21 +773,11 @@
+@@ -747,21 +793,11 @@
batch_free = to_free;
do {
@@ -26574,7 +26560,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
static void free_one_page(struct zone *zone,
-@@ -750,7 +786,9 @@
+@@ -770,7 +806,9 @@
int migratetype)
{
unsigned long nr_scanned;
@@ -26585,7 +26571,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
nr_scanned = zone_page_state(zone, NR_PAGES_SCANNED);
if (nr_scanned)
__mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned);
-@@ -760,7 +798,7 @@
+@@ -780,7 +818,7 @@
migratetype = get_pfnblock_migratetype(page, pfn);
}
__free_one_page(page, pfn, zone, order, migratetype);
@@ -26594,7 +26580,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
static int free_tail_pages_check(struct page *head_page, struct page *page)
-@@ -825,11 +863,11 @@
+@@ -845,11 +883,11 @@
return;
migratetype = get_pfnblock_migratetype(page, pfn);
@@ -26607,8 +26593,8 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
+ local_unlock_irqrestore(pa_lock, flags);
}
- void __init __free_pages_bootmem(struct page *page, unsigned int order)
-@@ -1371,16 +1409,18 @@
+ void __init __free_pages_bootmem(struct page *page, unsigned long pfn,
+@@ -1396,16 +1434,18 @@
void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
{
unsigned long flags;
@@ -26630,7 +26616,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
#endif
-@@ -1396,16 +1436,21 @@
+@@ -1421,16 +1461,21 @@
unsigned long flags;
struct per_cpu_pageset *pset;
struct per_cpu_pages *pcp;
@@ -26656,7 +26642,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
/*
-@@ -1491,8 +1536,17 @@
+@@ -1516,8 +1561,17 @@
else
cpumask_clear_cpu(cpu, &cpus_with_pcps);
}
@@ -26674,7 +26660,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
#ifdef CONFIG_HIBERNATION
-@@ -1548,7 +1602,7 @@
+@@ -1573,7 +1627,7 @@
migratetype = get_pfnblock_migratetype(page, pfn);
set_freepage_migratetype(page, migratetype);
@@ -26683,7 +26669,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
__count_vm_event(PGFREE);
/*
-@@ -1574,12 +1628,17 @@
+@@ -1599,12 +1653,17 @@
pcp->count++;
if (pcp->count >= pcp->high) {
unsigned long batch = READ_ONCE(pcp->batch);
@@ -26703,7 +26689,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
/*
-@@ -1710,7 +1769,7 @@
+@@ -1735,7 +1794,7 @@
struct per_cpu_pages *pcp;
struct list_head *list;
@@ -26712,7 +26698,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
pcp = &this_cpu_ptr(zone->pageset)->pcp;
list = &pcp->lists[migratetype];
if (list_empty(list)) {
-@@ -1742,13 +1801,15 @@
+@@ -1767,13 +1826,15 @@
*/
WARN_ON_ONCE(order > 1);
}
@@ -26731,7 +26717,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
__mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
-@@ -1758,13 +1819,13 @@
+@@ -1783,13 +1844,13 @@
__count_zone_vm_events(PGALLOC, zone, 1 << order);
zone_statistics(preferred_zone, zone, gfp_flags);
@@ -26747,7 +26733,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
return NULL;
}
-@@ -5653,6 +5714,7 @@
+@@ -5680,6 +5741,7 @@
void __init page_alloc_init(void)
{
hotcpu_notifier(page_alloc_cpu_notify, 0);
@@ -26755,7 +26741,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
/*
-@@ -6547,7 +6609,7 @@
+@@ -6575,7 +6637,7 @@
struct per_cpu_pageset *pset;
/* avoid races with drain_pages() */
@@ -26764,7 +26750,7 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
if (zone->pageset != &boot_pageset) {
for_each_online_cpu(cpu) {
pset = per_cpu_ptr(zone->pageset, cpu);
-@@ -6556,7 +6618,7 @@
+@@ -6584,7 +6646,7 @@
free_percpu(zone->pageset);
zone->pageset = &boot_pageset;
}
@@ -26773,9 +26759,9 @@ diff -Nur linux-4.1.20.orig/mm/page_alloc.c linux-4.1.20/mm/page_alloc.c
}
#ifdef CONFIG_MEMORY_HOTREMOVE
-diff -Nur linux-4.1.20.orig/mm/slab.h linux-4.1.20/mm/slab.h
---- linux-4.1.20.orig/mm/slab.h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/slab.h 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/slab.h linux-4.1.26/mm/slab.h
+--- linux-4.1.26.orig/mm/slab.h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/slab.h 2016-06-19 15:30:58.827302748 +0200
@@ -330,7 +330,11 @@
* The slab lists for all objects.
*/
@@ -26788,9 +26774,9 @@ diff -Nur linux-4.1.20.orig/mm/slab.h linux-4.1.20/mm/slab.h
#ifdef CONFIG_SLAB
struct list_head slabs_partial; /* partial list first, better asm code */
-diff -Nur linux-4.1.20.orig/mm/slub.c linux-4.1.20/mm/slub.c
---- linux-4.1.20.orig/mm/slub.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/slub.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/slub.c linux-4.1.26/mm/slub.c
+--- linux-4.1.26.orig/mm/slub.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/slub.c 2016-06-19 15:30:58.827302748 +0200
@@ -1069,7 +1069,7 @@
{
struct kmem_cache_node *n = get_node(s, page_to_nid(page));
@@ -27275,9 +27261,9 @@ diff -Nur linux-4.1.20.orig/mm/slub.c linux-4.1.20/mm/slub.c
}
for (i = 0; i < t.count; i++) {
-diff -Nur linux-4.1.20.orig/mm/swap.c linux-4.1.20/mm/swap.c
---- linux-4.1.20.orig/mm/swap.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/swap.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/swap.c linux-4.1.26/mm/swap.c
+--- linux-4.1.26.orig/mm/swap.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/swap.c 2016-06-19 15:30:58.831302903 +0200
@@ -32,6 +32,7 @@
#include <linux/gfp.h>
#include <linux/uio.h>
@@ -27396,9 +27382,9 @@ diff -Nur linux-4.1.20.orig/mm/swap.c linux-4.1.20/mm/swap.c
}
static void lru_add_drain_per_cpu(struct work_struct *dummy)
-diff -Nur linux-4.1.20.orig/mm/truncate.c linux-4.1.20/mm/truncate.c
---- linux-4.1.20.orig/mm/truncate.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/truncate.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/truncate.c linux-4.1.26/mm/truncate.c
+--- linux-4.1.26.orig/mm/truncate.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/truncate.c 2016-06-19 15:30:58.831302903 +0200
@@ -56,8 +56,11 @@
* protected by mapping->tree_lock.
*/
@@ -27413,9 +27399,9 @@ diff -Nur linux-4.1.20.orig/mm/truncate.c linux-4.1.20/mm/truncate.c
__radix_tree_delete_node(&mapping->page_tree, node);
unlock:
spin_unlock_irq(&mapping->tree_lock);
-diff -Nur linux-4.1.20.orig/mm/vmalloc.c linux-4.1.20/mm/vmalloc.c
---- linux-4.1.20.orig/mm/vmalloc.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/vmalloc.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/vmalloc.c linux-4.1.26/mm/vmalloc.c
+--- linux-4.1.26.orig/mm/vmalloc.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/vmalloc.c 2016-06-19 15:30:58.831302903 +0200
@@ -819,7 +819,7 @@
struct vmap_block *vb;
struct vmap_area *va;
@@ -27467,9 +27453,9 @@ diff -Nur linux-4.1.20.orig/mm/vmalloc.c linux-4.1.20/mm/vmalloc.c
rcu_read_unlock();
/* Allocate new block if nothing was found */
-diff -Nur linux-4.1.20.orig/mm/vmstat.c linux-4.1.20/mm/vmstat.c
---- linux-4.1.20.orig/mm/vmstat.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/vmstat.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/vmstat.c linux-4.1.26/mm/vmstat.c
+--- linux-4.1.26.orig/mm/vmstat.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/vmstat.c 2016-06-19 15:30:58.831302903 +0200
@@ -226,6 +226,7 @@
long x;
long t;
@@ -27518,9 +27504,9 @@ diff -Nur linux-4.1.20.orig/mm/vmstat.c linux-4.1.20/mm/vmstat.c
}
void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
-diff -Nur linux-4.1.20.orig/mm/workingset.c linux-4.1.20/mm/workingset.c
---- linux-4.1.20.orig/mm/workingset.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/mm/workingset.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/mm/workingset.c linux-4.1.26/mm/workingset.c
+--- linux-4.1.26.orig/mm/workingset.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/mm/workingset.c 2016-06-19 15:30:58.835303057 +0200
@@ -264,7 +264,8 @@
* point where they would still be useful.
*/
@@ -27588,9 +27574,9 @@ diff -Nur linux-4.1.20.orig/mm/workingset.c linux-4.1.20/mm/workingset.c
err:
return ret;
}
-diff -Nur linux-4.1.20.orig/net/core/dev.c linux-4.1.20/net/core/dev.c
---- linux-4.1.20.orig/net/core/dev.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/core/dev.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/core/dev.c linux-4.1.26/net/core/dev.c
+--- linux-4.1.26.orig/net/core/dev.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/core/dev.c 2016-06-19 15:30:58.839303211 +0200
@@ -184,6 +184,7 @@
static DEFINE_HASHTABLE(napi_hash, 8);
@@ -27965,9 +27951,9 @@ diff -Nur linux-4.1.20.orig/net/core/dev.c linux-4.1.20/net/core/dev.c
INIT_LIST_HEAD(&sd->poll_list);
sd->output_queue_tailp = &sd->output_queue;
#ifdef CONFIG_RPS
-diff -Nur linux-4.1.20.orig/net/core/skbuff.c linux-4.1.20/net/core/skbuff.c
---- linux-4.1.20.orig/net/core/skbuff.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/core/skbuff.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/core/skbuff.c linux-4.1.26/net/core/skbuff.c
+--- linux-4.1.26.orig/net/core/skbuff.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/core/skbuff.c 2016-06-19 15:30:58.839303211 +0200
@@ -63,6 +63,7 @@
#include <linux/errqueue.h>
#include <linux/prefetch.h>
@@ -28011,9 +27997,9 @@ diff -Nur linux-4.1.20.orig/net/core/skbuff.c linux-4.1.20/net/core/skbuff.c
}
void *napi_alloc_frag(unsigned int fragsz)
-diff -Nur linux-4.1.20.orig/net/core/sock.c linux-4.1.20/net/core/sock.c
---- linux-4.1.20.orig/net/core/sock.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/core/sock.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/core/sock.c linux-4.1.26/net/core/sock.c
+--- linux-4.1.26.orig/net/core/sock.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/core/sock.c 2016-06-19 15:30:58.839303211 +0200
@@ -2369,12 +2369,11 @@
if (sk->sk_lock.owned)
__lock_sock(sk);
@@ -28028,9 +28014,9 @@ diff -Nur linux-4.1.20.orig/net/core/sock.c linux-4.1.20/net/core/sock.c
}
EXPORT_SYMBOL(lock_sock_nested);
-diff -Nur linux-4.1.20.orig/net/ipv4/icmp.c linux-4.1.20/net/ipv4/icmp.c
---- linux-4.1.20.orig/net/ipv4/icmp.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/ipv4/icmp.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/ipv4/icmp.c linux-4.1.26/net/ipv4/icmp.c
+--- linux-4.1.26.orig/net/ipv4/icmp.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/ipv4/icmp.c 2016-06-19 15:30:58.839303211 +0200
@@ -69,6 +69,7 @@
#include <linux/jiffies.h>
#include <linux/kernel.h>
@@ -28082,9 +28068,9 @@ diff -Nur linux-4.1.20.orig/net/ipv4/icmp.c linux-4.1.20/net/ipv4/icmp.c
}
/* should there be an ICMP stat for ignored echos? */
return true;
-diff -Nur linux-4.1.20.orig/net/ipv4/sysctl_net_ipv4.c linux-4.1.20/net/ipv4/sysctl_net_ipv4.c
---- linux-4.1.20.orig/net/ipv4/sysctl_net_ipv4.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/ipv4/sysctl_net_ipv4.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/ipv4/sysctl_net_ipv4.c linux-4.1.26/net/ipv4/sysctl_net_ipv4.c
+--- linux-4.1.26.orig/net/ipv4/sysctl_net_ipv4.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/ipv4/sysctl_net_ipv4.c 2016-06-19 15:30:58.839303211 +0200
@@ -779,6 +779,13 @@
.proc_handler = proc_dointvec
},
@@ -28099,10 +28085,10 @@ diff -Nur linux-4.1.20.orig/net/ipv4/sysctl_net_ipv4.c linux-4.1.20/net/ipv4/sys
.procname = "icmp_ignore_bogus_error_responses",
.data = &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses,
.maxlen = sizeof(int),
-diff -Nur linux-4.1.20.orig/net/mac80211/rx.c linux-4.1.20/net/mac80211/rx.c
---- linux-4.1.20.orig/net/mac80211/rx.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/mac80211/rx.c 2016-03-21 20:18:34.000000000 +0100
-@@ -3554,7 +3554,7 @@
+diff -Nur linux-4.1.26.orig/net/mac80211/rx.c linux-4.1.26/net/mac80211/rx.c
+--- linux-4.1.26.orig/net/mac80211/rx.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/mac80211/rx.c 2016-06-19 15:30:58.839303211 +0200
+@@ -3573,7 +3573,7 @@
struct ieee80211_supported_band *sband;
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
@@ -28111,9 +28097,9 @@ diff -Nur linux-4.1.20.orig/net/mac80211/rx.c linux-4.1.20/net/mac80211/rx.c
if (WARN_ON(status->band >= IEEE80211_NUM_BANDS))
goto drop;
-diff -Nur linux-4.1.20.orig/net/netfilter/core.c linux-4.1.20/net/netfilter/core.c
---- linux-4.1.20.orig/net/netfilter/core.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/netfilter/core.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/netfilter/core.c linux-4.1.26/net/netfilter/core.c
+--- linux-4.1.26.orig/net/netfilter/core.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/netfilter/core.c 2016-06-19 15:30:58.839303211 +0200
@@ -22,11 +22,17 @@
#include <linux/proc_fs.h>
#include <linux/mutex.h>
@@ -28132,9 +28118,9 @@ diff -Nur linux-4.1.20.orig/net/netfilter/core.c linux-4.1.20/net/netfilter/core
static DEFINE_MUTEX(afinfo_mutex);
const struct nf_afinfo __rcu *nf_afinfo[NFPROTO_NUMPROTO] __read_mostly;
-diff -Nur linux-4.1.20.orig/net/packet/af_packet.c linux-4.1.20/net/packet/af_packet.c
---- linux-4.1.20.orig/net/packet/af_packet.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/packet/af_packet.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/packet/af_packet.c linux-4.1.26/net/packet/af_packet.c
+--- linux-4.1.26.orig/net/packet/af_packet.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/packet/af_packet.c 2016-06-19 15:30:58.839303211 +0200
@@ -63,6 +63,7 @@
#include <linux/if_packet.h>
#include <linux/wireless.h>
@@ -28161,9 +28147,9 @@ diff -Nur linux-4.1.20.orig/net/packet/af_packet.c linux-4.1.20/net/packet/af_pa
}
}
prb_close_block(pkc, pbd, po, status);
-diff -Nur linux-4.1.20.orig/net/rds/ib_rdma.c linux-4.1.20/net/rds/ib_rdma.c
---- linux-4.1.20.orig/net/rds/ib_rdma.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/rds/ib_rdma.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/rds/ib_rdma.c linux-4.1.26/net/rds/ib_rdma.c
+--- linux-4.1.26.orig/net/rds/ib_rdma.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/rds/ib_rdma.c 2016-06-19 15:30:58.843303365 +0200
@@ -34,6 +34,7 @@
#include <linux/slab.h>
#include <linux/rculist.h>
@@ -28181,9 +28167,9 @@ diff -Nur linux-4.1.20.orig/net/rds/ib_rdma.c linux-4.1.20/net/rds/ib_rdma.c
}
}
-diff -Nur linux-4.1.20.orig/net/sched/sch_generic.c linux-4.1.20/net/sched/sch_generic.c
---- linux-4.1.20.orig/net/sched/sch_generic.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/sched/sch_generic.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/sched/sch_generic.c linux-4.1.26/net/sched/sch_generic.c
+--- linux-4.1.26.orig/net/sched/sch_generic.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/sched/sch_generic.c 2016-06-19 15:30:58.843303365 +0200
@@ -896,7 +896,7 @@
/* Wait for outstanding qdisc_run calls. */
list_for_each_entry(dev, head, close_list)
@@ -28193,9 +28179,9 @@ diff -Nur linux-4.1.20.orig/net/sched/sch_generic.c linux-4.1.20/net/sched/sch_g
}
void dev_deactivate(struct net_device *dev)
-diff -Nur linux-4.1.20.orig/net/sunrpc/svc_xprt.c linux-4.1.20/net/sunrpc/svc_xprt.c
---- linux-4.1.20.orig/net/sunrpc/svc_xprt.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/net/sunrpc/svc_xprt.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/net/sunrpc/svc_xprt.c linux-4.1.26/net/sunrpc/svc_xprt.c
+--- linux-4.1.26.orig/net/sunrpc/svc_xprt.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/net/sunrpc/svc_xprt.c 2016-06-19 15:30:58.843303365 +0200
@@ -341,7 +341,7 @@
goto out;
}
@@ -28223,9 +28209,9 @@ diff -Nur linux-4.1.20.orig/net/sunrpc/svc_xprt.c linux-4.1.20/net/sunrpc/svc_xp
out:
trace_svc_xprt_do_enqueue(xprt, rqstp);
}
-diff -Nur linux-4.1.20.orig/scripts/mkcompile_h linux-4.1.20/scripts/mkcompile_h
---- linux-4.1.20.orig/scripts/mkcompile_h 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/scripts/mkcompile_h 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/scripts/mkcompile_h linux-4.1.26/scripts/mkcompile_h
+--- linux-4.1.26.orig/scripts/mkcompile_h 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/scripts/mkcompile_h 2016-06-19 15:30:58.843303365 +0200
@@ -4,7 +4,8 @@
ARCH=$2
SMP=$3
@@ -28244,9 +28230,9 @@ diff -Nur linux-4.1.20.orig/scripts/mkcompile_h linux-4.1.20/scripts/mkcompile_h
UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
# Truncate to maximum length
-diff -Nur linux-4.1.20.orig/sound/core/pcm_native.c linux-4.1.20/sound/core/pcm_native.c
---- linux-4.1.20.orig/sound/core/pcm_native.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/sound/core/pcm_native.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/sound/core/pcm_native.c linux-4.1.26/sound/core/pcm_native.c
+--- linux-4.1.26.orig/sound/core/pcm_native.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/sound/core/pcm_native.c 2016-06-19 15:30:58.843303365 +0200
@@ -135,7 +135,7 @@
void snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream)
{
@@ -28283,9 +28269,9 @@ diff -Nur linux-4.1.20.orig/sound/core/pcm_native.c linux-4.1.20/sound/core/pcm_
}
EXPORT_SYMBOL_GPL(snd_pcm_stream_unlock_irqrestore);
-diff -Nur linux-4.1.20.orig/sound/soc/intel/atom/sst/sst.c linux-4.1.20/sound/soc/intel/atom/sst/sst.c
---- linux-4.1.20.orig/sound/soc/intel/atom/sst/sst.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/sound/soc/intel/atom/sst/sst.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/sound/soc/intel/atom/sst/sst.c linux-4.1.26/sound/soc/intel/atom/sst/sst.c
+--- linux-4.1.26.orig/sound/soc/intel/atom/sst/sst.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/sound/soc/intel/atom/sst/sst.c 2016-06-19 15:30:58.843303365 +0200
@@ -368,8 +368,8 @@
* initialize by FW or driver when firmware is loaded
*/
@@ -28297,9 +28283,9 @@ diff -Nur linux-4.1.20.orig/sound/soc/intel/atom/sst/sst.c linux-4.1.20/sound/so
spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
}
-diff -Nur linux-4.1.20.orig/virt/kvm/async_pf.c linux-4.1.20/virt/kvm/async_pf.c
---- linux-4.1.20.orig/virt/kvm/async_pf.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/virt/kvm/async_pf.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/virt/kvm/async_pf.c linux-4.1.26/virt/kvm/async_pf.c
+--- linux-4.1.26.orig/virt/kvm/async_pf.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/virt/kvm/async_pf.c 2016-06-19 15:30:58.843303365 +0200
@@ -94,8 +94,8 @@
trace_kvm_async_pf_completed(addr, gva);
@@ -28311,9 +28297,9 @@ diff -Nur linux-4.1.20.orig/virt/kvm/async_pf.c linux-4.1.20/virt/kvm/async_pf.c
mmput(mm);
kvm_put_kvm(vcpu->kvm);
-diff -Nur linux-4.1.20.orig/virt/kvm/kvm_main.c linux-4.1.20/virt/kvm/kvm_main.c
---- linux-4.1.20.orig/virt/kvm/kvm_main.c 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/virt/kvm/kvm_main.c 2016-03-21 20:18:34.000000000 +0100
+diff -Nur linux-4.1.26.orig/virt/kvm/kvm_main.c linux-4.1.26/virt/kvm/kvm_main.c
+--- linux-4.1.26.orig/virt/kvm/kvm_main.c 2016-06-07 01:13:11.000000000 +0200
++++ linux-4.1.26/virt/kvm/kvm_main.c 2016-06-19 15:30:58.843303365 +0200
@@ -218,7 +218,7 @@
vcpu->kvm = kvm;
vcpu->vcpu_id = id;
@@ -28323,7 +28309,7 @@ diff -Nur linux-4.1.20.orig/virt/kvm/kvm_main.c linux-4.1.20/virt/kvm/kvm_main.c
kvm_async_pf_vcpu_init(vcpu);
page = alloc_page(GFP_KERNEL | __GFP_ZERO);
-@@ -1779,7 +1779,7 @@
+@@ -1780,7 +1780,7 @@
void kvm_vcpu_block(struct kvm_vcpu *vcpu)
{
ktime_t start, cur;
@@ -28332,7 +28318,7 @@ diff -Nur linux-4.1.20.orig/virt/kvm/kvm_main.c linux-4.1.20/virt/kvm/kvm_main.c
bool waited = false;
start = cur = ktime_get();
-@@ -1800,7 +1800,7 @@
+@@ -1801,7 +1801,7 @@
}
for (;;) {
@@ -28341,7 +28327,7 @@ diff -Nur linux-4.1.20.orig/virt/kvm/kvm_main.c linux-4.1.20/virt/kvm/kvm_main.c
if (kvm_vcpu_check_block(vcpu) < 0)
break;
-@@ -1809,7 +1809,7 @@
+@@ -1810,7 +1810,7 @@
schedule();
}
@@ -28350,7 +28336,7 @@ diff -Nur linux-4.1.20.orig/virt/kvm/kvm_main.c linux-4.1.20/virt/kvm/kvm_main.c
cur = ktime_get();
out:
-@@ -1825,11 +1825,11 @@
+@@ -1826,11 +1826,11 @@
{
int me;
int cpu = vcpu->cpu;
@@ -28365,7 +28351,7 @@ diff -Nur linux-4.1.20.orig/virt/kvm/kvm_main.c linux-4.1.20/virt/kvm/kvm_main.c
++vcpu->stat.halt_wakeup;
}
-@@ -1930,7 +1930,7 @@
+@@ -1931,7 +1931,7 @@
continue;
if (vcpu == me)
continue;
diff --git a/target/linux/patches/4.1.24/regmap-default-on.patch b/target/linux/patches/4.1.26/regmap-default-on.patch
index 8d72224bf..8d72224bf 100644
--- a/target/linux/patches/4.1.24/regmap-default-on.patch
+++ b/target/linux/patches/4.1.26/regmap-default-on.patch
diff --git a/target/linux/patches/4.1.24/remove-warn.patch b/target/linux/patches/4.1.26/remove-warn.patch
index 1f89c710d..1f89c710d 100644
--- a/target/linux/patches/4.1.24/remove-warn.patch
+++ b/target/linux/patches/4.1.26/remove-warn.patch
diff --git a/target/linux/patches/4.1.24/startup.patch b/target/linux/patches/4.1.26/startup.patch
index d396b75e4..d396b75e4 100644
--- a/target/linux/patches/4.1.24/startup.patch
+++ b/target/linux/patches/4.1.26/startup.patch
diff --git a/target/linux/patches/4.1.24/use-gawk.patch b/target/linux/patches/4.1.26/use-gawk.patch
index 5b312589d..5b312589d 100644
--- a/target/linux/patches/4.1.24/use-gawk.patch
+++ b/target/linux/patches/4.1.26/use-gawk.patch
diff --git a/target/linux/patches/4.1.24/use-libgcc-for-sh.patch b/target/linux/patches/4.1.26/use-libgcc-for-sh.patch
index 6420219b0..6420219b0 100644
--- a/target/linux/patches/4.1.24/use-libgcc-for-sh.patch
+++ b/target/linux/patches/4.1.26/use-libgcc-for-sh.patch