|
@@ -123,7 +123,7 @@ static struct cpuidle_state *cpuidle_state_table;
|
|
|
* which is also the index into the MWAIT hint array.
|
|
|
* Thus C0 is a dummy.
|
|
|
*/
|
|
|
-static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
+static struct cpuidle_state nehalem_cstates[] __initdata = {
|
|
|
{
|
|
|
.name = "C1-NHM",
|
|
|
.desc = "MWAIT 0x00",
|
|
@@ -156,7 +156,7 @@ static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
.enter = NULL }
|
|
|
};
|
|
|
|
|
|
-static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
+static struct cpuidle_state snb_cstates[] __initdata = {
|
|
|
{
|
|
|
.name = "C1-SNB",
|
|
|
.desc = "MWAIT 0x00",
|
|
@@ -196,7 +196,7 @@ static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
.enter = NULL }
|
|
|
};
|
|
|
|
|
|
-static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
+static struct cpuidle_state ivb_cstates[] __initdata = {
|
|
|
{
|
|
|
.name = "C1-IVB",
|
|
|
.desc = "MWAIT 0x00",
|
|
@@ -236,7 +236,7 @@ static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
.enter = NULL }
|
|
|
};
|
|
|
|
|
|
-static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
+static struct cpuidle_state hsw_cstates[] __initdata = {
|
|
|
{
|
|
|
.name = "C1-HSW",
|
|
|
.desc = "MWAIT 0x00",
|
|
@@ -297,7 +297,7 @@ static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
.enter = NULL }
|
|
|
};
|
|
|
|
|
|
-static struct cpuidle_state atom_cstates[CPUIDLE_STATE_MAX] = {
|
|
|
+static struct cpuidle_state atom_cstates[] __initdata = {
|
|
|
{
|
|
|
.name = "C1E-ATM",
|
|
|
.desc = "MWAIT 0x00",
|
|
@@ -490,7 +490,7 @@ MODULE_DEVICE_TABLE(x86cpu, intel_idle_ids);
|
|
|
/*
|
|
|
* intel_idle_probe()
|
|
|
*/
|
|
|
-static int intel_idle_probe(void)
|
|
|
+static int __init intel_idle_probe(void)
|
|
|
{
|
|
|
unsigned int eax, ebx, ecx;
|
|
|
const struct x86_cpu_id *id;
|
|
@@ -558,7 +558,7 @@ static void intel_idle_cpuidle_devices_uninit(void)
|
|
|
* intel_idle_cpuidle_driver_init()
|
|
|
* allocate, initialize cpuidle_states
|
|
|
*/
|
|
|
-static int intel_idle_cpuidle_driver_init(void)
|
|
|
+static int __init intel_idle_cpuidle_driver_init(void)
|
|
|
{
|
|
|
int cstate;
|
|
|
struct cpuidle_driver *drv = &intel_idle_driver;
|
|
@@ -628,7 +628,7 @@ static int intel_idle_cpu_init(int cpu)
|
|
|
int num_substates, mwait_hint, mwait_cstate, mwait_substate;
|
|
|
|
|
|
if (cpuidle_state_table[cstate].enter == NULL)
|
|
|
- continue;
|
|
|
+ break;
|
|
|
|
|
|
if (cstate + 1 > max_cstate) {
|
|
|
printk(PREFIX "max_cstate %d reached\n", max_cstate);
|