cpufreq/intel_pstate: Fix an annoying !CONFIG_SMP warning
Subsystems (2)
PATCH 1/1 cpufreq/intel_pstate: Fix an annoying !CONFIG_SMP warning
From: Borislav Petkov <[email protected]>
I keep seeing
drivers/cpufreq/intel_pstate.c: In function ‘intel_pstate_init’:
drivers/cpufreq/intel_pstate.c:1187:26: warning: initialization from incompatible pointer type
struct cpuinfo_x86 *c = &boot_cpu_data;
when doing randconfig builds.
This is caused by the fact that when !CONFIG_SMP, asm/processor.h defines cpu_info to boot_cpu_data and the local variable
struct cpu_defaults *cpu_info
overshadows it leading to this unfortunate assignment in the preprocessed source:
struct cpu_defaults *boot_cpu_data;
struct cpuinfo_x86 *c = &boot_cpu_data;
Rename the local variable and use static_cpu_has_safe() which alleviates the need for defining a local cpuinfo_x86 pointer.
--- drivers/cpufreq/intel_pstate.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
drivers/cpufreq/intel_pstate.c +6 -6
@@ -31,6 +31,7 @@#include <asm/div64.h> #include <asm/msr.h> #include <asm/cpu_device_id.h> +#include <asm/cpufeature.h> #define BYT_RATIOS 0x66a#define BYT_VIDS 0x66b
@@ -1183,8 +1184,7 @@ static int __init intel_pstate_init(void) {int cpu, rc =0 ;const struct x86_cpu_id *id; -struct cpu_defaults *cpu_info; -struct cpuinfo_x86 *c = &boot_cpu_data; +struct cpu_defaults *cpu_def;if (no_load)return -ENODEV ;
@@ -1200,10 +1200,10 @@ static int __init intel_pstate_init(void)if (intel_pstate_platform_pwr_mgmt_exists ())return -ENODEV ; - cpu_info = (struct cpu_defaults *)id->driver_data; + cpu_def = (struct cpu_defaults *)id->driver_data; -copy_pid_params (&cpu_info->pid_policy); -copy_cpu_funcs (&cpu_info->funcs); +copy_pid_params (&cpu_def->pid_policy); +copy_cpu_funcs (&cpu_def->funcs);if (intel_pstate_msrs_not_valid ())return -ENODEV ;
@@ -1214,7 +1214,7 @@ static int __init intel_pstate_init(void)if (!all_cpu_data)return -ENOMEM ; -if (cpu_has (c,X86_FEATURE_HWP ) && !no_hwp) +if (static_cpu_has_safe (X86_FEATURE_HWP ) && !no_hwp)intel_pstate_hwp_enable ();if (!hwp_active && hwp_only)
Signature · 1 line
2.3.3
Quoted 15 lines · Borislav Petkov
From: Borislav Petkov <[email protected]>
I keep seeing
drivers/cpufreq/intel_pstate.c: In function ‘intel_pstate_init’:
drivers/cpufreq/intel_pstate.c:1187:26: warning: initialization from incompatible pointer typestruct cpuinfo_x86 *c = &boot_cpu_data;when doing randconfig builds.
This is caused by the fact that when !CONFIG_SMP,
asm/processor.hdefinescpu_infotoboot_cpu_dataand the local variablestruct
cpu_defaults*cpu_info
Quoted 8 lines
overshadows it leading to this unfortunate assignment in the preprocessed source:
struct
cpu_defaults*boot_cpu_data;
structcpuinfo_x86*c =&boot_cpu_data;Rename the local variable and use
static_cpu_has_safe()which alleviates the need for defining a localcpuinfo_x86pointer.
Kristen, any comments here?
Quoted 55 lines
Signed-off-by Borislav Petkov <[email protected]>Cc Kristen Carlson Accardi <[email protected]>Cc "Rafael J. Wysocki" <[email protected]>Cc Viresh Kumar <[email protected]>--- drivers/cpufreq/intel_pstate.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)drivers/cpufreq/intel_pstate.c +6
-6@@ -31,6 +31,7 @@#include <asm/div64.h> #include <asm/msr.h> #include <asm/cpu_device_id.h> +#include <asm/cpufeature.h> #define BYT_RATIOS 0x66a#define BYT_VIDS 0x66b@@ -1183,8 +1184,7 @@ static int __init intel_pstate_init(void) {int cpu, rc =0 ;const struct x86_cpu_id *id; -struct cpu_defaults *cpu_info; -struct cpuinfo_x86 *c = &boot_cpu_data; +struct cpu_defaults *cpu_def;if (no_load)return -ENODEV ;@@ -1200,10 +1200,10 @@ static int __init intel_pstate_init(void)if (intel_pstate_platform_pwr_mgmt_exists ())return -ENODEV ; - cpu_info = (struct cpu_defaults *)id->driver_data; + cpu_def = (struct cpu_defaults *)id->driver_data; -copy_pid_params (&cpu_info->pid_policy); -copy_cpu_funcs (&cpu_info->funcs); +copy_pid_params (&cpu_def->pid_policy); +copy_cpu_funcs (&cpu_def->funcs);if (intel_pstate_msrs_not_valid ())return -ENODEV ;@@ -1214,7 +1214,7 @@ static int __init intel_pstate_init(void)if (!all_cpu_data)return -ENOMEM ; -if (cpu_has (c,X86_FEATURE_HWP ) && !no_hwp) +if (static_cpu_has_safe (X86_FEATURE_HWP ) && !no_hwp)intel_pstate_hwp_enable ();if (!hwp_active && hwp_only)
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Kristen Carlson Accardi
Acked-byQuoted 19 lines · On Sat, 11 Apr 2015 02:22:03 +0200 "Rafael J. Wysocki" <[email protected]>…
Quoted 18 lines · Borislav Petkov
From: Borislav Petkov <[email protected]>
I keep seeing
drivers/cpufreq/intel_pstate.c: In function ‘intel_pstate_init’:
drivers/cpufreq/intel_pstate.c:1187:26: warning: initialization from incompatible pointer typestruct cpuinfo_x86 *c = &boot_cpu_data;when doing randconfig builds.
This is caused by the fact that when !CONFIG_SMP,
asm/processor.hdefinescpu_infotoboot_cpu_dataand the local variablestruct
cpu_defaults*cpu_infoovershadows it leading to this unfortunate assignment in the preprocessed source:
Quoted 7 lines
Quoted 5 lines
struct
cpu_defaults*boot_cpu_data;
structcpuinfo_x86*c =&boot_cpu_data;Rename the local variable and use
static_cpu_has_safe()which alleviates the need for defining a localcpuinfo_x86pointer.Kristen, any comments here?
Seems fine to me.
Quoted 57 lines
Quoted 56 lines
Signed-off-by Borislav Petkov <[email protected]>Cc Kristen Carlson Accardi <[email protected]>Cc "Rafael J. Wysocki" <[email protected]>Cc Viresh Kumar <[email protected]>--- drivers/cpufreq/intel_pstate.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)drivers/cpufreq/intel_pstate.c +6
-6@@ -31,6 +31,7 @@#include <asm/div64.h> #include <asm/msr.h> #include <asm/cpu_device_id.h> +#include <asm/cpufeature.h> #define BYT_RATIOS 0x66a#define BYT_VIDS 0x66b@@ -1183,8 +1184,7 @@ static int __init intel_pstate_init(void) {int cpu, rc =0 ;const struct x86_cpu_id *id; -struct cpu_defaults *cpu_info; -struct cpuinfo_x86 *c = &boot_cpu_data; +struct cpu_defaults *cpu_def;if (no_load)return -ENODEV ;@@ -1200,10 +1200,10 @@ static int __init intel_pstate_init(void)if (intel_pstate_platform_pwr_mgmt_exists ())return -ENODEV ; - cpu_info = (struct cpu_defaults *)id->driver_data; + cpu_def = (struct cpu_defaults *)id->driver_data; -copy_pid_params (&cpu_info->pid_policy); -copy_cpu_funcs (&cpu_info->funcs); +copy_pid_params (&cpu_def->pid_policy); +copy_cpu_funcs (&cpu_def->funcs);if (intel_pstate_msrs_not_valid ())return -ENODEV ;@@ -1214,7 +1214,7 @@ static int __init intel_pstate_init(void)if (!all_cpu_data)return -ENOMEM ; -if (cpu_has (c,X86_FEATURE_HWP ) && !no_hwp) +if (static_cpu_has_safe (X86_FEATURE_HWP ) && !no_hwp)intel_pstate_hwp_enable ();if (!hwp_active && hwp_only)