From 47bb021b79b211ec738da2bd2b9c2d98f630483b Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mar 17 2016 16:45:58 +0000 Subject: Add temporary patch to fix intel_pstate oops and lockdep report on various atom based CPUs. --- diff --git a/0001-Temp-fix-for-intel_pstate-oopses-and-lockdep-report-.patch b/0001-Temp-fix-for-intel_pstate-oopses-and-lockdep-report-.patch new file mode 100644 index 0000000..b28878e --- /dev/null +++ b/0001-Temp-fix-for-intel_pstate-oopses-and-lockdep-report-.patch @@ -0,0 +1,52 @@ +From e2fea58e57993ab2ed011eb35a034507347336ed Mon Sep 17 00:00:00 2001 +From: "Rafael J. Wysocki" +Date: Thu, 17 Mar 2016 15:07:16 +0100 +Subject: [PATCH] Temp fix for intel_pstate oopses and lockdep report with + Linux v4.5-1822-g63e30271b04c + +On Thursday, March 17, 2016 09:02:29 AM Josh Boyer wrote: +> Hello, + +Hi, + +> I have an Intel Atom based NUC that is producing the following +> backtraces on boot of Linus' tree as of last evening. This does not +> happen with a tree with top level commit 271ecc5253e2, but does happen +> when using the tree mentioned in the subject with top level commit +> 63e30271b04c. +> +> The first backtrace appears to be a warning because the intel_pstate +> driver is calling wrmsrl_on_cpu when interrupts are disabled? Not +> sure on that one. +> +> The second backtrace is a lockdep report. Both are from the same boot. + +OK, thanks for the report. + +Can you please try the patch below? + +I'm actually unsure if we can do that safely in general for Atom because +of the initialization, but that's what Core does anyway. + +Srinivas, Philippe, why exactly do we need the wrmsrl_on_cpu() in +atom_set_pstate()? core_set_pstate() uses wrmsrl() and seems to be doing fine. +--- + drivers/cpufreq/intel_pstate.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c +index cb5607495816..32d5d6456290 100644 +--- a/drivers/cpufreq/intel_pstate.c ++++ b/drivers/cpufreq/intel_pstate.c +@@ -587,7 +587,7 @@ static void atom_set_pstate(struct cpudata *cpudata, int pstate) + + val |= vid; + +- wrmsrl_on_cpu(cpudata->cpu, MSR_IA32_PERF_CTL, val); ++ wrmsrl(MSR_IA32_PERF_CTL, val); + } + + static int silvermont_get_scaling(void) +-- +2.5.0 + diff --git a/kernel.spec b/kernel.spec index 85d931b..77d2326 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -622,6 +622,8 @@ Patch665: netfilter-x_tables-deal-with-bogus-nextoffset-values.patch #CVE-2016-3135 rhbz 1318172 1318270 Patch666: ipv4-Dont-do-expensive-useless-work-during-inetdev-des.patch +Patch667: 0001-Temp-fix-for-intel_pstate-oopses-and-lockdep-report-.patch + # END OF PATCH DEFINITIONS %endif @@ -2143,6 +2145,10 @@ fi # # %changelog +* Thu Mar 17 2016 Josh Boyer +- Add temporary patch to fix intel_pstate oops and lockdep report on + various atom based CPUs. + * Thu Mar 17 2016 Josh Boyer - 4.6.0-0.rc0.git7.1 - Linux v4.5-2535-g09fd671ccb24 - fbdev, media, libnvdimm, dm, scsi, ibft merges