On Sun, May 26, 2019 at 10:32:29AM +0300, Evalds Iodzevics wrote: > Hi, sorry for super long delay i was a little bit busy but i finally > got time to work this out in full. > This applies to 4.4 and 4.9. > > Intel requires CPUID eax=1 for microcode operations, microcode > routines use sync_core() for this. > Back in December of 2016 Andy Lutomirski submitted few patches > https://lore.kernel.org/lkml/cover.1481307769.git.luto@xxxxxxxxxx/ > > Second patch does not apply to 4.4 and 4.9 as it is revert > > Unfortunately only the first one got backported to 4.4 and 4.9 and > broke microcode early loading on 32 bit platforms because it always > jumps past cpuid in sync_core() as data structure boot_cpu_data are > not populated so early in code. > > Thanks to Your recent backport of 4167709bbf826512a52ebd6aafda2be104adaec9 > the only place that uses sync_core() is > arch/x86/include/microcode_intel.h it should use native_cpuid_eax(1) > as in original Boris submitt. > To make this work we should apply > 5dedade6dfa243c130b85d1e4daba6f027805033 witch defines > native_cpuid_eax and others. > > As for c198b121b1a1d7a7171770c634cd49191bac4477 i think it is a good > idea to include this as sync_core in present state behaves differently > depending on call time, those compiler warnings can be ignored, on > older compiler they are not generated and this compiles fine. I tested > it on GCC 5.5 Can you submit the proper patches backported as a series so that I can queue them up correctly? thanks, greg k-h