Skip to content

Commit

Permalink
x86/microcode/intel: Get rid of revision_is_newer()
Browse files Browse the repository at this point in the history
It is a one-liner for checking microcode header revisions. On top of
that, it can be used wrong as it was the case in _save_mc(). Get rid of
it.

Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
  • Loading branch information
Borislav Petkov authored and Ingo Molnar committed May 6, 2015
1 parent 5198b44 commit a1a32d2
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 10 deletions.
6 changes: 0 additions & 6 deletions arch/x86/include/asm/microcode_intel.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,6 @@ extern int get_matching_microcode(unsigned int csig, int cpf, int rev, void *mc)
extern int microcode_sanity_check(void *mc, int print_err);
extern int get_matching_sig(unsigned int csig, int cpf, int rev, void *mc);

static inline int
revision_is_newer(struct microcode_header_intel *mc_header, int rev)
{
return (mc_header->rev <= rev) ? 0 : 1;
}

#ifdef CONFIG_MICROCODE_INTEL_EARLY
extern void __init load_ucode_intel_bsp(void);
extern void load_ucode_intel_ap(void);
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/cpu/microcode/intel_early.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ static unsigned int _save_mc(struct microcode_intel **mc_saved,

found = 1;

if (!revision_is_newer(mc_hdr, new_rev))
if (mc_hdr->rev <= mc_saved_hdr->rev)
continue;

/*
Expand Down
6 changes: 3 additions & 3 deletions arch/x86/kernel/cpu/microcode/intel_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,13 @@ int get_matching_sig(unsigned int csig, int cpf, int rev, void *mc)
/*
* Returns 1 if update has been found, 0 otherwise.
*/
int get_matching_microcode(unsigned int csig, int cpf, int rev, void *mc)
int get_matching_microcode(unsigned int csig, int cpf, int new_rev, void *mc)
{
struct microcode_header_intel *mc_hdr = mc;

if (!revision_is_newer(mc_hdr, rev))
if (mc_hdr->rev <= new_rev)
return 0;

return get_matching_sig(csig, cpf, rev, mc);
return get_matching_sig(csig, cpf, new_rev, mc);
}
EXPORT_SYMBOL_GPL(get_matching_microcode);

0 comments on commit a1a32d2

Please sign in to comment.