From: Greg Kroah-Hartman Date: Mon, 5 Jun 2017 13:01:02 +0000 (+0200) Subject: drop x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch X-Git-Tag: v3.18.56~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f04539b44c2b68d6309f6cedc875cccb6469ef31;p=thirdparty%2Fkernel%2Fstable-queue.git drop x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch --- diff --git a/queue-4.11/series b/queue-4.11/series index e446d339376..7c1cff3d497 100644 --- a/queue-4.11/series +++ b/queue-4.11/series @@ -76,7 +76,6 @@ alsa-hda-no-loopback-on-alc299-codec.patch alsa-hda-apply-stac_9200_dell_m22-quirk-for-dell-latitude-d430.patch revert-alsa-usb-audio-purge-needless-variable-length-array.patch alsa-usb-fix-a-typo-in-tascam-us-16x08-mixer-element.patch -x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch x86-boot-use-cross_compile-prefix-for-readelf.patch ksm-prevent-crash-after-write_protect_page-fails.patch slub-memcg-cure-the-brainless-abuse-of-sysfs-attributes.patch diff --git a/queue-4.11/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch b/queue-4.11/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch deleted file mode 100644 index 2e3a0ef0e09..00000000000 --- a/queue-4.11/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch +++ /dev/null @@ -1,96 +0,0 @@ -From cbed27cdf0e3f7ea3b2259e86b9e34df02be3fe4 Mon Sep 17 00:00:00 2001 -From: Mikulas Patocka -Date: Tue, 18 Apr 2017 15:07:11 -0400 -Subject: x86/PAT: Fix Xorg regression on CPUs that don't support PAT - -From: Mikulas Patocka - -commit cbed27cdf0e3f7ea3b2259e86b9e34df02be3fe4 upstream. - -In the file arch/x86/mm/pat.c, there's a '__pat_enabled' variable. The -variable is set to 1 by default and the function pat_init() sets -__pat_enabled to 0 if the CPU doesn't support PAT. - -However, on AMD K6-3 CPUs, the processor initialization code never calls -pat_init() and so __pat_enabled stays 1 and the function pat_enabled() -returns true, even though the K6-3 CPU doesn't support PAT. - -The result of this bug is that a kernel warning is produced when attempting to -start the Xserver and the Xserver doesn't start (fork() returns ENOMEM). -Another symptom of this bug is that the framebuffer driver doesn't set the -K6-3 MTRR registers: - - x86/PAT: Xorg:3891 map pfn expected mapping type uncached-minus for [mem 0xe4000000-0xe5ffffff], got write-combining - ------------[ cut here ]------------ - WARNING: CPU: 0 PID: 3891 at arch/x86/mm/pat.c:1020 untrack_pfn+0x5c/0x9f - ... - x86/PAT: Xorg:3891 map pfn expected mapping type uncached-minus for [mem 0xe4000000-0xe5ffffff], got write-combining - -To fix the bug change pat_enabled() so that it returns true only if PAT -initialization was actually done. - -Also, I changed boot_cpu_has(X86_FEATURE_PAT) to -this_cpu_has(X86_FEATURE_PAT) in pat_ap_init(), so that we check the PAT -feature on the processor that is being initialized. - -Signed-off-by: Mikulas Patocka -Cc: Andrew Morton -Cc: Andy Lutomirski -Cc: Borislav Petkov -Cc: Brian Gerst -Cc: Denys Vlasenko -Cc: H. Peter Anvin -Cc: Josh Poimboeuf -Cc: Linus Torvalds -Cc: Luis R. Rodriguez -Cc: Peter Zijlstra -Cc: Thomas Gleixner -Cc: Toshi Kani -Link: http://lkml.kernel.org/r/alpine.LRH.2.02.1704181501450.26399@file01.intranet.prod.int.rdu2.redhat.com -Signed-off-by: Ingo Molnar -Signed-off-by: Greg Kroah-Hartman - ---- - arch/x86/mm/pat.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - ---- a/arch/x86/mm/pat.c -+++ b/arch/x86/mm/pat.c -@@ -64,9 +64,11 @@ static int __init nopat(char *str) - } - early_param("nopat", nopat); - -+static bool __read_mostly __pat_initialized = false; -+ - bool pat_enabled(void) - { -- return !!__pat_enabled; -+ return __pat_initialized; - } - EXPORT_SYMBOL_GPL(pat_enabled); - -@@ -224,13 +226,14 @@ static void pat_bsp_init(u64 pat) - } - - wrmsrl(MSR_IA32_CR_PAT, pat); -+ __pat_initialized = true; - - __init_cache_modes(pat); - } - - static void pat_ap_init(u64 pat) - { -- if (!boot_cpu_has(X86_FEATURE_PAT)) { -+ if (!this_cpu_has(X86_FEATURE_PAT)) { - /* - * If this happens we are on a secondary CPU, but switched to - * PAT on the boot CPU. We have no way to undo PAT. -@@ -305,7 +308,7 @@ void pat_init(void) - u64 pat; - struct cpuinfo_x86 *c = &boot_cpu_data; - -- if (!pat_enabled()) { -+ if (!__pat_enabled) { - init_cache_modes(); - return; - } diff --git a/queue-4.4/series b/queue-4.4/series index ef60db6793d..eb752a95ad8 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -32,6 +32,5 @@ drm-radeon-ci-disable-mclk-switching-for-high-refresh-rates-v2.patch drm-radeon-unbreak-hpd-handling-for-r600.patch pcmcia-remove-left-over-z-format.patch alsa-hda-apply-stac_9200_dell_m22-quirk-for-dell-latitude-d430.patch -x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch slub-memcg-cure-the-brainless-abuse-of-sysfs-attributes.patch drm-gma500-psb-actually-use-vbt-mode-when-it-is-found.patch diff --git a/queue-4.4/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch b/queue-4.4/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch deleted file mode 100644 index 2e3a0ef0e09..00000000000 --- a/queue-4.4/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch +++ /dev/null @@ -1,96 +0,0 @@ -From cbed27cdf0e3f7ea3b2259e86b9e34df02be3fe4 Mon Sep 17 00:00:00 2001 -From: Mikulas Patocka -Date: Tue, 18 Apr 2017 15:07:11 -0400 -Subject: x86/PAT: Fix Xorg regression on CPUs that don't support PAT - -From: Mikulas Patocka - -commit cbed27cdf0e3f7ea3b2259e86b9e34df02be3fe4 upstream. - -In the file arch/x86/mm/pat.c, there's a '__pat_enabled' variable. The -variable is set to 1 by default and the function pat_init() sets -__pat_enabled to 0 if the CPU doesn't support PAT. - -However, on AMD K6-3 CPUs, the processor initialization code never calls -pat_init() and so __pat_enabled stays 1 and the function pat_enabled() -returns true, even though the K6-3 CPU doesn't support PAT. - -The result of this bug is that a kernel warning is produced when attempting to -start the Xserver and the Xserver doesn't start (fork() returns ENOMEM). -Another symptom of this bug is that the framebuffer driver doesn't set the -K6-3 MTRR registers: - - x86/PAT: Xorg:3891 map pfn expected mapping type uncached-minus for [mem 0xe4000000-0xe5ffffff], got write-combining - ------------[ cut here ]------------ - WARNING: CPU: 0 PID: 3891 at arch/x86/mm/pat.c:1020 untrack_pfn+0x5c/0x9f - ... - x86/PAT: Xorg:3891 map pfn expected mapping type uncached-minus for [mem 0xe4000000-0xe5ffffff], got write-combining - -To fix the bug change pat_enabled() so that it returns true only if PAT -initialization was actually done. - -Also, I changed boot_cpu_has(X86_FEATURE_PAT) to -this_cpu_has(X86_FEATURE_PAT) in pat_ap_init(), so that we check the PAT -feature on the processor that is being initialized. - -Signed-off-by: Mikulas Patocka -Cc: Andrew Morton -Cc: Andy Lutomirski -Cc: Borislav Petkov -Cc: Brian Gerst -Cc: Denys Vlasenko -Cc: H. Peter Anvin -Cc: Josh Poimboeuf -Cc: Linus Torvalds -Cc: Luis R. Rodriguez -Cc: Peter Zijlstra -Cc: Thomas Gleixner -Cc: Toshi Kani -Link: http://lkml.kernel.org/r/alpine.LRH.2.02.1704181501450.26399@file01.intranet.prod.int.rdu2.redhat.com -Signed-off-by: Ingo Molnar -Signed-off-by: Greg Kroah-Hartman - ---- - arch/x86/mm/pat.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - ---- a/arch/x86/mm/pat.c -+++ b/arch/x86/mm/pat.c -@@ -64,9 +64,11 @@ static int __init nopat(char *str) - } - early_param("nopat", nopat); - -+static bool __read_mostly __pat_initialized = false; -+ - bool pat_enabled(void) - { -- return !!__pat_enabled; -+ return __pat_initialized; - } - EXPORT_SYMBOL_GPL(pat_enabled); - -@@ -224,13 +226,14 @@ static void pat_bsp_init(u64 pat) - } - - wrmsrl(MSR_IA32_CR_PAT, pat); -+ __pat_initialized = true; - - __init_cache_modes(pat); - } - - static void pat_ap_init(u64 pat) - { -- if (!boot_cpu_has(X86_FEATURE_PAT)) { -+ if (!this_cpu_has(X86_FEATURE_PAT)) { - /* - * If this happens we are on a secondary CPU, but switched to - * PAT on the boot CPU. We have no way to undo PAT. -@@ -305,7 +308,7 @@ void pat_init(void) - u64 pat; - struct cpuinfo_x86 *c = &boot_cpu_data; - -- if (!pat_enabled()) { -+ if (!__pat_enabled) { - init_cache_modes(); - return; - } diff --git a/queue-4.9/series b/queue-4.9/series index 6b11d05fac2..1b3c8812ee4 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -58,7 +58,6 @@ drm-radeon-unbreak-hpd-handling-for-r600.patch drm-radeon-fix-vram_size-visible-values-in-drm_radeon_gem_info-ioctl.patch pcmcia-remove-left-over-z-format.patch alsa-hda-apply-stac_9200_dell_m22-quirk-for-dell-latitude-d430.patch -x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch x86-boot-use-cross_compile-prefix-for-readelf.patch ksm-prevent-crash-after-write_protect_page-fails.patch slub-memcg-cure-the-brainless-abuse-of-sysfs-attributes.patch diff --git a/queue-4.9/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch b/queue-4.9/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch deleted file mode 100644 index 2e3a0ef0e09..00000000000 --- a/queue-4.9/x86-pat-fix-xorg-regression-on-cpus-that-don-t-support-pat.patch +++ /dev/null @@ -1,96 +0,0 @@ -From cbed27cdf0e3f7ea3b2259e86b9e34df02be3fe4 Mon Sep 17 00:00:00 2001 -From: Mikulas Patocka -Date: Tue, 18 Apr 2017 15:07:11 -0400 -Subject: x86/PAT: Fix Xorg regression on CPUs that don't support PAT - -From: Mikulas Patocka - -commit cbed27cdf0e3f7ea3b2259e86b9e34df02be3fe4 upstream. - -In the file arch/x86/mm/pat.c, there's a '__pat_enabled' variable. The -variable is set to 1 by default and the function pat_init() sets -__pat_enabled to 0 if the CPU doesn't support PAT. - -However, on AMD K6-3 CPUs, the processor initialization code never calls -pat_init() and so __pat_enabled stays 1 and the function pat_enabled() -returns true, even though the K6-3 CPU doesn't support PAT. - -The result of this bug is that a kernel warning is produced when attempting to -start the Xserver and the Xserver doesn't start (fork() returns ENOMEM). -Another symptom of this bug is that the framebuffer driver doesn't set the -K6-3 MTRR registers: - - x86/PAT: Xorg:3891 map pfn expected mapping type uncached-minus for [mem 0xe4000000-0xe5ffffff], got write-combining - ------------[ cut here ]------------ - WARNING: CPU: 0 PID: 3891 at arch/x86/mm/pat.c:1020 untrack_pfn+0x5c/0x9f - ... - x86/PAT: Xorg:3891 map pfn expected mapping type uncached-minus for [mem 0xe4000000-0xe5ffffff], got write-combining - -To fix the bug change pat_enabled() so that it returns true only if PAT -initialization was actually done. - -Also, I changed boot_cpu_has(X86_FEATURE_PAT) to -this_cpu_has(X86_FEATURE_PAT) in pat_ap_init(), so that we check the PAT -feature on the processor that is being initialized. - -Signed-off-by: Mikulas Patocka -Cc: Andrew Morton -Cc: Andy Lutomirski -Cc: Borislav Petkov -Cc: Brian Gerst -Cc: Denys Vlasenko -Cc: H. Peter Anvin -Cc: Josh Poimboeuf -Cc: Linus Torvalds -Cc: Luis R. Rodriguez -Cc: Peter Zijlstra -Cc: Thomas Gleixner -Cc: Toshi Kani -Link: http://lkml.kernel.org/r/alpine.LRH.2.02.1704181501450.26399@file01.intranet.prod.int.rdu2.redhat.com -Signed-off-by: Ingo Molnar -Signed-off-by: Greg Kroah-Hartman - ---- - arch/x86/mm/pat.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - ---- a/arch/x86/mm/pat.c -+++ b/arch/x86/mm/pat.c -@@ -64,9 +64,11 @@ static int __init nopat(char *str) - } - early_param("nopat", nopat); - -+static bool __read_mostly __pat_initialized = false; -+ - bool pat_enabled(void) - { -- return !!__pat_enabled; -+ return __pat_initialized; - } - EXPORT_SYMBOL_GPL(pat_enabled); - -@@ -224,13 +226,14 @@ static void pat_bsp_init(u64 pat) - } - - wrmsrl(MSR_IA32_CR_PAT, pat); -+ __pat_initialized = true; - - __init_cache_modes(pat); - } - - static void pat_ap_init(u64 pat) - { -- if (!boot_cpu_has(X86_FEATURE_PAT)) { -+ if (!this_cpu_has(X86_FEATURE_PAT)) { - /* - * If this happens we are on a secondary CPU, but switched to - * PAT on the boot CPU. We have no way to undo PAT. -@@ -305,7 +308,7 @@ void pat_init(void) - u64 pat; - struct cpuinfo_x86 *c = &boot_cpu_data; - -- if (!pat_enabled()) { -+ if (!__pat_enabled) { - init_cache_modes(); - return; - }