Re: AMD microcode loading broken on 32 bit

From: Borislav Petkov
Date: Tue Jan 28 2014 - 18:22:42 EST


On Tue, Jan 28, 2014 at 06:10:59PM -0500, Boris Ostrovsky wrote:
> The patch seems to have fixed the problem.

Thanks, I'll add your Reported-and-tested-by.

>> I'll give it a spin. Apparently the problem is currently in
>> install_equiv_cpu_table() when we are trying to index into buf and
>> buf (which is container) doesn't appear to be there.

Yes.

> >Are you sure that
> >
> > container = (u8 *)(__va((u32)relocated_ramdisk) +
> > ((u32)container -
> >boot_params.hdr.ramdisk_image));
> >
> >in save_microcode_in_initrd_amd() always results in a valid
> >pointer? It is non-NULL but it
> >points to address that looks to be not mapped.

Well, we unconditionally relocate the ramdisk to direct-mapped memory,
see relocate_initrd(). I'll take a look at this tomorrow though, it is
late here.

The good thing is, I can reproduce the initial crash you reported in
qemu+kvm which makes everything very easy to play with. :)

--
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/