I am not 100% sure of this, but here is what I found.

I checked the video_unregister_device which calls device_unregister.

In drivers/base/core.c:
 * device_unregister - unregister device from system.
 * We do this in two parts, like we do device_register(). First,
 * we remove it from all the subsystems with device_del(), then
 * we decrement the reference count via put_device(). If that
 * is the final reference count, the device will be cleaned up
 * via device_release() above. Otherwise, the structure will
 * stick around until the final reference to the device is dropped.

and

 *     device_release - free device structure.
 *      This is called once the reference count for the object
 *      reaches 0. We forward the call to the device's release
 *      method, which should handle actually freeing the structure.

In device_release:
        if (dev->release)
                dev->release(dev);

I think this causes the release to be called twice if the device fails
to register. Is this correct?

-- 
radio_maestro module generates kernel oops and crash
https://bugs.launchpad.net/bugs/357724
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to