aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/microcode
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2016-02-03 06:33:36 -0500
committerIngo Molnar <mingo@kernel.org>2016-02-09 05:41:17 -0500
commit4fe9349fc3b042b481692b577bda97cde4d6f517 (patch)
tree77954a2c1691e97a352037fea926fee90ed7db3f /arch/x86/kernel/cpu/microcode
parentbd6fe58d8e60d45c80ed664a55ef0df5fa076014 (diff)
x86/microcode/intel: Rename mc_saved_count to num_saved
It is shorter and easier on the eyes. Change the "== 0" tests to "!..." while at it. 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-9-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.c61
1 files changed, 31 insertions, 30 deletions
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index 4af30bee2161..9f5fe72419ba 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -41,7 +41,7 @@
41 41
42static unsigned long mc_saved_in_initrd[MAX_UCODE_COUNT]; 42static unsigned long mc_saved_in_initrd[MAX_UCODE_COUNT];
43static struct mc_saved_data { 43static struct mc_saved_data {
44 unsigned int mc_saved_count; 44 unsigned int num_saved;
45 struct microcode_intel **mc_saved; 45 struct microcode_intel **mc_saved;
46} mc_saved_data; 46} mc_saved_data;
47 47
@@ -96,7 +96,7 @@ microcode_phys(struct microcode_intel **mc_saved_tmp, struct mc_saved_data *mcs)
96 96
97 mc_saved = (struct microcode_intel ***)__pa_nodebug(&mcs->mc_saved); 97 mc_saved = (struct microcode_intel ***)__pa_nodebug(&mcs->mc_saved);
98 98
99 for (i = 0; i < mcs->mc_saved_count; i++) { 99 for (i = 0; i < mcs->num_saved; i++) {
100 struct microcode_intel *p; 100 struct microcode_intel *p;
101 101
102 p = *(struct microcode_intel **)__pa_nodebug(mcs->mc_saved + i); 102 p = *(struct microcode_intel **)__pa_nodebug(mcs->mc_saved + i);
@@ -110,7 +110,7 @@ load_microcode(struct mc_saved_data *mcs, unsigned long *initrd,
110 unsigned long initrd_start, struct ucode_cpu_info *uci) 110 unsigned long initrd_start, struct ucode_cpu_info *uci)
111{ 111{
112 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT]; 112 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT];
113 unsigned int count = mcs->mc_saved_count; 113 unsigned int count = mcs->num_saved;
114 114
115 if (!mcs->mc_saved) { 115 if (!mcs->mc_saved) {
116 copy_initrd_ptrs(mc_saved_tmp, initrd, initrd_start, count); 116 copy_initrd_ptrs(mc_saved_tmp, initrd, initrd_start, count);
@@ -174,23 +174,23 @@ matching_model_microcode(struct microcode_header_intel *mc_header,
174static int 174static int
175save_microcode(struct mc_saved_data *mcs, 175save_microcode(struct mc_saved_data *mcs,
176 struct microcode_intel **mc_saved_src, 176 struct microcode_intel **mc_saved_src,
177 unsigned int mc_saved_count) 177 unsigned int num_saved)
178{ 178{
179 int i, j; 179 int i, j;
180 struct microcode_intel **saved_ptr; 180 struct microcode_intel **saved_ptr;
181 int ret; 181 int ret;
182 182
183 if (!mc_saved_count) 183 if (!num_saved)
184 return -EINVAL; 184 return -EINVAL;
185 185
186 /* 186 /*
187 * Copy new microcode data. 187 * Copy new microcode data.
188 */ 188 */
189 saved_ptr = kcalloc(mc_saved_count, sizeof(struct microcode_intel *), GFP_KERNEL); 189 saved_ptr = kcalloc(num_saved, sizeof(struct microcode_intel *), GFP_KERNEL);
190 if (!saved_ptr) 190 if (!saved_ptr)
191 return -ENOMEM; 191 return -ENOMEM;
192 192
193 for (i = 0; i < mc_saved_count; i++) { 193 for (i = 0; i < num_saved; i++) {
194 struct microcode_header_intel *mc_hdr; 194 struct microcode_header_intel *mc_hdr;
195 struct microcode_intel *mc; 195 struct microcode_intel *mc;
196 unsigned long size; 196 unsigned long size;
@@ -216,8 +216,8 @@ save_microcode(struct mc_saved_data *mcs,
216 /* 216 /*
217 * Point to newly saved microcode. 217 * Point to newly saved microcode.
218 */ 218 */
219 mcs->mc_saved = saved_ptr; 219 mcs->mc_saved = saved_ptr;
220 mcs->mc_saved_count = mc_saved_count; 220 mcs->num_saved = num_saved;
221 221
222 return 0; 222 return 0;
223 223
@@ -293,10 +293,10 @@ get_matching_model_microcode(int cpu, unsigned long start,
293 unsigned int mc_size; 293 unsigned int mc_size;
294 struct microcode_header_intel *mc_header; 294 struct microcode_header_intel *mc_header;
295 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT]; 295 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT];
296 unsigned int mc_saved_count = mcs->mc_saved_count; 296 unsigned int num_saved = mcs->num_saved;
297 int i; 297 int i;
298 298
299 while (leftover && mc_saved_count < ARRAY_SIZE(mc_saved_tmp)) { 299 while (leftover && num_saved < ARRAY_SIZE(mc_saved_tmp)) {
300 300
301 if (leftover < sizeof(mc_header)) 301 if (leftover < sizeof(mc_header))
302 break; 302 break;
@@ -321,7 +321,7 @@ get_matching_model_microcode(int cpu, unsigned long start,
321 continue; 321 continue;
322 } 322 }
323 323
324 mc_saved_count = _save_mc(mc_saved_tmp, ucode_ptr, mc_saved_count); 324 num_saved = _save_mc(mc_saved_tmp, ucode_ptr, num_saved);
325 325
326 ucode_ptr += mc_size; 326 ucode_ptr += mc_size;
327 } 327 }
@@ -331,15 +331,15 @@ get_matching_model_microcode(int cpu, unsigned long start,
331 goto out; 331 goto out;
332 } 332 }
333 333
334 if (mc_saved_count == 0) { 334 if (!num_saved) {
335 state = UCODE_NFOUND; 335 state = UCODE_NFOUND;
336 goto out; 336 goto out;
337 } 337 }
338 338
339 for (i = 0; i < mc_saved_count; i++) 339 for (i = 0; i < num_saved; i++)
340 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;
341 341
342 mcs->mc_saved_count = mc_saved_count; 342 mcs->num_saved = num_saved;
343out: 343out:
344 return state; 344 return state;
345} 345}
@@ -393,11 +393,11 @@ static void show_saved_mc(void)
393 unsigned int sig, pf, rev, total_size, data_size, date; 393 unsigned int sig, pf, rev, total_size, data_size, date;
394 struct ucode_cpu_info uci; 394 struct ucode_cpu_info uci;
395 395
396 if (mc_saved_data.mc_saved_count == 0) { 396 if (!mc_saved_data.num_saved) {
397 pr_debug("no microcode data saved.\n"); 397 pr_debug("no microcode data saved.\n");
398 return; 398 return;
399 } 399 }
400 pr_debug("Total microcode saved: %d\n", mc_saved_data.mc_saved_count); 400 pr_debug("Total microcode saved: %d\n", mc_saved_data.num_saved);
401 401
402 collect_cpu_info_early(&uci); 402 collect_cpu_info_early(&uci);
403 403
@@ -406,7 +406,7 @@ static void show_saved_mc(void)
406 rev = uci.cpu_sig.rev; 406 rev = uci.cpu_sig.rev;
407 pr_debug("CPU: sig=0x%x, pf=0x%x, rev=0x%x\n", sig, pf, rev); 407 pr_debug("CPU: sig=0x%x, pf=0x%x, rev=0x%x\n", sig, pf, rev);
408 408
409 for (i = 0; i < mc_saved_data.mc_saved_count; i++) { 409 for (i = 0; i < mc_saved_data.num_saved; i++) {
410 struct microcode_header_intel *mc_saved_header; 410 struct microcode_header_intel *mc_saved_header;
411 struct extended_sigtable *ext_header; 411 struct extended_sigtable *ext_header;
412 int ext_sigcount; 412 int ext_sigcount;
@@ -462,7 +462,7 @@ int save_mc_for_early(u8 *mc)
462{ 462{
463 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT]; 463 struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT];
464 unsigned int mc_saved_count_init; 464 unsigned int mc_saved_count_init;
465 unsigned int mc_saved_count; 465 unsigned int num_saved;
466 struct microcode_intel **mc_saved; 466 struct microcode_intel **mc_saved;
467 int ret = 0; 467 int ret = 0;
468 int i; 468 int i;
@@ -473,23 +473,23 @@ int save_mc_for_early(u8 *mc)
473 */ 473 */
474 mutex_lock(&x86_cpu_microcode_mutex); 474 mutex_lock(&x86_cpu_microcode_mutex);
475 475
476 mc_saved_count_init = mc_saved_data.mc_saved_count; 476 mc_saved_count_init = mc_saved_data.num_saved;
477 mc_saved_count = mc_saved_data.mc_saved_count; 477 num_saved = mc_saved_data.num_saved;
478 mc_saved = mc_saved_data.mc_saved; 478 mc_saved = mc_saved_data.mc_saved;
479 479
480 if (mc_saved && mc_saved_count) 480 if (mc_saved && num_saved)
481 memcpy(mc_saved_tmp, mc_saved, 481 memcpy(mc_saved_tmp, mc_saved,
482 mc_saved_count * sizeof(struct microcode_intel *)); 482 num_saved * sizeof(struct microcode_intel *));
483 /* 483 /*
484 * Save the microcode patch mc in mc_save_tmp structure if it's a newer 484 * Save the microcode patch mc in mc_save_tmp structure if it's a newer
485 * version. 485 * version.
486 */ 486 */
487 mc_saved_count = _save_mc(mc_saved_tmp, mc, mc_saved_count); 487 num_saved = _save_mc(mc_saved_tmp, mc, num_saved);
488 488
489 /* 489 /*
490 * Save the mc_save_tmp in global mc_saved_data. 490 * Save the mc_save_tmp in global mc_saved_data.
491 */ 491 */
492 ret = save_microcode(&mc_saved_data, mc_saved_tmp, mc_saved_count); 492 ret = save_microcode(&mc_saved_data, mc_saved_tmp, num_saved);
493 if (ret) { 493 if (ret) {
494 pr_err("Cannot save microcode patch.\n"); 494 pr_err("Cannot save microcode patch.\n");
495 goto out; 495 goto out;
@@ -681,14 +681,15 @@ static int apply_microcode_early(struct ucode_cpu_info *uci, bool early)
681 */ 681 */
682int __init save_microcode_in_initrd_intel(void) 682int __init save_microcode_in_initrd_intel(void)
683{ 683{
684 unsigned int count = mc_saved_data.mc_saved_count; 684 unsigned int count = mc_saved_data.num_saved;
685 struct microcode_intel *mc_saved[MAX_UCODE_COUNT]; 685 struct microcode_intel *mc_saved[MAX_UCODE_COUNT];
686 int ret = 0; 686 int ret = 0;
687 687
688 if (count == 0) 688 if (!count)
689 return ret; 689 return ret;
690 690
691 copy_initrd_ptrs(mc_saved, mc_saved_in_initrd, get_initrd_start(), count); 691 copy_initrd_ptrs(mc_saved, mc_saved_in_initrd, get_initrd_start(), count);
692
692 ret = save_microcode(&mc_saved_data, mc_saved, count); 693 ret = save_microcode(&mc_saved_data, mc_saved, count);
693 if (ret) 694 if (ret)
694 pr_err("Cannot save microcode patches from initrd.\n"); 695 pr_err("Cannot save microcode patches from initrd.\n");
@@ -763,7 +764,7 @@ void load_ucode_intel_ap(void)
763 * If there is no valid ucode previously saved in memory, no need to 764 * If there is no valid ucode previously saved in memory, no need to
764 * update ucode on this AP. 765 * update ucode on this AP.
765 */ 766 */
766 if (mcs_p->mc_saved_count == 0) 767 if (!mcs_p->num_saved)
767 return; 768 return;
768 769
769 collect_cpu_info_early(&uci); 770 collect_cpu_info_early(&uci);
@@ -781,13 +782,13 @@ void reload_ucode_intel(void)
781 struct ucode_cpu_info uci; 782 struct ucode_cpu_info uci;
782 enum ucode_state ret; 783 enum ucode_state ret;
783 784
784 if (!mc_saved_data.mc_saved_count) 785 if (!mc_saved_data.num_saved)
785 return; 786 return;
786 787
787 collect_cpu_info_early(&uci); 788 collect_cpu_info_early(&uci);
788 789
789 ret = load_microcode_early(mc_saved_data.mc_saved, 790 ret = load_microcode_early(mc_saved_data.mc_saved,
790 mc_saved_data.mc_saved_count, &uci); 791 mc_saved_data.num_saved, &uci);
791 if (ret != UCODE_OK) 792 if (ret != UCODE_OK)
792 return; 793 return;
793 794