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

[xen master] IOMMU/x86: work around bogus gcc12 warning in hvm_gsi_eoi()



commit 80ad8db8a4d9bb24952f0aea788ce6f47566fa76
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Wed Jun 15 10:19:32 2022 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Jun 15 10:19:32 2022 +0200

    IOMMU/x86: work around bogus gcc12 warning in hvm_gsi_eoi()
    
    As per [1] the expansion of the pirq_dpci() macro causes a -Waddress
    controlled warning (enabled implicitly in our builds, if not by default)
    tying the middle part of the involved conditional expression to the
    surrounding boolean context. Work around this by introducing a local
    inline function in the affected source file.
    
    Reported-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
    
    [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102967
---
 xen/drivers/passthrough/x86/hvm.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/xen/drivers/passthrough/x86/hvm.c 
b/xen/drivers/passthrough/x86/hvm.c
index 0f94203af8..35b4938ab2 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -25,6 +25,18 @@
 #include <asm/hvm/support.h>
 #include <asm/io_apic.h>
 
+/*
+ * Gcc12 takes issue with pirq_dpci() being used in boolean context (see gcc
+ * bug 102967). While we can't replace the macro definition in the header by an
+ * inline function, we can do so here.
+ */
+static inline struct hvm_pirq_dpci *_pirq_dpci(struct pirq *pirq)
+{
+    return pirq_dpci(pirq);
+}
+#undef pirq_dpci
+#define pirq_dpci(pirq) _pirq_dpci(pirq)
+
 static DEFINE_PER_CPU(struct list_head, dpci_list);
 
 /*
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

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