qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 00/40] ivshmem: Fixes, cleanups, device model spl


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PULL 00/40] ivshmem: Fixes, cleanups, device model split
Date: Mon, 21 Mar 2016 13:11:39 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Peter Maydell <address@hidden> writes:

[...]
> Also some new clang ubsan warnings on x86 Linux:
> GTESTER check-qtest-i386
> [deleted existing warnings about slirp code]
> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:166:23: runtime
> error: shift exponent -1 is negative
> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:171:24: runtime
> error: shift exponent -1 is negative
> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:172:24: runtime
> error: shift exponent -1 is negative

Root cause tracked down with the appended patch.  PCI maintainers, you
might want to steal it.


diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index e67664d..1937c42 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -163,11 +163,13 @@ int pci_bar(PCIDevice *d, int reg)
 
 static inline int pci_irq_state(PCIDevice *d, int irq_num)
 {
+    assert(irq_num >= 0);
        return (d->irq_state >> irq_num) & 0x1;
 }
 
 static inline void pci_set_irq_state(PCIDevice *d, int irq_num, int level)
 {
+    assert(irq_num >= 0);
        d->irq_state &= ~(0x1 << irq_num);
        d->irq_state |= level << irq_num;
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]