x86, microcode, AMD: Exit early on success
Once we've found and validated the ucode patch for the current CPU, there's no need to iterate over the remaining patches in the binary image. Exit then and save us a bunch of cycles. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
This commit is contained in:
parent
be62adb492
commit
d733689ad5
|
@ -282,11 +282,11 @@ generic_load_microcode(int cpu, const u8 *data, size_t size)
|
|||
mc_hdr = patch;
|
||||
new_mc = patch;
|
||||
new_rev = mc_hdr->patch_id;
|
||||
leftover -= mc_size;
|
||||
} else {
|
||||
ucode_ptr += current_size;
|
||||
leftover -= current_size;
|
||||
goto out_ok;
|
||||
}
|
||||
|
||||
ucode_ptr += current_size;
|
||||
leftover -= current_size;
|
||||
}
|
||||
|
||||
if (!new_mc) {
|
||||
|
@ -294,15 +294,11 @@ generic_load_microcode(int cpu, const u8 *data, size_t size)
|
|||
goto free_table;
|
||||
}
|
||||
|
||||
if (!leftover) {
|
||||
uci->mc = new_mc;
|
||||
state = UCODE_OK;
|
||||
pr_debug("CPU%d update ucode (0x%08x -> 0x%08x)\n",
|
||||
cpu, uci->cpu_sig.rev, new_rev);
|
||||
} else {
|
||||
new_mc = NULL;
|
||||
state = UCODE_ERROR;
|
||||
}
|
||||
out_ok:
|
||||
uci->mc = new_mc;
|
||||
state = UCODE_OK;
|
||||
pr_debug("CPU%d update ucode (0x%08x -> 0x%08x)\n",
|
||||
cpu, uci->cpu_sig.rev, new_rev);
|
||||
|
||||
free_table:
|
||||
free_equiv_cpu_table();
|
||||
|
|
Loading…
Reference in New Issue