Hide Forgot
Description of problem: Device smbus-eeprom is an onboard device. Users should not be able to plug additional instances. How reproducible: Always Steps to Reproduce: 1. qemu-kvm -nodefaults -display none -device smbus-eeprom Actual results: -device smbus-eeprom is accepted Expected results: -device smbus-eeprom is rejected, just like -device nonexistant
Proposed upstream fix: https://lists.nongnu.org/archive/html/qemu-devel/2013-11/msg03997.html
Fix included in qemu-kvm-1.5.3-38.el7
Reproduced this bug by qemu-kvm-1.5.3-19.el7.x86_64 Steps: 1. Check the devices that qemu-kvm supported: # /usr/libexec/qemu-kvm -device ? Controller/Bridge/Hub devices: ... name "pc-testdev", bus ISA name "pci-testdev", bus PCI, desc "PCI Test Device" name "smbus-eeprom", bus i2c-bus ---- this is supported name "usb-redir", bus usb-bus name "usb-tablet", bus usb-bus name "vfio-pci", bus PCI, desc "VFIO-based PCI device assignment" ... 2.Launch qemu with smbus-eeprom # /usr/libexec/qemu-kvm -nodefaults -display none -device smbus-eeprom -monitor stdio QEMU 1.5.3 monitor - type 'help' for more information (qemu) info qtree bus: main-system-bus ... smb_io_base = 45312 ... bus: i2c type i2c-bus dev: smbus-eeprom, id "" address = 0 dev: smbus-eeprom, id "" address = 87 dev: smbus-eeprom, id "" address = 86 dev: smbus-eeprom, id "" address = 85 dev: smbus-eeprom, id "" address = 84 dev: smbus-eeprom, id "" address = 83 dev: smbus-eeprom, id "" address = 82 dev: smbus-eeprom, id "" address = 81 dev: smbus-eeprom, id "" address = 80 ... So the qemu can be launched, this bug is reproduced.
Try to verify this bug with qemu-kvm-1.5.3-38.el7.x86_64 Steps: 1. Check devices : # /usr/libexec/qemu-kvm -device ? Controller/Bridge/Hub devices: name "i82801b11-bridge", bus PCI name "ioh3420", bus PCI, desc "Intel IOH device id 3420 PCIE Root Port" name "pci-bridge", bus PCI, desc "Standard PCI Bridge" name "usb-host", bus usb-bus name "usb-hub", bus usb-bus name "x3130-upstream", bus PCI, desc "TI X3130 Upstream Port of PCI Express Switch" name "xio3130-downstream", bus PCI, desc "TI X3130 Downstream Port of PCI Express Switch" USB devices: name "ich9-usb-ehci1", bus PCI name "ich9-usb-ehci2", bus PCI name "ich9-usb-uhci1", bus PCI name "ich9-usb-uhci2", bus PCI name "ich9-usb-uhci3", bus PCI name "ich9-usb-uhci4", bus PCI name "ich9-usb-uhci5", bus PCI name "ich9-usb-uhci6", bus PCI name "nec-usb-xhci", bus PCI name "piix3-usb-uhci", bus PCI name "piix4-usb-uhci", bus PCI name "usb-ehci", bus PCI name "vt82c686b-usb-uhci", bus PCI Storage devices: name "ich9-ahci", bus PCI, alias "ahci" name "ide-cd", bus IDE, desc "virtual IDE CD-ROM" name "ide-drive", bus IDE, desc "virtual IDE disk or CD-ROM (legacy)" name "ide-hd", bus IDE, desc "virtual IDE disk" name "scsi-block", bus SCSI, desc "SCSI block device passthrough" name "scsi-cd", bus SCSI, desc "virtual SCSI CD-ROM" name "scsi-disk", bus SCSI, desc "virtual SCSI disk or CD-ROM (legacy)" name "scsi-generic", bus SCSI, desc "pass through generic scsi device (/dev/sg*)" name "scsi-hd", bus SCSI, desc "virtual SCSI disk" name "usb-bot", bus usb-bus name "usb-storage", bus usb-bus name "virtio-blk-device", bus virtio-bus name "virtio-blk-pci", bus PCI, alias "virtio-blk" name "virtio-scsi-device", bus virtio-bus name "virtio-scsi-pci", bus PCI Network devices: name "e1000", bus PCI, desc "Intel Gigabit Ethernet" name "rtl8139", bus PCI name "virtio-net-device", bus virtio-bus name "virtio-net-pci", bus PCI, alias "virtio-net" Input devices: name "ccid-card-passthru", bus ccid-bus, desc "passthrough smartcard" name "isa-serial", bus ISA name "pci-serial", bus PCI name "usb-ccid", bus usb-bus, desc "CCID Rev 1.1 smartcard reader" name "usb-kbd", bus usb-bus name "usb-mouse", bus usb-bus name "virtconsole", bus virtio-serial-bus name "virtio-serial-device", bus virtio-bus name "virtio-serial-pci", bus PCI, alias "virtio-serial" name "virtserialport", bus virtio-serial-bus Display devices: name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA" name "qxl", bus PCI, desc "Spice QXL GPU (secondary)" name "qxl-vga", bus PCI, desc "Spice QXL GPU (primary, vga compatible)" name "sga", bus ISA, desc "Serial Graphics Adapter" name "VGA", bus PCI Sound devices: name "AC97", bus PCI, desc "Intel 82801AA AC97 Audio" name "hda-duplex", bus HDA, desc "HDA Audio Codec, duplex (line-out, line-in)" name "hda-micro", bus HDA, desc "HDA Audio Codec, duplex (speaker, microphone)" name "hda-output", bus HDA, desc "HDA Audio Codec, output-only (line-out)" name "ich9-intel-hda", bus PCI, desc "Intel HD Audio Controller (ich9)" name "intel-hda", bus PCI, desc "Intel HD Audio Controller (ich6)" Misc devices: name "i6300esb", bus PCI name "ib700", bus ISA name "isa-debug-exit", bus ISA name "isa-debugcon", bus ISA name "kvm-pci-assign", bus PCI, alias "pci-assign", desc "KVM-based PCI passthrough" name "pc-testdev", bus ISA name "pci-testdev", bus PCI, desc "PCI Test Device" name "usb-redir", bus usb-bus name "usb-tablet", bus usb-bus name "vfio-pci", bus PCI, desc "VFIO-based PCI device assignment" name "virtio-balloon-device", bus virtio-bus name "virtio-balloon-pci", bus PCI, alias "virtio-balloon" name "virtio-rng-device", bus virtio-bus name "virtio-rng-pci", bus PCI Uncategorized devices: name "pvpanic", bus ISA There's no smbus-eeprom deivce there. But when I try to launch qemu with this device: # /usr/libexec/qemu-kvm -nodefaults -display none -monitor stdio -device smbus-eeprom QEMU 1.5.3 monitor - type 'help' for more information (qemu) qemu-kvm: -device smbus-eeprom: Parameter 'driver' expects device type --> the result is that qemu just quit with the error "-device smbus-eeprom: Parameter 'driver' expects device type", this is not right since this device is not exist, so I think this bug is not fixed by qemu-kvm-1.5.3-38.el7.x86_64. Additional info: When try to verify this bug, I use "-device nonexistant(or any other non exist device)" to try to launch qemu, will hit bug #1026712 , see comment #7.
(In reply to Qian Guo from comment #6) > Additional info: > When try to verify this bug, I use "-device nonexistant(or any other non > exist device)" to try to launch qemu, will hit bug #1026712 , see comment #7. qemu coredumpd when launch with -device nonexistant like this: /usr/libexec/qemu-kvm -nodefaults -display none -device nonexistant -monitor stdio QEMU 1.5.3 monitor - type 'help' for more information (qemu) Segmentation fault (core dumped)
Hi Markus According to comment #6, the info qemu-kvm prints is not right as a nonexist device, could you help check it ? thanks --- # /usr/libexec/qemu-kvm -nodefaults -display none -monitor stdio -device smbus-eeprom QEMU 1.5.3 monitor - type 'help' for more information (qemu) qemu-kvm: -device smbus-eeprom: Parameter 'driver' expects device type
Botched patch for bug 1026712 made -device nonexistant regress, fix posted already (subject: Fix -device / device_add error handling).
The regression mentioned in comment#9 has been fixed in qemu-kvm-1.5.3-39.el7.
This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request.