Re: [PATCH] xen: x86: make asm/xen/events.h include xen/xen.h
From: Boris Ostrovsky
Date: Mon Sep 24 2018 - 10:41:13 EST
On 9/23/18 1:38 PM, Nicolai Stange wrote:
> arch/x86/include/asm/xen/events.h references xen_hvm_domain() from the
> inlined xen_support_evtchn_rebind().
>
> xen_hvm_domain() gets #defined in include/xen/xen.h and
> arch/x86/include/asm/xen/events.h doesn't include that.
>
> On current Linus' tree, everything works fine though, because of the
> following inclusion chain
>
> include/xen/events.h
> arch/x86/include/asm/xen/hypercall.h
> arch/x86/include/asm/pgtable.h
> arch/x86/include/asm/fixmap.h
> arch/x86/include/asm/acpi.h
> arch/x86/include/asm/realmode.h
> arch/x86/include/asm/io.h
> include/xen/xen.h
> asm/xen/events.h
>
> which has been established in commit f991376e444a ("x86/mm: Correct fixmap
> header usage on adaptable MODULES_END") resp. commit ef37bc361442
> ("x86/headers: Simplify asm/fixmap.h inclusion into asm/pgtable*.h").
>
> Stable 4.9 lacks both of these and backporting them wouldn't really make
> sense.
>
> In consequence, the backport of commit 447ae3166702 ("x86: Don't include
> linux/irq.h from asm/hardirq.h") to stable 4.9 broke compilation with
> errors like
>
> In file included from include/xen/events.h:11:0,
> from arch/x86/xen/irq.c:9:
> arch/x86/include/asm/xen/events.h: In function
> âxen_support_evtchn_rebindâ:
> arch/x86/include/asm/xen/events.h:31:2: error: implicit declaration of
> function âxen_hvm_domainâ [-Werror=implicit-function-declaration]
> return (!xen_hvm_domain() || xen_have_vector_callback);
> ^
>
> Facilitate backporting to the stable trees by making
> arch/x86/include/asm/xen/events.h include xen/xen.h.
>
> Fixes: 447ae3166702 ("x86: Don't include linux/irq.h from asm/hardirq.h")
> Cc: <stable@xxxxxxxxxxxxxxx> # 4.9.x
> Signed-off-by: Nicolai Stange <nstange@xxxxxxx>
This is being done (for somewhat unrelated reasons) by
https://marc.info/?l=linux-block&m=153608849202181
-boris
> ---
> arch/x86/include/asm/xen/events.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/include/asm/xen/events.h b/arch/x86/include/asm/xen/events.h
> index d383140e1dc8..068d9b067c83 100644
> --- a/arch/x86/include/asm/xen/events.h
> +++ b/arch/x86/include/asm/xen/events.h
> @@ -2,6 +2,8 @@
> #ifndef _ASM_X86_XEN_EVENTS_H
> #define _ASM_X86_XEN_EVENTS_H
>
> +#include <xen/xen.h>
> +
> enum ipi_vector {
> XEN_RESCHEDULE_VECTOR,
> XEN_CALL_FUNCTION_VECTOR,