Instead of explicitly calling cache_ap_init() in identify_secondary_cpu() use a CPU hotplug callback instead. By registering the callback only after having started the non-boot CPUs and initializing cache_aps_delayed_init with "true", calling set_cache_aps_delayed_init() at boot time can be dropped. It should be noted that this change results in cache_ap_init() being called a little bit later when hotplugging CPUs. By using a new hotplug slot right at the start of the low level bringup this is not problematic, as no operations requiring a specific caching mode are performed that early in CPU initialization. Suggested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lore.kernel.org/r/20221102074713.21493-15-jgross@suse.com Signed-off-by: Borislav Petkov <bp@suse.de>
22 lines
616 B
C
22 lines
616 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _ASM_X86_CACHEINFO_H
|
|
#define _ASM_X86_CACHEINFO_H
|
|
|
|
/* Kernel controls MTRR and/or PAT MSRs. */
|
|
extern unsigned int memory_caching_control;
|
|
#define CACHE_MTRR 0x01
|
|
#define CACHE_PAT 0x02
|
|
|
|
void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu);
|
|
void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu);
|
|
|
|
void cache_disable(void);
|
|
void cache_enable(void);
|
|
void set_cache_aps_delayed_init(bool val);
|
|
bool get_cache_aps_delayed_init(void);
|
|
void cache_bp_init(void);
|
|
void cache_bp_restore(void);
|
|
void cache_aps_init(void);
|
|
|
|
#endif /* _ASM_X86_CACHEINFO_H */
|