在 2018年10月08日 16:00, Borislav Petkov 写道: > On Mon, Oct 08, 2018 at 03:11:56PM +0800, lijiang wrote: >> I used this ".config" to compile kernel in the attachment, and got a compile error. >> Would you like to have a try? >> >> [root@hp-dl385g10-03 linux]# make ARCH=i386 -j32 >> ...... >> LD vmlinux.o >> MODPOST vmlinux.o >> fs/proc/vmcore.o:In function ‘read_from_oldmem’: >> /home/linux/fs/proc/vmcore.c:127:undefined reference to ‘copy_oldmem_page_encrypted’ >> make: *** [vmlinux] error 1 > > Thanks, that triggered here. Ok, I guess something like this, to avoid > the ugly ifdeffery: > > --- > diff --git a/arch/x86/kernel/crash_dump_32.c b/arch/x86/kernel/crash_dump_32.c > index 33ee47670b99..8696800f2eea 100644 > --- a/arch/x86/kernel/crash_dump_32.c > +++ b/arch/x86/kernel/crash_dump_32.c > @@ -80,6 +80,16 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf, > return csize; > } > > +/* > + * 32-bit parrot version to avoid build errors. > + */ > +ssize_t copy_oldmem_page_encrypted(unsigned long pfn, char *buf, size_t csize, > + unsigned long offset, int userbuf) > +{ > + WARN_ON_ONCE(1); > + return copy_oldmem_page(pfn, buf, csize, offset, userbuf); > +} > + It looks like a good way to avoid the 'ifdefined', and it's also good enough for i386. But for other architectures, such as POWERPC/ARM..., we will also have to add the same function for every architecture. Otherwise, i guess that they also have a same compile error on other architectures. Sometimes, it's hard to make a choice. Regards, Lianbo > static int __init kdump_buf_page_init(void) > { > int ret = 0; > > >
![]() |