[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86: only generate compat headers actually needed
commit 2c8fabb2232d34d6d20a9ce6989e2e6cbee07d52 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Fri Sep 4 11:15:21 2020 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Fri Sep 4 11:15:21 2020 +0200 x86: only generate compat headers actually needed 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@xxxxxxxx> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- xen/arch/x86/hvm/dm.c | 2 ++ xen/common/compat/domain.c | 9 ++++++++- xen/include/Makefile | 24 +++++++++++++----------- xen/include/xen/hypercall.h | 2 -- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c index cf3787d9ff..71f5ca4941 100644 --- a/xen/arch/x86/hvm/dm.c +++ b/xen/arch/x86/hvm/dm.c @@ -718,6 +718,8 @@ static int dm_op(const struct dmop_args *op_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; diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c index 11c6afc463..98b8c15cea 100644 --- a/xen/common/compat/domain.c +++ b/xen/common/compat/domain.c @@ -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 vcpuid, XEN_GUEST_HANDLE_PARAM(void) ar 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 vcpuid, XEN_GUEST_HANDLE_PARAM(void) ar domain_unlock(d); } else +#endif { struct compat_vcpu_guest_context *ctxt; diff --git a/xen/include/Makefile b/xen/include/Makefile index 0be5540886..5c2f57a0f6 100644 --- a/xen/include/Makefile +++ b/xen/include/Makefile @@ -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 diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h index 655acc7f47..34b7f1fed6 100644 --- a/xen/include/xen/hypercall.h +++ b/xen/include/xen/hypercall.h @@ -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, -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |