lkml.org 
[lkml]   [2010]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH] sysfs: Document sysfs_attr_init and sysfs_bin_attr_init
    From
    Date
    Greg KH <gregkh@suse.de> writes:

    > On Thu, Feb 11, 2010 at 03:23:05PM -0800, Eric W. Biederman wrote:
    >>
    >> These are the non-static sysfs attributes that exist on
    >> my test machine. Fix them to use sysfs_attr_init or
    >> sysfs_bin_attr_init as appropriate. It simply requires
    >> making a sysfs attribute present to see this. So this
    >> is a little bit tedious but otherwise not too bad.
    >
    > Can we document this in the sysfs_attr_init kerneldoc documentation that
    > you add for this new function?

    Here you go.

    From 646c76c0b20b30923a652bbf8cefec5e335359a9 Mon Sep 17 00:00:00 2001
    From: Eric W. Biederman <ebiederm@xmission.com>
    Date: Fri, 12 Feb 2010 04:35:32 -0800
    Subject: [PATCH] sysfs: Document sysfs_attr_init and sysfs_bin_attr_init

    I have added a new requirement to the external sysfs interface
    that dynamically allocated sysfs attributes must call sysfs_attr_init
    if lockdep is enabled. For the time being callying sysfs_attr_init
    is only mandatory if lockdep is enabled, so we can live with a few
    unconverted instances until we find them all. As this is part of
    the public interface of sysfs it is a good idea to document these
    pseudo functions so someone inspeciting the code can find out
    what has happened.

    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    ---
    include/linux/sysfs.h | 20 ++++++++++++++++++++
    1 files changed, 20 insertions(+), 0 deletions(-)

    diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
    index c3048de..2b24ae5 100644
    --- a/include/linux/sysfs.h
    +++ b/include/linux/sysfs.h
    @@ -36,6 +36,16 @@ struct attribute {
    #endif
    };

    +/**
    + * sysfs_attr_init - initialize a dynamically allocated sysfs attribute
    + * @attr: struct attribute to initialize
    + *
    + * Initialize a dynamically allocated struct attribute so we can
    + * make lockdep happy. This is a new requirement for attributes
    + * and initially this is only needed when lockdep is enabled.
    + * Lockdep gives a nice error when your attribute is added to
    + * sysfs if you don't have this.
    + */
    #ifdef CONFIG_DEBUG_LOCK_ALLOC
    #define sysfs_attr_init(attr) \
    do { \
    @@ -90,6 +100,16 @@ struct bin_attribute {
    struct vm_area_struct *vma);
    };

    +/**
    + * sysfs_bin_attr_init - initialize a dynamically allocated bin_attribute
    + * @attr: struct bin_attribute to initialize
    + *
    + * Initialize a dynamically allocated struct bin_attribute so we
    + * can make lockdep happy. This is a new requirement for
    + * attributes and initially this is only needed when lockdep is
    + * enabled. Lockdep gives a nice error when your attribute is
    + * added to sysfs if you don't have this.
    + */
    #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&bin_attr->attr)

    struct sysfs_ops {
    --
    1.6.5.2.143.g8cc62


    \
     
     \ /
      Last update: 2010-02-12 13:49    [W:4.354 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site