On Sat, Oct 20, 2018 at 07:41:36PM +0200, Borislav Petkov wrote: > Dropping stable. > > On Sat, Oct 20, 2018 at 07:41:58AM -0700, Andi Kleen wrote: > > From: Andi Kleen <a...@linux.intel.com> > > > > The Intel microcode revision space is unsigned. Inside Intel there are > > special > > microcodes that have the highest bit set, and they are considered to have > > a higher revision than any microcodes that don't have this bit set. > > > > The function comparing the microcode revision in the Linux driver compares > > u32 with int, which ends up being signed extended to long on 64bit > > systems. This results in these highest bit set microcode revision not > > loading > > because their revision appears negative and smaller than the > > existing microcode. > > > > Change the comparison to unsigned. With that the loading works > > as expected. > > > > Cc: sta...@vger.kernel.org # Any supported stable > > Signed-off-by: Andi Kleen <a...@linux.intel.com> > > -- > > v2: White space changes. > > --- > > arch/x86/kernel/cpu/microcode/intel.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/arch/x86/kernel/cpu/microcode/intel.c > > b/arch/x86/kernel/cpu/microcode/intel.c > > index 16936a24795c..e54d402500d3 100644 > > --- a/arch/x86/kernel/cpu/microcode/intel.c > > +++ b/arch/x86/kernel/cpu/microcode/intel.c > > @@ -93,7 +93,8 @@ static int find_matching_signature(void *mc, unsigned int > > csig, int cpf) > > /* > > * Returns 1 if update has been found, 0 otherwise. > > */ > > -static int has_newer_microcode(void *mc, unsigned int csig, int cpf, int > > new_rev) > > +static int has_newer_microcode(void *mc, unsigned int csig, int cpf, > > + unsigned new_rev) > > { > > struct microcode_header_intel *mc_hdr = mc; > > > > -- > > Please incorporate all review comments before sending a new version of > your patch.
I replaced one more microcodes with microcodes revisions if that is what you meant. -Andi