On 05/30/17 at 04:24pm, Arnd Bergmann wrote: > On Tue, May 30, 2017 at 3:56 PM, Baoquan He <b...@redhat.com> wrote: > > On 05/30/17 at 11:14am, Arnd Bergmann wrote: > >> The decompressor has its own implementation of the string functions, > >> but has to include the right header to get those, while implicitly > >> including linux/string.h may result in a link error: > >> > >> arch/x86/boot/compressed/kaslr.o: In function `choose_random_location': > >> kaslr.c:(.text+0xf51): undefined reference to `_mmx_memcpy' > >> > >> This has appeared now as kaslr started using memcpy. Other files in the > >> decompressor already do the same thing. > >> > >> Fixes: d52e7d5a952c ("x86/KASLR: Parse all 'memmap=' boot option entries") > >> Signed-off-by: Arnd Bergmann <a...@arndb.de> > > > > Thanks for this fix, Arnd! > > > > The linking error didn't happen when I tested the patch of d52e7d5a952c. > > Could you tell in what condition it will be triggered? Not sure if I > > should wait for this fix being merged and do a back porting, or can > > defer it if it's not risky. > > It only happens on 32-bit kernels with CONFIG_X86_USE_3DNOW, maybe > there are additional requirements.
Checked code again, in commit d52e7d5a952c "#include "../boot.h" is removed. Not sure if that removal caused the 32-bit kernel link error. While I didn't see boot/string.h is included into the boot/boot.h.