File tree Expand file tree Collapse file tree 6 files changed +16
-38
lines changed Expand file tree Collapse file tree 6 files changed +16
-38
lines changed Original file line number Diff line number Diff line change @@ -1123,7 +1123,8 @@ config X86_REBOOTFIXUPS
1123
1123
Say N otherwise.
1124
1124
1125
1125
config MICROCODE
1126
- tristate "CPU microcode loading support"
1126
+ bool "CPU microcode loading support"
1127
+ default y
1127
1128
depends on CPU_SUP_AMD || CPU_SUP_INTEL
1128
1129
select FW_LOADER
1129
1130
---help---
@@ -1174,7 +1175,7 @@ config MICROCODE_AMD_EARLY
1174
1175
1175
1176
config MICROCODE_EARLY
1176
1177
bool "Early load microcode"
1177
- depends on MICROCODE=y && BLK_DEV_INITRD
1178
+ depends on MICROCODE && BLK_DEV_INITRD
1178
1179
select MICROCODE_INTEL_EARLY if MICROCODE_INTEL
1179
1180
select MICROCODE_AMD_EARLY if MICROCODE_AMD
1180
1181
default y
Original file line number Diff line number Diff line change @@ -55,6 +55,12 @@ struct ucode_cpu_info {
55
55
};
56
56
extern struct ucode_cpu_info ucode_cpu_info [];
57
57
58
+ #ifdef CONFIG_MICROCODE
59
+ int __init microcode_init (void );
60
+ #else
61
+ static inline int __init microcode_init (void ) { return 0 ; };
62
+ #endif
63
+
58
64
#ifdef CONFIG_MICROCODE_INTEL
59
65
extern struct microcode_ops * __init init_intel_microcode (void );
60
66
#else
Original file line number Diff line number Diff line change @@ -523,7 +523,7 @@ static struct microcode_ops microcode_amd_ops = {
523
523
524
524
struct microcode_ops * __init init_amd_microcode (void )
525
525
{
526
- struct cpuinfo_x86 * c = & cpu_data ( 0 ) ;
526
+ struct cpuinfo_x86 * c = & boot_cpu_data ;
527
527
528
528
if (c -> x86_vendor != X86_VENDOR_AMD || c -> x86 < 0x10 ) {
529
529
pr_warning ("AMD CPU family 0x%x not supported\n" , c -> x86 );
Original file line number Diff line number Diff line change @@ -487,9 +487,9 @@ static struct attribute_group cpu_root_microcode_group = {
487
487
.attrs = cpu_root_microcode_attrs ,
488
488
};
489
489
490
- static int __init microcode_init (void )
490
+ int __init microcode_init (void )
491
491
{
492
- struct cpuinfo_x86 * c = & cpu_data ( 0 ) ;
492
+ struct cpuinfo_x86 * c = & boot_cpu_data ;
493
493
int error ;
494
494
495
495
if (paravirt_enabled () || dis_ucode_ldr )
@@ -560,35 +560,3 @@ static int __init microcode_init(void)
560
560
return error ;
561
561
562
562
}
563
- module_init (microcode_init );
564
-
565
- static void __exit microcode_exit (void )
566
- {
567
- struct cpuinfo_x86 * c = & cpu_data (0 );
568
-
569
- microcode_dev_exit ();
570
-
571
- unregister_hotcpu_notifier (& mc_cpu_notifier );
572
- unregister_syscore_ops (& mc_syscore_ops );
573
-
574
- sysfs_remove_group (& cpu_subsys .dev_root -> kobj ,
575
- & cpu_root_microcode_group );
576
-
577
- get_online_cpus ();
578
- mutex_lock (& microcode_mutex );
579
-
580
- subsys_interface_unregister (& mc_cpu_interface );
581
-
582
- mutex_unlock (& microcode_mutex );
583
- put_online_cpus ();
584
-
585
- platform_device_unregister (microcode_pdev );
586
-
587
- microcode_ops = NULL ;
588
-
589
- if (c -> x86_vendor == X86_VENDOR_AMD )
590
- exit_amd_microcode ();
591
-
592
- pr_info ("Microcode Update Driver: v" MICROCODE_VERSION " removed.\n" );
593
- }
594
- module_exit (microcode_exit );
Original file line number Diff line number Diff line change @@ -264,7 +264,7 @@ static struct microcode_ops microcode_intel_ops = {
264
264
265
265
struct microcode_ops * __init init_intel_microcode (void )
266
266
{
267
- struct cpuinfo_x86 * c = & cpu_data ( 0 ) ;
267
+ struct cpuinfo_x86 * c = & boot_cpu_data ;
268
268
269
269
if (c -> x86_vendor != X86_VENDOR_INTEL || c -> x86 < 6 ||
270
270
cpu_has (c , X86_FEATURE_IA64 )) {
Original file line number Diff line number Diff line change 111
111
#include <asm/mce.h>
112
112
#include <asm/alternative.h>
113
113
#include <asm/prom.h>
114
+ #include <asm/microcode.h>
114
115
115
116
/*
116
117
* max_low_pfn_mapped: highest direct mapped pfn under 4GB
@@ -1239,6 +1240,8 @@ void __init setup_arch(char **cmdline_p)
1239
1240
if (efi_enabled (EFI_BOOT ))
1240
1241
efi_apply_memmap_quirks ();
1241
1242
#endif
1243
+
1244
+ microcode_init ();
1242
1245
}
1243
1246
1244
1247
#ifdef CONFIG_X86_32
You can’t perform that action at this time.
0 commit comments