search for: unregister_virtio_device

Displaying 20 results from an estimated 227 matches for "unregister_virtio_device".

2012 Sep 03
1
[PATCH] virtio: Don't access device data after unregistration.
...rtio/virtio.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index c3b3f7f..71eacd1 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -225,8 +225,9 @@ EXPORT_SYMBOL_GPL(register_virtio_device); void unregister_virtio_device(struct virtio_device *dev) { - device_unregister(&dev->dev); + device_del(&dev->dev); ida_simple_remove(&virtio_index_ida, dev->index); + put_device(&dev->dev); } EXPORT_SYMBOL_GPL(unregister_virtio_device); -- 1.7.5.4
2012 Sep 03
1
[PATCH] virtio: Don't access device data after unregistration.
...rtio/virtio.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index c3b3f7f..71eacd1 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -225,8 +225,9 @@ EXPORT_SYMBOL_GPL(register_virtio_device); void unregister_virtio_device(struct virtio_device *dev) { - device_unregister(&dev->dev); + device_del(&dev->dev); ida_simple_remove(&virtio_index_ida, dev->index); + put_device(&dev->dev); } EXPORT_SYMBOL_GPL(unregister_virtio_device); -- 1.7.5.4
2012 Nov 08
3
[PATCH] virtio: Don't access index after unregister.
.../virtio/virtio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index 1e8659c..809b0de 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -225,8 +225,10 @@ EXPORT_SYMBOL_GPL(register_virtio_device); void unregister_virtio_device(struct virtio_device *dev) { + int index = dev->index; /* save for after device release */ + device_unregister(&dev->dev); - ida_simple_remove(&virtio_index_ida, dev->index); + ida_simple_remove(&virtio_index_ida, index); } EXPORT_SYMBOL_GPL(unregister_virtio_device); --...
2012 Nov 08
3
[PATCH] virtio: Don't access index after unregister.
.../virtio/virtio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index 1e8659c..809b0de 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -225,8 +225,10 @@ EXPORT_SYMBOL_GPL(register_virtio_device); void unregister_virtio_device(struct virtio_device *dev) { + int index = dev->index; /* save for after device release */ + device_unregister(&dev->dev); - ida_simple_remove(&virtio_index_ida, dev->index); + ida_simple_remove(&virtio_index_ida, index); } EXPORT_SYMBOL_GPL(unregister_virtio_device); --...
2011 Jan 05
3
[PATCH] virtio-pci: add softlinks between virtio and pci
...register_device; + + err = sysfs_create_link(&vp_dev->vdev.dev.kobj, &pci_dev->dev.kobj, + "bus_device"); + if (err) + goto out_create_link; + return 0; +out_create_link: + sysfs_remove_link(&pci_dev->dev.kobj, "virtio_device"); +out_register_device: + unregister_virtio_device(&vp_dev->vdev); out_set_drvdata: pci_set_drvdata(pci_dev, NULL); pci_iounmap(pci_dev, vp_dev->ioaddr); @@ -685,6 +699,8 @@ static void __devexit virtio_pci_remove(struct pci_dev *pci_dev) { struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); + sysfs_remove_link(&vp_...
2011 Jan 05
3
[PATCH] virtio-pci: add softlinks between virtio and pci
...register_device; + + err = sysfs_create_link(&vp_dev->vdev.dev.kobj, &pci_dev->dev.kobj, + "bus_device"); + if (err) + goto out_create_link; + return 0; +out_create_link: + sysfs_remove_link(&pci_dev->dev.kobj, "virtio_device"); +out_register_device: + unregister_virtio_device(&vp_dev->vdev); out_set_drvdata: pci_set_drvdata(pci_dev, NULL); pci_iounmap(pci_dev, vp_dev->ioaddr); @@ -685,6 +699,8 @@ static void __devexit virtio_pci_remove(struct pci_dev *pci_dev) { struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); + sysfs_remove_link(&vp_...
2016 Jan 14
1
[PATCH] virtio_pci: fix use after free on release
KASan detected a use-after-free error in virtio-pci remove code. In virtio_pci_remove(), vp_dev is still used after being freed in unregister_virtio_device() (in virtio_pci_release_dev() more precisely). To fix, keep a reference until cleanup is done. Fixes: 63bd62a08ca4 ("virtio_pci: defer kfree until release callback") Reported-by: Jerome Marchand <jmarchan at redhat.com> Cc: stable at vger.kernel.org Cc: Sasha Levin <sasha.levi...
2016 Jan 14
1
[PATCH] virtio_pci: fix use after free on release
KASan detected a use-after-free error in virtio-pci remove code. In virtio_pci_remove(), vp_dev is still used after being freed in unregister_virtio_device() (in virtio_pci_release_dev() more precisely). To fix, keep a reference until cleanup is done. Fixes: 63bd62a08ca4 ("virtio_pci: defer kfree until release callback") Reported-by: Jerome Marchand <jmarchan at redhat.com> Cc: stable at vger.kernel.org Cc: Sasha Levin <sasha.levi...
2012 May 03
1
[PATCH 2/2] virtio: Use ida to allocate virtio index
...virtio_device *dev) /* device_register() causes the bus infrastructure to look for a * matching driver. */ err = device_register(&dev->dev); +out: if (err) add_status(dev, VIRTIO_CONFIG_S_FAILED); return err; @@ -217,6 +223,7 @@ EXPORT_SYMBOL_GPL(register_virtio_device); void unregister_virtio_device(struct virtio_device *dev) { device_unregister(&dev->dev); + ida_simple_remove(&virtio_index_ida, dev->index); } EXPORT_SYMBOL_GPL(unregister_virtio_device); -- 1.7.10
2012 May 03
1
[PATCH 2/2] virtio: Use ida to allocate virtio index
...virtio_device *dev) /* device_register() causes the bus infrastructure to look for a * matching driver. */ err = device_register(&dev->dev); +out: if (err) add_status(dev, VIRTIO_CONFIG_S_FAILED); return err; @@ -217,6 +223,7 @@ EXPORT_SYMBOL_GPL(register_virtio_device); void unregister_virtio_device(struct virtio_device *dev) { device_unregister(&dev->dev); + ida_simple_remove(&virtio_index_ida, dev->index); } EXPORT_SYMBOL_GPL(unregister_virtio_device); -- 1.7.10
2014 Sep 22
1
[PATCH] virtio: unify config_changed handling
...mio.c | 7 ++----- drivers/virtio/virtio_pci.c | 6 +----- 7 files changed, 18 insertions(+), 28 deletions(-) diff --git a/include/linux/virtio.h b/include/linux/virtio.h index b46671e..3c19bd3 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h @@ -108,6 +108,8 @@ void unregister_virtio_device(struct virtio_device *dev); void virtio_break_device(struct virtio_device *dev); +void virtio_config_changed(struct virtio_device *dev); + /** * virtio_driver - operations for a virtio I/O driver * @driver: underlying device driver (populate name and owner). diff --git a/drivers/misc/mic/...
2014 Sep 22
1
[PATCH] virtio: unify config_changed handling
...mio.c | 7 ++----- drivers/virtio/virtio_pci.c | 6 +----- 7 files changed, 18 insertions(+), 28 deletions(-) diff --git a/include/linux/virtio.h b/include/linux/virtio.h index b46671e..3c19bd3 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h @@ -108,6 +108,8 @@ void unregister_virtio_device(struct virtio_device *dev); void virtio_break_device(struct virtio_device *dev); +void virtio_config_changed(struct virtio_device *dev); + /** * virtio_driver - operations for a virtio I/O driver * @driver: underlying device driver (populate name and owner). diff --git a/drivers/misc/mic/...
2008 Mar 20
1
[PATCH] virtio_pci: unregister virtio device at device remove
Make sure to call unregister_virtio_device() when a virtio device is removed. Otherwise, virtio_pci.ko cannot be rmmod'd. This was spotted by Marcelo Tosatti. Signed-off-by: Anthony Liguori <aliguori at us.ibm.com> diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index 59a8f73..6c8ecde 100644 --- a/drivers...
2011 Apr 05
1
[PATCH] virtio: decrement dev_index when device is unregistered
...to be available. Signed-off-by: Takuma Umeya <tumeya at redhat.com> diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index efb35aa..67fe71d 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -216,6 +216,7 @@ EXPORT_SYMBOL_GPL(register_virtio_device); void unregister_virtio_device(struct virtio_device *dev) { device_unregister(&dev->dev); + dev_index--; } EXPORT_SYMBOL_GPL(unregister_virtio_device); -- Umeya, Takuma Technical Account Manager Red Hat GSS APAC +81.3.5798.8584 (direct) tumeya at redhat.com
2008 Mar 20
1
[PATCH] virtio_pci: unregister virtio device at device remove
Make sure to call unregister_virtio_device() when a virtio device is removed. Otherwise, virtio_pci.ko cannot be rmmod'd. This was spotted by Marcelo Tosatti. Signed-off-by: Anthony Liguori <aliguori at us.ibm.com> diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index 59a8f73..6c8ecde 100644 --- a/drivers...
2011 Apr 05
1
[PATCH] virtio: decrement dev_index when device is unregistered
...to be available. Signed-off-by: Takuma Umeya <tumeya at redhat.com> diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index efb35aa..67fe71d 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -216,6 +216,7 @@ EXPORT_SYMBOL_GPL(register_virtio_device); void unregister_virtio_device(struct virtio_device *dev) { device_unregister(&dev->dev); + dev_index--; } EXPORT_SYMBOL_GPL(unregister_virtio_device); -- Umeya, Takuma Technical Account Manager Red Hat GSS APAC +81.3.5798.8584 (direct) tumeya at redhat.com
2014 Apr 25
0
[PATCH 1/1] virtio_ccw: introduce device_lost in virtio_ccw_device
...ic void virtio_ccw_remove(struct ccw_device *cdev) unsigned long flags; struct virtio_ccw_device *vcdev = virtio_grab_drvdata(cdev); - if (vcdev && cdev->online) + if (vcdev && cdev->online) { + if (vcdev->device_lost) + virtio_break_device(&vcdev->vdev); unregister_virtio_device(&vcdev->vdev); - spin_lock_irqsave(get_ccwdev_lock(cdev), flags); - dev_set_drvdata(&cdev->dev, NULL); - spin_unlock_irqrestore(get_ccwdev_lock(cdev), flags); + spin_lock_irqsave(get_ccwdev_lock(cdev), flags); + dev_set_drvdata(&cdev->dev, NULL); + spin_unlock_irqrestore(get...
2013 Dec 13
0
[PATCH v4 RFC 1/3] virtio_ccw: fix vcdev pointer handling issues
...cdev), flags); + return vcdev; +} + static void virtio_ccw_remove(struct ccw_device *cdev) { - struct virtio_ccw_device *vcdev = dev_get_drvdata(&cdev->dev); + struct virtio_ccw_device *vcdev = virtio_grab_drvdata(cdev); - if (cdev->online) { + if (vcdev && cdev->online) unregister_virtio_device(&vcdev->vdev); - dev_set_drvdata(&cdev->dev, NULL); - } cdev->handler = NULL; } static int virtio_ccw_offline(struct ccw_device *cdev) { - struct virtio_ccw_device *vcdev = dev_get_drvdata(&cdev->dev); + struct virtio_ccw_device *vcdev = virtio_grab_drvdata(cdev);...
2014 Apr 25
2
[PATCH 0/1] virtio_ccw: exploit virtio_break_device()
Rusty, this patch exploits the new function virtio_break_device() as of your patch set dated January 15th on linux-kernel at vger.kernel.org. The patch avoids hang situations during device unregister, when a (block) device with active IO is hot-unplugged. Heinz Graalfs (1): virtio_ccw: introduce device_lost in virtio_ccw_device drivers/s390/kvm/virtio_ccw.c | 49
2014 Apr 25
2
[PATCH 0/1] virtio_ccw: exploit virtio_break_device()
Rusty, this patch exploits the new function virtio_break_device() as of your patch set dated January 15th on linux-kernel at vger.kernel.org. The patch avoids hang situations during device unregister, when a (block) device with active IO is hot-unplugged. Heinz Graalfs (1): virtio_ccw: introduce device_lost in virtio_ccw_device drivers/s390/kvm/virtio_ccw.c | 49