diff options
-rw-r--r-- | mk/kernel-ver.mk | 4 | ||||
-rw-r--r-- | target/config/Config.in.kernelversion | 2 | ||||
-rw-r--r-- | target/linux/patches/4.4.30/revert-sparc.patch | 319 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/coldfire-sighandler.patch (renamed from target/linux/patches/4.4.30/coldfire-sighandler.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/crisv32.patch (renamed from target/linux/patches/4.4.30/crisv32.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/crisv32_ethernet_driver.patch (renamed from target/linux/patches/4.4.30/crisv32_ethernet_driver.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/initramfs-nosizelimit.patch (renamed from target/linux/patches/4.4.30/initramfs-nosizelimit.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/ld-or1k.patch (renamed from target/linux/patches/4.4.30/ld-or1k.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/macsonic.patch (renamed from target/linux/patches/4.4.30/macsonic.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/mips-xz.patch (renamed from target/linux/patches/4.4.30/mips-xz.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/patch-realtime (renamed from target/linux/patches/4.4.30/patch-realtime) | 2484 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/startup.patch (renamed from target/linux/patches/4.4.30/startup.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/use-libgcc-for-sh.patch (renamed from target/linux/patches/4.4.30/use-libgcc-for-sh.patch) | 0 | ||||
-rw-r--r-- | target/linux/patches/4.4.38/versatile-nommu.patch (renamed from target/linux/patches/4.4.30/versatile-nommu.patch) | 0 |
14 files changed, 1240 insertions, 1569 deletions
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk index ecc5c26ef..693f144ee 100644 --- a/mk/kernel-ver.mk +++ b/mk/kernel-ver.mk @@ -28,10 +28,10 @@ KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE) KERNEL_HASH:= 1605260913729b7b72a64a0598b782725e365dab57d49dec188373d634538fee endif ifeq ($(ADK_TARGET_KERNEL_VERSION_4_4),y) -KERNEL_FILE_VER:= 4.4.30 +KERNEL_FILE_VER:= 4.4.38 KERNEL_RELEASE:= 1 KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE) -KERNEL_HASH:= 9d249133bd12dde04f434bb4a5a4a23dd42ead721803c0ba4b5742efd239995c +KERNEL_HASH:= 77ed9e650b65788a1f9f371ba87c2e50b5ba7624bc834ae38b036f7f592816a6 endif ifeq ($(ADK_TARGET_KERNEL_VERSION_4_1),y) KERNEL_FILE_VER:= 4.1.35 diff --git a/target/config/Config.in.kernelversion b/target/config/Config.in.kernelversion index 47fba887b..29d7a780e 100644 --- a/target/config/Config.in.kernelversion +++ b/target/config/Config.in.kernelversion @@ -40,7 +40,7 @@ config ADK_TARGET_KERNEL_VERSION_4_8 depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2 config ADK_TARGET_KERNEL_VERSION_4_4 - bool "4.4.30" + bool "4.4.38" depends on !ADK_TARGET_ARCH_NDS32 depends on !ADK_TARGET_ARCH_NIOS2 depends on !ADK_TARGET_ARCH_OR1K diff --git a/target/linux/patches/4.4.30/revert-sparc.patch b/target/linux/patches/4.4.30/revert-sparc.patch deleted file mode 100644 index 296be0e4a..000000000 --- a/target/linux/patches/4.4.30/revert-sparc.patch +++ /dev/null @@ -1,319 +0,0 @@ -From fff1ade5bd7576b053b6bbc9c9b72c2572092c06 Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb <wbx@uclibc-ng.org> -Date: Wed, 6 Jul 2016 08:16:59 +0200 -Subject: [PATCH] Revert "sparc: Harden signal return frame checks." - -This reverts commit 1fda90c39d8ef6acbedfd3cd9bd710a5bcc490c3. - -Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org> ---- - arch/sparc/kernel/signal32.c | 46 ++++++++++++++-------------------------- - arch/sparc/kernel/signal_32.c | 41 +++++++++++++---------------------- - arch/sparc/kernel/signal_64.c | 31 ++++++++++----------------- - arch/sparc/kernel/sigutil_32.c | 9 +------- - arch/sparc/kernel/sigutil_64.c | 10 ++------- - 5 files changed, 45 insertions(+), 92 deletions(-) - -diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c -index 77655f0..4eed773 100644 ---- a/arch/sparc/kernel/signal32.c -+++ b/arch/sparc/kernel/signal32.c -@@ -138,24 +138,12 @@ int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from) - return 0; - } - --/* Checks if the fp is valid. We always build signal frames which are -- * 16-byte aligned, therefore we can always enforce that the restore -- * frame has that property as well. -- */ --static bool invalid_frame_pointer(void __user *fp, int fplen) --{ -- if ((((unsigned long) fp) & 15) || -- ((unsigned long)fp) > 0x100000000ULL - fplen) -- return true; -- return false; --} -- - void do_sigreturn32(struct pt_regs *regs) - { - struct signal_frame32 __user *sf; - compat_uptr_t fpu_save; - compat_uptr_t rwin_save; -- unsigned int psr, ufp; -+ unsigned int psr; - unsigned pc, npc; - sigset_t set; - compat_sigset_t seta; -@@ -170,16 +158,11 @@ void do_sigreturn32(struct pt_regs *regs) - sf = (struct signal_frame32 __user *) regs->u_regs[UREG_FP]; - - /* 1. Make sure we are not getting garbage from the user */ -- if (invalid_frame_pointer(sf, sizeof(*sf))) -- goto segv; -- -- if (get_user(ufp, &sf->info.si_regs.u_regs[UREG_FP])) -- goto segv; -- -- if (ufp & 0x7) -+ if (!access_ok(VERIFY_READ, sf, sizeof(*sf)) || -+ (((unsigned long) sf) & 3)) - goto segv; - -- if (__get_user(pc, &sf->info.si_regs.pc) || -+ if (get_user(pc, &sf->info.si_regs.pc) || - __get_user(npc, &sf->info.si_regs.npc)) - goto segv; - -@@ -244,7 +227,7 @@ segv: - asmlinkage void do_rt_sigreturn32(struct pt_regs *regs) - { - struct rt_signal_frame32 __user *sf; -- unsigned int psr, pc, npc, ufp; -+ unsigned int psr, pc, npc; - compat_uptr_t fpu_save; - compat_uptr_t rwin_save; - sigset_t set; -@@ -259,16 +242,11 @@ asmlinkage void do_rt_sigreturn32(struct pt_regs *regs) - sf = (struct rt_signal_frame32 __user *) regs->u_regs[UREG_FP]; - - /* 1. Make sure we are not getting garbage from the user */ -- if (invalid_frame_pointer(sf, sizeof(*sf))) -+ if (!access_ok(VERIFY_READ, sf, sizeof(*sf)) || -+ (((unsigned long) sf) & 3)) - goto segv; - -- if (get_user(ufp, &sf->regs.u_regs[UREG_FP])) -- goto segv; -- -- if (ufp & 0x7) -- goto segv; -- -- if (__get_user(pc, &sf->regs.pc) || -+ if (get_user(pc, &sf->regs.pc) || - __get_user(npc, &sf->regs.npc)) - goto segv; - -@@ -329,6 +307,14 @@ segv: - force_sig(SIGSEGV, current); - } - -+/* Checks if the fp is valid */ -+static int invalid_frame_pointer(void __user *fp, int fplen) -+{ -+ if ((((unsigned long) fp) & 7) || ((unsigned long)fp) > 0x100000000ULL - fplen) -+ return 1; -+ return 0; -+} -+ - static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) - { - unsigned long sp; -diff --git a/arch/sparc/kernel/signal_32.c b/arch/sparc/kernel/signal_32.c -index c3c12ef..52aa5e4 100644 ---- a/arch/sparc/kernel/signal_32.c -+++ b/arch/sparc/kernel/signal_32.c -@@ -60,22 +60,10 @@ struct rt_signal_frame { - #define SF_ALIGNEDSZ (((sizeof(struct signal_frame) + 7) & (~7))) - #define RT_ALIGNEDSZ (((sizeof(struct rt_signal_frame) + 7) & (~7))) - --/* Checks if the fp is valid. We always build signal frames which are -- * 16-byte aligned, therefore we can always enforce that the restore -- * frame has that property as well. -- */ --static inline bool invalid_frame_pointer(void __user *fp, int fplen) --{ -- if ((((unsigned long) fp) & 15) || !__access_ok((unsigned long)fp, fplen)) -- return true; -- -- return false; --} -- - asmlinkage void do_sigreturn(struct pt_regs *regs) - { -- unsigned long up_psr, pc, npc, ufp; - struct signal_frame __user *sf; -+ unsigned long up_psr, pc, npc; - sigset_t set; - __siginfo_fpu_t __user *fpu_save; - __siginfo_rwin_t __user *rwin_save; -@@ -89,13 +77,10 @@ asmlinkage void do_sigreturn(struct pt_regs *regs) - sf = (struct signal_frame __user *) regs->u_regs[UREG_FP]; - - /* 1. Make sure we are not getting garbage from the user */ -- if (!invalid_frame_pointer(sf, sizeof(*sf))) -- goto segv_and_exit; -- -- if (get_user(ufp, &sf->info.si_regs.u_regs[UREG_FP])) -+ if (!access_ok(VERIFY_READ, sf, sizeof(*sf))) - goto segv_and_exit; - -- if (ufp & 0x7) -+ if (((unsigned long) sf) & 3) - goto segv_and_exit; - - err = __get_user(pc, &sf->info.si_regs.pc); -@@ -142,7 +127,7 @@ segv_and_exit: - asmlinkage void do_rt_sigreturn(struct pt_regs *regs) - { - struct rt_signal_frame __user *sf; -- unsigned int psr, pc, npc, ufp; -+ unsigned int psr, pc, npc; - __siginfo_fpu_t __user *fpu_save; - __siginfo_rwin_t __user *rwin_save; - sigset_t set; -@@ -150,13 +135,8 @@ asmlinkage void do_rt_sigreturn(struct pt_regs *regs) - - synchronize_user_stack(); - sf = (struct rt_signal_frame __user *) regs->u_regs[UREG_FP]; -- if (!invalid_frame_pointer(sf, sizeof(*sf))) -- goto segv; -- -- if (get_user(ufp, &sf->regs.u_regs[UREG_FP])) -- goto segv; -- -- if (ufp & 0x7) -+ if (!access_ok(VERIFY_READ, sf, sizeof(*sf)) || -+ (((unsigned long) sf) & 0x03)) - goto segv; - - err = __get_user(pc, &sf->regs.pc); -@@ -198,6 +178,15 @@ segv: - force_sig(SIGSEGV, current); - } - -+/* Checks if the fp is valid */ -+static inline int invalid_frame_pointer(void __user *fp, int fplen) -+{ -+ if ((((unsigned long) fp) & 7) || !__access_ok((unsigned long)fp, fplen)) -+ return 1; -+ -+ return 0; -+} -+ - static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) - { - unsigned long sp = regs->u_regs[UREG_FP]; -diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c -index 5ee930c..39aaec1 100644 ---- a/arch/sparc/kernel/signal_64.c -+++ b/arch/sparc/kernel/signal_64.c -@@ -234,17 +234,6 @@ do_sigsegv: - goto out; - } - --/* Checks if the fp is valid. We always build rt signal frames which -- * are 16-byte aligned, therefore we can always enforce that the -- * restore frame has that property as well. -- */ --static bool invalid_frame_pointer(void __user *fp) --{ -- if (((unsigned long) fp) & 15) -- return true; -- return false; --} -- - struct rt_signal_frame { - struct sparc_stackf ss; - siginfo_t info; -@@ -257,8 +246,8 @@ struct rt_signal_frame { - - void do_rt_sigreturn(struct pt_regs *regs) - { -- unsigned long tpc, tnpc, tstate, ufp; - struct rt_signal_frame __user *sf; -+ unsigned long tpc, tnpc, tstate; - __siginfo_fpu_t __user *fpu_save; - __siginfo_rwin_t __user *rwin_save; - sigset_t set; -@@ -272,16 +261,10 @@ void do_rt_sigreturn(struct pt_regs *regs) - (regs->u_regs [UREG_FP] + STACK_BIAS); - - /* 1. Make sure we are not getting garbage from the user */ -- if (invalid_frame_pointer(sf)) -- goto segv; -- -- if (get_user(ufp, &sf->regs.u_regs[UREG_FP])) -+ if (((unsigned long) sf) & 3) - goto segv; - -- if ((ufp + STACK_BIAS) & 0x7) -- goto segv; -- -- err = __get_user(tpc, &sf->regs.tpc); -+ err = get_user(tpc, &sf->regs.tpc); - err |= __get_user(tnpc, &sf->regs.tnpc); - if (test_thread_flag(TIF_32BIT)) { - tpc &= 0xffffffff; -@@ -325,6 +308,14 @@ segv: - force_sig(SIGSEGV, current); - } - -+/* Checks if the fp is valid */ -+static int invalid_frame_pointer(void __user *fp) -+{ -+ if (((unsigned long) fp) & 15) -+ return 1; -+ return 0; -+} -+ - static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) - { - unsigned long sp = regs->u_regs[UREG_FP] + STACK_BIAS; -diff --git a/arch/sparc/kernel/sigutil_32.c b/arch/sparc/kernel/sigutil_32.c -index e5fe8ce..0f6eebe 100644 ---- a/arch/sparc/kernel/sigutil_32.c -+++ b/arch/sparc/kernel/sigutil_32.c -@@ -48,10 +48,6 @@ int save_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) - int restore_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) - { - int err; -- -- if (((unsigned long) fpu) & 3) -- return -EFAULT; -- - #ifdef CONFIG_SMP - if (test_tsk_thread_flag(current, TIF_USEDFPU)) - regs->psr &= ~PSR_EF; -@@ -101,10 +97,7 @@ int restore_rwin_state(__siginfo_rwin_t __user *rp) - struct thread_info *t = current_thread_info(); - int i, wsaved, err; - -- if (((unsigned long) rp) & 3) -- return -EFAULT; -- -- get_user(wsaved, &rp->wsaved); -+ __get_user(wsaved, &rp->wsaved); - if (wsaved > NSWINS) - return -EFAULT; - -diff --git a/arch/sparc/kernel/sigutil_64.c b/arch/sparc/kernel/sigutil_64.c -index 36aadcb..387834a 100644 ---- a/arch/sparc/kernel/sigutil_64.c -+++ b/arch/sparc/kernel/sigutil_64.c -@@ -37,10 +37,7 @@ int restore_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) - unsigned long fprs; - int err; - -- if (((unsigned long) fpu) & 7) -- return -EFAULT; -- -- err = get_user(fprs, &fpu->si_fprs); -+ err = __get_user(fprs, &fpu->si_fprs); - fprs_write(0); - regs->tstate &= ~TSTATE_PEF; - if (fprs & FPRS_DL) -@@ -75,10 +72,7 @@ int restore_rwin_state(__siginfo_rwin_t __user *rp) - struct thread_info *t = current_thread_info(); - int i, wsaved, err; - -- if (((unsigned long) rp) & 7) -- return -EFAULT; -- -- get_user(wsaved, &rp->wsaved); -+ __get_user(wsaved, &rp->wsaved); - if (wsaved > NSWINS) - return -EFAULT; - --- -1.7.10.4 - diff --git a/target/linux/patches/4.4.30/coldfire-sighandler.patch b/target/linux/patches/4.4.38/coldfire-sighandler.patch index c52a4e228..c52a4e228 100644 --- a/target/linux/patches/4.4.30/coldfire-sighandler.patch +++ b/target/linux/patches/4.4.38/coldfire-sighandler.patch diff --git a/target/linux/patches/4.4.30/crisv32.patch b/target/linux/patches/4.4.38/crisv32.patch index cb9b0d028..cb9b0d028 100644 --- a/target/linux/patches/4.4.30/crisv32.patch +++ b/target/linux/patches/4.4.38/crisv32.patch diff --git a/target/linux/patches/4.4.30/crisv32_ethernet_driver.patch b/target/linux/patches/4.4.38/crisv32_ethernet_driver.patch index 0cef202fc..0cef202fc 100644 --- a/target/linux/patches/4.4.30/crisv32_ethernet_driver.patch +++ b/target/linux/patches/4.4.38/crisv32_ethernet_driver.patch diff --git a/target/linux/patches/4.4.30/initramfs-nosizelimit.patch b/target/linux/patches/4.4.38/initramfs-nosizelimit.patch index 40d2f6bd8..40d2f6bd8 100644 --- a/target/linux/patches/4.4.30/initramfs-nosizelimit.patch +++ b/target/linux/patches/4.4.38/initramfs-nosizelimit.patch diff --git a/target/linux/patches/4.4.30/ld-or1k.patch b/target/linux/patches/4.4.38/ld-or1k.patch index 264f9166f..264f9166f 100644 --- a/target/linux/patches/4.4.30/ld-or1k.patch +++ b/target/linux/patches/4.4.38/ld-or1k.patch diff --git a/target/linux/patches/4.4.30/macsonic.patch b/target/linux/patches/4.4.38/macsonic.patch index 75a6fcad2..75a6fcad2 100644 --- a/target/linux/patches/4.4.30/macsonic.patch +++ b/target/linux/patches/4.4.38/macsonic.patch diff --git a/target/linux/patches/4.4.30/mips-xz.patch b/target/linux/patches/4.4.38/mips-xz.patch index 5cfac6254..5cfac6254 100644 --- a/target/linux/patches/4.4.30/mips-xz.patch +++ b/target/linux/patches/4.4.38/mips-xz.patch diff --git a/target/linux/patches/4.4.30/patch-realtime b/target/linux/patches/4.4.38/patch-realtime index 9dd3be37b..995fc7cf2 100644 --- a/target/linux/patches/4.4.30/patch-realtime +++ b/target/linux/patches/4.4.38/patch-realtime @@ -1,6 +1,6 @@ -diff -Nur linux-4.4.28.orig/arch/arm/include/asm/switch_to.h linux-4.4.28/arch/arm/include/asm/switch_to.h ---- linux-4.4.28.orig/arch/arm/include/asm/switch_to.h 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/include/asm/switch_to.h 2016-11-01 21:26:56.728210258 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/include/asm/switch_to.h linux-4.4.38/arch/arm/include/asm/switch_to.h +--- linux-4.4.38.orig/arch/arm/include/asm/switch_to.h 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/include/asm/switch_to.h 2017-01-01 21:00:17.997608452 +0100 @@ -3,6 +3,13 @@ #include <linux/thread_info.h> @@ -23,9 +23,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/include/asm/switch_to.h linux-4.4.28/arch/a last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ } while (0) -diff -Nur linux-4.4.28.orig/arch/arm/include/asm/thread_info.h linux-4.4.28/arch/arm/include/asm/thread_info.h ---- linux-4.4.28.orig/arch/arm/include/asm/thread_info.h 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/include/asm/thread_info.h 2016-11-01 21:26:56.748211548 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/include/asm/thread_info.h linux-4.4.38/arch/arm/include/asm/thread_info.h +--- linux-4.4.38.orig/arch/arm/include/asm/thread_info.h 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/include/asm/thread_info.h 2017-01-01 21:00:18.017609733 +0100 @@ -49,6 +49,7 @@ struct thread_info { unsigned long flags; /* low level flags */ @@ -62,9 +62,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/include/asm/thread_info.h linux-4.4.28/arch #endif /* __KERNEL__ */ #endif /* __ASM_ARM_THREAD_INFO_H */ -diff -Nur linux-4.4.28.orig/arch/arm/Kconfig linux-4.4.28/arch/arm/Kconfig ---- linux-4.4.28.orig/arch/arm/Kconfig 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/Kconfig 2016-11-01 21:26:56.696208202 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/Kconfig linux-4.4.38/arch/arm/Kconfig +--- linux-4.4.38.orig/arch/arm/Kconfig 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/Kconfig 2017-01-01 21:00:17.929604080 +0100 @@ -33,7 +33,7 @@ select HARDIRQS_SW_RESEND select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT) @@ -82,9 +82,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/Kconfig linux-4.4.28/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.4.28.orig/arch/arm/kernel/asm-offsets.c linux-4.4.28/arch/arm/kernel/asm-offsets.c ---- linux-4.4.28.orig/arch/arm/kernel/asm-offsets.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kernel/asm-offsets.c 2016-11-01 21:26:56.760212322 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kernel/asm-offsets.c linux-4.4.38/arch/arm/kernel/asm-offsets.c +--- linux-4.4.38.orig/arch/arm/kernel/asm-offsets.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kernel/asm-offsets.c 2017-01-01 21:00:18.041611275 +0100 @@ -65,6 +65,7 @@ BLANK(); DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); @@ -93,9 +93,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kernel/asm-offsets.c linux-4.4.28/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.4.28.orig/arch/arm/kernel/entry-armv.S linux-4.4.28/arch/arm/kernel/entry-armv.S ---- linux-4.4.28.orig/arch/arm/kernel/entry-armv.S 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kernel/entry-armv.S 2016-11-01 21:26:56.764212578 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kernel/entry-armv.S linux-4.4.38/arch/arm/kernel/entry-armv.S +--- linux-4.4.38.orig/arch/arm/kernel/entry-armv.S 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kernel/entry-armv.S 2017-01-01 21:00:18.057612302 +0100 @@ -215,11 +215,18 @@ #ifdef CONFIG_PREEMPT get_thread_info tsk @@ -133,9 +133,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kernel/entry-armv.S linux-4.4.28/arch/arm/k #endif __und_fault: -diff -Nur linux-4.4.28.orig/arch/arm/kernel/entry-common.S linux-4.4.28/arch/arm/kernel/entry-common.S ---- linux-4.4.28.orig/arch/arm/kernel/entry-common.S 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kernel/entry-common.S 2016-11-01 21:26:56.764212578 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kernel/entry-common.S linux-4.4.38/arch/arm/kernel/entry-common.S +--- linux-4.4.38.orig/arch/arm/kernel/entry-common.S 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kernel/entry-common.S 2017-01-01 21:00:18.057612302 +0100 @@ -36,7 +36,9 @@ UNWIND(.cantunwind ) disable_irq_notrace @ disable interrupts @@ -160,9 +160,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kernel/entry-common.S linux-4.4.28/arch/arm UNWIND(.fnend ) ENDPROC(ret_fast_syscall) -diff -Nur linux-4.4.28.orig/arch/arm/kernel/process.c linux-4.4.28/arch/arm/kernel/process.c ---- linux-4.4.28.orig/arch/arm/kernel/process.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kernel/process.c 2016-11-01 21:26:56.772213095 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kernel/process.c linux-4.4.38/arch/arm/kernel/process.c +--- linux-4.4.38.orig/arch/arm/kernel/process.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kernel/process.c 2017-01-01 21:00:18.065612816 +0100 @@ -319,6 +319,30 @@ } @@ -194,9 +194,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kernel/process.c linux-4.4.28/arch/arm/kern #ifdef CONFIG_KUSER_HELPERS /* * The vectors page is always readable from user space for the -diff -Nur linux-4.4.28.orig/arch/arm/kernel/signal.c linux-4.4.28/arch/arm/kernel/signal.c ---- linux-4.4.28.orig/arch/arm/kernel/signal.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kernel/signal.c 2016-11-01 21:26:56.772213095 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kernel/signal.c linux-4.4.38/arch/arm/kernel/signal.c +--- linux-4.4.38.orig/arch/arm/kernel/signal.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kernel/signal.c 2017-01-01 21:00:18.065612816 +0100 @@ -572,7 +572,8 @@ */ trace_hardirqs_off(); @@ -207,9 +207,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kernel/signal.c linux-4.4.28/arch/arm/kerne schedule(); } else { if (unlikely(!user_mode(regs))) -diff -Nur linux-4.4.28.orig/arch/arm/kernel/smp.c linux-4.4.28/arch/arm/kernel/smp.c ---- linux-4.4.28.orig/arch/arm/kernel/smp.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kernel/smp.c 2016-11-01 21:26:56.772213095 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kernel/smp.c linux-4.4.38/arch/arm/kernel/smp.c +--- linux-4.4.38.orig/arch/arm/kernel/smp.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kernel/smp.c 2017-01-01 21:00:18.069613077 +0100 @@ -230,8 +230,6 @@ flush_cache_louis(); local_flush_tlb_all(); @@ -229,9 +229,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kernel/smp.c linux-4.4.28/arch/arm/kernel/s pr_notice("CPU%u: shutdown\n", cpu); /* -diff -Nur linux-4.4.28.orig/arch/arm/kernel/unwind.c linux-4.4.28/arch/arm/kernel/unwind.c ---- linux-4.4.28.orig/arch/arm/kernel/unwind.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kernel/unwind.c 2016-11-01 21:26:56.776213352 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kernel/unwind.c linux-4.4.38/arch/arm/kernel/unwind.c +--- linux-4.4.38.orig/arch/arm/kernel/unwind.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kernel/unwind.c 2017-01-01 21:00:18.069613077 +0100 @@ -93,7 +93,7 @@ static const struct unwind_idx *__origin_unwind_idx; extern const struct unwind_idx __stop_unwind_idx[]; @@ -283,9 +283,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kernel/unwind.c linux-4.4.28/arch/arm/kerne kfree(tab); } -diff -Nur linux-4.4.28.orig/arch/arm/kvm/arm.c linux-4.4.28/arch/arm/kvm/arm.c ---- linux-4.4.28.orig/arch/arm/kvm/arm.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kvm/arm.c 2016-11-01 21:26:56.776213352 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kvm/arm.c linux-4.4.38/arch/arm/kvm/arm.c +--- linux-4.4.38.orig/arch/arm/kvm/arm.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kvm/arm.c 2017-01-01 21:00:18.085614105 +0100 @@ -496,18 +496,18 @@ struct kvm_vcpu *vcpu; @@ -336,9 +336,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kvm/arm.c linux-4.4.28/arch/arm/kvm/arm.c ret = handle_exit(vcpu, run, ret); } -diff -Nur linux-4.4.28.orig/arch/arm/kvm/psci.c linux-4.4.28/arch/arm/kvm/psci.c ---- linux-4.4.28.orig/arch/arm/kvm/psci.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/kvm/psci.c 2016-11-01 21:26:56.780213616 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/kvm/psci.c linux-4.4.38/arch/arm/kvm/psci.c +--- linux-4.4.38.orig/arch/arm/kvm/psci.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/kvm/psci.c 2017-01-01 21:00:18.105615386 +0100 @@ -70,7 +70,7 @@ { struct kvm *kvm = source_vcpu->kvm; @@ -357,9 +357,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/kvm/psci.c linux-4.4.28/arch/arm/kvm/psci.c return PSCI_RET_SUCCESS; } -diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/at91rm9200.c linux-4.4.28/arch/arm/mach-at91/at91rm9200.c ---- linux-4.4.28.orig/arch/arm/mach-at91/at91rm9200.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-at91/at91rm9200.c 2016-11-01 21:26:56.784213869 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-at91/at91rm9200.c linux-4.4.38/arch/arm/mach-at91/at91rm9200.c +--- linux-4.4.38.orig/arch/arm/mach-at91/at91rm9200.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-at91/at91rm9200.c 2017-01-01 21:00:18.109615647 +0100 @@ -12,7 +12,6 @@ #include <linux/of_platform.h> @@ -376,9 +376,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/at91rm9200.c linux-4.4.28/arch/ar at91rm9200_pm_init(); } -diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/at91sam9.c linux-4.4.28/arch/arm/mach-at91/at91sam9.c ---- linux-4.4.28.orig/arch/arm/mach-at91/at91sam9.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-at91/at91sam9.c 2016-11-01 21:26:56.784213869 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-at91/at91sam9.c linux-4.4.38/arch/arm/mach-at91/at91sam9.c +--- linux-4.4.38.orig/arch/arm/mach-at91/at91sam9.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-at91/at91sam9.c 2017-01-01 21:00:18.109615647 +0100 @@ -62,8 +62,6 @@ soc_dev = soc_device_to_device(soc); @@ -388,9 +388,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/at91sam9.c linux-4.4.28/arch/arm/ } static void __init at91sam9_dt_device_init(void) -diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/generic.h linux-4.4.28/arch/arm/mach-at91/generic.h ---- linux-4.4.28.orig/arch/arm/mach-at91/generic.h 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-at91/generic.h 2016-11-01 21:26:56.784213869 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-at91/generic.h linux-4.4.38/arch/arm/mach-at91/generic.h +--- linux-4.4.38.orig/arch/arm/mach-at91/generic.h 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-at91/generic.h 2017-01-01 21:00:18.109615647 +0100 @@ -11,27 +11,18 @@ #ifndef _AT91_GENERIC_H #define _AT91_GENERIC_H @@ -421,9 +421,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/generic.h linux-4.4.28/arch/arm/m #endif #endif /* _AT91_GENERIC_H */ -diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/Kconfig linux-4.4.28/arch/arm/mach-at91/Kconfig ---- linux-4.4.28.orig/arch/arm/mach-at91/Kconfig 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-at91/Kconfig 2016-11-01 21:26:56.784213869 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-at91/Kconfig linux-4.4.38/arch/arm/mach-at91/Kconfig +--- linux-4.4.38.orig/arch/arm/mach-at91/Kconfig 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-at91/Kconfig 2017-01-01 21:00:18.109615647 +0100 @@ -99,6 +99,7 @@ config COMMON_CLK_AT91 bool @@ -432,9 +432,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/Kconfig linux-4.4.28/arch/arm/mac config HAVE_AT91_SMD bool -diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/pm.c linux-4.4.28/arch/arm/mach-at91/pm.c ---- linux-4.4.28.orig/arch/arm/mach-at91/pm.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-at91/pm.c 2016-11-01 21:26:56.788214125 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-at91/pm.c linux-4.4.38/arch/arm/mach-at91/pm.c +--- linux-4.4.38.orig/arch/arm/mach-at91/pm.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-at91/pm.c 2017-01-01 21:00:18.113615900 +0100 @@ -31,10 +31,13 @@ #include <asm/mach/irq.h> #include <asm/fncpy.h> @@ -582,9 +582,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/pm.c linux-4.4.28/arch/arm/mach-a + at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR; + at91_pm_init(NULL); } -diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/sama5.c linux-4.4.28/arch/arm/mach-at91/sama5.c ---- linux-4.4.28.orig/arch/arm/mach-at91/sama5.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-at91/sama5.c 2016-11-01 21:26:56.788214125 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-at91/sama5.c linux-4.4.38/arch/arm/mach-at91/sama5.c +--- linux-4.4.38.orig/arch/arm/mach-at91/sama5.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-at91/sama5.c 2017-01-01 21:00:18.113615900 +0100 @@ -51,7 +51,7 @@ soc_dev = soc_device_to_device(soc); @@ -594,9 +594,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-at91/sama5.c linux-4.4.28/arch/arm/mac } static const char *const sama5_dt_board_compat[] __initconst = { -diff -Nur linux-4.4.28.orig/arch/arm/mach-exynos/platsmp.c linux-4.4.28/arch/arm/mach-exynos/platsmp.c ---- linux-4.4.28.orig/arch/arm/mach-exynos/platsmp.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-exynos/platsmp.c 2016-11-01 21:26:56.796214642 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-exynos/platsmp.c linux-4.4.38/arch/arm/mach-exynos/platsmp.c +--- linux-4.4.38.orig/arch/arm/mach-exynos/platsmp.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-exynos/platsmp.c 2017-01-01 21:00:18.137617441 +0100 @@ -230,7 +230,7 @@ return (void __iomem *)(S5P_VA_SCU); } @@ -644,9 +644,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-exynos/platsmp.c linux-4.4.28/arch/arm return pen_release != -1 ? ret : 0; } -diff -Nur linux-4.4.28.orig/arch/arm/mach-hisi/platmcpm.c linux-4.4.28/arch/arm/mach-hisi/platmcpm.c ---- linux-4.4.28.orig/arch/arm/mach-hisi/platmcpm.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-hisi/platmcpm.c 2016-11-01 21:26:56.800214899 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-hisi/platmcpm.c linux-4.4.38/arch/arm/mach-hisi/platmcpm.c +--- linux-4.4.38.orig/arch/arm/mach-hisi/platmcpm.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-hisi/platmcpm.c 2017-01-01 21:00:18.157618732 +0100 @@ -61,7 +61,7 @@ static void __iomem *sysctrl, *fabric; @@ -732,9 +732,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-hisi/platmcpm.c linux-4.4.28/arch/arm/ return 0; } #endif -diff -Nur linux-4.4.28.orig/arch/arm/mach-imx/Kconfig linux-4.4.28/arch/arm/mach-imx/Kconfig ---- linux-4.4.28.orig/arch/arm/mach-imx/Kconfig 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-imx/Kconfig 2016-11-01 21:26:56.804215163 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-imx/Kconfig linux-4.4.38/arch/arm/mach-imx/Kconfig +--- linux-4.4.38.orig/arch/arm/mach-imx/Kconfig 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-imx/Kconfig 2017-01-01 21:00:18.157618732 +0100 @@ -524,7 +524,7 @@ bool "i.MX6 Quad/DualLite support" select ARM_ERRATA_764369 if SMP @@ -744,9 +744,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-imx/Kconfig linux-4.4.28/arch/arm/mach select PCI_DOMAINS if PCI select PINCTRL_IMX6Q select SOC_IMX6 -diff -Nur linux-4.4.28.orig/arch/arm/mach-omap2/omap-smp.c linux-4.4.28/arch/arm/mach-omap2/omap-smp.c ---- linux-4.4.28.orig/arch/arm/mach-omap2/omap-smp.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-omap2/omap-smp.c 2016-11-01 21:26:56.836217219 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-omap2/omap-smp.c linux-4.4.38/arch/arm/mach-omap2/omap-smp.c +--- linux-4.4.38.orig/arch/arm/mach-omap2/omap-smp.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-omap2/omap-smp.c 2017-01-01 21:00:18.193621044 +0100 @@ -43,7 +43,7 @@ /* SCU base address */ static void __iomem *scu_base; @@ -785,9 +785,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-omap2/omap-smp.c linux-4.4.28/arch/arm return 0; } -diff -Nur linux-4.4.28.orig/arch/arm/mach-prima2/platsmp.c linux-4.4.28/arch/arm/mach-prima2/platsmp.c ---- linux-4.4.28.orig/arch/arm/mach-prima2/platsmp.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-prima2/platsmp.c 2016-11-01 21:26:56.864219031 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-prima2/platsmp.c linux-4.4.38/arch/arm/mach-prima2/platsmp.c +--- linux-4.4.38.orig/arch/arm/mach-prima2/platsmp.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-prima2/platsmp.c 2017-01-01 21:00:18.221622840 +0100 @@ -22,7 +22,7 @@ static void __iomem *clk_base; @@ -826,9 +826,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-prima2/platsmp.c linux-4.4.28/arch/arm return pen_release != -1 ? -ENOSYS : 0; } -diff -Nur linux-4.4.28.orig/arch/arm/mach-qcom/platsmp.c linux-4.4.28/arch/arm/mach-qcom/platsmp.c ---- linux-4.4.28.orig/arch/arm/mach-qcom/platsmp.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-qcom/platsmp.c 2016-11-01 21:26:56.872219540 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-qcom/platsmp.c linux-4.4.38/arch/arm/mach-qcom/platsmp.c +--- linux-4.4.38.orig/arch/arm/mach-qcom/platsmp.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-qcom/platsmp.c 2017-01-01 21:00:18.261625413 +0100 @@ -46,7 +46,7 @@ extern void secondary_startup_arm(void); @@ -867,9 +867,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-qcom/platsmp.c linux-4.4.28/arch/arm/m return ret; } -diff -Nur linux-4.4.28.orig/arch/arm/mach-spear/platsmp.c linux-4.4.28/arch/arm/mach-spear/platsmp.c ---- linux-4.4.28.orig/arch/arm/mach-spear/platsmp.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-spear/platsmp.c 2016-11-01 21:26:56.896221093 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-spear/platsmp.c linux-4.4.38/arch/arm/mach-spear/platsmp.c +--- linux-4.4.38.orig/arch/arm/mach-spear/platsmp.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-spear/platsmp.c 2017-01-01 21:00:18.305628239 +0100 @@ -32,7 +32,7 @@ sync_cache_w(&pen_release); } @@ -908,9 +908,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-spear/platsmp.c linux-4.4.28/arch/arm/ return pen_release != -1 ? -ENOSYS : 0; } -diff -Nur linux-4.4.28.orig/arch/arm/mach-sti/platsmp.c linux-4.4.28/arch/arm/mach-sti/platsmp.c ---- linux-4.4.28.orig/arch/arm/mach-sti/platsmp.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mach-sti/platsmp.c 2016-11-01 21:26:56.896221093 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mach-sti/platsmp.c linux-4.4.38/arch/arm/mach-sti/platsmp.c +--- linux-4.4.38.orig/arch/arm/mach-sti/platsmp.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mach-sti/platsmp.c 2017-01-01 21:00:18.341630548 +0100 @@ -35,7 +35,7 @@ sync_cache_w(&pen_release); } @@ -949,9 +949,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mach-sti/platsmp.c linux-4.4.28/arch/arm/ma return pen_release != -1 ? -ENOSYS : 0; } -diff -Nur linux-4.4.28.orig/arch/arm/mm/fault.c linux-4.4.28/arch/arm/mm/fault.c ---- linux-4.4.28.orig/arch/arm/mm/fault.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mm/fault.c 2016-11-01 21:26:56.900221345 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mm/fault.c linux-4.4.38/arch/arm/mm/fault.c +--- linux-4.4.38.orig/arch/arm/mm/fault.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mm/fault.c 2017-01-01 21:00:18.345630809 +0100 @@ -430,6 +430,9 @@ if (addr < TASK_SIZE) return do_page_fault(addr, fsr, regs); @@ -972,9 +972,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mm/fault.c linux-4.4.28/arch/arm/mm/fault.c do_bad_area(addr, fsr, regs); return 0; } -diff -Nur linux-4.4.28.orig/arch/arm/mm/highmem.c linux-4.4.28/arch/arm/mm/highmem.c ---- linux-4.4.28.orig/arch/arm/mm/highmem.c 2016-10-28 09:53:25.000000000 +0200 -+++ linux-4.4.28/arch/arm/mm/highmem.c 2016-11-01 21:26:56.904221609 +0100 +diff -Nur linux-4.4.38.orig/arch/arm/mm/highmem.c linux-4.4.38/arch/arm/mm/highmem.c +--- linux-4.4.38.orig/arch/arm/mm/highmem.c 2016-12-10 19:08:05.000000000 +0100 ++++ linux-4.4.38/arch/arm/mm/highmem.c 2017-01-01 21:00:18.349631062 +0100 @@ -34,6 +34,11 @@ retur |