All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] virtio: make PCI devices take a virtio_pci module ref
@ 2008-12-04 12:44 Mark McLoughlin
  2008-12-04 22:46 ` Jiri Slaby
  2008-12-05  0:13 ` Rusty Russell
  0 siblings, 2 replies; 86+ messages in thread
From: Mark McLoughlin @ 2008-12-04 12:44 UTC (permalink / raw)
  To: Rusty Russell; +Cc: linux-kernel, kvm, Anthony Liguori, Michael Tokarev

Nothing takes a ref on virtio_pci, so even if you have
devices in use, rmmod will attempt to unload the module.

Fix by simply making each device take a ref on the module.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Reported-by: Michael Tokarev <mjt@tls.msk.ru>
---
 drivers/virtio/virtio_pci.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c
index c7dc37c..147a17f 100644
--- a/drivers/virtio/virtio_pci.c
+++ b/drivers/virtio/virtio_pci.c
@@ -322,6 +322,9 @@ static int __devinit virtio_pci_probe(struct pci_dev *pci_dev,
 		return -ENODEV;
 	}
 
+	if (!try_module_get(THIS_MODULE))
+		return -ENODEV;
+
 	/* allocate our structure and fill it out */
 	vp_dev = kzalloc(sizeof(struct virtio_pci_device), GFP_KERNEL);
 	if (vp_dev == NULL)
@@ -393,6 +396,7 @@ static void __devexit virtio_pci_remove(struct pci_dev *pci_dev)
 	pci_release_regions(pci_dev);
 	pci_disable_device(pci_dev);
 	kfree(vp_dev);
+	module_put(THIS_MODULE);
 }
 
 #ifdef CONFIG_PM
-- 
1.6.0.3


^ permalink raw reply related	[flat|nested] 86+ messages in thread

end of thread, other threads:[~2008-12-15 22:27 UTC | newest]

Thread overview: 86+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-04 12:44 [PATCH] virtio: make PCI devices take a virtio_pci module ref Mark McLoughlin
2008-12-04 22:46 ` Jiri Slaby
2008-12-05  9:02   ` Michael Tokarev
2008-12-05 13:17     ` Jiri Slaby
2008-12-05 14:55       ` Mark McLoughlin
2008-12-05 15:25         ` Jiri Slaby
2008-12-05 15:26           ` Greg KH
2008-12-05 15:26             ` Greg KH
2008-12-05 18:30             ` Mark McLoughlin
2008-12-05 18:46               ` Greg KH
2008-12-08 11:49                 ` [PATCH 1/2] virtio: add PCI device release() function Mark McLoughlin
2008-12-08 11:49                   ` [PATCH 2/2] virtio: do not statically allocate root device Mark McLoughlin
2008-12-08 14:43                     ` Anthony Liguori
2008-12-08 14:58                       ` Mark McLoughlin
2008-12-05 18:33           ` [PATCH] virtio: make PCI devices take a virtio_pci module ref Mark McLoughlin
2008-12-05 15:43         ` Anthony Liguori
2008-12-05 17:22           ` Jiri Slaby
2008-12-05 18:36           ` Mark McLoughlin
2008-12-05 18:54             ` Anthony Liguori
2008-12-07  8:30       ` Rusty Russell
2008-12-07 13:36         ` Jiri Slaby
2008-12-05  0:13 ` Rusty Russell
2008-12-05 15:07   ` Mark McLoughlin
2008-12-07  8:22     ` Rusty Russell
2008-12-08 13:03       ` Mark McLoughlin
2008-12-08 14:46         ` Anthony Liguori
2008-12-09 16:41           ` Mark McLoughlin
2008-12-09 16:57             ` Anthony Liguori
2008-12-09 18:16             ` Kay Sievers
2008-12-10  9:49               ` Mark McLoughlin
2008-12-10 12:02                 ` Kay Sievers
2008-12-10 17:44                   ` [PATCH 0/6] Clean up virtio device object handling [was Re: [PATCH] virtio: make PCI devices take a virtio_pci module ref] Mark McLoughlin
2008-12-10 17:44                     ` Mark McLoughlin
2008-12-10 17:45                     ` [PATCH 1/6] virtio: add PCI device release() function Mark McLoughlin
2008-12-10 17:45                       ` [PATCH 2/6] virtio: add register_virtio_root_device() Mark McLoughlin
2008-12-10 17:45                         ` [PATCH 3/6] virtio: do not statically allocate root device Mark McLoughlin
2008-12-10 17:45                           ` [PATCH 4/6] lguest: " Mark McLoughlin
2008-12-10 17:45                             ` [PATCH 5/6] kvm-s390: use register_virtio_root_device() Mark McLoughlin
2008-12-10 17:45                               ` [PATCH 6/6] lguest: struct device - replace bus_id with dev_name() Mark McLoughlin
2008-12-11  9:05                               ` [PATCH 5/6] kvm-s390: use register_virtio_root_device() Christian Borntraeger
2008-12-11 12:49                                 ` Cornelia Huck
2008-12-11 12:49                                   ` Cornelia Huck
2008-12-11  9:05                               ` Christian Borntraeger
2008-12-11 12:59                         ` [PATCH 2/6] virtio: add register_virtio_root_device() Cornelia Huck
2008-12-11 16:16                           ` Mark McLoughlin
2008-12-11 16:16                           ` Mark McLoughlin
2008-12-11 16:16                             ` [PATCH 1/4] driver core: add root_device_register() Mark McLoughlin
2008-12-11 16:16                               ` [PATCH 2/4] virtio: do not statically allocate root device Mark McLoughlin
2008-12-11 16:16                                 ` [PATCH 3/4] lguest: " Mark McLoughlin
2008-12-11 16:16                                   ` [PATCH 4/4] s390: remove s390_root_dev_*() Mark McLoughlin
2008-12-11 17:00                                     ` Cornelia Huck
2008-12-11 17:00                                       ` Cornelia Huck
2008-12-12  9:29                                       ` Cornelia Huck
2008-12-12  9:29                                       ` Cornelia Huck
2008-12-12  9:29                                         ` Cornelia Huck
2008-12-12  9:35                                         ` Mark McLoughlin
2008-12-12  9:35                                         ` Mark McLoughlin
2008-12-12  9:45                                           ` Martin Schwidefsky
2008-12-12  9:54                                             ` Martin Schwidefsky
2008-12-12  9:54                                               ` Martin Schwidefsky
2008-12-12  9:45                                           ` Martin Schwidefsky
2008-12-12  9:45                                           ` Cornelia Huck
2008-12-12  9:45                                           ` Cornelia Huck
2008-12-12 19:07                                           ` Greg KH
2008-12-12 19:07                                             ` Greg KH
2008-12-15 12:58                                             ` [PATCH 1/4] driver core: add root_device_register() Mark McLoughlin
2008-12-15 12:58                                               ` [PATCH 2/4] virtio: do not statically allocate root device Mark McLoughlin
2008-12-15 12:58                                                 ` [PATCH 3/4] lguest: " Mark McLoughlin
2008-12-15 12:58                                                   ` [PATCH 4/4] s390: remove s390_root_dev_*() Mark McLoughlin
2008-12-15 22:27                                                 ` [PATCH 2/4] virtio: do not statically allocate root device Rusty Russell
2008-12-15 22:27                                                 ` Rusty Russell
2008-12-11 17:00                                     ` [PATCH 4/4] s390: remove s390_root_dev_*() Cornelia Huck
2008-12-11 16:56                               ` [PATCH 1/4] driver core: add root_device_register() Cornelia Huck
2008-12-11 16:56                               ` Cornelia Huck
2008-12-11 18:23                                 ` Mark McLoughlin
2008-12-12  8:42                                   ` Cornelia Huck
2008-12-12  8:42                                   ` Cornelia Huck
2008-12-12  8:56                                     ` Mark McLoughlin
2008-12-12  8:56                                       ` Mark McLoughlin
2008-12-12  9:23                                       ` Cornelia Huck
2008-12-12  9:23                                       ` Cornelia Huck
2008-12-11 18:23                                 ` Mark McLoughlin
2008-12-11 12:59                         ` [PATCH 2/6] virtio: add register_virtio_root_device() Cornelia Huck
2008-12-10 18:07                     ` [PATCH 0/6] Clean up virtio device object handling [was Re: [PATCH] virtio: make PCI devices take a virtio_pci module ref] Kay Sievers
2008-12-10 18:07                     ` Kay Sievers
2008-12-09 22:25   ` [PATCH] virtio: make PCI devices take a virtio_pci module ref Jesse Barnes

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.