From c73c21b04be77b16a1412e0d083835c1fd984a7f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 15 Apr 2020 12:16:13 +0200 Subject: [PATCH] 4.9-stable patches added patches: alsa-hda-initialize-power_state-field-properly.patch mm-use-fixed-constant-in-page_frag_alloc-instead-of-size-1.patch tools-gpio-fix-out-of-tree-build-regression.patch x86-speculation-remove-redundant-arch_smt_update-invocation.patch --- ...nitialize-power_state-field-properly.patch | 35 ++++++++++++ ...in-page_frag_alloc-instead-of-size-1.patch | 57 +++++++++++++++++++ queue-4.9/series | 4 ++ ...pio-fix-out-of-tree-build-regression.patch | 42 ++++++++++++++ ...redundant-arch_smt_update-invocation.patch | 54 ++++++++++++++++++ 5 files changed, 192 insertions(+) create mode 100644 queue-4.9/alsa-hda-initialize-power_state-field-properly.patch create mode 100644 queue-4.9/mm-use-fixed-constant-in-page_frag_alloc-instead-of-size-1.patch create mode 100644 queue-4.9/tools-gpio-fix-out-of-tree-build-regression.patch create mode 100644 queue-4.9/x86-speculation-remove-redundant-arch_smt_update-invocation.patch diff --git a/queue-4.9/alsa-hda-initialize-power_state-field-properly.patch b/queue-4.9/alsa-hda-initialize-power_state-field-properly.patch new file mode 100644 index 00000000000..5406bc3bc1c --- /dev/null +++ b/queue-4.9/alsa-hda-initialize-power_state-field-properly.patch @@ -0,0 +1,35 @@ +From 183ab39eb0ea9879bb68422a83e65f750f3192f0 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Sat, 13 Apr 2019 10:04:49 +0200 +Subject: ALSA: hda: Initialize power_state field properly + +From: Takashi Iwai + +commit 183ab39eb0ea9879bb68422a83e65f750f3192f0 upstream. + +The recent commit 98081ca62cba ("ALSA: hda - Record the current power +state before suspend/resume calls") made the HD-audio driver to store +the PM state in power_state field. This forgot, however, the +initialization at power up. Although the codec drivers usually don't +need to refer to this field in the normal operation, let's initialize +it properly for consistency. + +Fixes: 98081ca62cba ("ALSA: hda - Record the current power state before suspend/resume calls") +Signed-off-by: Takashi Iwai +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/hda_codec.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/hda_codec.c ++++ b/sound/pci/hda/hda_codec.c +@@ -876,6 +876,7 @@ int snd_hda_codec_new(struct hda_bus *bu + + /* power-up all before initialization */ + hda_set_power_state(codec, AC_PWRST_D0); ++ codec->core.dev.power.power_state = PMSG_ON; + + snd_hda_codec_proc_new(codec); + diff --git a/queue-4.9/mm-use-fixed-constant-in-page_frag_alloc-instead-of-size-1.patch b/queue-4.9/mm-use-fixed-constant-in-page_frag_alloc-instead-of-size-1.patch new file mode 100644 index 00000000000..3c4b5098f2a --- /dev/null +++ b/queue-4.9/mm-use-fixed-constant-in-page_frag_alloc-instead-of-size-1.patch @@ -0,0 +1,57 @@ +From 8644772637deb121f7ac2df690cbf83fa63d3b70 Mon Sep 17 00:00:00 2001 +From: Alexander Duyck +Date: Fri, 15 Feb 2019 14:44:12 -0800 +Subject: mm: Use fixed constant in page_frag_alloc instead of size + 1 + +From: Alexander Duyck + +commit 8644772637deb121f7ac2df690cbf83fa63d3b70 upstream. + +This patch replaces the size + 1 value introduced with the recent fix for 1 +byte allocs with a constant value. + +The idea here is to reduce code overhead as the previous logic would have +to read size into a register, then increment it, and write it back to +whatever field was being used. By using a constant we can avoid those +memory reads and arithmetic operations in favor of just encoding the +maximum value into the operation itself. + +Fixes: 2c2ade81741c ("mm: page_alloc: fix ref bias in page_frag_alloc() for 1-byte allocs") +Signed-off-by: Alexander Duyck +Signed-off-by: David S. Miller +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + mm/page_alloc.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -3955,11 +3955,11 @@ refill: + /* Even if we own the page, we do not use atomic_set(). + * This would break get_page_unless_zero() users. + */ +- page_ref_add(page, size); ++ page_ref_add(page, PAGE_FRAG_CACHE_MAX_SIZE); + + /* reset page count bias and offset to start of new frag */ + nc->pfmemalloc = page_is_pfmemalloc(page); +- nc->pagecnt_bias = size + 1; ++ nc->pagecnt_bias = PAGE_FRAG_CACHE_MAX_SIZE + 1; + nc->offset = size; + } + +@@ -3975,10 +3975,10 @@ refill: + size = nc->size; + #endif + /* OK, page count is 0, we can safely set it */ +- set_page_count(page, size + 1); ++ set_page_count(page, PAGE_FRAG_CACHE_MAX_SIZE + 1); + + /* reset page count bias and offset to start of new frag */ +- nc->pagecnt_bias = size + 1; ++ nc->pagecnt_bias = PAGE_FRAG_CACHE_MAX_SIZE + 1; + offset = size - fragsz; + } + diff --git a/queue-4.9/series b/queue-4.9/series index f34ac306af2..45ce4948812 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -39,3 +39,7 @@ kvm-vmx-always-vmclear-in-use-vmcses-during-crash-with-kexec-support.patch kvm-vmx-fix-crash-cleanup-when-kvm-wasn-t-used.patch btrfs-drop-block-from-cache-on-error-in-relocation.patch crypto-mxs-dcp-fix-scatterlist-linearization-for-hash.patch +alsa-hda-initialize-power_state-field-properly.patch +x86-speculation-remove-redundant-arch_smt_update-invocation.patch +tools-gpio-fix-out-of-tree-build-regression.patch +mm-use-fixed-constant-in-page_frag_alloc-instead-of-size-1.patch diff --git a/queue-4.9/tools-gpio-fix-out-of-tree-build-regression.patch b/queue-4.9/tools-gpio-fix-out-of-tree-build-regression.patch new file mode 100644 index 00000000000..4872d237b8e --- /dev/null +++ b/queue-4.9/tools-gpio-fix-out-of-tree-build-regression.patch @@ -0,0 +1,42 @@ +From 82f04bfe2aff428b063eefd234679b2d693228ed Mon Sep 17 00:00:00 2001 +From: Anssi Hannula +Date: Wed, 25 Mar 2020 12:31:54 +0200 +Subject: tools: gpio: Fix out-of-tree build regression + +From: Anssi Hannula + +commit 82f04bfe2aff428b063eefd234679b2d693228ed upstream. + +Commit 0161a94e2d1c7 ("tools: gpio: Correctly add make dependencies for +gpio_utils") added a make rule for gpio-utils-in.o but used $(output) +instead of the correct $(OUTPUT) for the output directory, breaking +out-of-tree build (O=xx) with the following error: + + No rule to make target 'out/tools/gpio/gpio-utils-in.o', needed by 'out/tools/gpio/lsgpio-in.o'. Stop. + +Fix that. + +Fixes: 0161a94e2d1c ("tools: gpio: Correctly add make dependencies for gpio_utils") +Cc: +Cc: Laura Abbott +Signed-off-by: Anssi Hannula +Link: https://lore.kernel.org/r/20200325103154.32235-1-anssi.hannula@bitwise.fi +Reviewed-by: Bartosz Golaszewski +Signed-off-by: Linus Walleij +Signed-off-by: Greg Kroah-Hartman + +--- + tools/gpio/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/tools/gpio/Makefile ++++ b/tools/gpio/Makefile +@@ -32,7 +32,7 @@ $(OUTPUT)include/linux/gpio.h: ../../inc + + prepare: $(OUTPUT)include/linux/gpio.h + +-GPIO_UTILS_IN := $(output)gpio-utils-in.o ++GPIO_UTILS_IN := $(OUTPUT)gpio-utils-in.o + $(GPIO_UTILS_IN): prepare FORCE + $(Q)$(MAKE) $(build)=gpio-utils + diff --git a/queue-4.9/x86-speculation-remove-redundant-arch_smt_update-invocation.patch b/queue-4.9/x86-speculation-remove-redundant-arch_smt_update-invocation.patch new file mode 100644 index 00000000000..57dacb4dcd3 --- /dev/null +++ b/queue-4.9/x86-speculation-remove-redundant-arch_smt_update-invocation.patch @@ -0,0 +1,54 @@ +From 34d66caf251df91ff27b24a3a786810d29989eca Mon Sep 17 00:00:00 2001 +From: Zhenzhong Duan +Date: Thu, 17 Jan 2019 02:10:59 -0800 +Subject: x86/speculation: Remove redundant arch_smt_update() invocation + +From: Zhenzhong Duan + +commit 34d66caf251df91ff27b24a3a786810d29989eca upstream. + +With commit a74cfffb03b7 ("x86/speculation: Rework SMT state change"), +arch_smt_update() is invoked from each individual CPU hotplug function. + +Therefore the extra arch_smt_update() call in the sysfs SMT control is +redundant. + +Fixes: a74cfffb03b7 ("x86/speculation: Rework SMT state change") +Signed-off-by: Zhenzhong Duan +Signed-off-by: Thomas Gleixner +Cc: +Cc: +Cc: +Cc: +Cc: +Cc: +Link: https://lkml.kernel.org/r/e2e064f2-e8ef-42ca-bf4f-76b612964752@default +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/cpu.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -2027,10 +2027,8 @@ int cpuhp_smt_disable(enum cpuhp_smt_con + */ + cpuhp_offline_cpu_device(cpu); + } +- if (!ret) { ++ if (!ret) + cpu_smt_control = ctrlval; +- arch_smt_update(); +- } + cpu_maps_update_done(); + return ret; + } +@@ -2041,7 +2039,6 @@ int cpuhp_smt_enable(void) + + cpu_maps_update_begin(); + cpu_smt_control = CPU_SMT_ENABLED; +- arch_smt_update(); + for_each_present_cpu(cpu) { + /* Skip online CPUs and CPUs on offline nodes */ + if (cpu_online(cpu) || !node_online(cpu_to_node(cpu))) -- 2.47.3