[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PULL 1/1] accel/xen: Fix xen_enabled() behavior on target-agnostic objects


  • To: <qemu-devel@xxxxxxxxxx>
  • From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Date: Mon, 3 Aug 2020 17:52:51 +0100
  • Authentication-results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>, Peter Maydell <peter.maydell@xxxxxxxxxx>, Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Mon, 03 Aug 2020 16:53:14 +0000
  • Ironport-sdr: oUizAzmZsbSPZfoucDhfLS3pp0o7C2fWvjF+HDf1ttDC08KVHWjcrG9PSqvQEBlqwv7JfCsNJg KCy83IsZWZRsis0vuW7kgTSt+MMgZXZ+KS0DXMtCnQpOnMZhrI1FX40OU3B/wgDdsEnUOyATwI YGlqEHb4rjBDjM8DRxExaVRzI5gZBGVI/J4h1Yz/Z3M8sxVwADYTCpUUhHCazqv8hug5gRb/Hu hBufHPAFCnV3pAUWFdL0u0BlUmLObj1z3j3Dd5PBli5UqhkzPWegs5b2fpiRvCJrtJwWcEzGnr Bec=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

From: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>

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 <pdurrant@xxxxxxxxxx>
Suggested-by: Peter Maydell <peter.maydell@xxxxxxxxxx>
Signed-off-by: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>
Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
Tested-by: Paul Durrant <paul@xxxxxxx>
Message-Id: <20200728100925.10454-1-philmd@xxxxxxxxxx>
Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
 include/sysemu/xen.h | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/include/sysemu/xen.h b/include/sysemu/xen.h
index 1ca292715e69..385a1fa2bff8 100644
--- a/include/sysemu/xen.h
+++ b/include/sysemu/xen.h
@@ -8,7 +8,15 @@
 #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
+
+#ifdef CONFIG_XEN_IS_POSSIBLE
 
 bool xen_enabled(void);
 
@@ -18,7 +26,7 @@ void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
                    struct MemoryRegion *mr, Error **errp);
 #endif
 
-#else /* !CONFIG_XEN */
+#else /* !CONFIG_XEN_IS_POSSIBLE */
 
 #define xen_enabled() 0
 #ifndef CONFIG_USER_ONLY
@@ -33,6 +41,6 @@ static inline void xen_ram_alloc(ram_addr_t ram_addr, 
ram_addr_t size,
 }
 #endif
 
-#endif /* CONFIG_XEN */
+#endif /* CONFIG_XEN_IS_POSSIBLE */
 
 #endif
-- 
Anthony PERARD




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.