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

From: Gleb Natapov
Date: Thu Mar 21 2013 - 15:16:12 EST


On Thu, Mar 21, 2013 at 01:42:34PM -0500, Scott Wood wrote:
> On 03/21/2013 09:27:14 AM, Kevin Hilman wrote:
> >Gleb Natapov <gleb@xxxxxxxxxx> writes:
> >
> >> On Wed, Mar 20, 2013 at 06:58:41PM -0500, Scott Wood wrote:
> >>> On 03/14/2013 07:13:46 PM, Kevin Hilman wrote:
> >>> >The new context tracking subsystem unconditionally includes
> >kvm_host.h
> >>> >headers for the guest enter/exit macros. This causes a compile
> >>> >failure when KVM is not enabled.
> >>> >
> >>> >Fix by adding an IS_ENABLED(CONFIG_KVM) check to kvm_host so
> >it can
> >>> >be included/compiled even when KVM is not enabled.
> >>> >
> >>> >Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> >>> >Signed-off-by: Kevin Hilman <khilman@xxxxxxxxxx>
> >>> >---
> >>> >Applies on v3.9-rc2
> >>> >
> >>> > include/linux/kvm_host.h | 7 ++++++-
> >>> > 1 file changed, 6 insertions(+), 1 deletion(-)
> >>>
> >>> This broke the PPC non-KVM build, which was relying on stub
> >>> functions in kvm_ppc.h, which relies on "struct vcpu" in
> >kvm_host.h.
> >>>
> >>> Why can't the entirety kvm_host.h be included regardless of
> >>> CONFIG_KVM, just like most other feature-specific headers? Why
> >>> can't the if/else just go around the functions that you want to
> >stub
> >>> out for non-KVM builds?
> >>>
> >> Kevin,
> >>
> >> What compilation failure this patch fixes? I presume something ARM
> >> related.
> >
> >Not specficially ARM related, but more context tracking related since
> >kernel/context_tracking.c pulls in kvm_host.h, which attempts to
> >pull in
> ><asm/kvm*.h> which may not exist on some platforms.
> >
> >At least for ARM, KVM support was added in v3.9 so this patch can
> >probably be dropped since the non-KVM builds on ARM now work. But any
> >platform without the <asm/kvm*.h> will still be broken when trying to
> >build the context tracker.
>
> Maybe other platforms should get empty asm/kvm*.h files. Is there
> anything from those files that the linux/kvm*.h headers need to
> build?
>
arch things. kvm_vcpu_arch, kvm_arch_memory_slot, kvm_arch etc.

--
Gleb.
--
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/