Bug 1037982

Summary: ich9_route_intx_pin_to_irq: Assertion `pirq_pin < 8' failed while assigning BCM57810 PF to guest
Product: Red Hat Enterprise Linux 7 Reporter: Chao Yang <chayang>
Component: qemu-kvm-rhevAssignee: Virtualization Maintenance <virt-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: alex.williamson, bdas, chayang, hhuang, juzhang, michen, rbalakri, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-03-24 18:11:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Chao Yang 2013-12-04 08:16:00 UTC
Description of problem:
qemu-kvm core dumped on:
qemu-kvm: /builddir/build/BUILD/qemu-1.5.3/hw/isa/lpc_ich9.c:297: ich9_route_intx_pin_to_irq: Assertion `pirq_pin < 8' failed.
Aborted (core dumped)



Version-Release number of selected component (if applicable):
qemu-kvm-1.5.3-20.el7.x86_64
3.10.0-57.el7.x86_64

How reproducible:
3/3

Steps to Reproduce:
1. unbind BCM57810 from bnx2x
2. bind it to vfio-pci
3. assign to guest

Actual results:
qemu-kvm core dumped.

Expected results:


Additional info:
CLI:
/usr/libexec/qemu-kvm -M q35 -m 4096 -cpu Opteron_G5 -smp 4,sockets=2,cores=2,threads=1,maxvcpus=8 -monitor stdio -device ich9-ahci,id=ahci -netdev tap,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=68:1a:4a:42:48:22 -drive file=/home/test.qcow2v3,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=native -device ide-hd,drive=drive-virtio-disk0,id=virtio-disk0,bus=ahci.0,bootindex=1 -device virtio-balloon-pci,id=balloon -spice port=5000,disable-ticketing,seamless-migration=on -k en-us -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -boot menu=on -S -device vfio-pci,host=08:00.0,id=pf1 

(gdb) bt
#0  0x00007ffdc358d979 in raise () from /lib64/libc.so.6
#1  0x00007ffdc358f088 in abort () from /lib64/libc.so.6
#2  0x00007ffdc35868e6 in __assert_fail_base () from /lib64/libc.so.6
#3  0x00007ffdc3586992 in __assert_fail () from /lib64/libc.so.6
#4  0x00007ffdc8783759 in ich9_route_intx_pin_to_irq (opaque=<optimized out>, pirq_pin=115)
    at /usr/src/debug/qemu-1.5.3/hw/isa/lpc_ich9.c:297
#5  0x00007ffdc8696368 in pci_device_route_intx_to_irq (dev=<optimized out>, dev@entry=0x7ffdc97df3b0, pin=<optimized out>)
    at hw/pci/pci.c:1219
#6  0x00007ffdc878679b in vfio_enable_intx (vdev=0x7ffdc97df3b0) at /usr/src/debug/qemu-1.5.3/hw/misc/vfio.c:513
#7  0x00007ffdc87874b3 in vfio_initfn (pdev=0x7ffdc97df3b0) at /usr/src/debug/qemu-1.5.3/hw/misc/vfio.c:3672
#8  0x00007ffdc8695b62 in pci_qdev_init (qdev=0x7ffdc97df3b0) at hw/pci/pci.c:1720
#9  0x00007ffdc8652614 in device_realize (dev=0x7ffdc97df3b0, err=0x7ffff859a130) at hw/core/qdev.c:178
#10 0x00007ffdc8653b7b in device_set_realized (obj=0x7ffdc97df3b0, value=<optimized out>, err=0x7ffff859a240) at hw/core/qdev.c:699
#11 0x00007ffdc870d99e in property_set_bool (obj=0x7ffdc97df3b0, v=<optimized out>, opaque=0x7ffdc97c61e0, name=<optimized out>, 
    errp=0x7ffff859a240) at qom/object.c:1301
#12 0x00007ffdc8710287 in object_property_set_qobject (obj=0x7ffdc97df3b0, value=<optimized out>, name=0x7ffdc8882262 "realized", 
    errp=0x7ffff859a240) at qom/qom-qobject.c:24
#13 0x00007ffdc870f220 in object_property_set_bool (obj=obj@entry=0x7ffdc97df3b0, value=value@entry=true, 
    name=name@entry=0x7ffdc8882262 "realized", errp=errp@entry=0x7ffff859a240) at qom/object.c:852
#14 0x00007ffdc8652b2a in qdev_init (dev=dev@entry=0x7ffdc97df3b0) at hw/core/qdev.c:163
#15 0x00007ffdc86fb95b in qdev_device_add (opts=0x7ffdc9573fd0) at qdev-monitor.c:537
#16 0x00007ffdc873fb29 in device_init_func (opts=<optimized out>, opaque=<optimized out>) at vl.c:2279
#17 0x00007ffdc886f29b in qemu_opts_foreach (list=<optimized out>, func=func@entry=0x7ffdc873fb10 <device_init_func>, 
    opaque=opaque@entry=0x0, abort_on_failure=abort_on_failure@entry=1) at util/qemu-option.c:1140
#18 0x00007ffdc85db2a1 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:4244

Comment 11 Bandan Das 2016-03-24 18:11:08 UTC
I tried reproducing this with qemu-kvm-rhev-2.3.0-31 and q35 and I don't get the assertion. I am assuming this got fixed with recent updates. Please feel free to reopen if you can reproduce this bug.