Commit 99c63221435963e0cee2402686ba99293c2ffa9e

Authored by Len Brown
1 parent 3b70b2e5fc

x86 idle APM: deprecate CONFIG_APM_CPU_IDLE

We don't want to export the pm_idle function pointer to modules.
Currently CONFIG_APM_CPU_IDLE w/ CONFIG_APM_MODULE forces us to.

CONFIG_APM_CPU_IDLE is of dubious value, it runs only on 32-bit
uniprocessor laptops that are over 10 years old.  It calls into
the BIOS during idle, and is known to cause a number of machines
to fail.

Removing CONFIG_APM_CPU_IDLE and will allow us to stop exporting
pm_idle.  Any systems that were calling into the APM BIOS
at run-time will simply use HLT instead.

cc: x86@kernel.org
cc: Jiri Kosina <jkosina@suse.cz>
cc: stable@kernel.org # .39.x
Signed-off-by: Len Brown <len.brown@intel.com>

Showing 2 changed files with 12 additions and 0 deletions Side-by-side Diff

Documentation/feature-removal-schedule.txt
... ... @@ -14,6 +14,16 @@
14 14  
15 15 ---------------------------
16 16  
  17 +What: CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle
  18 +When: 2012
  19 +Why: This optional sub-feature of APM is of dubious reliability,
  20 + and ancient APM laptops are likely better served by calling HLT.
  21 + Deleting CONFIG_APM_CPU_IDLE allows x86 to stop exporting
  22 + the pm_idle function pointer to modules.
  23 +Who: Len Brown <len.brown@intel.com>
  24 +
  25 +----------------------------
  26 +
17 27 What: PRISM54
18 28 When: 2.6.34
19 29  
arch/x86/kernel/apm_32.c
... ... @@ -359,6 +359,7 @@
359 359 * idle percentage above which bios idle calls are done
360 360 */
361 361 #ifdef CONFIG_APM_CPU_IDLE
  362 +#warning deprecated CONFIG_APM_CPU_IDLE will be deleted in 2012
362 363 #define DEFAULT_IDLE_THRESHOLD 95
363 364 #else
364 365 #define DEFAULT_IDLE_THRESHOLD 100
... ... @@ -902,6 +903,7 @@
902 903 unsigned int jiffies_since_last_check = jiffies - last_jiffies;
903 904 unsigned int bucket;
904 905  
  906 + WARN_ONCE(1, "deprecated apm_cpu_idle will be deleted in 2012");
905 907 recalc:
906 908 if (jiffies_since_last_check > IDLE_CALC_LIMIT) {
907 909 use_apm_idle = 0;