lkml.org 
[lkml]   [2008]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] driver-core : get_device before create/remove sysfs files
    get dev reference before create/remove sysfiles, errno fixes as well.

    Signed-off-by: Dave Young <hidave.darkstar@gmail.com>

    ---
    drivers/base/core.c | 12 ++++++++----
    1 file changed, 8 insertions(+), 4 deletions(-)

    diff -upr a/drivers/base/core.c b/drivers/base/core.c
    --- a/drivers/base/core.c 2008-01-30 09:49:56.000000000 +0800
    +++ b/drivers/base/core.c 2008-01-30 09:49:56.000000000 +0800
    @@ -414,7 +414,7 @@ struct kset *devices_kset;
    */
    int device_create_file(struct device *dev, struct device_attribute *attr)
    {
    - int error = 0;
    + int error = -ENODEV;
    if (get_device(dev)) {
    error = sysfs_create_file(&dev->kobj, &attr->attr);
    put_device(dev);
    @@ -442,9 +442,11 @@ void device_remove_file(struct device *d
    */
    int device_create_bin_file(struct device *dev, struct bin_attribute *attr)
    {
    - int error = -EINVAL;
    - if (dev)
    + int error = -ENODEV;
    + if (get_device(dev)) {
    error = sysfs_create_bin_file(&dev->kobj, attr);
    + put_device(dev);
    + }
    return error;
    }
    EXPORT_SYMBOL_GPL(device_create_bin_file);
    @@ -456,8 +458,10 @@ EXPORT_SYMBOL_GPL(device_create_bin_file
    */
    void device_remove_bin_file(struct device *dev, struct bin_attribute *attr)
    {
    - if (dev)
    + if (get_device(dev)) {
    sysfs_remove_bin_file(&dev->kobj, attr);
    + put_device(dev);
    + }
    }
    EXPORT_SYMBOL_GPL(device_remove_bin_file);


    \
     
     \ /
      Last update: 2008-01-30 02:59    [W:0.020 / U:32.752 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site