]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 26 Jun 2017 07:00:34 +0000 (09:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 26 Jun 2017 07:00:34 +0000 (09:00 +0200)
added patches:
input-i8042-add-fujitsu-lifebook-ah544-to-notimeout-list.patch
powerpc-kprobes-pause-function_graph-tracing-during-jprobes-handling.patch

queue-3.18/input-i8042-add-fujitsu-lifebook-ah544-to-notimeout-list.patch [new file with mode: 0644]
queue-3.18/powerpc-kprobes-pause-function_graph-tracing-during-jprobes-handling.patch [new file with mode: 0644]
queue-3.18/series

diff --git a/queue-3.18/input-i8042-add-fujitsu-lifebook-ah544-to-notimeout-list.patch b/queue-3.18/input-i8042-add-fujitsu-lifebook-ah544-to-notimeout-list.patch
new file mode 100644 (file)
index 0000000..e38de88
--- /dev/null
@@ -0,0 +1,40 @@
+From 817ae460c784f32cd45e60b2b1b21378c3c6a847 Mon Sep 17 00:00:00 2001
+From: Daniel Drake <drake@endlessm.com>
+Date: Mon, 19 Jun 2017 19:48:52 -0700
+Subject: Input: i8042 - add Fujitsu Lifebook AH544 to notimeout list
+
+From: Daniel Drake <drake@endlessm.com>
+
+commit 817ae460c784f32cd45e60b2b1b21378c3c6a847 upstream.
+
+Without this quirk, the touchpad is not responsive on this product, with
+the following message repeated in the logs:
+
+ psmouse serio1: bad data from KBC - timeout
+
+Add it to the notimeout list alongside other similar Fujitsu laptops.
+
+Signed-off-by: Daniel Drake <drake@endlessm.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -688,6 +688,13 @@ static const struct dmi_system_id __init
+                       DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK U574"),
+               },
+       },
++      {
++              /* Fujitsu UH554 laptop */
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK UH544"),
++              },
++      },
+       { }
+ };
diff --git a/queue-3.18/powerpc-kprobes-pause-function_graph-tracing-during-jprobes-handling.patch b/queue-3.18/powerpc-kprobes-pause-function_graph-tracing-during-jprobes-handling.patch
new file mode 100644 (file)
index 0000000..ae0cdc3
--- /dev/null
@@ -0,0 +1,57 @@
+From a9f8553e935f26cb5447f67e280946b0923cd2dc Mon Sep 17 00:00:00 2001
+From: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
+Date: Thu, 1 Jun 2017 16:18:15 +0530
+Subject: powerpc/kprobes: Pause function_graph tracing during jprobes handling
+
+From: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
+
+commit a9f8553e935f26cb5447f67e280946b0923cd2dc upstream.
+
+This fixes a crash when function_graph and jprobes are used together.
+This is essentially commit 237d28db036e ("ftrace/jprobes/x86: Fix
+conflict between jprobes and function graph tracing"), but for powerpc.
+
+Jprobes breaks function_graph tracing since the jprobe hook needs to use
+jprobe_return(), which never returns back to the hook, but instead to
+the original jprobe'd function. The solution is to momentarily pause
+function_graph tracing before invoking the jprobe hook and re-enable it
+when returning back to the original jprobe'd function.
+
+Fixes: 6794c78243bf ("powerpc64: port of the function graph tracer")
+Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
+Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
+Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/kprobes.c |   11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+--- a/arch/powerpc/kernel/kprobes.c
++++ b/arch/powerpc/kernel/kprobes.c
+@@ -514,6 +514,15 @@ int __kprobes setjmp_pre_handler(struct
+ #endif
+ #endif
++      /*
++       * jprobes use jprobe_return() which skips the normal return
++       * path of the function, and this messes up the accounting of the
++       * function graph tracer.
++       *
++       * Pause function graph tracing while performing the jprobe function.
++       */
++      pause_graph_tracing();
++
+       return 1;
+ }
+@@ -536,6 +545,8 @@ int __kprobes longjmp_break_handler(stru
+        * saved regs...
+        */
+       memcpy(regs, &kcb->jprobe_saved_regs, sizeof(struct pt_regs));
++      /* It's OK to start function graph tracing again */
++      unpause_graph_tracing();
+       preempt_enable_no_resched();
+       return 1;
+ }
index 236f24a5c25fcca2fdb8cb0240f6bf30bf7e4108..71e689a3bb0a76583df739bf5773b0c41d033ff5 100644 (file)
@@ -4,3 +4,5 @@ lib-cmdline.c-fix-get_options-overflow-while-parsing-ranges.patch
 kvm-ppc-book3s-hv-preserve-userspace-htm-state-properly.patch
 cifs-improve-readdir-verbosity.patch
 signal-only-reschedule-timers-on-signals-timers-have-sent.patch
+powerpc-kprobes-pause-function_graph-tracing-during-jprobes-handling.patch
+input-i8042-add-fujitsu-lifebook-ah544-to-notimeout-list.patch