summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/fetch.mk6
-rw-r--r--mk/kernel-ver.mk4
-rw-r--r--target/config/Config.in.kernelversion2
-rw-r--r--target/linux/config/Config.in.kernel4
-rw-r--r--target/linux/patches/4.9.6/crisv32_ethernet_driver.patch (renamed from target/linux/patches/4.9.4/crisv32_ethernet_driver.patch)0
-rw-r--r--target/linux/patches/4.9.6/initramfs-nosizelimit.patch (renamed from target/linux/patches/4.9.4/initramfs-nosizelimit.patch)0
-rw-r--r--target/linux/patches/4.9.6/ld-or1k.patch (renamed from target/linux/patches/4.9.4/ld-or1k.patch)0
-rw-r--r--target/linux/patches/4.9.6/macsonic.patch (renamed from target/linux/patches/4.9.4/macsonic.patch)0
-rw-r--r--target/linux/patches/4.9.6/microblaze-sigaltstack.patch (renamed from target/linux/patches/4.9.4/microblaze-sigaltstack.patch)0
-rw-r--r--target/linux/patches/4.9.6/or1k-more-ram.patch (renamed from target/linux/patches/4.9.4/or1k-more-ram.patch)0
-rw-r--r--target/linux/patches/4.9.6/patch-realtime (renamed from target/linux/patches/4.9.4/patch-realtime)5882
-rw-r--r--target/linux/patches/4.9.6/sh2.patch (renamed from target/linux/patches/4.9.4/sh2.patch)0
-rw-r--r--target/linux/patches/4.9.6/startup.patch (renamed from target/linux/patches/4.9.4/startup.patch)0
-rw-r--r--target/linux/patches/4.9.6/vdso2.patch (renamed from target/linux/patches/4.9.4/vdso2.patch)0
14 files changed, 2076 insertions, 3822 deletions
diff --git a/mk/fetch.mk b/mk/fetch.mk
index 3b2ff871d..28ae0e7ec 100644
--- a/mk/fetch.mk
+++ b/mk/fetch.mk
@@ -69,17 +69,17 @@ $(1):
case "$${PKG_GIT}" in \
tag|branch) \
git clone --depth 1 --branch $${PKG_VERSION} $${PKG_SITES} $${PKG_NAME}-$${PKG_VERSION} $(DL_TRACE); \
- if [ $$? -ne 0 ]; then echo "git clone error"; exit 1; fi; \
+ if [ $$$$? -ne 0 ]; then echo "git clone error"; exit 1; fi; \
;; \
hash) \
git clone $${PKG_SITES} $${PKG_NAME}-$${PKG_VERSION} $(DL_TRACE); \
- if [ $$? -ne 0 ]; then echo "git clone error"; exit 1; fi; \
+ if [ $$$$? -ne 0 ]; then echo "git clone error"; exit 1; fi; \
(cd $${PKG_NAME}-$${PKG_VERSION}; git checkout $${PKG_VERSION}) $(DL_TRACE); \
;; \
esac ;\
else \
git clone --depth 1 $${PKG_SITES} $${PKG_NAME}-$${PKG_VERSION} $(DL_TRACE); \
- if [ $$? -ne 0 ]; then echo "git clone error"; exit 1; fi; \
+ if [ $$$$? -ne 0 ]; then echo "git clone error"; exit 1; fi; \
fi; \
tar cJf $${PKG_NAME}-$${PKG_VERSION}.tar.xz $${PKG_NAME}-$${PKG_VERSION}; \
touch $$$${filename}.nohash; \
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk
index 44e61a1ba..2712c450b 100644
--- a/mk/kernel-ver.mk
+++ b/mk/kernel-ver.mk
@@ -16,10 +16,10 @@ KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(ADK_TARGET_KERNEL_GIT_VER)
endif
ifeq ($(ADK_TARGET_KERNEL_VERSION_4_9),y)
-KERNEL_FILE_VER:= 4.9.4
+KERNEL_FILE_VER:= 4.9.6
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= 9bddafb64cb15a4d3d0400364f3c9cb4b0d777978d5d81ade70c155e86cec084
+KERNEL_HASH:= f493af770a5b08a231178cbb27ab517369a81f6039625737aa8b36d69bcfce9b
endif
ifeq ($(ADK_TARGET_KERNEL_VERSION_4_4),y)
KERNEL_FILE_VER:= 4.4.38
diff --git a/target/config/Config.in.kernelversion b/target/config/Config.in.kernelversion
index f3b9c54bc..eacd516c2 100644
--- a/target/config/Config.in.kernelversion
+++ b/target/config/Config.in.kernelversion
@@ -24,7 +24,7 @@ config ADK_TARGET_KERNEL_VERSION_GIT
select ADK_TARGET_KERNEL_IMAGE if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
config ADK_TARGET_KERNEL_VERSION_4_9
- bool "4.9.4"
+ bool "4.9.6"
depends on !ADK_TARGET_ARCH_CRIS
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_NDS32
diff --git a/target/linux/config/Config.in.kernel b/target/linux/config/Config.in.kernel
index e27ddb951..8086a4bf7 100644
--- a/target/linux/config/Config.in.kernel
+++ b/target/linux/config/Config.in.kernel
@@ -168,7 +168,7 @@ config ADK_KERNEL_PREEMPT_RTB
depends on !ADK_KERNEL_OPROFILE
depends on ADK_TARGET_KERNEL_VERSION_4_1 \
|| ADK_TARGET_KERNEL_VERSION_4_4 \
- || ADK_TARGET_KERNEL_VERSION_4_8
+ || ADK_TARGET_KERNEL_VERSION_4_9
help
Preemptible Kernel (Basic RT)
@@ -179,7 +179,7 @@ config ADK_KERNEL_PREEMPT_RT_FULL
depends on !ADK_KERNEL_OPROFILE
depends on ADK_TARGET_KERNEL_VERSION_4_1 \
|| ADK_TARGET_KERNEL_VERSION_4_4 \
- || ADK_TARGET_KERNEL_VERSION_4_8
+ || ADK_TARGET_KERNEL_VERSION_4_9
help
Fully Preemptible Kernel (RealTime)
https://www.kernel.org/pub/linux/kernel/projects/rt/
diff --git a/target/linux/patches/4.9.4/crisv32_ethernet_driver.patch b/target/linux/patches/4.9.6/crisv32_ethernet_driver.patch
index 0cef202fc..0cef202fc 100644
--- a/target/linux/patches/4.9.4/crisv32_ethernet_driver.patch
+++ b/target/linux/patches/4.9.6/crisv32_ethernet_driver.patch
diff --git a/target/linux/patches/4.9.4/initramfs-nosizelimit.patch b/target/linux/patches/4.9.6/initramfs-nosizelimit.patch
index 40d2f6bd8..40d2f6bd8 100644
--- a/target/linux/patches/4.9.4/initramfs-nosizelimit.patch
+++ b/target/linux/patches/4.9.6/initramfs-nosizelimit.patch
diff --git a/target/linux/patches/4.9.4/ld-or1k.patch b/target/linux/patches/4.9.6/ld-or1k.patch
index 264f9166f..264f9166f 100644
--- a/target/linux/patches/4.9.4/ld-or1k.patch
+++ b/target/linux/patches/4.9.6/ld-or1k.patch
diff --git a/target/linux/patches/4.9.4/macsonic.patch b/target/linux/patches/4.9.6/macsonic.patch
index 75a6fcad2..75a6fcad2 100644
--- a/target/linux/patches/4.9.4/macsonic.patch
+++ b/target/linux/patches/4.9.6/macsonic.patch
diff --git a/target/linux/patches/4.9.4/microblaze-sigaltstack.patch b/target/linux/patches/4.9.6/microblaze-sigaltstack.patch
index c4064e8b9..c4064e8b9 100644
--- a/target/linux/patches/4.9.4/microblaze-sigaltstack.patch
+++ b/target/linux/patches/4.9.6/microblaze-sigaltstack.patch
diff --git a/target/linux/patches/4.9.4/or1k-more-ram.patch b/target/linux/patches/4.9.6/or1k-more-ram.patch
index de848c838..de848c838 100644
--- a/target/linux/patches/4.9.4/or1k-more-ram.patch
+++ b/target/linux/patches/4.9.6/or1k-more-ram.patch
diff --git a/target/linux/patches/4.9.4/patch-realtime b/target/linux/patches/4.9.6/patch-realtime
index d3a9ebee7..abc03f9f5 100644
--- a/target/linux/patches/4.9.4/patch-realtime
+++ b/target/linux/patches/4.9.6/patch-realtime
@@ -1,6 +1,18 @@
-diff -Nur linux-4.8.15.orig/arch/arm/include/asm/switch_to.h linux-4.8.15/arch/arm/include/asm/switch_to.h
---- linux-4.8.15.orig/arch/arm/include/asm/switch_to.h 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/include/asm/switch_to.h 2017-01-01 17:07:11.543137886 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/include/asm/irq.h linux-4.9.6/arch/arm/include/asm/irq.h
+--- linux-4.9.6.orig/arch/arm/include/asm/irq.h 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/include/asm/irq.h 2017-01-28 13:59:09.887654498 +0100
+@@ -22,6 +22,8 @@
+ #endif
+
+ #ifndef __ASSEMBLY__
++#include <linux/cpumask.h>
++
+ struct irqaction;
+ struct pt_regs;
+ extern void migrate_irqs(void);
+diff -Nur linux-4.9.6.orig/arch/arm/include/asm/switch_to.h linux-4.9.6/arch/arm/include/asm/switch_to.h
+--- linux-4.9.6.orig/arch/arm/include/asm/switch_to.h 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/include/asm/switch_to.h 2017-01-28 13:59:09.887654498 +0100
@@ -3,6 +3,13 @@
#include <linux/thread_info.h>
@@ -23,9 +35,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/include/asm/switch_to.h linux-4.8.15/arch/a
last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \
} while (0)
-diff -Nur linux-4.8.15.orig/arch/arm/include/asm/thread_info.h linux-4.8.15/arch/arm/include/asm/thread_info.h
---- linux-4.8.15.orig/arch/arm/include/asm/thread_info.h 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/include/asm/thread_info.h 2017-01-01 17:07:11.547138137 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/include/asm/thread_info.h linux-4.9.6/arch/arm/include/asm/thread_info.h
+--- linux-4.9.6.orig/arch/arm/include/asm/thread_info.h 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/include/asm/thread_info.h 2017-01-28 13:59:09.887654498 +0100
@@ -49,6 +49,7 @@
struct thread_info {
unsigned long flags; /* low level flags */
@@ -62,9 +74,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/include/asm/thread_info.h linux-4.8.15/arch
#endif /* __KERNEL__ */
#endif /* __ASM_ARM_THREAD_INFO_H */
-diff -Nur linux-4.8.15.orig/arch/arm/Kconfig linux-4.8.15/arch/arm/Kconfig
---- linux-4.8.15.orig/arch/arm/Kconfig 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/Kconfig 2017-01-01 17:07:11.487134269 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/Kconfig linux-4.9.6/arch/arm/Kconfig
+--- linux-4.9.6.orig/arch/arm/Kconfig 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/Kconfig 2017-01-28 13:59:09.887654498 +0100
@@ -36,7 +36,7 @@
select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
@@ -82,9 +94,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/Kconfig linux-4.8.15/arch/arm/Kconfig
select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE)
select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_SYSCALL_TRACEPOINTS
-diff -Nur linux-4.8.15.orig/arch/arm/kernel/asm-offsets.c linux-4.8.15/arch/arm/kernel/asm-offsets.c
---- linux-4.8.15.orig/arch/arm/kernel/asm-offsets.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kernel/asm-offsets.c 2017-01-01 17:07:11.587140711 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/kernel/asm-offsets.c linux-4.9.6/arch/arm/kernel/asm-offsets.c
+--- linux-4.9.6.orig/arch/arm/kernel/asm-offsets.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kernel/asm-offsets.c 2017-01-28 13:59:09.887654498 +0100
@@ -65,6 +65,7 @@
BLANK();
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
@@ -93,9 +105,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/kernel/asm-offsets.c linux-4.8.15/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.8.15.orig/arch/arm/kernel/entry-armv.S linux-4.8.15/arch/arm/kernel/entry-armv.S
---- linux-4.8.15.orig/arch/arm/kernel/entry-armv.S 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kernel/entry-armv.S 2017-01-01 17:07:11.611142259 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/kernel/entry-armv.S linux-4.9.6/arch/arm/kernel/entry-armv.S
+--- linux-4.9.6.orig/arch/arm/kernel/entry-armv.S 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kernel/entry-armv.S 2017-01-28 13:59:09.887654498 +0100
@@ -220,11 +220,18 @@
#ifdef CONFIG_PREEMPT
@@ -133,9 +145,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/kernel/entry-armv.S linux-4.8.15/arch/arm/k
#endif
__und_fault:
-diff -Nur linux-4.8.15.orig/arch/arm/kernel/entry-common.S linux-4.8.15/arch/arm/kernel/entry-common.S
---- linux-4.8.15.orig/arch/arm/kernel/entry-common.S 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kernel/entry-common.S 2017-01-01 17:07:11.615142513 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/kernel/entry-common.S linux-4.9.6/arch/arm/kernel/entry-common.S
+--- linux-4.9.6.orig/arch/arm/kernel/entry-common.S 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kernel/entry-common.S 2017-01-28 13:59:09.887654498 +0100
@@ -36,7 +36,9 @@
UNWIND(.cantunwind )
disable_irq_notrace @ disable interrupts
@@ -160,9 +172,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/kernel/entry-common.S linux-4.8.15/arch/arm
UNWIND(.fnend )
ENDPROC(ret_fast_syscall)
-diff -Nur linux-4.8.15.orig/arch/arm/kernel/patch.c linux-4.8.15/arch/arm/kernel/patch.c
---- linux-4.8.15.orig/arch/arm/kernel/patch.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kernel/patch.c 2017-01-01 17:07:11.623143039 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/kernel/patch.c linux-4.9.6/arch/arm/kernel/patch.c
+--- linux-4.9.6.orig/arch/arm/kernel/patch.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kernel/patch.c 2017-01-28 13:59:09.895654805 +0100
@@ -15,7 +15,7 @@
unsigned int insn;
};
@@ -190,10 +202,10 @@ diff -Nur linux-4.8.15.orig/arch/arm/kernel/patch.c linux-4.8.15/arch/arm/kernel
else
__release(&patch_lock);
}
-diff -Nur linux-4.8.15.orig/arch/arm/kernel/process.c linux-4.8.15/arch/arm/kernel/process.c
---- linux-4.8.15.orig/arch/arm/kernel/process.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kernel/process.c 2017-01-01 17:07:11.631143548 +0100
-@@ -323,6 +323,30 @@
+diff -Nur linux-4.9.6.orig/arch/arm/kernel/process.c linux-4.9.6/arch/arm/kernel/process.c
+--- linux-4.9.6.orig/arch/arm/kernel/process.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kernel/process.c 2017-01-28 13:59:09.895654805 +0100
+@@ -322,6 +322,30 @@
}
#ifdef CONFIG_MMU
@@ -224,9 +236,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/kernel/process.c linux-4.8.15/arch/arm/kern
#ifdef CONFIG_KUSER_HELPERS
/*
* The vectors page is always readable from user space for the
-diff -Nur linux-4.8.15.orig/arch/arm/kernel/signal.c linux-4.8.15/arch/arm/kernel/signal.c
---- linux-4.8.15.orig/arch/arm/kernel/signal.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kernel/signal.c 2017-01-01 17:07:11.659145353 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/kernel/signal.c linux-4.9.6/arch/arm/kernel/signal.c
+--- linux-4.9.6.orig/arch/arm/kernel/signal.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kernel/signal.c 2017-01-28 13:59:09.895654805 +0100
@@ -572,7 +572,8 @@
*/
trace_hardirqs_off();
@@ -237,9 +249,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/kernel/signal.c linux-4.8.15/arch/arm/kerne
schedule();
} else {
if (unlikely(!user_mode(regs)))
-diff -Nur linux-4.8.15.orig/arch/arm/kernel/smp.c linux-4.8.15/arch/arm/kernel/smp.c
---- linux-4.8.15.orig/arch/arm/kernel/smp.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kernel/smp.c 2017-01-01 17:07:11.671146131 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/kernel/smp.c linux-4.9.6/arch/arm/kernel/smp.c
+--- linux-4.9.6.orig/arch/arm/kernel/smp.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kernel/smp.c 2017-01-28 13:59:09.895654805 +0100
@@ -234,8 +234,6 @@
flush_cache_louis();
local_flush_tlb_all();
@@ -259,9 +271,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/kernel/smp.c linux-4.8.15/arch/arm/kernel/s
pr_notice("CPU%u: shutdown\n", cpu);
/*
-diff -Nur linux-4.8.15.orig/arch/arm/kernel/unwind.c linux-4.8.15/arch/arm/kernel/unwind.c
---- linux-4.8.15.orig/arch/arm/kernel/unwind.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kernel/unwind.c 2017-01-01 17:07:11.671146131 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/kernel/unwind.c linux-4.9.6/arch/arm/kernel/unwind.c
+--- linux-4.9.6.orig/arch/arm/kernel/unwind.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kernel/unwind.c 2017-01-28 13:59:09.895654805 +0100
@@ -93,7 +93,7 @@
static const struct unwind_idx *__origin_unwind_idx;
extern const struct unwind_idx __stop_unwind_idx[];
@@ -313,10 +325,10 @@ diff -Nur linux-4.8.15.orig/arch/arm/kernel/unwind.c linux-4.8.15/arch/arm/kerne
kfree(tab);
}
-diff -Nur linux-4.8.15.orig/arch/arm/kvm/arm.c linux-4.8.15/arch/arm/kvm/arm.c
---- linux-4.8.15.orig/arch/arm/kvm/arm.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/kvm/arm.c 2017-01-01 17:07:11.675146381 +0100
-@@ -584,7 +584,7 @@
+diff -Nur linux-4.9.6.orig/arch/arm/kvm/arm.c linux-4.9.6/arch/arm/kvm/arm.c
+--- linux-4.9.6.orig/arch/arm/kvm/arm.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/kvm/arm.c 2017-01-28 13:59:09.895654805 +0100
+@@ -619,7 +619,7 @@
* involves poking the GIC, which must be done in a
* non-preemptible context.
*/
@@ -325,7 +337,7 @@ diff -Nur linux-4.8.15.orig/arch/arm/kvm/arm.c linux-4.8.15/arch/arm/kvm/arm.c
kvm_pmu_flush_hwstate(vcpu);
kvm_timer_flush_hwstate(vcpu);
kvm_vgic_flush_hwstate(vcpu);
-@@ -605,7 +605,7 @@
+@@ -640,7 +640,7 @@
kvm_pmu_sync_hwstate(vcpu);
kvm_timer_sync_hwstate(vcpu);
kvm_vgic_sync_hwstate(vcpu);
@@ -334,7 +346,7 @@ diff -Nur linux-4.8.15.orig/arch/arm/kvm/arm.c linux-4.8.15/arch/arm/kvm/arm.c
continue;
}
-@@ -661,7 +661,7 @@
+@@ -696,7 +696,7 @@
kvm_vgic_sync_hwstate(vcpu);
@@ -343,9 +355,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/kvm/arm.c linux-4.8.15/arch/arm/kvm/arm.c
ret = handle_exit(vcpu, run, ret);
}
-diff -Nur linux-4.8.15.orig/arch/arm/mach-exynos/platsmp.c linux-4.8.15/arch/arm/mach-exynos/platsmp.c
---- linux-4.8.15.orig/arch/arm/mach-exynos/platsmp.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mach-exynos/platsmp.c 2017-01-01 17:07:11.707148443 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mach-exynos/platsmp.c linux-4.9.6/arch/arm/mach-exynos/platsmp.c
+--- linux-4.9.6.orig/arch/arm/mach-exynos/platsmp.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mach-exynos/platsmp.c 2017-01-28 13:59:09.895654805 +0100
@@ -229,7 +229,7 @@
return (void __iomem *)(S5P_VA_SCU);
}
@@ -393,9 +405,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mach-exynos/platsmp.c linux-4.8.15/arch/arm
return pen_release != -1 ? ret : 0;
}
-diff -Nur linux-4.8.15.orig/arch/arm/mach-hisi/platmcpm.c linux-4.8.15/arch/arm/mach-hisi/platmcpm.c
---- linux-4.8.15.orig/arch/arm/mach-hisi/platmcpm.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mach-hisi/platmcpm.c 2017-01-01 17:07:11.747151017 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mach-hisi/platmcpm.c linux-4.9.6/arch/arm/mach-hisi/platmcpm.c
+--- linux-4.9.6.orig/arch/arm/mach-hisi/platmcpm.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mach-hisi/platmcpm.c 2017-01-28 13:59:09.895654805 +0100
@@ -61,7 +61,7 @@
static void __iomem *sysctrl, *fabric;
@@ -481,9 +493,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mach-hisi/platmcpm.c linux-4.8.15/arch/arm/
return 0;
}
#endif
-diff -Nur linux-4.8.15.orig/arch/arm/mach-omap2/omap-smp.c linux-4.8.15/arch/arm/mach-omap2/omap-smp.c
---- linux-4.8.15.orig/arch/arm/mach-omap2/omap-smp.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mach-omap2/omap-smp.c 2017-01-01 17:07:11.763152049 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mach-omap2/omap-smp.c linux-4.9.6/arch/arm/mach-omap2/omap-smp.c
+--- linux-4.9.6.orig/arch/arm/mach-omap2/omap-smp.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mach-omap2/omap-smp.c 2017-01-28 13:59:09.895654805 +0100
@@ -64,7 +64,7 @@
.startup_addr = omap5_secondary_startup,
};
@@ -522,9 +534,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mach-omap2/omap-smp.c linux-4.8.15/arch/arm
return 0;
}
-diff -Nur linux-4.8.15.orig/arch/arm/mach-prima2/platsmp.c linux-4.8.15/arch/arm/mach-prima2/platsmp.c
---- linux-4.8.15.orig/arch/arm/mach-prima2/platsmp.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mach-prima2/platsmp.c 2017-01-01 17:07:11.795154111 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mach-prima2/platsmp.c linux-4.9.6/arch/arm/mach-prima2/platsmp.c
+--- linux-4.9.6.orig/arch/arm/mach-prima2/platsmp.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mach-prima2/platsmp.c 2017-01-28 13:59:09.895654805 +0100
@@ -22,7 +22,7 @@
static void __iomem *clk_base;
@@ -563,9 +575,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mach-prima2/platsmp.c linux-4.8.15/arch/arm
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.8.15.orig/arch/arm/mach-qcom/platsmp.c linux-4.8.15/arch/arm/mach-qcom/platsmp.c
---- linux-4.8.15.orig/arch/arm/mach-qcom/platsmp.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mach-qcom/platsmp.c 2017-01-01 17:07:11.803154626 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mach-qcom/platsmp.c linux-4.9.6/arch/arm/mach-qcom/platsmp.c
+--- linux-4.9.6.orig/arch/arm/mach-qcom/platsmp.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mach-qcom/platsmp.c 2017-01-28 13:59:09.895654805 +0100
@@ -46,7 +46,7 @@
extern void secondary_startup_arm(void);
@@ -604,9 +616,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mach-qcom/platsmp.c linux-4.8.15/arch/arm/m
return ret;
}
-diff -Nur linux-4.8.15.orig/arch/arm/mach-spear/platsmp.c linux-4.8.15/arch/arm/mach-spear/platsmp.c
---- linux-4.8.15.orig/arch/arm/mach-spear/platsmp.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mach-spear/platsmp.c 2017-01-01 17:07:11.847157467 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mach-spear/platsmp.c linux-4.9.6/arch/arm/mach-spear/platsmp.c
+--- linux-4.9.6.orig/arch/arm/mach-spear/platsmp.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mach-spear/platsmp.c 2017-01-28 13:59:09.895654805 +0100
@@ -32,7 +32,7 @@
sync_cache_w(&pen_release);
}
@@ -645,9 +657,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mach-spear/platsmp.c linux-4.8.15/arch/arm/
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.8.15.orig/arch/arm/mach-sti/platsmp.c linux-4.8.15/arch/arm/mach-sti/platsmp.c
---- linux-4.8.15.orig/arch/arm/mach-sti/platsmp.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mach-sti/platsmp.c 2017-01-01 17:07:11.851157720 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mach-sti/platsmp.c linux-4.9.6/arch/arm/mach-sti/platsmp.c
+--- linux-4.9.6.orig/arch/arm/mach-sti/platsmp.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mach-sti/platsmp.c 2017-01-28 13:59:09.895654805 +0100
@@ -35,7 +35,7 @@
sync_cache_w(&pen_release);
}
@@ -686,9 +698,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mach-sti/platsmp.c linux-4.8.15/arch/arm/ma
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.8.15.orig/arch/arm/mm/fault.c linux-4.8.15/arch/arm/mm/fault.c
---- linux-4.8.15.orig/arch/arm/mm/fault.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mm/fault.c 2017-01-01 17:07:11.879159524 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mm/fault.c linux-4.9.6/arch/arm/mm/fault.c
+--- linux-4.9.6.orig/arch/arm/mm/fault.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mm/fault.c 2017-01-28 13:59:09.895654805 +0100
@@ -430,6 +430,9 @@
if (addr < TASK_SIZE)
return do_page_fault(addr, fsr, regs);
@@ -709,9 +721,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mm/fault.c linux-4.8.15/arch/arm/mm/fault.c
do_bad_area(addr, fsr, regs);
return 0;
}
-diff -Nur linux-4.8.15.orig/arch/arm/mm/highmem.c linux-4.8.15/arch/arm/mm/highmem.c
---- linux-4.8.15.orig/arch/arm/mm/highmem.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/mm/highmem.c 2017-01-01 17:07:11.879159524 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/mm/highmem.c linux-4.9.6/arch/arm/mm/highmem.c
+--- linux-4.9.6.orig/arch/arm/mm/highmem.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/mm/highmem.c 2017-01-28 13:59:09.895654805 +0100
@@ -34,6 +34,11 @@
return *ptep;
}
@@ -842,9 +854,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/mm/highmem.c linux-4.8.15/arch/arm/mm/highm
+ }
+}
+#endif
-diff -Nur linux-4.8.15.orig/arch/arm/plat-versatile/platsmp.c linux-4.8.15/arch/arm/plat-versatile/platsmp.c
---- linux-4.8.15.orig/arch/arm/plat-versatile/platsmp.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm/plat-versatile/platsmp.c 2017-01-01 17:07:11.939163389 +0100
+diff -Nur linux-4.9.6.orig/arch/arm/plat-versatile/platsmp.c linux-4.9.6/arch/arm/plat-versatile/platsmp.c
+--- linux-4.9.6.orig/arch/arm/plat-versatile/platsmp.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm/plat-versatile/platsmp.c 2017-01-28 13:59:09.895654805 +0100
@@ -32,7 +32,7 @@
sync_cache_w(&pen_release);
}
@@ -883,9 +895,9 @@ diff -Nur linux-4.8.15.orig/arch/arm/plat-versatile/platsmp.c linux-4.8.15/arch/
return pen_release != -1 ? -ENOSYS : 0;
}
-diff -Nur linux-4.8.15.orig/arch/arm64/include/asm/thread_info.h linux-4.8.15/arch/arm64/include/asm/thread_info.h
---- linux-4.8.15.orig/arch/arm64/include/asm/thread_info.h 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm64/include/asm/thread_info.h 2017-01-01 17:07:12.027169062 +0100
+diff -Nur linux-4.9.6.orig/arch/arm64/include/asm/thread_info.h linux-4.9.6/arch/arm64/include/asm/thread_info.h
+--- linux-4.9.6.orig/arch/arm64/include/asm/thread_info.h 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm64/include/asm/thread_info.h 2017-01-28 13:59:09.895654805 +0100
@@ -49,6 +49,7 @@
mm_segment_t addr_limit; /* address limit */
struct task_struct *task; /* main task structure */
@@ -894,7 +906,7 @@ diff -Nur linux-4.8.15.orig/arch/arm64/include/asm/thread_info.h linux-4.8.15/ar
int cpu; /* cpu */
};
-@@ -109,6 +110,7 @@
+@@ -112,6 +113,7 @@
#define TIF_NEED_RESCHED 1
#define TIF_NOTIFY_RESUME 2 /* callback before returning to user */
#define TIF_FOREIGN_FPSTATE 3 /* CPU's FP state is not current's */
@@ -902,7 +914,7 @@ diff -Nur linux-4.8.15.orig/arch/arm64/include/asm/thread_info.h linux-4.8.15/ar
#define TIF_NOHZ 7
#define TIF_SYSCALL_TRACE 8
#define TIF_SYSCALL_AUDIT 9
-@@ -124,6 +126,7 @@
+@@ -127,6 +129,7 @@
#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
#define _TIF_FOREIGN_FPSTATE (1 << TIF_FOREIGN_FPSTATE)
@@ -910,20 +922,21 @@ diff -Nur linux-4.8.15.orig/arch/arm64/include/asm/thread_info.h linux-4.8.15/ar
#define _TIF_NOHZ (1 << TIF_NOHZ)
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
-@@ -132,7 +135,8 @@
+@@ -135,7 +138,9 @@
#define _TIF_32BIT (1 << TIF_32BIT)
#define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \
- _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE)
+ _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE | \
+ _TIF_NEED_RESCHED_LAZY)
++#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY)
#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
_TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
-diff -Nur linux-4.8.15.orig/arch/arm64/Kconfig linux-4.8.15/arch/arm64/Kconfig
---- linux-4.8.15.orig/arch/arm64/Kconfig 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm64/Kconfig 2017-01-01 17:07:11.979165970 +0100
-@@ -90,6 +90,7 @@
+diff -Nur linux-4.9.6.orig/arch/arm64/Kconfig linux-4.9.6/arch/arm64/Kconfig
+--- linux-4.9.6.orig/arch/arm64/Kconfig 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm64/Kconfig 2017-01-28 13:59:09.895654805 +0100
+@@ -91,6 +91,7 @@
select HAVE_PERF_EVENTS
select HAVE_PERF_REGS
select HAVE_PERF_USER_STACK_DUMP
@@ -931,7 +944,7 @@ diff -Nur linux-4.8.15.orig/arch/arm64/Kconfig linux-4.8.15/arch/arm64/Kconfig
select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_RCU_TABLE_FREE
select HAVE_SYSCALL_TRACEPOINTS
-@@ -689,7 +690,7 @@
+@@ -694,7 +695,7 @@
config XEN
bool "Xen guest support on ARM64"
@@ -940,10 +953,10 @@ diff -Nur linux-4.8.15.orig/arch/arm64/Kconfig linux-4.8.15/arch/arm64/Kconfig
select SWIOTLB_XEN
select PARAVIRT
help
-diff -Nur linux-4.8.15.orig/arch/arm64/kernel/asm-offsets.c linux-4.8.15/arch/arm64/kernel/asm-offsets.c
---- linux-4.8.15.orig/arch/arm64/kernel/asm-offsets.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm64/kernel/asm-offsets.c 2017-01-01 17:07:12.079172403 +0100
-@@ -37,6 +37,7 @@
+diff -Nur linux-4.9.6.orig/arch/arm64/kernel/asm-offsets.c linux-4.9.6/arch/arm64/kernel/asm-offsets.c
+--- linux-4.9.6.orig/arch/arm64/kernel/asm-offsets.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm64/kernel/asm-offsets.c 2017-01-28 13:59:09.895654805 +0100
+@@ -38,6 +38,7 @@
BLANK();
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
@@ -951,10 +964,10 @@ diff -Nur linux-4.8.15.orig/arch/arm64/kernel/asm-offsets.c linux-4.8.15/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.8.15.orig/arch/arm64/kernel/entry.S linux-4.8.15/arch/arm64/kernel/entry.S
---- linux-4.8.15.orig/arch/arm64/kernel/entry.S 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/arm64/kernel/entry.S 2017-01-01 17:07:12.083172658 +0100
-@@ -434,11 +434,16 @@
+diff -Nur linux-4.9.6.orig/arch/arm64/kernel/entry.S linux-4.9.6/arch/arm64/kernel/entry.S
+--- linux-4.9.6.orig/arch/arm64/kernel/entry.S 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm64/kernel/entry.S 2017-01-28 13:59:09.895654805 +0100
+@@ -428,11 +428,16 @@
#ifdef CONFIG_PREEMPT
ldr w24, [tsk, #TI_PREEMPT] // get preempt count
@@ -974,7 +987,7 @@ diff -Nur linux-4.8.15.orig/arch/arm64/kernel/entry.S linux-4.8.15/arch/arm64/ke
#endif
#ifdef CONFIG_TRACE_IRQFLAGS
bl trace_hardirqs_on
-@@ -452,6 +457,7 @@
+@@ -446,6 +451,7 @@
1: bl preempt_schedule_irq // irq en/disable is done inside
ldr x0, [tsk, #TI_FLAGS] // get new tasks TI_FLAGS
tbnz x0, #TIF_NEED_RESCHED, 1b // needs rescheduling?
@@ -982,17 +995,21 @@ diff -Nur linux-4.8.15.orig/arch/arm64/kernel/entry.S linux-4.8.15/arch/arm64/ke
ret x24
#endif
-@@ -708,6 +714,7 @@
- */
- work_pending:
- tbnz x1, #TIF_NEED_RESCHED, work_resched
-+ tbnz x1, #TIF_NEED_RESCHED_LAZY, work_resched
- /* TIF_SIGPENDING, TIF_NOTIFY_RESUME or TIF_FOREIGN_FPSTATE case */
- mov x0, sp // 'regs'
- enable_irq // enable interrupts for do_notify_resume()
-diff -Nur linux-4.8.15.orig/arch/Kconfig linux-4.8.15/arch/Kconfig
---- linux-4.8.15.orig/arch/Kconfig 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/Kconfig 2017-01-01 17:07:11.431130672 +0100
+diff -Nur linux-4.9.6.orig/arch/arm64/kernel/signal.c linux-4.9.6/arch/arm64/kernel/signal.c
+--- linux-4.9.6.orig/arch/arm64/kernel/signal.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/arm64/kernel/signal.c 2017-01-28 13:59:09.895654805 +0100
+@@ -409,7 +409,7 @@
+ */
+ trace_hardirqs_off();
+ do {
+- if (thread_flags & _TIF_NEED_RESCHED) {
++ if (thread_flags & _TIF_NEED_RESCHED_MASK) {
+ schedule();
+ } else {
+ local_irq_enable();
+diff -Nur linux-4.9.6.orig/arch/Kconfig linux-4.9.6/arch/Kconfig
+--- linux-4.9.6.orig/arch/Kconfig 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/Kconfig 2017-01-28 13:59:09.887654498 +0100
@@ -9,6 +9,7 @@
tristate "OProfile system profiling"
depends on PROFILING
@@ -1009,10 +1026,10 @@ diff -Nur linux-4.8.15.orig/arch/Kconfig linux-4.8.15/arch/Kconfig
help
This option enables a transparent branch optimization that
makes certain almost-always-true or almost-always-false branch
-diff -Nur linux-4.8.15.orig/arch/mips/Kconfig linux-4.8.15/arch/mips/Kconfig
---- linux-4.8.15.orig/arch/mips/Kconfig 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/mips/Kconfig 2017-01-01 17:07:12.275185025 +0100
-@@ -2480,7 +2480,7 @@
+diff -Nur linux-4.9.6.orig/arch/mips/Kconfig linux-4.9.6/arch/mips/Kconfig
+--- linux-4.9.6.orig/arch/mips/Kconfig 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/mips/Kconfig 2017-01-28 13:59:09.895654805 +0100
+@@ -2514,7 +2514,7 @@
#
config HIGHMEM
bool "High Memory Support"
@@ -1021,9 +1038,9 @@ diff -Nur linux-4.8.15.orig/arch/mips/Kconfig linux-4.8.15/arch/mips/Kconfig
config CPU_SUPPORTS_HIGHMEM
bool
-diff -Nur linux-4.8.15.orig/arch/powerpc/include/asm/thread_info.h linux-4.8.15/arch/powerpc/include/asm/thread_info.h
---- linux-4.8.15.orig/arch/powerpc/include/asm/thread_info.h 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/powerpc/include/asm/thread_info.h 2017-01-01 17:07:12.499199453 +0100
+diff -Nur linux-4.9.6.orig/arch/powerpc/include/asm/thread_info.h linux-4.9.6/arch/powerpc/include/asm/thread_info.h
+--- linux-4.9.6.orig/arch/powerpc/include/asm/thread_info.h 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/powerpc/include/asm/thread_info.h 2017-01-28 13:59:09.895654805 +0100
@@ -43,6 +43,8 @@
int cpu; /* cpu we're on */
int preempt_count; /* 0 => preemptable,
@@ -1070,10 +1087,10 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/include/asm/thread_info.h linux-4.8.15/
/* Bits in local_flags */
/* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
-diff -Nur linux-4.8.15.orig/arch/powerpc/Kconfig linux-4.8.15/arch/powerpc/Kconfig
---- linux-4.8.15.orig/arch/powerpc/Kconfig 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/powerpc/Kconfig 2017-01-01 17:07:12.435195331 +0100
-@@ -57,10 +57,11 @@
+diff -Nur linux-4.9.6.orig/arch/powerpc/Kconfig linux-4.9.6/arch/powerpc/Kconfig
+--- linux-4.9.6.orig/arch/powerpc/Kconfig 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/powerpc/Kconfig 2017-01-28 13:59:09.895654805 +0100
+@@ -52,10 +52,11 @@
config RWSEM_GENERIC_SPINLOCK
bool
@@ -1086,7 +1103,7 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/Kconfig linux-4.8.15/arch/powerpc/Kconf
config GENERIC_LOCKBREAK
bool
-@@ -140,6 +141,7 @@
+@@ -134,6 +135,7 @@
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
select GENERIC_STRNCPY_FROM_USER
select GENERIC_STRNLEN_USER
@@ -1094,7 +1111,7 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/Kconfig linux-4.8.15/arch/powerpc/Kconf
select HAVE_MOD_ARCH_SPECIFIC
select MODULES_USE_ELF_RELA
select CLONE_BACKWARDS
-@@ -326,7 +328,7 @@
+@@ -321,7 +323,7 @@
config HIGHMEM
bool "High memory support"
@@ -1103,9 +1120,9 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/Kconfig linux-4.8.15/arch/powerpc/Kconf
source kernel/Kconfig.hz
source kernel/Kconfig.preempt
-diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/asm-offsets.c linux-4.8.15/arch/powerpc/kernel/asm-offsets.c
---- linux-4.8.15.orig/arch/powerpc/kernel/asm-offsets.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/powerpc/kernel/asm-offsets.c 2017-01-01 17:07:12.519200744 +0100
+diff -Nur linux-4.9.6.orig/arch/powerpc/kernel/asm-offsets.c linux-4.9.6/arch/powerpc/kernel/asm-offsets.c
+--- linux-4.9.6.orig/arch/powerpc/kernel/asm-offsets.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/powerpc/kernel/asm-offsets.c 2017-01-28 13:59:09.895654805 +0100
@@ -156,6 +156,7 @@
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
DEFINE(TI_LOCAL_FLAGS, offsetof(struct thread_info, local_flags));
@@ -1114,9 +1131,9 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/asm-offsets.c linux-4.8.15/arch/
DEFINE(TI_TASK, offsetof(struct thread_info, task));
DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
-diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/entry_32.S linux-4.8.15/arch/powerpc/kernel/entry_32.S
---- linux-4.8.15.orig/arch/powerpc/kernel/entry_32.S 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/powerpc/kernel/entry_32.S 2017-01-01 17:07:12.531201514 +0100
+diff -Nur linux-4.9.6.orig/arch/powerpc/kernel/entry_32.S linux-4.9.6/arch/powerpc/kernel/entry_32.S
+--- linux-4.9.6.orig/arch/powerpc/kernel/entry_32.S 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/powerpc/kernel/entry_32.S 2017-01-28 13:59:09.895654805 +0100
@@ -835,7 +835,14 @@
cmpwi 0,r0,0 /* if non-zero, just restore regs and return */
bne restore
@@ -1165,10 +1182,10 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/entry_32.S linux-4.8.15/arch/pow
bne- do_resched
andi. r0,r9,_TIF_USER_WORK_MASK
beq restore_user
-diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/entry_64.S linux-4.8.15/arch/powerpc/kernel/entry_64.S
---- linux-4.8.15.orig/arch/powerpc/kernel/entry_64.S 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/powerpc/kernel/entry_64.S 2017-01-01 17:07:12.535201773 +0100
-@@ -657,7 +657,7 @@
+diff -Nur linux-4.9.6.orig/arch/powerpc/kernel/entry_64.S linux-4.9.6/arch/powerpc/kernel/entry_64.S
+--- linux-4.9.6.orig/arch/powerpc/kernel/entry_64.S 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/powerpc/kernel/entry_64.S 2017-01-28 13:59:09.895654805 +0100
+@@ -656,7 +656,7 @@
bl restore_math
b restore
#endif
@@ -1177,7 +1194,7 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/entry_64.S linux-4.8.15/arch/pow
beq 2f
bl restore_interrupts
SCHEDULE_USER
-@@ -719,10 +719,18 @@
+@@ -718,10 +718,18 @@
#ifdef CONFIG_PREEMPT
/* Check if we need to preempt */
@@ -1197,7 +1214,7 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/entry_64.S linux-4.8.15/arch/pow
cmpwi cr1,r8,0
ld r0,SOFTE(r1)
cmpdi r0,0
-@@ -739,7 +747,7 @@
+@@ -738,7 +746,7 @@
/* Re-test flags and eventually loop */
CURRENT_THREAD_INFO(r9, r1)
ld r4,TI_FLAGS(r9)
@@ -1206,10 +1223,10 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/entry_64.S linux-4.8.15/arch/pow
bne 1b
/*
-diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/irq.c linux-4.8.15/arch/powerpc/kernel/irq.c
---- linux-4.8.15.orig/arch/powerpc/kernel/irq.c 2016-12-15 17:50:48.000000000 +0100
-+++ linux-4.8.15/arch/powerpc/kernel/irq.c 2017-01-01 17:07:12.539202039 +0100
-@@ -633,6 +633,7 @@
+diff -Nur linux-4.9.6.orig/arch/powerpc/kernel/irq.c linux-4.9.6/arch/powerpc/kernel/irq.c
+--- linux-4.9.6.orig/arch/powerpc/kernel/irq.c 2017-01-26 08:25:24.000000000 +0100
++++ linux-4.9.6/arch/powerpc/kernel/irq.c 2017-01-28 13:59:09.895654805 +0100
+@@ -638,6 +638,7 @@
}
}
@@ -1217,7 +1234,7 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/irq.c linux-4.8.15/arch/powerpc/
void do_softirq_own_stack(void)
{
struct thread_info *curtp, *irqtp;
-@@ -650,6 +651,7 @@
+@@ -655,6 +656,7 @@
if (irqtp->flags)
set_bits(irqtp->flags, &curtp->flags);
}
@@ -1225,10 +1242,10 @@ diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/irq.c linux-4.8.15/arch/powerpc/
irq_hw_number_t virq_to_hw(unsigned int virq)
{
-diff -Nur linux-4.8.15.orig/arch/powerpc/kernel/misc_32.S linux-4.8.15/arch/powerpc/kernel/misc_32.S