> -----Original Message----- > From: Philippe Mathieu-Daudé <phi...@redhat.com> > Sent: 04 August 2020 09:35 > To: p...@xen.org; qemu-devel@nongnu.org > Cc: 'Peter Maydell' <peter.mayd...@linaro.org>; 'Anthony Perard' > <anthony.per...@citrix.com>; 'Paolo > Bonzini' <pbonz...@redhat.com>; 'Stefano Stabellini' > <sstabell...@kernel.org>; xen- > de...@lists.xenproject.org; 'Paul Durrant' <pdurr...@amazon.com> > Subject: Re: [PATCH-for-5.1 v2 1/1] accel/xen: Fix xen_enabled() behavior on > target-agnostic objects > > Hi Paul, > > On 8/4/20 9:57 AM, Paul Durrant wrote: > >> -----Original Message----- > >> From: Philippe Mathieu-Daudé <phi...@redhat.com> > >> Sent: 04 August 2020 08:50 > >> To: qemu-devel@nongnu.org > >> Cc: Peter Maydell <peter.mayd...@linaro.org>; Anthony Perard > >> <anthony.per...@citrix.com>; Paolo > >> Bonzini <pbonz...@redhat.com>; Stefano Stabellini > >> <sstabell...@kernel.org>; xen- > >> de...@lists.xenproject.org; Paul Durrant <p...@xen.org>; Philippe > >> Mathieu-Daudé > <phi...@redhat.com>; > >> Paul Durrant <pdurr...@amazon.com> > >> Subject: [PATCH-for-5.1 v2 1/1] accel/xen: Fix xen_enabled() behavior on > >> target-agnostic objects > >> > >> CONFIG_XEN is generated by configure and stored in "config-target.h", > >> which is (obviously) only include for target-specific objects. > >> This is a problem for target-agnostic objects as CONFIG_XEN is never > >> defined and xen_enabled() is always inlined as 'false'. > >> > >> Fix by following the KVM schema, defining CONFIG_XEN_IS_POSSIBLE > >> when we don't know to force the call of the non-inlined function, > >> returning the xen_allowed boolean. > >> > >> Fixes: da278d58a092 ("accel: Move Xen accelerator code under accel/xen/") > >> Reported-by: Paul Durrant <pdurr...@amazon.com> > >> Suggested-by: Peter Maydell <peter.mayd...@linaro.org> > >> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > >> --- > >> include/sysemu/xen.h | 18 ++++++++++++++---- > >> accel/stubs/xen-stub.c | 2 ++ > >> accel/xen/xen-all.c | 7 +------ > >> 3 files changed, 17 insertions(+), 10 deletions(-) > >> > >> diff --git a/include/sysemu/xen.h b/include/sysemu/xen.h > >> index 1ca292715e..2c2c429ea8 100644 > >> --- a/include/sysemu/xen.h > >> +++ b/include/sysemu/xen.h > >> @@ -8,9 +8,19 @@ > >> #ifndef SYSEMU_XEN_H > >> #define SYSEMU_XEN_H > >> > >> -#ifdef CONFIG_XEN > >> +#ifdef NEED_CPU_H > >> +# ifdef CONFIG_XEN > >> +# define CONFIG_XEN_IS_POSSIBLE > >> +# endif > >> +#else > >> +# define CONFIG_XEN_IS_POSSIBLE > >> +#endif > >> > >> -bool xen_enabled(void); > >> +#ifdef CONFIG_XEN_IS_POSSIBLE > >> + > >> +extern bool xen_allowed; > >> + > >> +#define xen_enabled() (xen_allowed) > > > > Can this not move ahead of the #ifdef now (since xen_allowed is present in > > both xen-stub and xen- > all)? I think this is what Peter was saying in his option '(2)'. > > I think I respected Peter's option '(2)', following how KVM does, this > is the case with stub,
Ok, if it follows the KVM pattern then that's fine. Reviewed-by: Paul Durrant <p...@xen.org>