Bug 1031098

Summary: Disable device smbus-eeprom
Product: Red Hat Enterprise Linux 7 Reporter: Markus Armbruster <armbru>
Component: qemu-kvmAssignee: Markus Armbruster <armbru>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: acathrow, armbru, juzhang, qiguo, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-1.5.3-38.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 10:28:21 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:
Bug Depends On:    
Bug Blocks: 720747    

Description Markus Armbruster 2013-11-15 15:38:58 UTC
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

Comment 2 Markus Armbruster 2013-12-16 15:09:03 UTC
Proposed upstream fix: https://lists.nongnu.org/archive/html/qemu-devel/2013-11/msg03997.html

Comment 3 Miroslav Rezanina 2014-01-17 13:27:23 UTC
Fix included in qemu-kvm-1.5.3-38.el7

Comment 5 Qian Guo 2014-01-21 07:26:44 UTC
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.

Comment 6 Qian Guo 2014-01-21 07:39:09 UTC
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.

Comment 7 Qian Guo 2014-01-21 07:41:35 UTC
(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)

Comment 8 Qian Guo 2014-01-21 07:57:22 UTC
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

Comment 9 Markus Armbruster 2014-01-21 08:21:23 UTC
Botched patch for bug 1026712 made -device nonexistant regress, fix posted already (subject: Fix -device / device_add error handling).

Comment 12 Markus Armbruster 2014-01-21 09:39:23 UTC
The regression mentioned in comment#9 has been fixed in qemu-kvm-1.5.3-39.el7.

Comment 19 Ludek Smid 2014-06-13 10:28:21 UTC
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.