]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Feb 2020 10:38:02 +0000 (10:38 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Feb 2020 10:38:02 +0000 (10:38 +0000)
added patches:
arm64-kbuild-remove-compressed-images-on-make-arch-arm64-dist-clean.patch
perf-c2c-fix-return-type-for-histogram-sorting-comparision-functions.patch
pm-devfreq-add-new-name-attribute-for-sysfs.patch
tools-lib-fix-builds-when-glibc-contains-strlcpy.patch

queue-4.19/arm64-kbuild-remove-compressed-images-on-make-arch-arm64-dist-clean.patch [new file with mode: 0644]
queue-4.19/perf-c2c-fix-return-type-for-histogram-sorting-comparision-functions.patch [new file with mode: 0644]
queue-4.19/pm-devfreq-add-new-name-attribute-for-sysfs.patch [new file with mode: 0644]
queue-4.19/series
queue-4.19/tools-lib-fix-builds-when-glibc-contains-strlcpy.patch [new file with mode: 0644]

diff --git a/queue-4.19/arm64-kbuild-remove-compressed-images-on-make-arch-arm64-dist-clean.patch b/queue-4.19/arm64-kbuild-remove-compressed-images-on-make-arch-arm64-dist-clean.patch
new file mode 100644 (file)
index 0000000..a6febc0
--- /dev/null
@@ -0,0 +1,40 @@
+From d7bbd6c1b01cb5dd13c245d4586a83145c1d5f52 Mon Sep 17 00:00:00 2001
+From: Dirk Behme <dirk.behme@de.bosch.com>
+Date: Tue, 21 Jan 2020 16:54:39 +0100
+Subject: arm64: kbuild: remove compressed images on 'make ARCH=arm64 (dist)clean'
+
+From: Dirk Behme <dirk.behme@de.bosch.com>
+
+commit d7bbd6c1b01cb5dd13c245d4586a83145c1d5f52 upstream.
+
+Since v4.3-rc1 commit 0723c05fb75e44 ("arm64: enable more compressed
+Image formats"), it is possible to build Image.{bz2,lz4,lzma,lzo}
+AArch64 images. However, the commit missed adding support for removing
+those images on 'make ARCH=arm64 (dist)clean'.
+
+Fix this by adding them to the target list.
+Make sure to match the order of the recipes in the makefile.
+
+Cc: stable@vger.kernel.org # v4.3+
+Fixes: 0723c05fb75e44 ("arm64: enable more compressed Image formats")
+Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
+Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
+Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
+Signed-off-by: Will Deacon <will@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm64/boot/Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm64/boot/Makefile
++++ b/arch/arm64/boot/Makefile
+@@ -16,7 +16,7 @@
+ OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
+-targets := Image Image.gz
++targets := Image Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo
+ $(obj)/Image: vmlinux FORCE
+       $(call if_changed,objcopy)
diff --git a/queue-4.19/perf-c2c-fix-return-type-for-histogram-sorting-comparision-functions.patch b/queue-4.19/perf-c2c-fix-return-type-for-histogram-sorting-comparision-functions.patch
new file mode 100644 (file)
index 0000000..d081c70
--- /dev/null
@@ -0,0 +1,86 @@
+From c1c8013ec34d7163431d18367808ea40b2e305f8 Mon Sep 17 00:00:00 2001
+From: Andres Freund <andres@anarazel.de>
+Date: Wed, 8 Jan 2020 20:30:30 -0800
+Subject: perf c2c: Fix return type for histogram sorting comparision functions
+
+From: Andres Freund <andres@anarazel.de>
+
+commit c1c8013ec34d7163431d18367808ea40b2e305f8 upstream.
+
+Commit 722ddfde366f ("perf tools: Fix time sorting") changed - correctly
+so - hist_entry__sort to return int64. Unfortunately several of the
+builtin-c2c.c comparison routines only happened to work due the cast
+caused by the wrong return type.
+
+This causes meaningless ordering of both the cacheline list, and the
+cacheline details page. E.g a simple:
+
+  perf c2c record -a sleep 3
+  perf c2c report
+
+will result in cacheline table like
+  =================================================
+             Shared Data Cache Line Table
+  =================================================
+  #
+  #        ------- Cacheline ----------    Total     Tot  - LLC Load Hitm -  - Store Reference -  - Load Dram -     LLC  Total  - Core Load Hit -  - LLC Load Hit -
+  # Index         Address  Node  PA cnt  records    Hitm  Total  Lcl    Rmt  Total  L1Hit  L1Miss     Lcl   Rmt  Ld Miss  Loads    FB    L1   L2     Llc      Rmt
+  # .....  ..............  ....  ......  .......  ......  .....  .....  ...  ....   .....  ......  ......  ....  ......   .....  .....  ..... ...  ....     .......
+
+        0  0x7f0d27ffba00   N/A       0       52   0.12%     13      6    7    12      12       0       0     7      14      40      4     16    0    0           0
+        1  0x7f0d27ff61c0   N/A       0     6353  14.04%   1475    801  674   779     779       0       0   718    1392    5574   1299   1967    0  115           0
+        2  0x7f0d26d3ec80   N/A       0       71   0.15%     16      4   12    13      13       0       0    12      24      58      1     20    0    9           0
+        3  0x7f0d26d3ec00   N/A       0       98   0.22%     23     17    6    19      19       0       0     6      12      79      0     40    0   10           0
+
+i.e. with the list not being ordered by Total Hitm.
+
+Fixes: 722ddfde366f ("perf tools: Fix time sorting")
+Signed-off-by: Andres Freund <andres@anarazel.de>
+Tested-by: Michael Petlan <mpetlan@redhat.com>
+Acked-by: Jiri Olsa <jolsa@redhat.com>
+Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
+Cc: Andi Kleen <ak@linux.intel.com>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: stable@vger.kernel.org # v3.16+
+Link: http://lore.kernel.org/lkml/20200109043030.233746-1-andres@anarazel.de
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ tools/perf/builtin-c2c.c |   10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/tools/perf/builtin-c2c.c
++++ b/tools/perf/builtin-c2c.c
+@@ -586,8 +586,8 @@ tot_hitm_cmp(struct perf_hpp_fmt *fmt __
+ {
+       struct c2c_hist_entry *c2c_left;
+       struct c2c_hist_entry *c2c_right;
+-      unsigned int tot_hitm_left;
+-      unsigned int tot_hitm_right;
++      uint64_t tot_hitm_left;
++      uint64_t tot_hitm_right;
+       c2c_left  = container_of(left, struct c2c_hist_entry, he);
+       c2c_right = container_of(right, struct c2c_hist_entry, he);
+@@ -620,7 +620,8 @@ __f ## _cmp(struct perf_hpp_fmt *fmt __m
+                                                                       \
+       c2c_left  = container_of(left, struct c2c_hist_entry, he);      \
+       c2c_right = container_of(right, struct c2c_hist_entry, he);     \
+-      return c2c_left->stats.__f - c2c_right->stats.__f;              \
++      return (uint64_t) c2c_left->stats.__f -                         \
++             (uint64_t) c2c_right->stats.__f;                         \
+ }
+ #define STAT_FN(__f)          \
+@@ -673,7 +674,8 @@ ld_llcmiss_cmp(struct perf_hpp_fmt *fmt
+       c2c_left  = container_of(left, struct c2c_hist_entry, he);
+       c2c_right = container_of(right, struct c2c_hist_entry, he);
+-      return llc_miss(&c2c_left->stats) - llc_miss(&c2c_right->stats);
++      return (uint64_t) llc_miss(&c2c_left->stats) -
++             (uint64_t) llc_miss(&c2c_right->stats);
+ }
+ static uint64_t total_records(struct c2c_stats *stats)
diff --git a/queue-4.19/pm-devfreq-add-new-name-attribute-for-sysfs.patch b/queue-4.19/pm-devfreq-add-new-name-attribute-for-sysfs.patch
new file mode 100644 (file)
index 0000000..e630c9d
--- /dev/null
@@ -0,0 +1,66 @@
+From 2fee1a7cc6b1ce6634bb0f025be2c94a58dfa34d Mon Sep 17 00:00:00 2001
+From: Chanwoo Choi <cw00.choi@samsung.com>
+Date: Tue, 5 Nov 2019 18:18:03 +0900
+Subject: PM / devfreq: Add new name attribute for sysfs
+
+From: Chanwoo Choi <cw00.choi@samsung.com>
+
+commit 2fee1a7cc6b1ce6634bb0f025be2c94a58dfa34d upstream.
+
+The commit 4585fbcb5331 ("PM / devfreq: Modify the device name as devfreq(X) for
+sysfs") changed the node name to devfreq(x). After this commit, it is not
+possible to get the device name through /sys/class/devfreq/devfreq(X)/*.
+
+Add new name attribute in order to get device name.
+
+Cc: stable@vger.kernel.org
+Fixes: 4585fbcb5331 ("PM / devfreq: Modify the device name as devfreq(X) for sysfs")
+Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/ABI/testing/sysfs-class-devfreq |    7 +++++++
+ drivers/devfreq/devfreq.c                     |    9 +++++++++
+ 2 files changed, 16 insertions(+)
+
+--- a/Documentation/ABI/testing/sysfs-class-devfreq
++++ b/Documentation/ABI/testing/sysfs-class-devfreq
+@@ -7,6 +7,13 @@ Description:
+               The name of devfreq object denoted as ... is same as the
+               name of device using devfreq.
++What:         /sys/class/devfreq/.../name
++Date:         November 2019
++Contact:      Chanwoo Choi <cw00.choi@samsung.com>
++Description:
++              The /sys/class/devfreq/.../name shows the name of device
++              of the corresponding devfreq object.
++
+ What:         /sys/class/devfreq/.../governor
+ Date:         September 2011
+ Contact:      MyungJoo Ham <myungjoo.ham@samsung.com>
+--- a/drivers/devfreq/devfreq.c
++++ b/drivers/devfreq/devfreq.c
+@@ -1014,6 +1014,14 @@ err_out:
+ }
+ EXPORT_SYMBOL(devfreq_remove_governor);
++static ssize_t name_show(struct device *dev,
++                      struct device_attribute *attr, char *buf)
++{
++      struct devfreq *devfreq = to_devfreq(dev);
++      return sprintf(buf, "%s\n", dev_name(devfreq->dev.parent));
++}
++static DEVICE_ATTR_RO(name);
++
+ static ssize_t governor_show(struct device *dev,
+                            struct device_attribute *attr, char *buf)
+ {
+@@ -1330,6 +1338,7 @@ static ssize_t trans_stat_show(struct de
+ static DEVICE_ATTR_RO(trans_stat);
+ static struct attribute *devfreq_attrs[] = {
++      &dev_attr_name.attr,
+       &dev_attr_governor.attr,
+       &dev_attr_available_governors.attr,
+       &dev_attr_cur_freq.attr,
index 0920d05d40015d693471a787af00a61f529eb266..56179a9333e751ee83d1b9decffba6dad1ba6247 100644 (file)
@@ -5,3 +5,7 @@ x86-resctrl-fix-a-deadlock-due-to-inaccurate-referen.patch
 crypto-pcrypt-fix-user-after-free-on-module-unload.patch
 rsi-add-hci-detach-for-hibernation-and-poweroff.patch
 rsi-fix-use-after-free-on-failed-probe-and-unbind.patch
+perf-c2c-fix-return-type-for-histogram-sorting-comparision-functions.patch
+pm-devfreq-add-new-name-attribute-for-sysfs.patch
+tools-lib-fix-builds-when-glibc-contains-strlcpy.patch
+arm64-kbuild-remove-compressed-images-on-make-arch-arm64-dist-clean.patch
diff --git a/queue-4.19/tools-lib-fix-builds-when-glibc-contains-strlcpy.patch b/queue-4.19/tools-lib-fix-builds-when-glibc-contains-strlcpy.patch
new file mode 100644 (file)
index 0000000..c9d8a35
--- /dev/null
@@ -0,0 +1,100 @@
+From 6c4798d3f08b81c2c52936b10e0fa872590c96ae Mon Sep 17 00:00:00 2001
+From: Vitaly Chikunov <vt@altlinux.org>
+Date: Tue, 24 Dec 2019 20:20:29 +0300
+Subject: tools lib: Fix builds when glibc contains strlcpy()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Vitaly Chikunov <vt@altlinux.org>
+
+commit 6c4798d3f08b81c2c52936b10e0fa872590c96ae upstream.
+
+Disable a couple of compilation warnings (which are treated as errors)
+on strlcpy() definition and declaration, allowing users to compile perf
+and kernel (objtool) when:
+
+1. glibc have strlcpy() (such as in ALT Linux since 2004) objtool and
+   perf build fails with this (in gcc):
+
+  In file included from exec-cmd.c:3:
+  tools/include/linux/string.h:20:15: error: redundant redeclaration of ‘strlcpy’ [-Werror=redundant-decls]
+     20 | extern size_t strlcpy(char *dest, const char *src, size_t size);
+
+2. clang ignores `-Wredundant-decls', but produces another warning when
+   building perf:
+
+    CC       util/string.o
+  ../lib/string.c:99:8: error: attribute declaration must precede definition [-Werror,-Wignored-attributes]
+  size_t __weak strlcpy(char *dest, const char *src, size_t size)
+  ../../tools/include/linux/compiler.h:66:34: note: expanded from macro '__weak'
+  # define __weak                 __attribute__((weak))
+  /usr/include/bits/string_fortified.h:151:8: note: previous definition is here
+  __NTH (strlcpy (char *__restrict __dest, const char *__restrict __src,
+
+Committer notes:
+
+The
+
+ #pragma GCC diagnostic
+
+directive was introduced in gcc 4.6, so check for that as well.
+
+Fixes: ce99091 ("perf tools: Move strlcpy() from perf to tools/lib/string.c")
+Fixes: 0215d59 ("tools lib: Reinstate strlcpy() header guard with __UCLIBC__")
+Resolves: https://bugzilla.kernel.org/show_bug.cgi?id=118481
+Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
+Reviewed-by: Dmitry Levin <ldv@altlinux.org>
+Cc: Dmitry Levin <ldv@altlinux.org>
+Cc: Josh Poimboeuf <jpoimboe@redhat.com>
+Cc: kbuild test robot <lkp@intel.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: stable@vger.kernel.org
+Cc: Vineet Gupta <vineet.gupta1@synopsys.com>
+Link: http://lore.kernel.org/lkml/20191224172029.19690-1-vt@altlinux.org
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ tools/include/linux/string.h |    8 ++++++++
+ tools/lib/string.c           |    7 +++++++
+ 2 files changed, 15 insertions(+)
+
+--- a/tools/include/linux/string.h
++++ b/tools/include/linux/string.h
+@@ -14,7 +14,15 @@ int strtobool(const char *s, bool *res);
+  * However uClibc headers also define __GLIBC__ hence the hack below
+  */
+ #if defined(__GLIBC__) && !defined(__UCLIBC__)
++// pragma diagnostic was introduced in gcc 4.6
++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wredundant-decls"
++#endif
+ extern size_t strlcpy(char *dest, const char *src, size_t size);
++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
++#pragma GCC diagnostic pop
++#endif
+ #endif
+ char *str_error_r(int errnum, char *buf, size_t buflen);
+--- a/tools/lib/string.c
++++ b/tools/lib/string.c
+@@ -95,6 +95,10 @@ int strtobool(const char *s, bool *res)
+  * If libc has strlcpy() then that version will override this
+  * implementation:
+  */
++#ifdef __clang__
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Wignored-attributes"
++#endif
+ size_t __weak strlcpy(char *dest, const char *src, size_t size)
+ {
+       size_t ret = strlen(src);
+@@ -106,3 +110,6 @@ size_t __weak strlcpy(char *dest, const
+       }
+       return ret;
+ }
++#ifdef __clang__
++#pragma clang diagnostic pop
++#endif