1
0
Fork 0
alistair23-linux/drivers/cpufreq
Johannes Weiner 6915719b36 cpufreq: Initialise default governor before use
When the cpufreq driver starts up at boot time, it calls into the default
governor which might not be initialised yet.  This hurts when the
governor's worker function relies on memory that is not yet set up by its
init function.

This migrates all governors from module_init() to fs_initcall() when being
the default, as was already done in cpufreq_performance when it was the
only possible choice.  The performance governor is always initialized early
because it might be used as fallback even when not being the default.

Fixes at least one actual oops where ondemand is the default governor and
cpufreq_governor_dbs() uses the uninitialised kondemand_wq work-queue
during boot-time.

Signed-off-by: Johannes Weiner <hannes@saeurebad.de>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-17 15:38:58 -08:00
..
Kconfig [CPUFREQ] allow ondemand and conservative cpufreq governors to be used as default 2007-10-04 18:40:57 -04:00
Makefile [CPUFREQ] Conservative cpufreq governer 2005-05-31 19:03:47 -07:00
cpufreq.c cpufreq: fix missing unlocks in cpufreq_add_dev error paths. 2007-12-17 19:28:16 -08:00
cpufreq_conservative.c cpufreq: Initialise default governor before use 2008-01-17 15:38:58 -08:00
cpufreq_ondemand.c cpufreq: Initialise default governor before use 2008-01-17 15:38:58 -08:00
cpufreq_performance.c [CPUFREQ] Fix coding style issues in cpufreq. 2006-11-06 19:16:34 -05:00
cpufreq_powersave.c [CPUFREQ] Fix coding style issues in cpufreq. 2006-11-06 19:16:34 -05:00
cpufreq_stats.c drivers/cpufreq/cpufreq_stats.c section fix 2007-12-17 19:28:16 -08:00
cpufreq_userspace.c cpufreq: Initialise default governor before use 2008-01-17 15:38:58 -08:00
freq_table.c sysfs: kill unnecessary attribute->owner 2007-07-11 16:09:06 -07:00