aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/microcode
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2016-02-03 06:33:35 -0500
committerIngo Molnar <mingo@kernel.org>2016-02-09 05:41:16 -0500
commitbd6fe58d8e60d45c80ed664a55ef0df5fa076014 (patch)
tree8b8c6c471c04a8f86cd1a842e9670504b699fab0 /arch/x86/kernel/cpu/microcode
parenta58017c62b5fa23e532b731e70a63ded54cc2c02 (diff)
x86/microcode/intel: Rename local variables of type struct mc_saved_data
So it is always a head-twister when trying to stare at code which has a bunch of struct mc_saved_data *mc_saved_data; local function variables *and* a global mc_saved_data of the same name. Rename all locals to "mcs" to differentiate from the global one. No functionality change. Tested-by: Thomas Voegtle <tv@lio96.de> Signed-off-by: Borislav Petkov <bp@suse.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/1454499225-21544-8-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/cpu/microcode')
-rw-r--r--arch/x86/kernel/cpu/microcode/intel.c58
1 files changed, 27 insertions, 31 deletions
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index f4bc5fe00d46..4af30bee2161 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -89,42 +89,39 @@ copy_initrd_ptrs(struct microcode_intel **mc_saved, unsigned long *initrd,
89 89
90#ifdef CONFIG_X86_32 90#ifdef CONFIG_X86_32
91static void 91static void
92microcode_phys(struct microcode_intel **mc_saved_tmp, 92microcode_phys(struct microcode_intel **mc_saved_tmp, struct mc_saved_data *mcs)
93 struct mc_saved_data *mc_saved_data)
94{ 93{
95 int i; 94 int i;
96 struct microcode_intel ***mc_saved; 95 struct microcode_intel ***mc_saved;
97 96
98 mc_saved = (struct microcode_intel ***) 97 mc_saved = (struct microcode_intel ***)__pa_nodebug(&mcs->mc_saved);
99 __pa_nodebug(&mc_saved_data->mc_saved); 98
100 for (i = 0; i < mc_saved_data->mc_saved_count; i++) { 99 for (i = 0; i < mcs->mc_saved_count; i++) {
101 struct microcode_intel *p; 100 struct microcode_intel *p;
102 101
103 p = *(struct microcode_intel **) 102 p = *(struct microcode_intel **)__pa_nodebug(mcs->mc_saved + i);
104 __pa_nodebug(mc_saved_data->mc_saved + i);
105 mc_saved_tmp[i] = (struct microcode_intel *)__pa_nodebug(p); 103 mc_saved_tmp[i] = (struct microcode_intel *)__pa_nodebug(p);
106 } 104 }
107} 105}
108#endif 106#endif
109 107
110static enum ucode_state 108static enum ucode_state
111load_microcode(struct mc_saved_data *mc_saved_data, unsigned long *initrd, 109load_microcode(struct mc_saved_data *mcs, unsigned long *initrd,
112 unsigned long initrd_start, struct ucode_cpu_info *uci) 110 unsigned long initrd_start, struct ucode_cpu_info *uci)
113{ 111{
114 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT]; 112 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT];
115 unsigned int count = mc_saved_data->mc_saved_count; 113 unsigned int count = mcs->mc_saved_count;
116 114
117 if (!mc_saved_data->mc_saved) { 115 if (!mcs->mc_saved) {
118 copy_initrd_ptrs(mc_saved_tmp, initrd, initrd_start, count); 116 copy_initrd_ptrs(mc_saved_tmp, initrd, initrd_start, count);
119 117
120 return load_microcode_early(mc_saved_tmp, count, uci); 118 return load_microcode_early(mc_saved_tmp, count, uci);
121 } else { 119 } else {
122#ifdef CONFIG_X86_32 120#ifdef CONFIG_X86_32
123 microcode_phys(mc_saved_tmp, mc_saved_data); 121 microcode_phys(mc_saved_tmp, mcs);
124 return load_microcode_early(mc_saved_tmp, count, uci); 122 return load_microcode_early(mc_saved_tmp, count, uci);
125#else 123#else
126 return load_microcode_early(mc_saved_data->mc_saved, 124 return load_microcode_early(mcs->mc_saved, count, uci);
127 count, uci);
128#endif 125#endif
129 } 126 }
130} 127}
@@ -175,7 +172,7 @@ matching_model_microcode(struct microcode_header_intel *mc_header,
175} 172}
176 173
177static int 174static int
178save_microcode(struct mc_saved_data *mc_saved_data, 175save_microcode(struct mc_saved_data *mcs,
179 struct microcode_intel **mc_saved_src, 176 struct microcode_intel **mc_saved_src,
180 unsigned int mc_saved_count) 177 unsigned int mc_saved_count)
181{ 178{
@@ -219,8 +216,8 @@ save_microcode(struct mc_saved_data *mc_saved_data,
219 /* 216 /*
220 * Point to newly saved microcode. 217 * Point to newly saved microcode.
221 */ 218 */
222 mc_saved_data->mc_saved = saved_ptr; 219 mcs->mc_saved = saved_ptr;
223 mc_saved_data->mc_saved_count = mc_saved_count; 220 mcs->mc_saved_count = mc_saved_count;
224 221
225 return 0; 222 return 0;
226 223
@@ -286,7 +283,7 @@ static unsigned int _save_mc(struct microcode_intel **mc_saved,
286static enum ucode_state __init 283static enum ucode_state __init
287get_matching_model_microcode(int cpu, unsigned long start, 284get_matching_model_microcode(int cpu, unsigned long start,
288 void *data, size_t size, 285 void *data, size_t size,
289 struct mc_saved_data *mc_saved_data, 286 struct mc_saved_data *mcs,
290 unsigned long *mc_saved_in_initrd, 287 unsigned long *mc_saved_in_initrd,
291 struct ucode_cpu_info *uci) 288 struct ucode_cpu_info *uci)
292{ 289{
@@ -296,7 +293,7 @@ get_matching_model_microcode(int cpu, unsigned long start,
296 unsigned int mc_size; 293 unsigned int mc_size;
297 struct microcode_header_intel *mc_header; 294 struct microcode_header_intel *mc_header;
298 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT]; 295 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT];
299 unsigned int mc_saved_count = mc_saved_data->mc_saved_count; 296 unsigned int mc_saved_count = mcs->mc_saved_count;
300 int i; 297 int i;
301 298
302 while (leftover && mc_saved_count < ARRAY_SIZE(mc_saved_tmp)) { 299 while (leftover && mc_saved_count < ARRAY_SIZE(mc_saved_tmp)) {
@@ -342,7 +339,7 @@ get_matching_model_microcode(int cpu, unsigned long start,
342 for (i = 0; i < mc_saved_count; i++) 339 for (i = 0; i < mc_saved_count; i++)
343 mc_saved_in_initrd[i] = (unsigned long)mc_saved_tmp[i] - start; 340 mc_saved_in_initrd[i] = (unsigned long)mc_saved_tmp[i] - start;
344 341
345 mc_saved_data->mc_saved_count = mc_saved_count; 342 mcs->mc_saved_count = mc_saved_count;
346out: 343out:
347 return state; 344 return state;
348} 345}
@@ -536,7 +533,7 @@ static bool __init load_builtin_intel_microcode(struct cpio_data *cp)
536 533
537static __initdata char ucode_name[] = "kernel/x86/microcode/GenuineIntel.bin"; 534static __initdata char ucode_name[] = "kernel/x86/microcode/GenuineIntel.bin";
538static __init enum ucode_state 535static __init enum ucode_state
539scan_microcode(struct mc_saved_data *mc_saved_data, unsigned long *initrd, 536scan_microcode(struct mc_saved_data *mcs, unsigned long *initrd,
540 unsigned long start, unsigned long size, 537 unsigned long start, unsigned long size,
541 struct ucode_cpu_info *uci) 538 struct ucode_cpu_info *uci)
542{ 539{
@@ -562,7 +559,7 @@ scan_microcode(struct mc_saved_data *mc_saved_data, unsigned long *initrd,
562 } 559 }
563 560
564 return get_matching_model_microcode(0, start, cd.data, cd.size, 561 return get_matching_model_microcode(0, start, cd.data, cd.size,
565 mc_saved_data, initrd, uci); 562 mcs, initrd, uci);
566} 563}
567 564
568/* 565/*
@@ -702,8 +699,7 @@ int __init save_microcode_in_initrd_intel(void)
702} 699}
703 700
704static void __init 701static void __init
705_load_ucode_intel_bsp(struct mc_saved_data *mc_saved_data, 702_load_ucode_intel_bsp(struct mc_saved_data *mcs, unsigned long *initrd,
706 unsigned long *initrd,
707 unsigned long start, unsigned long size) 703 unsigned long start, unsigned long size)
708{ 704{
709 struct ucode_cpu_info uci; 705 struct ucode_cpu_info uci;
@@ -711,11 +707,11 @@ _load_ucode_intel_bsp(struct mc_saved_data *mc_saved_data,
711 707
712 collect_cpu_info_early(&uci); 708 collect_cpu_info_early(&uci);
713 709
714 ret = scan_microcode(mc_saved_data, initrd, start, size, &uci); 710 ret = scan_microcode(mcs, initrd, start, size, &uci);
715 if (ret != UCODE_OK) 711 if (ret != UCODE_OK)
716 return; 712 return;
717 713
718 ret = load_microcode(mc_saved_data, initrd, start, &uci); 714 ret = load_microcode(mcs, initrd, start, &uci);
719 if (ret != UCODE_OK) 715 if (ret != UCODE_OK)
720 return; 716 return;
721 717
@@ -750,28 +746,28 @@ void __init load_ucode_intel_bsp(void)
750 746
751void load_ucode_intel_ap(void) 747void load_ucode_intel_ap(void)
752{ 748{
753 struct mc_saved_data *mc_saved_data_p;
754 struct ucode_cpu_info uci;
755 unsigned long *mc_saved_in_initrd_p; 749 unsigned long *mc_saved_in_initrd_p;
750 struct mc_saved_data *mcs_p;
751 struct ucode_cpu_info uci;
756 enum ucode_state ret; 752 enum ucode_state ret;
757#ifdef CONFIG_X86_32 753#ifdef CONFIG_X86_32
758 754
759 mc_saved_in_initrd_p = (unsigned long *)__pa_nodebug(mc_saved_in_initrd); 755 mc_saved_in_initrd_p = (unsigned long *)__pa_nodebug(mc_saved_in_initrd);
760 mc_saved_data_p = (struct mc_saved_data *)__pa_nodebug(&mc_saved_data); 756 mcs_p = (struct mc_saved_data *)__pa_nodebug(&mc_saved_data);
761#else 757#else
762 mc_saved_in_initrd_p = mc_saved_in_initrd; 758 mc_saved_in_initrd_p = mc_saved_in_initrd;
763 mc_saved_data_p = &mc_saved_data; 759 mcs_p = &mc_saved_data;
764#endif 760#endif
765 761
766 /* 762 /*
767 * If there is no valid ucode previously saved in memory, no need to 763 * If there is no valid ucode previously saved in memory, no need to
768 * update ucode on this AP. 764 * update ucode on this AP.
769 */ 765 */
770 if (mc_saved_data_p->mc_saved_count == 0) 766 if (mcs_p->mc_saved_count == 0)
771 return; 767 return;
772 768
773 collect_cpu_info_early(&uci); 769 collect_cpu_info_early(&uci);
774 ret = load_microcode(mc_saved_data_p, mc_saved_in_initrd_p, 770 ret = load_microcode(mcs_p, mc_saved_in_initrd_p,
775 get_initrd_start_addr(), &uci); 771 get_initrd_start_addr(), &uci);
776 772
777 if (ret != UCODE_OK) 773 if (ret != UCODE_OK)