mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
cpu/speculation: Uninline and export CPU mitigations helpers
A kernel module may need to check the value of the "mitigations=" kernel command line parameter as part of its setup when the module needs to perform software mitigations for a CPU flaw. Uninline and export the helper functions surrounding the cpu_mitigations enum to allow for their usage from a module. Lastly, privatize the enum and cpu_mitigations variable since the value of cpu_mitigations can be checked with the exported helper functions. Signed-off-by: Tyler Hicks <tyhicks@canonical.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
cad14885a8
commit
731dc9df97
2 changed files with 28 additions and 24 deletions
|
@ -218,28 +218,7 @@ static inline int cpuhp_smt_enable(void) { return 0; }
|
||||||
static inline int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval) { return 0; }
|
static inline int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval) { return 0; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
extern bool cpu_mitigations_off(void);
|
||||||
* These are used for a global "mitigations=" cmdline option for toggling
|
extern bool cpu_mitigations_auto_nosmt(void);
|
||||||
* optional CPU mitigations.
|
|
||||||
*/
|
|
||||||
enum cpu_mitigations {
|
|
||||||
CPU_MITIGATIONS_OFF,
|
|
||||||
CPU_MITIGATIONS_AUTO,
|
|
||||||
CPU_MITIGATIONS_AUTO_NOSMT,
|
|
||||||
};
|
|
||||||
|
|
||||||
extern enum cpu_mitigations cpu_mitigations;
|
|
||||||
|
|
||||||
/* mitigations=off */
|
|
||||||
static inline bool cpu_mitigations_off(void)
|
|
||||||
{
|
|
||||||
return cpu_mitigations == CPU_MITIGATIONS_OFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* mitigations=auto,nosmt */
|
|
||||||
static inline bool cpu_mitigations_auto_nosmt(void)
|
|
||||||
{
|
|
||||||
return cpu_mitigations == CPU_MITIGATIONS_AUTO_NOSMT;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _LINUX_CPU_H_ */
|
#endif /* _LINUX_CPU_H_ */
|
||||||
|
|
27
kernel/cpu.c
27
kernel/cpu.c
|
@ -2373,7 +2373,18 @@ void __init boot_cpu_hotplug_init(void)
|
||||||
this_cpu_write(cpuhp_state.state, CPUHP_ONLINE);
|
this_cpu_write(cpuhp_state.state, CPUHP_ONLINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum cpu_mitigations cpu_mitigations __ro_after_init = CPU_MITIGATIONS_AUTO;
|
/*
|
||||||
|
* These are used for a global "mitigations=" cmdline option for toggling
|
||||||
|
* optional CPU mitigations.
|
||||||
|
*/
|
||||||
|
enum cpu_mitigations {
|
||||||
|
CPU_MITIGATIONS_OFF,
|
||||||
|
CPU_MITIGATIONS_AUTO,
|
||||||
|
CPU_MITIGATIONS_AUTO_NOSMT,
|
||||||
|
};
|
||||||
|
|
||||||
|
static enum cpu_mitigations cpu_mitigations __ro_after_init =
|
||||||
|
CPU_MITIGATIONS_AUTO;
|
||||||
|
|
||||||
static int __init mitigations_parse_cmdline(char *arg)
|
static int __init mitigations_parse_cmdline(char *arg)
|
||||||
{
|
{
|
||||||
|
@ -2390,3 +2401,17 @@ static int __init mitigations_parse_cmdline(char *arg)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
early_param("mitigations", mitigations_parse_cmdline);
|
early_param("mitigations", mitigations_parse_cmdline);
|
||||||
|
|
||||||
|
/* mitigations=off */
|
||||||
|
bool cpu_mitigations_off(void)
|
||||||
|
{
|
||||||
|
return cpu_mitigations == CPU_MITIGATIONS_OFF;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(cpu_mitigations_off);
|
||||||
|
|
||||||
|
/* mitigations=auto,nosmt */
|
||||||
|
bool cpu_mitigations_auto_nosmt(void)
|
||||||
|
{
|
||||||
|
return cpu_mitigations == CPU_MITIGATIONS_AUTO_NOSMT;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(cpu_mitigations_auto_nosmt);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue