From: Greg Kroah-Hartman Date: Wed, 11 Mar 2020 18:13:38 +0000 (+0100) Subject: 5.5-stable patches X-Git-Tag: v5.5.9~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cdb6fabd4b75b28a645fb8d67a38a8422107721d;p=thirdparty%2Fkernel%2Fstable-queue.git 5.5-stable patches added patches: csky-implement-copy_thread_tls.patch --- diff --git a/queue-5.5/csky-implement-copy_thread_tls.patch b/queue-5.5/csky-implement-copy_thread_tls.patch new file mode 100644 index 00000000000..a0bdece2011 --- /dev/null +++ b/queue-5.5/csky-implement-copy_thread_tls.patch @@ -0,0 +1,56 @@ +From 0b9f386c4be6493d282aab0af6f9b70c62142777 Mon Sep 17 00:00:00 2001 +From: Guo Ren +Date: Wed, 12 Feb 2020 10:24:52 +0800 +Subject: csky: Implement copy_thread_tls + +From: Guo Ren + +commit 0b9f386c4be6493d282aab0af6f9b70c62142777 upstream. + +This is required for clone3 which passes the TLS value through a +struct rather than a register. + +Cc: Amanieu d'Antras +Signed-off-by: Guo Ren +Signed-off-by: Greg Kroah-Hartman + +--- + arch/csky/Kconfig | 1 + + arch/csky/kernel/process.c | 7 ++++--- + 2 files changed, 5 insertions(+), 3 deletions(-) + +--- a/arch/csky/Kconfig ++++ b/arch/csky/Kconfig +@@ -37,6 +37,7 @@ config CSKY + select GX6605S_TIMER if CPU_CK610 + select HAVE_ARCH_TRACEHOOK + select HAVE_ARCH_AUDITSYSCALL ++ select HAVE_COPY_THREAD_TLS + select HAVE_DYNAMIC_FTRACE + select HAVE_FUNCTION_TRACER + select HAVE_FUNCTION_GRAPH_TRACER +--- a/arch/csky/kernel/process.c ++++ b/arch/csky/kernel/process.c +@@ -34,10 +34,11 @@ unsigned long thread_saved_pc(struct tas + return sw->r15; + } + +-int copy_thread(unsigned long clone_flags, ++int copy_thread_tls(unsigned long clone_flags, + unsigned long usp, + unsigned long kthread_arg, +- struct task_struct *p) ++ struct task_struct *p, ++ unsigned long tls) + { + struct switch_stack *childstack; + struct pt_regs *childregs = task_pt_regs(p); +@@ -64,7 +65,7 @@ int copy_thread(unsigned long clone_flag + childregs->usp = usp; + if (clone_flags & CLONE_SETTLS) + task_thread_info(p)->tp_value = childregs->tls +- = childregs->regs[0]; ++ = tls; + + childregs->a0 = 0; + childstack->r15 = (unsigned long) ret_from_fork; diff --git a/queue-5.5/series b/queue-5.5/series index a4a769a1766..1c84df7af90 100644 --- a/queue-5.5/series +++ b/queue-5.5/series @@ -187,3 +187,4 @@ efi-x86-handle-by-ref-arguments-covering-multiple-pages-in-mixed-mode.patch efi-read_once-rng-seed-size-before-munmap.patch net-stmmac-fix-notifier-registration.patch block-bfq-remove-ifdefs-from-around-gets-puts-of-bfq-groups.patch +csky-implement-copy_thread_tls.patch