Re: [PATCH] virtio: make PCI devices take a virtio_pci module ref

Jiri Slaby
2008-12-05T13:17:30Z

Michael Tokarev napsal(a):
> Jiri Slaby wrote:
>> On 12/04/2008 01:44 PM, Mark McLoughlin wrote:
>>> Nothing takes a ref on virtio_pci, so even if you have
>>> devices in use, rmmod will attempt to unload the module.
>> It unbinds the device properly as any other driver. So what's the problem here?
>
> Here's what we get when rmmod'ing (a zero-refcounted but
> in use) virtio_pci (I did it by a chance, cut-n-pasted
> the wrong line):
>
> WARNING: at drivers/base/core.c:122 device_release+0x5f/0x70()
> Device 'virtio1' does not have a release() function, it is broken and must be fixed.
> Modules linked in: ext3 jbd mbcache acpiphp dock pci_hotplug virtio_net virtio_blk virtio_pci(-) virtio_ring virtio
>
> Pid: 361, comm: rmmod Tainted: G S 2.6.27-i686smp #2.6.27.7
> [<c012b81f>] warn_slowpath+0x6f/0xa0
> [<c0110030>] prepare_set+0x30/0x80
> [<c012067e>] __wake_up+0x3e/0x60
> [<c01d1d25>] release_sysfs_dirent+0x45/0xb0
> ...

So why don't you fix the root cause and add such a crap into the probe
function (not even counting probe can fail later)?

Fix the virtio bus instead.