Re: [PATCH] KVM: allow host header to be included even for !CONFIG_KVM

From: Kevin Hilman
Date: Fri May 17 2013 - 10:09:50 EST


Frederic Weisbecker <fweisbec@xxxxxxxxx> writes:

> On Thu, May 16, 2013 at 12:52:03AM +0200, Frederic Weisbecker wrote:
>> On Mon, Mar 25, 2013 at 02:14:20PM -0700, Kevin Hilman wrote:
>> > Gleb Natapov <gleb@xxxxxxxxxx> writes:
>> >
>> > > On Sun, Mar 24, 2013 at 02:44:26PM +0100, Frederic Weisbecker wrote:
>> > >> 2013/3/21 Gleb Natapov <gleb@xxxxxxxxxx>:
>> > >> > Isn't is simpler for kernel/context_tracking.c to define empty
>> > >> > __guest_enter()/__guest_exit() if !CONFIG_KVM.
>> > >>
>> > >> That doesn't look right. Off-cases are usually handled from the
>> > >> headers, right? So that we avoid iffdeffery ugliness in core code.
>> > > Lets put it in linux/context_tracking.h header then.
>> >
>> > Here's a version to do that.
>> >
>> > Kevin
>> >
>> > From d9d909394479dd7ff90b7bddb95a564945406719 Mon Sep 17 00:00:00 2001
>> > From: Kevin Hilman <khilman@xxxxxxxxxx>
>> > Date: Mon, 25 Mar 2013 14:12:41 -0700
>> > Subject: [PATCH v2] ontext_tracking: fix !CONFIG_KVM compile: add stub guest
>> > enter/exit
>>
>> Sorry for my very delayed response...
>>
>> >
>> > When KVM is not enabled, or not available on a platform, the KVM
>> > headers should not be included. Instead, just define stub
>> > __guest_[enter|exit] functions.
>>
>> May be it would be cleaner to move guest_enter/exit definitions altogether
>> in linux/context_tracking.h
>>
>> After all that's where the implementation mostly belong to.
>>
>> Let me see if I can get that in shape.
>
> Does the following work for you?

Nope.

Since it still includs kvm_host.h on non-KVM builds, there is potential
for problems. For example, on ARM (v3.10-rc1 + this patch) has this
build error:

CC kernel/context_tracking.o
In file included from /work/kernel/linaro/nohz/arch/arm/include/asm/kvm_host.h:41:0,
from /work/kernel/linaro/nohz/include/linux/kvm_host.h:34,
from /work/kernel/linaro/nohz/kernel/context_tracking.c:18:
/work/kernel/linaro/nohz/arch/arm/include/asm/kvm_vgic.h:38:6: warning: "CONFIG_KVM_ARM_MAX_VCPUS" is not defined [-Wundef]
In file included from /work/kernel/linaro/nohz/arch/arm/include/asm/kvm_host.h:41:0,
from /work/kernel/linaro/nohz/include/linux/kvm_host.h:34,
from /work/kernel/linaro/nohz/kernel/context_tracking.c:18:
/work/kernel/linaro/nohz/arch/arm/include/asm/kvm_vgic.h:59:11: error: 'CONFIG_KVM_ARM_MAX_VCPUS' undeclared here (not in a function)

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/