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: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20230120161923.118882-5-ashok.raj@intel.com
This commit is contained in:
committed by
Borislav Petkov (AMD)
parent
6eab3abac7
commit
174f1b909a
@@ -308,11 +308,10 @@ static bool load_builtin_intel_microcode(struct cpio_data *cp)
|
||||
/*
|
||||
* Print ucode update info.
|
||||
*/
|
||||
static void
|
||||
print_ucode_info(struct ucode_cpu_info *uci, unsigned int date)
|
||||
static void print_ucode_info(unsigned int new_rev, unsigned int date)
|
||||
{
|
||||
pr_info_once("microcode updated early to revision 0x%x, date = %04x-%02x-%02x\n",
|
||||
uci->cpu_sig.rev,
|
||||
new_rev,
|
||||
date & 0xffff,
|
||||
date >> 24,
|
||||
(date >> 16) & 0xff);
|
||||
@@ -332,7 +331,7 @@ void show_ucode_info_early(void)
|
||||
|
||||
if (delay_ucode_info) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -341,33 +340,22 @@ void show_ucode_info_early(void)
|
||||
* At this point, we can not call printk() yet. Delay printing microcode info in
|
||||
* 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 *current_mc_date_p;
|
||||
|
||||
mc = uci->mc;
|
||||
if (!mc)
|
||||
return;
|
||||
|
||||
delay_ucode_info_p = (int *)__pa_nodebug(&delay_ucode_info);
|
||||
current_mc_date_p = (int *)__pa_nodebug(¤t_mc_date);
|
||||
|
||||
*delay_ucode_info_p = 1;
|
||||
*current_mc_date_p = mc->hdr.date;
|
||||
*current_mc_date_p = date;
|
||||
}
|
||||
#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;
|
||||
|
||||
mc = uci->mc;
|
||||
if (!mc)
|
||||
return;
|
||||
|
||||
print_ucode_info(uci, mc->hdr.date);
|
||||
print_ucode_info(new_rev, date);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -407,9 +395,9 @@ static int apply_microcode_early(struct ucode_cpu_info *uci, bool early)
|
||||
uci->cpu_sig.rev = rev;
|
||||
|
||||
if (early)
|
||||
print_ucode(uci);
|
||||
print_ucode(uci->cpu_sig.rev, mc->hdr.date);
|
||||
else
|
||||
print_ucode_info(uci, mc->hdr.date);
|
||||
print_ucode_info(uci->cpu_sig.rev, mc->hdr.date);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user