diff options
author | weiping zhang <zwp10758@gmail.com> | 2017-11-28 20:23:01 -0500 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2017-12-01 09:55:32 -0500 |
commit | e60ea67bb60459b95a50a156296041a13e0e380e (patch) | |
tree | 3a84c30892f84e70e9ea5c7c24e1ee55ddb8ca0c /drivers | |
parent | 23f1b8d938c861ee0bbb786162f7ce0685f722ec (diff) |
virtio: release virtio index when fail to device_register
index can be reused by other virtio device.
Cc: stable@vger.kernel.org
Signed-off-by: weiping zhang <zhangweiping@didichuxing.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/virtio/virtio.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index 48230a5e12f2..bf7ff3934d7f 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c | |||
@@ -333,6 +333,8 @@ int register_virtio_device(struct virtio_device *dev) | |||
333 | /* device_register() causes the bus infrastructure to look for a | 333 | /* device_register() causes the bus infrastructure to look for a |
334 | * matching driver. */ | 334 | * matching driver. */ |
335 | err = device_register(&dev->dev); | 335 | err = device_register(&dev->dev); |
336 | if (err) | ||
337 | ida_simple_remove(&virtio_index_ida, dev->index); | ||
336 | out: | 338 | out: |
337 | if (err) | 339 | if (err) |
338 | virtio_add_status(dev, VIRTIO_CONFIG_S_FAILED); | 340 | virtio_add_status(dev, VIRTIO_CONFIG_S_FAILED); |