@@ -717,6 +717,8 @@ static int dm_op(const struct dmop_args
return rc;
}
+#include <compat/hvm/dm_op.h>
+
CHECK_dm_op_create_ioreq_server;
CHECK_dm_op_get_ioreq_server_info;
CHECK_dm_op_ioreq_server_range;
@@ -11,7 +11,6 @@ EMIT_FILE;
#include <xen/guest_access.h>
#include <xen/hypercall.h>
#include <compat/vcpu.h>
-#include <compat/hvm/hvm_vcpu.h>
#define xen_vcpu_set_periodic_timer vcpu_set_periodic_timer
CHECK_vcpu_set_periodic_timer;
@@ -25,6 +24,10 @@ CHECK_SIZE_(struct, vcpu_info);
CHECK_vcpu_register_vcpu_info;
#undef xen_vcpu_register_vcpu_info
+#ifdef CONFIG_HVM
+
+#include <compat/hvm/hvm_vcpu.h>
+
#define xen_vcpu_hvm_context vcpu_hvm_context
#define xen_vcpu_hvm_x86_32 vcpu_hvm_x86_32
#define xen_vcpu_hvm_x86_64 vcpu_hvm_x86_64
@@ -33,6 +36,8 @@ CHECK_vcpu_hvm_context;
#undef xen_vcpu_hvm_x86_32
#undef xen_vcpu_hvm_context
+#endif
+
int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct domain *d = current->domain;
@@ -49,6 +54,7 @@ int compat_vcpu_op(int cmd, unsigned int
if ( v->vcpu_info == &dummy_vcpu_info )
return -EINVAL;
+#ifdef CONFIG_HVM
if ( is_hvm_vcpu(v) )
{
struct vcpu_hvm_context ctxt;
@@ -61,6 +67,7 @@ int compat_vcpu_op(int cmd, unsigned int
domain_unlock(d);
}
else
+#endif
{
struct compat_vcpu_guest_context *ctxt;
@@ -3,32 +3,34 @@ ifneq ($(CONFIG_COMPAT),)
compat-arch-$(CONFIG_X86) := x86_32
headers-y := \
- compat/argo.h \
- compat/callback.h \
+ compat/arch-$(compat-arch-y).h \
compat/elfnote.h \
compat/event_channel.h \
compat/features.h \
- compat/grant_table.h \
- compat/hypfs.h \
- compat/kexec.h \
compat/memory.h \
compat/nmi.h \
compat/physdev.h \
compat/platform.h \
+ compat/pmu.h \
compat/sched.h \
- compat/trace.h \
compat/vcpu.h \
compat/version.h \
compat/xen.h \
- compat/xenoprof.h
+ compat/xlat.h
headers-$(CONFIG_X86) += compat/arch-x86/pmu.h
headers-$(CONFIG_X86) += compat/arch-x86/xen-mca.h
headers-$(CONFIG_X86) += compat/arch-x86/xen.h
headers-$(CONFIG_X86) += compat/arch-x86/xen-$(compat-arch-y).h
-headers-$(CONFIG_X86) += compat/hvm/dm_op.h
-headers-$(CONFIG_X86) += compat/hvm/hvm_op.h
-headers-$(CONFIG_X86) += compat/hvm/hvm_vcpu.h
-headers-y += compat/arch-$(compat-arch-y).h compat/pmu.h compat/xlat.h
+headers-$(CONFIG_ARGO) += compat/argo.h
+headers-$(CONFIG_PV) += compat/callback.h
+headers-$(CONFIG_GRANT_TABLE) += compat/grant_table.h
+headers-$(CONFIG_HVM) += compat/hvm/dm_op.h
+headers-$(CONFIG_HVM) += compat/hvm/hvm_op.h
+headers-$(CONFIG_HVM) += compat/hvm/hvm_vcpu.h
+headers-$(CONFIG_HYPFS) += compat/hypfs.h
+headers-$(CONFIG_KEXEC) += compat/kexec.h
+headers-$(CONFIG_TRACEBUFFER) += compat/trace.h
+headers-$(CONFIG_XENOPROF) += compat/xenoprof.h
headers-$(CONFIG_XSM_FLASK) += compat/xsm/flask_op.h
cppflags-y := -include public/xen-compat.h -DXEN_GENERATING_COMPAT_HEADERS
@@ -216,8 +216,6 @@ extern long compat_argo_op(
unsigned long arg4);
#endif
-#include <compat/hvm/dm_op.h>
-
extern int
compat_dm_op(
domid_t domid,
As was already the case for XSM/Flask, avoid generating compat headers when they're not going to be needed. To address resulting build issues - move compat/hvm/dm_op.h inclusion to the only source file needing it, - add a little bit of #ifdef-ary. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- Alternatively we could consistently drop conditionals (except for per- arch cases perhaps).