Commit d733689a authored by Borislav Petkov's avatar Borislav Petkov Committed by Borislav Petkov

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: default avatarBorislav Petkov <borislav.petkov@amd.com>
parent be62adb4
......@@ -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();
......
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