]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Jun 2022 13:37:07 +0000 (15:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Jun 2022 13:37:07 +0000 (15:37 +0200)
added patches:
assoc_array-fix-bug_on-during-garbage-collect.patch
cfg80211-set-custom-regdomain-after-wiphy-registration.patch
libtraceevent-fix-build-with-binutils-2.35.patch
perf-bench-share-some-global-variables-to-fix-build-with-gcc-10.patch
perf-tests-bp_account-make-global-variable-static.patch

queue-4.19/assoc_array-fix-bug_on-during-garbage-collect.patch [new file with mode: 0644]
queue-4.19/cfg80211-set-custom-regdomain-after-wiphy-registration.patch [new file with mode: 0644]
queue-4.19/libtraceevent-fix-build-with-binutils-2.35.patch [new file with mode: 0644]
queue-4.19/perf-bench-share-some-global-variables-to-fix-build-with-gcc-10.patch [new file with mode: 0644]
queue-4.19/perf-tests-bp_account-make-global-variable-static.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/assoc_array-fix-bug_on-during-garbage-collect.patch b/queue-4.19/assoc_array-fix-bug_on-during-garbage-collect.patch
new file mode 100644 (file)
index 0000000..e4fde1e
--- /dev/null
@@ -0,0 +1,163 @@
+From d1dc87763f406d4e67caf16dbe438a5647692395 Mon Sep 17 00:00:00 2001
+From: Stephen Brennan <stephen.s.brennan@oracle.com>
+Date: Thu, 19 May 2022 09:50:30 +0100
+Subject: assoc_array: Fix BUG_ON during garbage collect
+
+From: Stephen Brennan <stephen.s.brennan@oracle.com>
+
+commit d1dc87763f406d4e67caf16dbe438a5647692395 upstream.
+
+A rare BUG_ON triggered in assoc_array_gc:
+
+    [3430308.818153] kernel BUG at lib/assoc_array.c:1609!
+
+Which corresponded to the statement currently at line 1593 upstream:
+
+    BUG_ON(assoc_array_ptr_is_meta(p));
+
+Using the data from the core dump, I was able to generate a userspace
+reproducer[1] and determine the cause of the bug.
+
+[1]: https://github.com/brenns10/kernel_stuff/tree/master/assoc_array_gc
+
+After running the iterator on the entire branch, an internal tree node
+looked like the following:
+
+    NODE (nr_leaves_on_branch: 3)
+      SLOT [0] NODE (2 leaves)
+      SLOT [1] NODE (1 leaf)
+      SLOT [2..f] NODE (empty)
+
+In the userspace reproducer, the pr_devel output when compressing this
+node was:
+
+    -- compress node 0x5607cc089380 --
+    free=0, leaves=0
+    [0] retain node 2/1 [nx 0]
+    [1] fold node 1/1 [nx 0]
+    [2] fold node 0/1 [nx 2]
+    [3] fold node 0/2 [nx 2]
+    [4] fold node 0/3 [nx 2]
+    [5] fold node 0/4 [nx 2]
+    [6] fold node 0/5 [nx 2]
+    [7] fold node 0/6 [nx 2]
+    [8] fold node 0/7 [nx 2]
+    [9] fold node 0/8 [nx 2]
+    [10] fold node 0/9 [nx 2]
+    [11] fold node 0/10 [nx 2]
+    [12] fold node 0/11 [nx 2]
+    [13] fold node 0/12 [nx 2]
+    [14] fold node 0/13 [nx 2]
+    [15] fold node 0/14 [nx 2]
+    after: 3
+
+At slot 0, an internal node with 2 leaves could not be folded into the
+node, because there was only one available slot (slot 0). Thus, the
+internal node was retained. At slot 1, the node had one leaf, and was
+able to be folded in successfully. The remaining nodes had no leaves,
+and so were removed. By the end of the compression stage, there were 14
+free slots, and only 3 leaf nodes. The tree was ascended and then its
+parent node was compressed. When this node was seen, it could not be
+folded, due to the internal node it contained.
+
+The invariant for compression in this function is: whenever
+nr_leaves_on_branch < ASSOC_ARRAY_FAN_OUT, the node should contain all
+leaf nodes. The compression step currently cannot guarantee this, given
+the corner case shown above.
+
+To fix this issue, retry compression whenever we have retained a node,
+and yet nr_leaves_on_branch < ASSOC_ARRAY_FAN_OUT. This second
+compression will then allow the node in slot 1 to be folded in,
+satisfying the invariant. Below is the output of the reproducer once the
+fix is applied:
+
+    -- compress node 0x560e9c562380 --
+    free=0, leaves=0
+    [0] retain node 2/1 [nx 0]
+    [1] fold node 1/1 [nx 0]
+    [2] fold node 0/1 [nx 2]
+    [3] fold node 0/2 [nx 2]
+    [4] fold node 0/3 [nx 2]
+    [5] fold node 0/4 [nx 2]
+    [6] fold node 0/5 [nx 2]
+    [7] fold node 0/6 [nx 2]
+    [8] fold node 0/7 [nx 2]
+    [9] fold node 0/8 [nx 2]
+    [10] fold node 0/9 [nx 2]
+    [11] fold node 0/10 [nx 2]
+    [12] fold node 0/11 [nx 2]
+    [13] fold node 0/12 [nx 2]
+    [14] fold node 0/13 [nx 2]
+    [15] fold node 0/14 [nx 2]
+    internal nodes remain despite enough space, retrying
+    -- compress node 0x560e9c562380 --
+    free=14, leaves=1
+    [0] fold node 2/15 [nx 0]
+    after: 3
+
+Changes
+=======
+DH:
+ - Use false instead of 0.
+ - Reorder the inserted lines in a couple of places to put retained before
+   next_slot.
+
+ver #2)
+ - Fix typo in pr_devel, correct comparison to "<="
+
+Fixes: 3cb989501c26 ("Add a generic associative array implementation.")
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Stephen Brennan <stephen.s.brennan@oracle.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+cc: Andrew Morton <akpm@linux-foundation.org>
+cc: keyrings@vger.kernel.org
+Link: https://lore.kernel.org/r/20220511225517.407935-1-stephen.s.brennan@oracle.com/ # v1
+Link: https://lore.kernel.org/r/20220512215045.489140-1-stephen.s.brennan@oracle.com/ # v2
+Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ lib/assoc_array.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/lib/assoc_array.c
++++ b/lib/assoc_array.c
+@@ -1465,6 +1465,7 @@ int assoc_array_gc(struct assoc_array *a
+       struct assoc_array_ptr *cursor, *ptr;
+       struct assoc_array_ptr *new_root, *new_parent, **new_ptr_pp;
+       unsigned long nr_leaves_on_tree;
++      bool retained;
+       int keylen, slot, nr_free, next_slot, i;
+       pr_devel("-->%s()\n", __func__);
+@@ -1541,6 +1542,7 @@ continue_node:
+               goto descend;
+       }
++retry_compress:
+       pr_devel("-- compress node %p --\n", new_n);
+       /* Count up the number of empty slots in this node and work out the
+@@ -1558,6 +1560,7 @@ continue_node:
+       pr_devel("free=%d, leaves=%lu\n", nr_free, new_n->nr_leaves_on_branch);
+       /* See what we can fold in */
++      retained = false;
+       next_slot = 0;
+       for (slot = 0; slot < ASSOC_ARRAY_FAN_OUT; slot++) {
+               struct assoc_array_shortcut *s;
+@@ -1607,9 +1610,14 @@ continue_node:
+                       pr_devel("[%d] retain node %lu/%d [nx %d]\n",
+                                slot, child->nr_leaves_on_branch, nr_free + 1,
+                                next_slot);
++                      retained = true;
+               }
+       }
++      if (retained && new_n->nr_leaves_on_branch <= ASSOC_ARRAY_FAN_OUT) {
++              pr_devel("internal nodes remain despite enough space, retrying\n");
++              goto retry_compress;
++      }
+       pr_devel("after: %lu\n", new_n->nr_leaves_on_branch);
+       nr_leaves_on_tree = new_n->nr_leaves_on_branch;
diff --git a/queue-4.19/cfg80211-set-custom-regdomain-after-wiphy-registration.patch b/queue-4.19/cfg80211-set-custom-regdomain-after-wiphy-registration.patch
new file mode 100644 (file)
index 0000000..3ce0262
--- /dev/null
@@ -0,0 +1,67 @@
+From 1b7b3ac8ff3317cdcf07a1c413de9bdb68019c2b Mon Sep 17 00:00:00 2001
+From: Miri Korenblit <miriam.rachel.korenblit@intel.com>
+Date: Fri, 18 Jun 2021 13:41:46 +0300
+Subject: cfg80211: set custom regdomain after wiphy registration
+
+From: Miri Korenblit <miriam.rachel.korenblit@intel.com>
+
+commit 1b7b3ac8ff3317cdcf07a1c413de9bdb68019c2b upstream.
+
+We used to set regulatory info before the registration of
+the device and then the regulatory info didn't get set, because
+the device isn't registered so there isn't a device to set the
+regulatory info for. So set the regulatory info after the device
+registration.
+Call reg_process_self_managed_hints() once again after the device
+registration because it does nothing before it.
+
+Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
+Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
+Link: https://lore.kernel.org/r/iwlwifi.20210618133832.c96eadcffe80.I86799c2c866b5610b4cf91115c21d8ceb525c5aa@changeid
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/wireless/core.c |    7 ++++---
+ net/wireless/reg.c  |    1 +
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+--- a/net/wireless/core.c
++++ b/net/wireless/core.c
+@@ -4,6 +4,7 @@
+  * Copyright 2006-2010                Johannes Berg <johannes@sipsolutions.net>
+  * Copyright 2013-2014  Intel Mobile Communications GmbH
+  * Copyright 2015-2017        Intel Deutschland GmbH
++ * Copyright (C) 2018-2021 Intel Corporation
+  */
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+@@ -835,9 +836,6 @@ int wiphy_register(struct wiphy *wiphy)
+               return res;
+       }
+-      /* set up regulatory info */
+-      wiphy_regulatory_register(wiphy);
+-
+       list_add_rcu(&rdev->list, &cfg80211_rdev_list);
+       cfg80211_rdev_list_generation++;
+@@ -851,6 +849,9 @@ int wiphy_register(struct wiphy *wiphy)
+       cfg80211_debugfs_rdev_add(rdev);
+       nl80211_notify_wiphy(rdev, NL80211_CMD_NEW_WIPHY);
++      /* set up regulatory info */
++      wiphy_regulatory_register(wiphy);
++
+       if (wiphy->regulatory_flags & REGULATORY_CUSTOM_REG) {
+               struct regulatory_request request;
+--- a/net/wireless/reg.c
++++ b/net/wireless/reg.c
+@@ -3756,6 +3756,7 @@ void wiphy_regulatory_register(struct wi
+       wiphy_update_regulatory(wiphy, lr->initiator);
+       wiphy_all_share_dfs_chan_state(wiphy);
++      reg_process_self_managed_hints();
+ }
+ void wiphy_regulatory_deregister(struct wiphy *wiphy)
diff --git a/queue-4.19/libtraceevent-fix-build-with-binutils-2.35.patch b/queue-4.19/libtraceevent-fix-build-with-binutils-2.35.patch
new file mode 100644 (file)
index 0000000..b2cb9c4
--- /dev/null
@@ -0,0 +1,40 @@
+From foo@baz Fri Jun  3 03:36:04 PM CEST 2022
+From: "Daniel Díaz" <daniel.diaz@linaro.org>
+Date: Mon, 30 May 2022 16:53:23 -0500
+Subject: libtraceevent: Fix build with binutils 2.35
+To: gregkh@linuxfoundation.org, sashal@kernel.org, stable@vger.kernel.org
+Cc: "Ben Hutchings" <ben@decadent.org.uk>, "Salvatore Bonaccorso" <carnil@debian.org>, "Steven Rostedt" <rostedt@goodmis.org>, linux-trace-devel@vger.kernel.org, "Arnaldo Carvalho de Melo" <acme@redhat.com>, "Daniel Díaz" <daniel.diaz@linaro.org>, linux-kernel@vger.kernel.org (open list)
+Message-ID: <20220530215325.921847-2-daniel.diaz@linaro.org>
+
+From: Ben Hutchings <ben@decadent.org.uk>
+
+[ Upstream commit 39efdd94e314336f4acbac4c07e0f37bdc3bef71 ]
+
+In binutils 2.35, 'nm -D' changed to show symbol versions along with
+symbol names, with the usual @@ separator.  When generating
+libtraceevent-dynamic-list we need just the names, so strip off the
+version suffix if present.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Tested-by: Salvatore Bonaccorso <carnil@debian.org>
+Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
+Cc: linux-trace-devel@vger.kernel.org
+Cc: stable@vger.kernel.org
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/lib/traceevent/Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/tools/lib/traceevent/Makefile
++++ b/tools/lib/traceevent/Makefile
+@@ -263,7 +263,7 @@ define do_generate_dynamic_list_file
+       xargs echo "U w W" | tr 'w ' 'W\n' | sort -u | xargs echo`;\
+       if [ "$$symbol_type" = "U W" ];then                             \
+               (echo '{';                                              \
+-              $(NM) -u -D $1 | awk 'NF>1 {print "\t"$$2";"}' | sort -u;\
++              $(NM) -u -D $1 | awk 'NF>1 {sub("@.*", "", $$2); print "\t"$$2";"}' | sort -u;\
+               echo '};';                                              \
+               ) > $2;                                                 \
+       else                                                            \
diff --git a/queue-4.19/perf-bench-share-some-global-variables-to-fix-build-with-gcc-10.patch b/queue-4.19/perf-bench-share-some-global-variables-to-fix-build-with-gcc-10.patch
new file mode 100644 (file)
index 0000000..e01130b
--- /dev/null
@@ -0,0 +1,152 @@
+From foo@baz Fri Jun  3 03:36:04 PM CEST 2022
+From: "Daniel Díaz" <daniel.diaz@linaro.org>
+Date: Mon, 30 May 2022 16:53:24 -0500
+Subject: perf bench: Share some global variables to fix build with gcc 10
+To: gregkh@linuxfoundation.org, sashal@kernel.org, stable@vger.kernel.org
+Cc: "Arnaldo Carvalho de Melo" <acme@redhat.com>, "Thomas Gleixner" <tglx@linutronix.de>, "Adrian Hunter" <adrian.hunter@intel.com>, "Davidlohr Bueso" <dave@stgolabs.net>, "Jiri Olsa" <jolsa@kernel.org>, "Namhyung Kim" <namhyung@kernel.org>, "Daniel Díaz" <daniel.diaz@linaro.org>, "Peter Zijlstra" <peterz@infradead.org>, "Ingo Molnar" <mingo@redhat.com>, "Arnaldo Carvalho de Melo" <acme@kernel.org>, "Alexander Shishkin" <alexander.shishkin@linux.intel.com>, "Jiri Olsa" <jolsa@redhat.com>, "Darren Hart" <dvhart@infradead.org>, linux-kernel@vger.kernel.org (open list:PERFORMANCE EVENTS SUBSYSTEM)
+Message-ID: <20220530215325.921847-3-daniel.diaz@linaro.org>
+
+From: Arnaldo Carvalho de Melo <acme@redhat.com>
+
+[ Upstream commit e4d9b04b973b2dbce7b42af95ea70d07da1c936d ]
+
+Noticed with gcc 10 (fedora rawhide) that those variables were not being
+declared as static, so end up with:
+
+  ld: /tmp/build/perf/bench/epoll-wait.o:/git/perf/tools/perf/bench/epoll-wait.c:93: multiple definition of `end'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here
+  ld: /tmp/build/perf/bench/epoll-wait.o:/git/perf/tools/perf/bench/epoll-wait.c:93: multiple definition of `start'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here
+  ld: /tmp/build/perf/bench/epoll-wait.o:/git/perf/tools/perf/bench/epoll-wait.c:93: multiple definition of `runtime'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here
+  ld: /tmp/build/perf/bench/epoll-ctl.o:/git/perf/tools/perf/bench/epoll-ctl.c:38: multiple definition of `end'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here
+  ld: /tmp/build/perf/bench/epoll-ctl.o:/git/perf/tools/perf/bench/epoll-ctl.c:38: multiple definition of `start'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here
+  ld: /tmp/build/perf/bench/epoll-ctl.o:/git/perf/tools/perf/bench/epoll-ctl.c:38: multiple definition of `runtime'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here
+  make[4]: *** [/git/perf/tools/build/Makefile.build:145: /tmp/build/perf/bench/perf-in.o] Error 1
+
+Prefix those with bench__ and add them to bench/bench.h, so that we can
+share those on the tools needing to access those variables from signal
+handlers.
+
+Acked-by: Thomas Gleixner <tglx@linutronix.de>
+Cc: Adrian Hunter <adrian.hunter@intel.com>
+Cc: Davidlohr Bueso <dave@stgolabs.net>
+Cc: Jiri Olsa <jolsa@kernel.org>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Link: http://lore.kernel.org/lkml/20200303155811.GD13702@kernel.org
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/perf/bench/bench.h         |    4 ++++
+ tools/perf/bench/futex-hash.c    |   12 ++++++------
+ tools/perf/bench/futex-lock-pi.c |   11 +++++------
+ 3 files changed, 15 insertions(+), 12 deletions(-)
+
+--- a/tools/perf/bench/bench.h
++++ b/tools/perf/bench/bench.h
+@@ -2,6 +2,10 @@
+ #ifndef BENCH_H
+ #define BENCH_H
++#include <sys/time.h>
++
++extern struct timeval bench__start, bench__end, bench__runtime;
++
+ /*
+  * The madvise transparent hugepage constants were added in glibc
+  * 2.13. For compatibility with older versions of glibc, define these
+--- a/tools/perf/bench/futex-hash.c
++++ b/tools/perf/bench/futex-hash.c
+@@ -35,7 +35,7 @@ static unsigned int nfutexes = 1024;
+ static bool fshared = false, done = false, silent = false;
+ static int futex_flag = 0;
+-struct timeval start, end, runtime;
++struct timeval bench__start, bench__end, bench__runtime;
+ static pthread_mutex_t thread_lock;
+ static unsigned int threads_starting;
+ static struct stats throughput_stats;
+@@ -101,8 +101,8 @@ static void toggle_done(int sig __maybe_
+ {
+       /* inform all threads that we're done for the day */
+       done = true;
+-      gettimeofday(&end, NULL);
+-      timersub(&end, &start, &runtime);
++      gettimeofday(&bench__end, NULL);
++      timersub(&bench__end, &bench__start, &bench__runtime);
+ }
+ static void print_summary(void)
+@@ -112,7 +112,7 @@ static void print_summary(void)
+       printf("%sAveraged %ld operations/sec (+- %.2f%%), total secs = %d\n",
+              !silent ? "\n" : "", avg, rel_stddev_stats(stddev, avg),
+-             (int) runtime.tv_sec);
++             (int)bench__runtime.tv_sec);
+ }
+ int bench_futex_hash(int argc, const char **argv)
+@@ -159,7 +159,7 @@ int bench_futex_hash(int argc, const cha
+       threads_starting = nthreads;
+       pthread_attr_init(&thread_attr);
+-      gettimeofday(&start, NULL);
++      gettimeofday(&bench__start, NULL);
+       for (i = 0; i < nthreads; i++) {
+               worker[i].tid = i;
+               worker[i].futex = calloc(nfutexes, sizeof(*worker[i].futex));
+@@ -202,7 +202,7 @@ int bench_futex_hash(int argc, const cha
+       pthread_mutex_destroy(&thread_lock);
+       for (i = 0; i < nthreads; i++) {
+-              unsigned long t = worker[i].ops/runtime.tv_sec;
++              unsigned long t = worker[i].ops / bench__runtime.tv_sec;
+               update_stats(&throughput_stats, t);
+               if (!silent) {
+                       if (nfutexes == 1)
+--- a/tools/perf/bench/futex-lock-pi.c
++++ b/tools/perf/bench/futex-lock-pi.c
+@@ -35,7 +35,6 @@ static bool silent = false, multi = fals
+ static bool done = false, fshared = false;
+ static unsigned int nthreads = 0;
+ static int futex_flag = 0;
+-struct timeval start, end, runtime;
+ static pthread_mutex_t thread_lock;
+ static unsigned int threads_starting;
+ static struct stats throughput_stats;
+@@ -62,7 +61,7 @@ static void print_summary(void)
+       printf("%sAveraged %ld operations/sec (+- %.2f%%), total secs = %d\n",
+              !silent ? "\n" : "", avg, rel_stddev_stats(stddev, avg),
+-             (int) runtime.tv_sec);
++             (int)bench__runtime.tv_sec);
+ }
+ static void toggle_done(int sig __maybe_unused,
+@@ -71,8 +70,8 @@ static void toggle_done(int sig __maybe_
+ {
+       /* inform all threads that we're done for the day */
+       done = true;
+-      gettimeofday(&end, NULL);
+-      timersub(&end, &start, &runtime);
++      gettimeofday(&bench__end, NULL);
++      timersub(&bench__end, &bench__start, &bench__runtime);
+ }
+ static void *workerfn(void *arg)
+@@ -183,7 +182,7 @@ int bench_futex_lock_pi(int argc, const
+       threads_starting = nthreads;
+       pthread_attr_init(&thread_attr);
+-      gettimeofday(&start, NULL);
++      gettimeofday(&bench__start, NULL);
+       create_threads(worker, thread_attr, cpu);
+       pthread_attr_destroy(&thread_attr);
+@@ -209,7 +208,7 @@ int bench_futex_lock_pi(int argc, const
+       pthread_mutex_destroy(&thread_lock);
+       for (i = 0; i < nthreads; i++) {
+-              unsigned long t = worker[i].ops/runtime.tv_sec;
++              unsigned long t = worker[i].ops / bench__runtime.tv_sec;
+               update_stats(&throughput_stats, t);
+               if (!silent)
diff --git a/queue-4.19/perf-tests-bp_account-make-global-variable-static.patch b/queue-4.19/perf-tests-bp_account-make-global-variable-static.patch
new file mode 100644 (file)
index 0000000..64f675c
--- /dev/null
@@ -0,0 +1,44 @@
+From foo@baz Fri Jun  3 03:36:04 PM CEST 2022
+From: "Daniel Díaz" <daniel.diaz@linaro.org>
+Date: Mon, 30 May 2022 16:53:25 -0500
+Subject: perf tests bp_account: Make global variable static
+To: gregkh@linuxfoundation.org, sashal@kernel.org, stable@vger.kernel.org
+Cc: "Arnaldo Carvalho de Melo" <acme@redhat.com>, "Jiri Olsa" <jolsa@kernel.org>, "Adrian Hunter" <adrian.hunter@intel.com>, "Namhyung Kim" <namhyung@kernel.org>, "Daniel Díaz" <daniel.diaz@linaro.org>, "Peter Zijlstra" <peterz@infradead.org>, "Ingo Molnar" <mingo@redhat.com>, "Arnaldo Carvalho de Melo" <acme@kernel.org>, "Alexander Shishkin" <alexander.shishkin@linux.intel.com>, "Jiri Olsa" <jolsa@redhat.com>, linux-kernel@vger.kernel.org (open list:PERFORMANCE EVENTS SUBSYSTEM)
+Message-ID: <20220530215325.921847-4-daniel.diaz@linaro.org>
+
+From: Arnaldo Carvalho de Melo <acme@redhat.com>
+
+[ Upstream commit cff20b3151ccab690715cb6cf0f5da5cccb32adf ]
+
+To fix the build with newer gccs, that without this patch exit with:
+
+    LD       /tmp/build/perf/tests/perf-in.o
+  ld: /tmp/build/perf/tests/bp_account.o:/git/perf/tools/perf/tests/bp_account.c:22: multiple definition of `the_var'; /tmp/build/perf/tests/bp_signal.o:/git/perf/tools/perf/tests/bp_signal.c:38: first defined here
+  make[4]: *** [/git/perf/tools/build/Makefile.build:145: /tmp/build/perf/tests/perf-in.o] Error 1
+
+First noticed in fedora:rawhide/32 with:
+
+  [perfbuilder@a5ff49d6e6e4 ~]$ gcc --version
+  gcc (GCC) 10.0.1 20200216 (Red Hat 10.0.1-0.8)
+
+Reported-by: Jiri Olsa <jolsa@kernel.org>
+Cc: Adrian Hunter <adrian.hunter@intel.com>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/perf/tests/bp_account.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/tools/perf/tests/bp_account.c
++++ b/tools/perf/tests/bp_account.c
+@@ -22,7 +22,7 @@
+ #include "perf.h"
+ #include "cloexec.h"
+-volatile long the_var;
++static volatile long the_var;
+ static noinline int test_function(void)
+ {
index 2ee605c2ba640df2a59755bd24f63b226135ce08..c091dcc2eb3910b360c6832ac74a0335e049c6ea 100644 (file)
@@ -8,3 +8,8 @@ net-af_key-check-encryption-module-availability-cons.patch
 net-ftgmac100-disable-hardware-checksum-on-ast2600.patch
 i2c-ismt-provide-a-dma-buffer-for-interrupt-cause-lo.patch
 drivers-i2c-thunderx-allow-driver-to-work-with-acpi-.patch
+assoc_array-fix-bug_on-during-garbage-collect.patch
+cfg80211-set-custom-regdomain-after-wiphy-registration.patch
+libtraceevent-fix-build-with-binutils-2.35.patch
+perf-bench-share-some-global-variables-to-fix-build-with-gcc-10.patch
+perf-tests-bp_account-make-global-variable-static.patch