From: Greg Kroah-Hartman Date: Tue, 11 Aug 2020 16:28:49 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v4.19.140~77 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6b0f11d69613aff72bdd1336389db7897cf3cb5f;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: tracepoint-mark-__tracepoint_string-s-__used.patch --- diff --git a/queue-4.14/series b/queue-4.14/series index d13a22fcf23..306ee165912 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -40,3 +40,4 @@ selftests-net-relax-cpu-affinity-requirement-in-msg_zerocopy-test.patch usb-hso-check-for-return-value-in-hso_serial_common_create.patch rxrpc-fix-race-between-recvmsg-and-sendmsg-on-immediate-call-failure.patch smack-fix-use-after-free-in-smk_write_relabel_self.patch +tracepoint-mark-__tracepoint_string-s-__used.patch diff --git a/queue-4.19/series b/queue-4.19/series new file mode 100644 index 00000000000..1c44f8a6f0a --- /dev/null +++ b/queue-4.19/series @@ -0,0 +1 @@ +tracepoint-mark-__tracepoint_string-s-__used.patch diff --git a/queue-4.4/series b/queue-4.4/series index ddca82daa7c..4990909cdb4 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -51,3 +51,4 @@ net-lan78xx-replace-bogus-endpoint-lookup.patch usb-hso-check-for-return-value-in-hso_serial_common_create.patch vxlan-ensure-fdb-dump-is-performed-under-rcu.patch smack-fix-use-after-free-in-smk_write_relabel_self.patch +tracepoint-mark-__tracepoint_string-s-__used.patch diff --git a/queue-4.4/tracepoint-mark-__tracepoint_string-s-__used.patch b/queue-4.4/tracepoint-mark-__tracepoint_string-s-__used.patch new file mode 100644 index 00000000000..ce3b1dcc6ad --- /dev/null +++ b/queue-4.4/tracepoint-mark-__tracepoint_string-s-__used.patch @@ -0,0 +1,50 @@ +From f3751ad0116fb6881f2c3c957d66a9327f69cefb Mon Sep 17 00:00:00 2001 +From: Nick Desaulniers +Date: Thu, 30 Jul 2020 15:45:54 -0700 +Subject: tracepoint: Mark __tracepoint_string's __used + +From: Nick Desaulniers + +commit f3751ad0116fb6881f2c3c957d66a9327f69cefb upstream. + +__tracepoint_string's have their string data stored in .rodata, and an +address to that data stored in the "__tracepoint_str" section. Functions +that refer to those strings refer to the symbol of the address. Compiler +optimization can replace those address references with references +directly to the string data. If the address doesn't appear to have other +uses, then it appears dead to the compiler and is removed. This can +break the /tracing/printk_formats sysfs node which iterates the +addresses stored in the "__tracepoint_str" section. + +Like other strings stored in custom sections in this header, mark these +__used to inform the compiler that there are other non-obvious users of +the address, so they should still be emitted. + +Link: https://lkml.kernel.org/r/20200730224555.2142154-2-ndesaulniers@google.com + +Cc: Ingo Molnar +Cc: Miguel Ojeda +Cc: stable@vger.kernel.org +Fixes: 102c9323c35a8 ("tracing: Add __tracepoint_string() to export string pointers") +Reported-by: Tim Murray +Reported-by: Simon MacMullen +Suggested-by: Greg Hackmann +Signed-off-by: Nick Desaulniers +Signed-off-by: Steven Rostedt (VMware) +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/tracepoint.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/linux/tracepoint.h ++++ b/include/linux/tracepoint.h +@@ -328,7 +328,7 @@ extern void syscall_unregfunc(void); + static const char *___tp_str __tracepoint_string = str; \ + ___tp_str; \ + }) +-#define __tracepoint_string __attribute__((section("__tracepoint_str"))) ++#define __tracepoint_string __attribute__((section("__tracepoint_str"), used)) + #else + /* + * tracepoint_string() is used to save the string address for userspace diff --git a/queue-4.9/series b/queue-4.9/series index d059cd84d14..625715a2b2f 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -76,3 +76,4 @@ net-lan78xx-replace-bogus-endpoint-lookup.patch revert-vxlan-fix-tos-value-before-xmit.patch usb-hso-check-for-return-value-in-hso_serial_common_create.patch smack-fix-use-after-free-in-smk_write_relabel_self.patch +tracepoint-mark-__tracepoint_string-s-__used.patch diff --git a/queue-5.4/series b/queue-5.4/series new file mode 100644 index 00000000000..1c44f8a6f0a --- /dev/null +++ b/queue-5.4/series @@ -0,0 +1 @@ +tracepoint-mark-__tracepoint_string-s-__used.patch diff --git a/queue-5.7/series b/queue-5.7/series new file mode 100644 index 00000000000..1c44f8a6f0a --- /dev/null +++ b/queue-5.7/series @@ -0,0 +1 @@ +tracepoint-mark-__tracepoint_string-s-__used.patch diff --git a/queue-5.8/series b/queue-5.8/series new file mode 100644 index 00000000000..1c44f8a6f0a --- /dev/null +++ b/queue-5.8/series @@ -0,0 +1 @@ +tracepoint-mark-__tracepoint_string-s-__used.patch