From: Greg Kroah-Hartman Date: Mon, 3 Feb 2020 10:37:59 +0000 (+0000) Subject: 4.14-stable patches X-Git-Tag: v5.5.2~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=11fa7eb58b05acbe00b3e7eabb7527b3d5c81201;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches 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 --- diff --git a/queue-4.14/arm64-kbuild-remove-compressed-images-on-make-arch-arm64-dist-clean.patch b/queue-4.14/arm64-kbuild-remove-compressed-images-on-make-arch-arm64-dist-clean.patch new file mode 100644 index 00000000000..a6febc0a443 --- /dev/null +++ b/queue-4.14/arm64-kbuild-remove-compressed-images-on-make-arch-arm64-dist-clean.patch @@ -0,0 +1,40 @@ +From d7bbd6c1b01cb5dd13c245d4586a83145c1d5f52 Mon Sep 17 00:00:00 2001 +From: Dirk Behme +Date: Tue, 21 Jan 2020 16:54:39 +0100 +Subject: arm64: kbuild: remove compressed images on 'make ARCH=arm64 (dist)clean' + +From: Dirk Behme + +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 +Signed-off-by: Eugeniu Rosca +Reviewed-by: Masahiro Yamada +Signed-off-by: Will Deacon +Signed-off-by: Greg Kroah-Hartman + +--- + 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.14/perf-c2c-fix-return-type-for-histogram-sorting-comparision-functions.patch b/queue-4.14/perf-c2c-fix-return-type-for-histogram-sorting-comparision-functions.patch new file mode 100644 index 00000000000..d8d5f252f94 --- /dev/null +++ b/queue-4.14/perf-c2c-fix-return-type-for-histogram-sorting-comparision-functions.patch @@ -0,0 +1,86 @@ +From c1c8013ec34d7163431d18367808ea40b2e305f8 Mon Sep 17 00:00:00 2001 +From: Andres Freund +Date: Wed, 8 Jan 2020 20:30:30 -0800 +Subject: perf c2c: Fix return type for histogram sorting comparision functions + +From: Andres Freund + +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 +Tested-by: Michael Petlan +Acked-by: Jiri Olsa +Cc: Alexander Shishkin +Cc: Andi Kleen +Cc: Namhyung Kim +Cc: Peter Zijlstra +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -528,8 +528,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); +@@ -562,7 +562,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) \ +@@ -615,7 +616,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.14/pm-devfreq-add-new-name-attribute-for-sysfs.patch b/queue-4.14/pm-devfreq-add-new-name-attribute-for-sysfs.patch new file mode 100644 index 00000000000..1e067f6d1a7 --- /dev/null +++ b/queue-4.14/pm-devfreq-add-new-name-attribute-for-sysfs.patch @@ -0,0 +1,66 @@ +From 2fee1a7cc6b1ce6634bb0f025be2c94a58dfa34d Mon Sep 17 00:00:00 2001 +From: Chanwoo Choi +Date: Tue, 5 Nov 2019 18:18:03 +0900 +Subject: PM / devfreq: Add new name attribute for sysfs + +From: Chanwoo Choi + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 ++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 +--- a/drivers/devfreq/devfreq.c ++++ b/drivers/devfreq/devfreq.c +@@ -902,6 +902,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) + { +@@ -1200,6 +1208,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, diff --git a/queue-4.14/series b/queue-4.14/series index 43804d29398..fc9c06e3849 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -35,3 +35,7 @@ x86-resctrl-fix-use-after-free-when-deleting-resourc.patch x86-resctrl-fix-use-after-free-due-to-inaccurate-ref.patch x86-resctrl-fix-a-deadlock-due-to-inaccurate-referen.patch crypto-pcrypt-fix-user-after-free-on-module-unload.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.14/tools-lib-fix-builds-when-glibc-contains-strlcpy.patch b/queue-4.14/tools-lib-fix-builds-when-glibc-contains-strlcpy.patch new file mode 100644 index 00000000000..c9d8a35a2f7 --- /dev/null +++ b/queue-4.14/tools-lib-fix-builds-when-glibc-contains-strlcpy.patch @@ -0,0 +1,100 @@ +From 6c4798d3f08b81c2c52936b10e0fa872590c96ae Mon Sep 17 00:00:00 2001 +From: Vitaly Chikunov +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 + +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 +Reviewed-by: Dmitry Levin +Cc: Dmitry Levin +Cc: Josh Poimboeuf +Cc: kbuild test robot +Cc: Peter Zijlstra +Cc: stable@vger.kernel.org +Cc: Vineet Gupta +Link: http://lore.kernel.org/lkml/20191224172029.19690-1-vt@altlinux.org +Signed-off-by: Arnaldo Carvalho de Melo +Signed-off-by: Greg Kroah-Hartman + +--- + 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