提交 d733689a 编写于 作者: B Borislav Petkov 提交者: 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: NBorislav Petkov <borislav.petkov@amd.com>
上级 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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册