Re: compiling with kvm-kmod

Jan Kiszka
2014-01-24T13:03:18Z

On 2014-01-24 13:39, Jonas Pfoh wrote:
> Thanks for the quick fix, I found that the modules build, but I still have a problem loading the module due to the fact that kvm_vfio_ops remains undefined in the kvm module. Below is the patch that I used to fix the issue if it is helpful.

Yes, indeed - can you send it as proper patch (subject, brief reason,
signed-off)? Then I could merge directly.

Thanks,
Jan

>
> -Jonas
>
> ----
>
> diff --git a/x86/Kbuild b/x86/Kbuild
> index d75b756..637b3b1 100644
> --- a/x86/Kbuild
> +++ b/x86/Kbuild
> @@ -1,7 +1,7 @@
> obj-m := kvm.o kvm-intel.o kvm-amd.o
> kvm-objs := kvm_main.o x86.o mmu.o emulate.o irq.o i8259.o pmu.o \
> lapic.o ioapic.o preempt.o i8254.o coalesced_mmio.o irq_comm.o \
> - eventfd.o compat-x86.o async_pf.o cpuid.o irqchip.o \
> + eventfd.o compat-x86.o async_pf.o cpuid.o irqchip.o vfio.o\
> ../external-module-compat.o
> ifeq ($(CONFIG_IOMMU_API)$(CONFIG_PCI),yy)
> kvm-objs += assigned-dev.o iommu.o
>
> On 23.01.2014 19:19, Jan Kiszka wrote:
>> On 2014-01-23 17:34, Jonas Pfoh wrote:
>>> Hello,
>>>
>>> I am currently working on a project involving KVM and have been making use Jan's kvm-kmod repository. I receive the below error when I attempt to compile with the most recent version. My question is simply if this is something anyone is aware of or has any suggestions for before I go poking around?
>>>
>>> I am compiling against a 3.13.0 mainline vanilla kernel and am using the master branch (3d923a3) of Jan's kvm-kmod repo which seems to be syncing from kvm commit 7650b68.
>>>
>>> Thanks and regards,
>>> Jonas Pfoh
>>>
>>> make -C /lib/modules/3.13.0/build M=`pwd` \
>>> LINUXINCLUDE="-I`pwd`/include -I`pwd`/include/uapi -Iinclude \
>>> -Iinclude/uapi -Iarch/x86/include -Iarch/x86/include/uapi \
>>> -Iinclude/generated/uapi -Iarch/x86/include/generated \
>>> -Iarch/x86/include/generated/uapi \
>>> -I`pwd`/include-compat -I`pwd`/x86 \
>>> -include include/generated/autoconf.h \
>>> -include `pwd`/x86/external-module-compat.h" \
>>> "$@"
>>> make[1]: Entering directory `/usr/src/linux-3.13'
>>> CC [M] /local/repos/kvm-kmod/x86/svm.o
>>> In file included from include/linux/device.h:29:0,
>>> from include/linux/node.h:17,
>>> from include/linux/cpu.h:16,
>>> from /local/repos/kvm-kmod/x86/../external-module-compat-comm.h:15,
>>> from /local/repos/kvm-kmod/x86/external-module-compat.h:45,
>>> from <command-line>:0:
>>> include/linux/gfp.h: In function ‘gfp_zonelist’:
>>> include/linux/gfp.h:272:2: error: implicit declaration of function ‘IS_ENABLED’ [-Werror=implicit-function-declaration]
>>> if (IS_ENABLED(CONFIG_NUMA) && unlikely(flags & __GFP_THISNODE))
>>> ^
>>> cc1: some warnings being treated as errors
>>> make[3]: *** [/local/repos/kvm-kmod/x86/svm.o] Error 1
>>> make[2]: *** [/local/repos/kvm-kmod/x86] Error 2
>>> make[1]: *** [_module_/local/repos/kvm-kmod] Error 2
>>> make[1]: Leaving directory `/usr/src/linux-3.13'
>>> make: *** [all] Error 2
>>
>> That's likely a kernel issue: not all required headers are pulled by gfp.h.
>>
>> It's worked around now with 2b06046.
>>
>> Thanks,
>> Jan
>>

--
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux