Messages in this thread | | | Date | Fri, 05 Dec 2008 14:17:06 +0100 | From | Jiri Slaby <> | Subject | Re: [PATCH] virtio: make PCI devices take a virtio_pci module ref |
| |
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.
| |