[lkml]   [2008]   [Aug]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH RESEND] char_dev: add cdev->release() and convert cdev_alloc() to use it
    Greg KH wrote:
    > Ick, I really don't want struct cdev to be used for lifecycle
    > management, as it is only for major:minor stuff. Why do you want to
    > make this change?

    Well, as cdev can be referenced from userspace, ->release is required
    for most purposes. The reason why devices have been getting by without
    it is because most chardevs are created on module load and destroyed on
    module unload and in the meantime cdev refcount virtually equals module
    refcnt, but I'm fairly sure we have cases where cdev can be destroyed
    for other reasons then module unloading and it's very likely those cases
    are buggy in the current code (backing structure gone bug cdev still
    hanging around).

    As CUSE can create and destroy devices regardless of module reference
    count, it falls in the second category and needs cdev->release() to make
    sure the backing structure doesn't go away till cdev is released.



     \ /
      Last update: 2008-08-28 19:01    [W:0.020 / U:175.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site