• Cornelia Huck's avatar
    virtio: Don't access index after unregister. · 237242bd
    Cornelia Huck authored
    Virtio wants to release used indices after the corresponding
    virtio device has been unregistered. However, virtio does not
    hold an extra reference, giving up its last reference with
    device_unregister(), making accessing dev->index afterwards
    invalid.
    
    I actually saw problems when testing my (not-yet-merged)
    virtio-ccw code:
    
    - device_add virtio-net,id=xxx
    -> creates device virtio<n> with n>0
    
    - device_del xxx
    -> deletes virtio<n>, but calls ida_simple_remove with an
       index of 0
    
    - device_add virtio-net,id=xxx
    -> tries to add virtio0, which is still in use...
    
    So let's save the index we want to release before calling
    device_unregister().
    Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
    Acked-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
    Cc: stable@kernel.org
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    237242bd
virtio.c 6.8 KB