.. | .. |
---|
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 */ |
---|