| .. | .. |
|---|
| 682 | 682 | extern void load_fixmap_gdt(int); |
|---|
| 683 | 683 | extern void load_percpu_segment(int); |
|---|
| 684 | 684 | extern void cpu_init(void); |
|---|
| 685 | +extern void cpu_init_secondary(void); |
|---|
| 685 | 686 | extern void cpu_init_exception_handling(void); |
|---|
| 686 | 687 | extern void cr4_init(void); |
|---|
| 687 | 688 | |
|---|
| .. | .. |
|---|
| 807 | 808 | #ifdef CONFIG_CPU_SUP_AMD |
|---|
| 808 | 809 | extern u16 amd_get_nb_id(int cpu); |
|---|
| 809 | 810 | extern u32 amd_get_nodes_per_socket(void); |
|---|
| 811 | +extern bool cpu_has_ibpb_brtype_microcode(void); |
|---|
| 812 | +extern void amd_clear_divider(void); |
|---|
| 810 | 813 | #else |
|---|
| 811 | 814 | static inline u16 amd_get_nb_id(int cpu) { return 0; } |
|---|
| 812 | 815 | static inline u32 amd_get_nodes_per_socket(void) { return 0; } |
|---|
| 816 | +static inline bool cpu_has_ibpb_brtype_microcode(void) { return false; } |
|---|
| 817 | +static inline void amd_clear_divider(void) { } |
|---|
| 813 | 818 | #endif |
|---|
| 814 | 819 | |
|---|
| 815 | 820 | static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves) |
|---|
| .. | .. |
|---|
| 838 | 843 | #define xen_set_default_idle 0 |
|---|
| 839 | 844 | #endif |
|---|
| 840 | 845 | |
|---|
| 841 | | -void stop_this_cpu(void *dummy); |
|---|
| 842 | | -void microcode_check(void); |
|---|
| 846 | +void __noreturn stop_this_cpu(void *dummy); |
|---|
| 847 | +void microcode_check(struct cpuinfo_x86 *prev_info); |
|---|
| 848 | +void store_cpu_caps(struct cpuinfo_x86 *info); |
|---|
| 843 | 849 | |
|---|
| 844 | 850 | enum l1tf_mitigations { |
|---|
| 845 | 851 | L1TF_MITIGATION_OFF, |
|---|
| .. | .. |
|---|
| 858 | 864 | MDS_MITIGATION_VMWERV, |
|---|
| 859 | 865 | }; |
|---|
| 860 | 866 | |
|---|
| 867 | +extern bool gds_ucode_mitigated(void); |
|---|
| 868 | + |
|---|
| 861 | 869 | #endif /* _ASM_X86_PROCESSOR_H */ |
|---|