summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
Diffstat (limited to 'target')
-rw-r--r--target/config/Config.in.kernelversion2
-rw-r--r--target/linux/patches/4.4.30/revert-sparc.patch319
-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
13 files changed, 1238 insertions, 1567 deletions
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 @@
return *ptep;
}
@@ -1105,9 +1105,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/mm/highmem.c linux-4.4.28/arch/arm/mm/highm
+ }
+}
+#endif
-diff -Nur linux-4.4.28.orig/arch/arm/plat-versatile/platsmp.c linux-4.4.28/arch/arm/plat-versatile/platsmp.c
---- linux-4.4.28.orig/arch/arm/plat-versatile/platsmp.c 2016-10-28 09:53:25.000000000 +0200
-+++ linux-4.4.28/arch/arm/plat-versatile/platsmp.c 2016-11-01 21:26:56.936223672 +0100
+diff -Nur linux-4.4.38.orig/arch/arm/plat-versatile/platsmp.c linux-4.4.38/arch/arm/plat-versatile/platsmp.c
+--- linux-4.4.38.orig/arch/arm/plat-versatile/platsmp.c 2016-12-10 19:08:05.000000000 +0100
++++ linux-4.4.38/arch/arm/plat-versatile/platsmp.c 2017-01-01 21:00:18.381633117 +0100
@@ -30,7 +30,7 @@
sync_cache_w(&pen_release);
}
@@ -1146,9 +1146,9 @@ diff -Nur linux-4.4.28.orig/arch/arm/plat-versatile/platsmp.c linux-4.4.28/arch/
return pen_release != -1 ? -ENOSYS : 0;