Message ID | 20211015125152.25198-6-jgross@suse.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | xen: drop hypercall function tables | expand |
On 15.10.2021 14:51, Juergen Gross wrote: > --- a/xen/arch/x86/x86_64/mm.c > +++ b/xen/arch/x86/x86_64/mm.c > @@ -32,7 +32,6 @@ EMIT_FILE; > #include <asm/page.h> > #include <asm/flushtlb.h> > #include <asm/fixmap.h> > -#include <asm/hypercall.h> > #include <asm/msr.h> > #include <asm/pv/domain.h> > #include <asm/setup.h> Afaict xen/hypercall.h also doesn't need including here. But I can agree that this is at best a partly related change. > --- a/xen/arch/x86/x86_64/platform_hypercall.c > +++ b/xen/arch/x86/x86_64/platform_hypercall.c > @@ -41,8 +41,8 @@ CHECK_pf_resource_entry; > #undef xen_pf_resource_entry > > #define COMPAT > -#define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t) > -#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE_PARAM(t) > +#undef guest_handle_okay > +#define guest_handle_okay compat_handle_okay Is this a change that slipped in here from patch 3, accompanying -#define do_platform_op(x) compat_platform_op(_##x) +#define do_platform_op(x) compat_platform_op(x) there? Or does that change belong here? I have to admit anyway that it's not entirely clear to me why this adjustment needs making. > --- a/xen/common/compat/grant_table.c > +++ b/xen/common/compat/grant_table.c > @@ -4,6 +4,7 @@ > */ > > #include <compat/grant_table.h> > +#include <xen/hypercall.h> Nit: Generally compat/*.h go last. Jan
On 18.10.21 14:39, Jan Beulich wrote: > On 15.10.2021 14:51, Juergen Gross wrote: >> --- a/xen/arch/x86/x86_64/mm.c >> +++ b/xen/arch/x86/x86_64/mm.c >> @@ -32,7 +32,6 @@ EMIT_FILE; >> #include <asm/page.h> >> #include <asm/flushtlb.h> >> #include <asm/fixmap.h> >> -#include <asm/hypercall.h> >> #include <asm/msr.h> >> #include <asm/pv/domain.h> >> #include <asm/setup.h> > > Afaict xen/hypercall.h also doesn't need including here. But I can > agree that this is at best a partly related change. Will check and delete it in case not needed. > >> --- a/xen/arch/x86/x86_64/platform_hypercall.c >> +++ b/xen/arch/x86/x86_64/platform_hypercall.c >> @@ -41,8 +41,8 @@ CHECK_pf_resource_entry; >> #undef xen_pf_resource_entry >> >> #define COMPAT >> -#define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t) >> -#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE_PARAM(t) >> +#undef guest_handle_okay >> +#define guest_handle_okay compat_handle_okay > > Is this a change that slipped in here from patch 3, accompanying > > -#define do_platform_op(x) compat_platform_op(_##x) > +#define do_platform_op(x) compat_platform_op(x) > > there? Or does that change belong here? I have to admit anyway that > it's not entirely clear to me why this adjustment needs making. Oh yes, this is a leftover to make things work with prototypes being made seen in platform_hypercall.c. > >> --- a/xen/common/compat/grant_table.c >> +++ b/xen/common/compat/grant_table.c >> @@ -4,6 +4,7 @@ >> */ >> >> #include <compat/grant_table.h> >> +#include <xen/hypercall.h> > > Nit: Generally compat/*.h go last. Okay. Juergen
diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c index 8951b34086..fc1a52767d 100644 --- a/xen/arch/arm/hvm.c +++ b/xen/arch/arm/hvm.c @@ -20,6 +20,7 @@ #include <xen/lib.h> #include <xen/errno.h> #include <xen/guest_access.h> +#include <xen/hypercall.h> #include <xen/sched.h> #include <xen/monitor.h> @@ -29,8 +30,6 @@ #include <public/hvm/params.h> #include <public/hvm/hvm_op.h> -#include <asm/hypercall.h> - static int hvm_allow_set_param(const struct domain *d, unsigned int param) { switch ( param ) diff --git a/xen/arch/arm/platform_hypercall.c b/xen/arch/arm/platform_hypercall.c index 0013b99202..6ede3b508c 100644 --- a/xen/arch/arm/platform_hypercall.c +++ b/xen/arch/arm/platform_hypercall.c @@ -9,6 +9,7 @@ #include <xen/types.h> #include <xen/sched.h> #include <xen/guest_access.h> +#include <xen/hypercall.h> #include <xen/spinlock.h> #include <public/platform.h> #include <xsm/xsm.h> diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c index 16e91a3694..6784f1bc2b 100644 --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -21,6 +21,7 @@ #include <xen/xenoprof.h> #include <xen/event.h> #include <xen/guest_access.h> +#include <xen/hypercall.h> #include <xen/cpu.h> #include <xen/param.h> #include <asm/regs.h> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 4d799032dc..8df4539b7e 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -129,7 +129,6 @@ #include <asm/ldt.h> #include <asm/x86_emulate.h> #include <asm/e820.h> -#include <asm/hypercall.h> #include <asm/shared.h> #include <asm/mem_sharing.h> #include <public/memory.h> diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c index 681e0eb6c6..639fd8f959 100644 --- a/xen/arch/x86/platform_hypercall.c +++ b/xen/arch/x86/platform_hypercall.c @@ -17,6 +17,7 @@ #include <xen/console.h> #include <xen/iocap.h> #include <xen/guest_access.h> +#include <xen/hypercall.h> #include <xen/acpi.h> #include <xen/efi.h> #include <xen/cpu.h> diff --git a/xen/arch/x86/pv/iret.c b/xen/arch/x86/pv/iret.c index 90946c4629..316a23e77e 100644 --- a/xen/arch/x86/pv/iret.c +++ b/xen/arch/x86/pv/iret.c @@ -18,6 +18,7 @@ */ #include <xen/guest_access.h> +#include <xen/hypercall.h> #include <xen/lib.h> #include <xen/sched.h> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 64f3396f20..05acbb8479 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -29,6 +29,7 @@ #include <xen/lib.h> #include <xen/err.h> #include <xen/errno.h> +#include <xen/hypercall.h> #include <xen/mm.h> #include <xen/param.h> #include <xen/console.h> @@ -70,7 +71,6 @@ #include <asm/x86_emulate.h> #include <asm/traps.h> #include <asm/hvm/vpt.h> -#include <asm/hypercall.h> #include <asm/mce.h> #include <asm/apic.h> #include <asm/mc146818rtc.h> diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c index 215e96aba0..13dfa94fee 100644 --- a/xen/arch/x86/x86_64/compat/mm.c +++ b/xen/arch/x86/x86_64/compat/mm.c @@ -1,4 +1,5 @@ #include <xen/event.h> +#include <xen/hypercall.h> #include <xen/mem_access.h> #include <xen/multicall.h> #include <compat/memory.h> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c index 4f225da81e..fdcb75c78f 100644 --- a/xen/arch/x86/x86_64/mm.c +++ b/xen/arch/x86/x86_64/mm.c @@ -32,7 +32,6 @@ EMIT_FILE; #include <asm/page.h> #include <asm/flushtlb.h> #include <asm/fixmap.h> -#include <asm/hypercall.h> #include <asm/msr.h> #include <asm/pv/domain.h> #include <asm/setup.h> diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c index 4576c014a4..1368be455f 100644 --- a/xen/arch/x86/x86_64/platform_hypercall.c +++ b/xen/arch/x86/x86_64/platform_hypercall.c @@ -41,8 +41,8 @@ CHECK_pf_resource_entry; #undef xen_pf_resource_entry #define COMPAT -#define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t) -#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE_PARAM(t) +#undef guest_handle_okay +#define guest_handle_okay compat_handle_okay typedef int ret_t; #include "../platform_hypercall.c" diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c index ff1d678f01..8077771508 100644 --- a/xen/common/compat/grant_table.c +++ b/xen/common/compat/grant_table.c @@ -4,6 +4,7 @@ */ #include <compat/grant_table.h> +#include <xen/hypercall.h> #define xen_grant_entry_v1 grant_entry_v1 CHECK_grant_entry_v1; diff --git a/xen/common/compat/multicall.c b/xen/common/compat/multicall.c index a0e9918f48..c5982baf76 100644 --- a/xen/common/compat/multicall.c +++ b/xen/common/compat/multicall.c @@ -4,6 +4,7 @@ EMIT_FILE; +#include <xen/hypercall.h> #include <xen/types.h> #include <xen/multicall.h> #include <xen/trace.h> @@ -19,7 +20,6 @@ static inline void xlat_multicall_entry(struct mc_state *mcs) mcs->compat_call.args[i] = mcs->call.args[i]; } -DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t); #define multicall_entry compat_multicall_entry #define multicall_entry_t multicall_entry_compat_t #define do_multicall_call compat_multicall_call diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c index da88ad141a..12006f592e 100644 --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -24,6 +24,7 @@ #include <xen/iocap.h> #include <xen/compat.h> #include <xen/guest_access.h> +#include <xen/hypercall.h> #include <xen/keyhandler.h> #include <asm/current.h> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c index e510395d08..49e12621ac 100644 --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -33,6 +33,7 @@ #include <xen/trace.h> #include <xen/grant_table.h> #include <xen/guest_access.h> +#include <xen/hypercall.h> #include <xen/domain_page.h> #include <xen/iommu.h> #include <xen/paging.h> diff --git a/xen/common/multicall.c b/xen/common/multicall.c index 5a199ebf8f..7b20717c88 100644 --- a/xen/common/multicall.c +++ b/xen/common/multicall.c @@ -9,6 +9,7 @@ #include <xen/event.h> #include <xen/multicall.h> #include <xen/guest_access.h> +#include <xen/hypercall.h> #include <xen/perfc.h> #include <xen/trace.h> #include <asm/current.h> diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h index cadafd76c7..ccd26c5184 100644 --- a/xen/include/asm-arm/hypercall.h +++ b/xen/include/asm-arm/hypercall.h @@ -1,3 +1,7 @@ +#ifndef __XEN_HYPERCALL_H__ +#error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead" +#endif + #ifndef __ASM_ARM_HYPERCALL_H__ #define __ASM_ARM_HYPERCALL_H__ diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h index 9c0981defd..efe5963ee5 100644 --- a/xen/include/asm-x86/hypercall.h +++ b/xen/include/asm-x86/hypercall.h @@ -2,6 +2,10 @@ * asm-x86/hypercall.h */ +#ifndef __XEN_HYPERCALL_H__ +#error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead" +#endif + #ifndef __ASM_X86_HYPERCALL_H__ #define __ASM_X86_HYPERCALL_H__
Instead of including asm/hypercall.h always use xen/hypercall.h. Additionally include xen/hypercall.h from all sources containing a hypercall handler. This prepares for generating the handlers' prototypes at build time. Add a guard in asm/hypercall.h to catch direct inclusion. Signed-off-by: Juergen Gross <jgross@suse.com> --- xen/arch/arm/hvm.c | 3 +-- xen/arch/arm/platform_hypercall.c | 1 + xen/arch/x86/cpu/vpmu.c | 1 + xen/arch/x86/mm.c | 1 - xen/arch/x86/platform_hypercall.c | 1 + xen/arch/x86/pv/iret.c | 1 + xen/arch/x86/traps.c | 2 +- xen/arch/x86/x86_64/compat/mm.c | 1 + xen/arch/x86/x86_64/mm.c | 1 - xen/arch/x86/x86_64/platform_hypercall.c | 4 ++-- xen/common/compat/grant_table.c | 1 + xen/common/compat/multicall.c | 2 +- xen/common/event_channel.c | 1 + xen/common/grant_table.c | 1 + xen/common/multicall.c | 1 + xen/include/asm-arm/hypercall.h | 4 ++++ xen/include/asm-x86/hypercall.h | 4 ++++ 17 files changed, 22 insertions(+), 8 deletions(-)