2016-03-19 04:55:10

by Pranith Kumar

[permalink] [raw]
Subject: [PATCH] kvm: Fix build error caused by redefinition

Build on 32-bit PPC fails with the following error:

int kvm_vfio_ops_init(void)
^
In file included from arch/powerpc/kvm/../../../virt/kvm/vfio.c:21:0:
arch/powerpc/kvm/../../../virt/kvm/vfio.h:8:90: note: previous definition of ‘kvm_vfio_ops_init’ was here
arch/powerpc/kvm/../../../virt/kvm/vfio.c:292:6: error: redefinition of ‘kvm_vfio_ops_exit’
void kvm_vfio_ops_exit(void)
^
In file included from arch/powerpc/kvm/../../../virt/kvm/vfio.c:21:0:
arch/powerpc/kvm/../../../virt/kvm/vfio.h:12:91: note: previous definition of ‘kvm_vfio_ops_exit’ was here
scripts/Makefile.build:258: recipe for target 'arch/powerpc/kvm/../../../virt/kvm/vfio.o' failed
make[3]: *** [arch/powerpc/kvm/../../../virt/kvm/vfio.o] Error 1

Fix it by enclosing the definitions within CONFIG_KVM_VFIO

Signed-off-by: Pranith Kumar <[email protected]>
---
virt/kvm/vfio.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c
index 1dd087d..201293b 100644
--- a/virt/kvm/vfio.c
+++ b/virt/kvm/vfio.c
@@ -284,6 +284,7 @@ static int kvm_vfio_create(struct kvm_device *dev, u32 type)
return 0;
}

+#ifdef CONFIG_KVM_VFIO
int kvm_vfio_ops_init(void)
{
return kvm_register_device_ops(&kvm_vfio_ops, KVM_DEV_TYPE_VFIO);
@@ -293,3 +294,4 @@ void kvm_vfio_ops_exit(void)
{
kvm_unregister_device_ops(KVM_DEV_TYPE_VFIO);
}
+#endif
--
2.7.0


2016-03-21 14:04:29

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH] kvm: Fix build error caused by redefinition



On 19/03/2016 05:54, Pranith Kumar wrote:
> Build on 32-bit PPC fails with the following error:
>
> int kvm_vfio_ops_init(void)
> ^
> In file included from arch/powerpc/kvm/../../../virt/kvm/vfio.c:21:0:
> arch/powerpc/kvm/../../../virt/kvm/vfio.h:8:90: note: previous definition of ‘kvm_vfio_ops_init’ was here
> arch/powerpc/kvm/../../../virt/kvm/vfio.c:292:6: error: redefinition of ‘kvm_vfio_ops_exit’
> void kvm_vfio_ops_exit(void)
> ^
> In file included from arch/powerpc/kvm/../../../virt/kvm/vfio.c:21:0:
> arch/powerpc/kvm/../../../virt/kvm/vfio.h:12:91: note: previous definition of ‘kvm_vfio_ops_exit’ was here
> scripts/Makefile.build:258: recipe for target 'arch/powerpc/kvm/../../../virt/kvm/vfio.o' failed
> make[3]: *** [arch/powerpc/kvm/../../../virt/kvm/vfio.o] Error 1
>
> Fix it by enclosing the definitions within CONFIG_KVM_VFIO

Please test this instead:

diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile
index 7f7b6d86ac73..eba0bea6e032 100644
--- a/arch/powerpc/kvm/Makefile
+++ b/arch/powerpc/kvm/Makefile
@@ -8,7 +8,8 @@ ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm
KVM := ../../../virt/kvm

common-objs-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o \
- $(KVM)/eventfd.o $(KVM)/vfio.o
+ $(KVM)/eventfd.o
+common-objs-$(CONFIG_KVM_VFIO) += $(KVM)/vfio.o

CFLAGS_e500_mmu.o := -I.
CFLAGS_e500_mmu_host.o := -I.


Paolo

2016-03-22 13:29:05

by Pranith Kumar

[permalink] [raw]
Subject: Re: [PATCH] kvm: Fix build error caused by redefinition


Hi Paolo,

Paolo Bonzini writes:

>
> Please test this instead:

This patch works for me. Please feel free to add:

Tested-by: Pranith Kumar <[email protected]>

>
> diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile
> index 7f7b6d86ac73..eba0bea6e032 100644
> --- a/arch/powerpc/kvm/Makefile
> +++ b/arch/powerpc/kvm/Makefile
> @@ -8,7 +8,8 @@ ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm
> KVM := ../../../virt/kvm
>
> common-objs-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o \
> - $(KVM)/eventfd.o $(KVM)/vfio.o
> + $(KVM)/eventfd.o
> +common-objs-$(CONFIG_KVM_VFIO) += $(KVM)/vfio.o
>
> CFLAGS_e500_mmu.o := -I.
> CFLAGS_e500_mmu_host.o := -I.
>
>
> Paolo


--
Pranith