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

Rusty Russell
2008-12-07T08:30:44Z

On Friday 05 December 2008 23:47:06 Jiri Slaby wrote:
> 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.

Incoherent? CHECK
Rude to bug reporter? CHECK
Unhelpful? CHECK

Wow, you must be a *great* kernel maintainer!

Thanks for making us all so very, very proud.
Rusty.