Bug 501468

Summary: RHEL5.4 virtio: "Device does not have a release() function, it is broken and must be fixed" warnings
Product: Red Hat Enterprise Linux 5 Reporter: Yolkfull Chow <yzhou>
Component: kernelAssignee: Mark McLoughlin <markmc>
Status: CLOSED ERRATA QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: low Docs Contact:
Priority: medium    
Version: 5.4CC: dzickus, jcavallaro, kernel-maint, llim, markmc, ovirt-maint, Rhev-m-bugs, xen-maint
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-09-02 08:50:26 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Attachments:
Description Flags
driver-core-add-root_device_register.patch
none
virtio-add-PCI-device-release-function.patch
none
virtio-do-not-statically-allocate-root-device.patch none

Description Yolkfull Chow 2009-05-19 10:24:51 UTC
Description of problem:
Add a virtio pci device and then remove it, can find trace message in dmesg:

-----
acpiphp: Slot [29] registered
acpiphp: Slot [30] registered
acpiphp: Slot [31] registered
ACPI Exception (pci_bind-0302): AE_NOT_FOUND, Unable to get data from device S4 [20060707]
PCI: Ignore bogus resource 6 [0:0] of 0000:00:02.0
decode_hpp: Could not get hotplug parameters. Use defaults
PCI: Enabling device 0000:00:04.0 (0000 -> 0001)
ACPI: PCI Interrupt 0000:00:04.0[A] -> Link [LNKD] -> GSI 11 (level, high) -> IRQ 11
Device 'virtio1' does not have a release() function, it is broken and must be fixed.
BUG: warning at drivers/base/core.c:101/device_release() (Not tainted)

Call Trace:
 [<ffffffff80149402>] kobject_cleanup+0x53/0x7e
 [<ffffffff8014942d>] kobject_release+0x0/0x9
 [<ffffffff80034e87>] kref_put+0x6f/0x7a
 [<ffffffff881ec04a>] :virtio_pci:virtio_pci_remove+0x19/0x5e
 [<ffffffff80154e3c>] pci_device_remove+0x24/0x3a
 [<ffffffff801b6cd3>] __device_release_driver+0x9f/0xc3
 [<ffffffff801b6fa4>] device_release_driver+0x2c/0x4e
 [<ffffffff801b64d4>] bus_remove_device+0x9b/0xb0
 [<ffffffff801b524d>] device_del+0x129/0x1a9
 [<ffffffff801b52ea>] device_unregister+0x9/0x12
 [<ffffffff8015215c>] pci_stop_dev+0x25/0x57
 [<ffffffff884ae79f>] :acpiphp:acpiphp_disable_slot+0x66/0x12a
 [<ffffffff8016cde5>] acpi_os_execute_deferred+0x0/0x27
 [<ffffffff884aee53>] :acpiphp:handle_hotplug_event_func+0x10c/0x13e
 [<ffffffff80185c91>] acpi_bus_get_device+0x1d/0x2e
 [<ffffffff801728a0>] acpi_ev_notify_dispatch+0x57/0x60
 [<ffffffff8016ce03>] acpi_os_execute_deferred+0x1e/0x27
 [<ffffffff8004d139>] run_workqueue+0x94/0xe4
 [<ffffffff800499ba>] worker_thread+0x0/0x122
 [<ffffffff8009d909>] keventd_create_kthread+0x0/0xc4
 [<ffffffff80049aaa>] worker_thread+0xf0/0x122
 [<ffffffff8008a461>] default_wake_function+0x0/0xe
 [<ffffffff8009d909>] keventd_create_kthread+0x0/0xc4
 [<ffffffff8009d909>] keventd_create_kthread+0x0/0xc4
 [<ffffffff80032360>] kthread+0xfe/0x132
 [<ffffffff8005dfb1>] child_rip+0xa/0x11
 [<ffffffff8009d909>] keventd_create_kthread+0x0/0xc4
 [<ffffffff80032262>] kthread+0x0/0x132
 [<ffffffff8005dfa7>] child_rip+0x0/0x11

ACPI: PCI interrupt for device 0000:00:04.0 disabled

Version-Release number of selected component (if applicable):
83-51

How reproducible:
everytime

Steps to Reproduce:
1. add a virtio pci device: #pci_add pci_addr=auto nic model=virtio
2. try to remove it: #pci_del pci_addr=<addr>
3. found call trace in dmesg
  
Actual results:
get call trace

Expected results:
Can remove virtio pci device successfully

Additional info:

Comment 1 Yaniv Kaul 2009-05-19 10:53:14 UTC
Hot-add is not supported for RHEV 2.1.

Comment 2 Mark McLoughlin 2009-05-19 10:58:05 UTC
As I said in bug #500975 ...

This is a bug with the guest driver. Please do not confuse guest issues with
host issues. Only host bugs are relevant to RHEV-H

What OS is the guest running? RHEL 5.4? If so, please file a bug against
RHEL5.4/kernel about this and cc me. Thanks

Comment 3 Yolkfull Chow 2009-05-19 11:38:45 UTC
Guest RHEL-5.3-server-64, ah... yes,seems to be guest's driver problem.

Comment 5 RHEL Product and Program Management 2009-05-19 18:30:31 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.

Comment 7 Mark McLoughlin 2009-07-01 13:37:37 UTC
Created attachment 350109 [details]
driver-core-add-root_device_register.patch

Comment 8 Mark McLoughlin 2009-07-01 13:38:08 UTC
Created attachment 350110 [details]
virtio-add-PCI-device-release-function.patch

Comment 9 Mark McLoughlin 2009-07-01 13:38:37 UTC
Created attachment 350112 [details]
virtio-do-not-statically-allocate-root-device.patch

Comment 11 Don Zickus 2009-07-14 20:57:10 UTC
in kernel-2.6.18-158.el5
You can download this test kernel from http://people.redhat.com/dzickus/el5

Please do NOT transition this bugzilla state to VERIFIED until our QE team
has sent specific instructions indicating when to do so.  However feel free
to provide a comment indicating that this fix has been verified.

Comment 14 errata-xmlrpc 2009-09-02 08:50:26 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2009-1243.html