A range of functions can't see their declarations, requiring the inclusion of appropriate headers.
For pv/mm.h and pv/traps.h, this requires adjustements to become standalone. In pv/mm.h, swap xen/lib.h for xen/bug.h now that ASSERT_UNREACHABLE() has moved. For pv/traps.h, pv_trap_callback_registered() needs to see a complete struct vcpu, and xen/sched.h is not something appropriate to pull in conditionally. stack-protector.c can't see the declaration of __stack_chk_guard, and fixing that reveals that stack-protector.h needs get_cycles() too. No functional change. Signed-off-by: Andrew Cooper <[email protected]> --- CC: Jan Beulich <[email protected]> CC: Roger Pau Monné <[email protected]> CC: Stefano Stabellini <[email protected]> CC: Julien Grall <[email protected]> CC: Volodymyr Babchuk <[email protected]> CC: Bertrand Marquis <[email protected]> CC: Michal Orzel <[email protected]> CC: [email protected] <[email protected]> CC: Nicola Vetrini <[email protected]> --- xen/arch/x86/include/asm/pv/mm.h | 8 +++++++- xen/arch/x86/include/asm/pv/traps.h | 6 ++---- xen/arch/x86/mm/mem_paging.c | 6 ++++-- xen/arch/x86/pv/emul-gate-op.c | 2 ++ xen/arch/x86/pv/emul-inv-op.c | 1 + xen/arch/x86/pv/emul-priv-op.c | 1 + xen/arch/x86/pv/emulate.c | 1 + xen/arch/x86/pv/grant_table.c | 1 + xen/arch/x86/pv/mm.c | 1 + xen/arch/x86/pv/ro-page-fault.c | 1 + xen/arch/x86/pv/traps.c | 1 + xen/arch/x86/x86_64/machine_kexec.c | 3 ++- xen/common/stack-protector.c | 1 + xen/include/xen/stack-protector.h | 2 ++ 14 files changed, 27 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/include/asm/pv/mm.h b/xen/arch/x86/include/asm/pv/mm.h index a5745908206a..11a43f15e222 100644 --- a/xen/arch/x86/include/asm/pv/mm.h +++ b/xen/arch/x86/include/asm/pv/mm.h @@ -10,6 +10,12 @@ #ifndef __X86_PV_MM_H__ #define __X86_PV_MM_H__ +#include <xen/stdbool.h> + +struct cpu_user_regs; +struct page_info; +struct vcpu; + #ifdef CONFIG_PV int pv_ro_page_fault(unsigned long addr, struct cpu_user_regs *regs); @@ -26,7 +32,7 @@ int validate_segdesc_page(struct page_info *page); #else #include <xen/errno.h> -#include <xen/lib.h> +#include <xen/bug.h> static inline int pv_ro_page_fault(unsigned long addr, struct cpu_user_regs *regs) diff --git a/xen/arch/x86/include/asm/pv/traps.h b/xen/arch/x86/include/asm/pv/traps.h index 8c31d5a793c5..8c201190923d 100644 --- a/xen/arch/x86/include/asm/pv/traps.h +++ b/xen/arch/x86/include/asm/pv/traps.h @@ -10,9 +10,9 @@ #ifndef __X86_PV_TRAPS_H__ #define __X86_PV_TRAPS_H__ -#ifdef CONFIG_PV +#include <xen/sched.h> -#include <public/xen.h> +#ifdef CONFIG_PV int pv_raise_nmi(struct vcpu *v); @@ -28,8 +28,6 @@ static inline bool pv_trap_callback_registered(const struct vcpu *v, #else /* !CONFIG_PV */ -#include <xen/errno.h> - static inline int pv_raise_nmi(struct vcpu *v) { return -EOPNOTSUPP; } static inline int pv_emulate_privileged_op(struct cpu_user_regs *regs) { return 0; } diff --git a/xen/arch/x86/mm/mem_paging.c b/xen/arch/x86/mm/mem_paging.c index d4b3cb990c54..33929b526ab9 100644 --- a/xen/arch/x86/mm/mem_paging.c +++ b/xen/arch/x86/mm/mem_paging.c @@ -7,10 +7,12 @@ * Copyright (c) 2009 Citrix Systems, Inc. (Patrick Colp) */ - -#include <asm/p2m.h> #include <xen/guest_access.h> #include <xen/vm_event.h> + +#include <asm/mem_paging.h> +#include <asm/p2m.h> + #include <xsm/xsm.h> #include "mm-locks.h" diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c index 1faf13b962b1..c2c699fbff40 100644 --- a/xen/arch/x86/pv/emul-gate-op.c +++ b/xen/arch/x86/pv/emul-gate-op.c @@ -9,6 +9,8 @@ #include <xen/err.h> +#include <asm/pv/traps.h> + #include "emulate.h" static int read_gate_descriptor(unsigned int gate_sel, diff --git a/xen/arch/x86/pv/emul-inv-op.c b/xen/arch/x86/pv/emul-inv-op.c index 346ac1124d7b..23d2928b00cd 100644 --- a/xen/arch/x86/pv/emul-inv-op.c +++ b/xen/arch/x86/pv/emul-inv-op.c @@ -8,6 +8,7 @@ */ #include <asm/pv/trace.h> +#include <asm/pv/traps.h> #include "emulate.h" diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c index 1d9e57ad2763..a3c1fd12621d 100644 --- a/xen/arch/x86/pv/emul-priv-op.c +++ b/xen/arch/x86/pv/emul-priv-op.c @@ -21,6 +21,7 @@ #include <asm/mc146818rtc.h> #include <asm/pv/domain.h> #include <asm/pv/trace.h> +#include <asm/pv/traps.h> #include <asm/shared.h> #include <asm/stubs.h> diff --git a/xen/arch/x86/pv/emulate.c b/xen/arch/x86/pv/emulate.c index 0022e0f55e30..a00d1c6c82eb 100644 --- a/xen/arch/x86/pv/emulate.c +++ b/xen/arch/x86/pv/emulate.c @@ -10,6 +10,7 @@ #include <xen/guest_access.h> #include <asm/debugreg.h> +#include <asm/pv/domain.h> #include "emulate.h" diff --git a/xen/arch/x86/pv/grant_table.c b/xen/arch/x86/pv/grant_table.c index 247436a0156a..1df68440a24a 100644 --- a/xen/arch/x86/pv/grant_table.c +++ b/xen/arch/x86/pv/grant_table.c @@ -12,6 +12,7 @@ #include <public/grant_table.h> #include <asm/p2m.h> +#include <asm/pv/grant_table.h> #include <asm/pv/mm.h> #include "mm.h" diff --git a/xen/arch/x86/pv/mm.c b/xen/arch/x86/pv/mm.c index 187f5f6a3e8c..3f2e9dedcde3 100644 --- a/xen/arch/x86/pv/mm.c +++ b/xen/arch/x86/pv/mm.c @@ -12,6 +12,7 @@ #include <asm/current.h> #include <asm/p2m.h> +#include <asm/pv/mm.h> #include "mm.h" diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c index 9c6f66884675..d89306d34fc6 100644 --- a/xen/arch/x86/pv/ro-page-fault.c +++ b/xen/arch/x86/pv/ro-page-fault.c @@ -8,6 +8,7 @@ * Copyright (c) 2004 Christian Limpach */ +#include <asm/pv/mm.h> #include <asm/pv/trace.h> #include <asm/shadow.h> diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c index 26a468108a77..b0395b99145a 100644 --- a/xen/arch/x86/pv/traps.c +++ b/xen/arch/x86/pv/traps.c @@ -16,6 +16,7 @@ #include <asm/idt.h> #include <asm/irq-vectors.h> #include <asm/pv/trace.h> +#include <asm/pv/traps.h> #include <asm/shared.h> #include <asm/traps.h> diff --git a/xen/arch/x86/x86_64/machine_kexec.c b/xen/arch/x86/x86_64/machine_kexec.c index f4a005cd0c2f..f9e54d86fb53 100644 --- a/xen/arch/x86/x86_64/machine_kexec.c +++ b/xen/arch/x86/x86_64/machine_kexec.c @@ -6,8 +6,9 @@ * - Magnus Damm <[email protected]> */ -#include <xen/types.h> #include <xen/kernel.h> +#include <xen/kexec.h> + #include <asm/page.h> #include <public/kexec.h> diff --git a/xen/common/stack-protector.c b/xen/common/stack-protector.c index 2115912c3bd0..05e57d4509e2 100644 --- a/xen/common/stack-protector.c +++ b/xen/common/stack-protector.c @@ -2,6 +2,7 @@ #include <xen/init.h> #include <xen/lib.h> #include <xen/random.h> +#include <xen/stack-protector.h> #include <xen/time.h> /* diff --git a/xen/include/xen/stack-protector.h b/xen/include/xen/stack-protector.h index 931affd919be..65488bdabced 100644 --- a/xen/include/xen/stack-protector.h +++ b/xen/include/xen/stack-protector.h @@ -1,6 +1,8 @@ #ifndef __XEN_STACK_PROTECTOR_H__ #define __XEN_STACK_PROTECTOR_H__ +#include <xen/time.h> + extern unsigned long __stack_chk_guard; /* -- 2.39.5
