From: Greg Kroah-Hartman Date: Thu, 8 Feb 2018 17:14:59 +0000 (+0100) Subject: 4.14-stable patches X-Git-Tag: v4.15.3~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=54d1ef130b59c9bc683dfbcc88ad1996870d7a1f;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: arch-define-weak-abort.patch crypto-tcrypt-fix-s-g-table-for-test_aead_speed.patch kernel-exit.c-export-abort-to-modules.patch --- diff --git a/queue-4.14/arch-define-weak-abort.patch b/queue-4.14/arch-define-weak-abort.patch new file mode 100644 index 00000000000..a6fb67b0f41 --- /dev/null +++ b/queue-4.14/arch-define-weak-abort.patch @@ -0,0 +1,53 @@ +From 7c2c11b208be09c156573fc0076b7b3646e05219 Mon Sep 17 00:00:00 2001 +From: Sudip Mukherjee +Date: Thu, 14 Dec 2017 15:33:19 -0800 +Subject: arch: define weak abort() + +From: Sudip Mukherjee + +commit 7c2c11b208be09c156573fc0076b7b3646e05219 upstream. + +gcc toggle -fisolate-erroneous-paths-dereference (default at -O2 +onwards) isolates faulty code paths such as null pointer access, divide +by zero etc. If gcc port doesnt implement __builtin_trap, an abort() is +generated which causes kernel link error. + +In this case, gcc is generating abort due to 'divide by zero' in +lib/mpi/mpih-div.c. + +Currently 'frv' and 'arc' are failing. Previously other arch was also +broken like m32r was fixed by commit d22e3d69ee1a ("m32r: fix build +failure"). + +Let's define this weak function which is common for all arch and fix the +problem permanently. We can even remove the arch specific 'abort' after +this is done. + +Link: http://lkml.kernel.org/r/1513118956-8718-1-git-send-email-sudipm.mukherjee@gmail.com +Signed-off-by: Sudip Mukherjee +Cc: Alexey Brodkin +Cc: Vineet Gupta +Cc: Sudip Mukherjee +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Cc: Evgeniy Didin +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/exit.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/kernel/exit.c ++++ b/kernel/exit.c +@@ -1755,3 +1755,11 @@ Efault: + return -EFAULT; + } + #endif ++ ++__weak void abort(void) ++{ ++ BUG(); ++ ++ /* if that doesn't kill us, halt */ ++ panic("Oops failed to kill thread"); ++} diff --git a/queue-4.14/crypto-tcrypt-fix-s-g-table-for-test_aead_speed.patch b/queue-4.14/crypto-tcrypt-fix-s-g-table-for-test_aead_speed.patch new file mode 100644 index 00000000000..658f7f4977f --- /dev/null +++ b/queue-4.14/crypto-tcrypt-fix-s-g-table-for-test_aead_speed.patch @@ -0,0 +1,40 @@ +From 5c6ac1d4f8fbdbed65dbeb8cf149d736409d16a1 Mon Sep 17 00:00:00 2001 +From: Robert Baronescu +Date: Tue, 10 Oct 2017 13:21:59 +0300 +Subject: crypto: tcrypt - fix S/G table for test_aead_speed() + +From: Robert Baronescu + +commit 5c6ac1d4f8fbdbed65dbeb8cf149d736409d16a1 upstream. + +In case buffer length is a multiple of PAGE_SIZE, +the S/G table is incorrectly generated. +Fix this by handling buflen = k * PAGE_SIZE separately. + +Signed-off-by: Robert Baronescu +Signed-off-by: Herbert Xu +Signed-off-by: Horia Geantă +Signed-off-by: Greg Kroah-Hartman + +--- + crypto/tcrypt.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/crypto/tcrypt.c ++++ b/crypto/tcrypt.c +@@ -221,11 +221,13 @@ static void sg_init_aead(struct scatterl + } + + sg_init_table(sg, np + 1); +- np--; ++ if (rem) ++ np--; + for (k = 0; k < np; k++) + sg_set_buf(&sg[k + 1], xbuf[k], PAGE_SIZE); + +- sg_set_buf(&sg[k + 1], xbuf[k], rem); ++ if (rem) ++ sg_set_buf(&sg[k + 1], xbuf[k], rem); + } + + static void test_aead_speed(const char *algo, int enc, unsigned int secs, diff --git a/queue-4.14/kernel-exit.c-export-abort-to-modules.patch b/queue-4.14/kernel-exit.c-export-abort-to-modules.patch new file mode 100644 index 00000000000..48fa8051cbb --- /dev/null +++ b/queue-4.14/kernel-exit.c-export-abort-to-modules.patch @@ -0,0 +1,70 @@ +From dc8635b78cd8669c37e230058d18c33af7451ab1 Mon Sep 17 00:00:00 2001 +From: Andrew Morton +Date: Thu, 4 Jan 2018 16:17:56 -0800 +Subject: kernel/exit.c: export abort() to modules + +From: Andrew Morton + +commit dc8635b78cd8669c37e230058d18c33af7451ab1 upstream. + +gcc -fisolate-erroneous-paths-dereference can generate calls to abort() +from modular code too. + +[arnd@arndb.de: drop duplicate exports of abort()] + Link: http://lkml.kernel.org/r/20180102103311.706364-1-arnd@arndb.de +Reported-by: Vineet Gupta +Cc: Sudip Mukherjee +Cc: Arnd Bergmann +Cc: Alexey Brodkin +Cc: Russell King +Cc: Jose Abreu +Signed-off-by: Andrew Morton +Signed-off-by: Arnd Bergmann +Signed-off-by: Linus Torvalds +Cc: Evgeniy Didin +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/kernel/traps.c | 1 - + arch/m32r/kernel/traps.c | 1 - + arch/unicore32/kernel/traps.c | 1 - + kernel/exit.c | 1 + + 4 files changed, 1 insertion(+), 3 deletions(-) + +--- a/arch/arm/kernel/traps.c ++++ b/arch/arm/kernel/traps.c +@@ -790,7 +790,6 @@ void abort(void) + /* if that doesn't kill us, halt */ + panic("Oops failed to kill thread"); + } +-EXPORT_SYMBOL(abort); + + void __init trap_init(void) + { +--- a/arch/m32r/kernel/traps.c ++++ b/arch/m32r/kernel/traps.c +@@ -122,7 +122,6 @@ void abort(void) + /* if that doesn't kill us, halt */ + panic("Oops failed to kill thread"); + } +-EXPORT_SYMBOL(abort); + + void __init trap_init(void) + { +--- a/arch/unicore32/kernel/traps.c ++++ b/arch/unicore32/kernel/traps.c +@@ -298,7 +298,6 @@ void abort(void) + /* if that doesn't kill us, halt */ + panic("Oops failed to kill thread"); + } +-EXPORT_SYMBOL(abort); + + void __init trap_init(void) + { +--- a/kernel/exit.c ++++ b/kernel/exit.c +@@ -1763,3 +1763,4 @@ __weak void abort(void) + /* if that doesn't kill us, halt */ + panic("Oops failed to kill thread"); + } ++EXPORT_SYMBOL(abort); diff --git a/queue-4.14/series b/queue-4.14/series index 9857e1318a7..05ed5ac410c 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -16,3 +16,6 @@ ipv6-fix-so_reuseport-udp-socket-with-implicit-sk_ipv6only.patch soreuseport-fix-mem-leak-in-reuseport_add_sock.patch media-mtk-vcodec-add-missing-module_license-description.patch media-soc_camera-soc_scale_crop-add-missing-module_description-author-license.patch +crypto-tcrypt-fix-s-g-table-for-test_aead_speed.patch +arch-define-weak-abort.patch +kernel-exit.c-export-abort-to-modules.patch