diff options
author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-06-19 15:54:47 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-06-19 15:54:47 +0200 |
commit | 7c7fdd0d865e0d65e4a18942fab1fce65e16a94f (patch) | |
tree | 780659db0b13e5f754e088f11a588bde44ef3301 /target | |
parent | 0784d2686031ae886a960d212e9bedaac8a72ba2 (diff) |
linux: update to 4.1.26, refresh realtime patch
Diffstat (limited to 'target')
-rw-r--r-- | target/config/Config.in.kernelversion | 4 | ||||
-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 |
13 files changed, 2216 insertions, 2230 deletions
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 lin |