diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-26 22:17:19 -0500 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-26 22:17:19 -0500 | 
| commit | f4d53cedce872fe1439818d15e067b497b5d466f (patch) | |
| tree | b6942135c8a4235cb409a833d736307eaecdbc90 /drivers/virtio/virtio.c | |
| parent | 9bb9f2220e6d904f60f9f72209b5313d0808f0c2 (diff) | |
| parent | 8329d98e480250ef5f5a083f9c3af50510b5e65d (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
  virtio: fix net driver loop case where we fail to restart
  module: fix and elaborate comments
  virtio: fix module/device unloading
  lguest: Fix uninitialized members in example launcher
Diffstat (limited to 'drivers/virtio/virtio.c')
| -rw-r--r-- | drivers/virtio/virtio.c | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index 15d7787dea87..69d7ea02cd48 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c | |||
| @@ -96,10 +96,23 @@ static int virtio_dev_probe(struct device *_d) | |||
| 96 | return err; | 96 | return err; | 
| 97 | } | 97 | } | 
| 98 | 98 | ||
| 99 | static int virtio_dev_remove(struct device *_d) | ||
| 100 | { | ||
| 101 | struct virtio_device *dev = container_of(_d,struct virtio_device,dev); | ||
| 102 | struct virtio_driver *drv = container_of(dev->dev.driver, | ||
| 103 | struct virtio_driver, driver); | ||
| 104 | |||
| 105 | dev->config->set_status(dev, dev->config->get_status(dev) | ||
| 106 | & ~VIRTIO_CONFIG_S_DRIVER); | ||
| 107 | drv->remove(dev); | ||
| 108 | return 0; | ||
| 109 | } | ||
| 110 | |||
| 99 | int register_virtio_driver(struct virtio_driver *driver) | 111 | int register_virtio_driver(struct virtio_driver *driver) | 
| 100 | { | 112 | { | 
| 101 | driver->driver.bus = &virtio_bus; | 113 | driver->driver.bus = &virtio_bus; | 
| 102 | driver->driver.probe = virtio_dev_probe; | 114 | driver->driver.probe = virtio_dev_probe; | 
| 115 | driver->driver.remove = virtio_dev_remove; | ||
| 103 | return driver_register(&driver->driver); | 116 | return driver_register(&driver->driver); | 
| 104 | } | 117 | } | 
| 105 | EXPORT_SYMBOL_GPL(register_virtio_driver); | 118 | EXPORT_SYMBOL_GPL(register_virtio_driver); | 
