Commit 174f1b90 authored by Ashok Raj's avatar Ashok Raj Committed by Borislav Petkov (AMD)

x86/microcode/intel: Pass the microcode revision to print_ucode_info() directly

print_ucode_info() takes a struct ucode_cpu_info pointer as parameter.
Its sole purpose is to print the microcode revision.

The only available ucode_cpu_info always describes the currently loaded
microcode revision. After a microcode update is successful, this is the
new revision, or on failure it is the original revision.

In preparation for future changes, replace the struct ucode_cpu_info
pointer parameter with a plain integer which contains the revision
number and adjust the call sites accordingly.

No functional change.

  [ bp:
    - Fix + cleanup commit message.
    - Revert arbitrary, unrelated change.
  ]
Signed-off-by: default avatarAshok Raj <ashok.raj@intel.com>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20230120161923.118882-5-ashok.raj@intel.com
parent 6eab3aba
...@@ -308,11 +308,10 @@ static bool load_builtin_intel_microcode(struct cpio_data *cp) ...@@ -308,11 +308,10 @@ static bool load_builtin_intel_microcode(struct cpio_data *cp)
/* /*
* Print ucode update info. * Print ucode update info.
*/ */
static void static void print_ucode_info(unsigned int new_rev, unsigned int date)
print_ucode_info(struct ucode_cpu_info *uci, unsigned int date)
{ {
pr_info_once("microcode updated early to revision 0x%x, date = %04x-%02x-%02x\n", pr_info_once("microcode updated early to revision 0x%x, date = %04x-%02x-%02x\n",
uci->cpu_sig.rev, new_rev,
date & 0xffff, date & 0xffff,
date >> 24, date >> 24,
(date >> 16) & 0xff); (date >> 16) & 0xff);
...@@ -332,7 +331,7 @@ void show_ucode_info_early(void) ...@@ -332,7 +331,7 @@ void show_ucode_info_early(void)
if (delay_ucode_info) { if (delay_ucode_info) {
intel_cpu_collect_info(&uci); intel_cpu_collect_info(&uci);
print_ucode_info(&uci, current_mc_date); print_ucode_info(uci.cpu_sig.rev, current_mc_date);
delay_ucode_info = 0; delay_ucode_info = 0;
} }
} }
...@@ -341,33 +340,22 @@ void show_ucode_info_early(void) ...@@ -341,33 +340,22 @@ void show_ucode_info_early(void)
* At this point, we can not call printk() yet. Delay printing microcode info in * At this point, we can not call printk() yet. Delay printing microcode info in
* show_ucode_info_early() until printk() works. * show_ucode_info_early() until printk() works.
*/ */
static void print_ucode(struct ucode_cpu_info *uci) static void print_ucode(int new_rev, int date)
{ {
struct microcode_intel *mc;
int *delay_ucode_info_p; int *delay_ucode_info_p;
int *current_mc_date_p; int *current_mc_date_p;
mc = uci->mc;
if (!mc)
return;
delay_ucode_info_p = (int *)__pa_nodebug(&delay_ucode_info); delay_ucode_info_p = (int *)__pa_nodebug(&delay_ucode_info);
current_mc_date_p = (int *)__pa_nodebug(&current_mc_date); current_mc_date_p = (int *)__pa_nodebug(&current_mc_date);
*delay_ucode_info_p = 1; *delay_ucode_info_p = 1;
*current_mc_date_p = mc->hdr.date; *current_mc_date_p = date;
} }
#else #else
static inline void print_ucode(struct ucode_cpu_info *uci) static inline void print_ucode(int new_rev, int date)
{ {
struct microcode_intel *mc; print_ucode_info(new_rev, date);
mc = uci->mc;
if (!mc)
return;
print_ucode_info(uci, mc->hdr.date);
} }
#endif #endif
...@@ -407,9 +395,9 @@ static int apply_microcode_early(struct ucode_cpu_info *uci, bool early) ...@@ -407,9 +395,9 @@ static int apply_microcode_early(struct ucode_cpu_info *uci, bool early)
uci->cpu_sig.rev = rev; uci->cpu_sig.rev = rev;
if (early) if (early)
print_ucode(uci); print_ucode(uci->cpu_sig.rev, mc->hdr.date);
else else
print_ucode_info(uci, mc->hdr.date); print_ucode_info(uci->cpu_sig.rev, mc->hdr.date);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment