lkml.org 
[lkml]   [2004]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH] Driver Core patches for 2.6.10-rc1
    Date
    From
    ChangeSet 1.2020, 2004/10/22 14:29:19-07:00, akpm@osdl.org

    [PATCH] kobject_hotplug: permit no hotplug_ops

    Make kobject_hotplug() work even if the kobject's kset doesn't implement any
    hotplug_ops.

    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


    lib/kobject_uevent.c | 19 ++++++++++++-------
    1 files changed, 12 insertions(+), 7 deletions(-)


    diff -Nru a/lib/kobject_uevent.c b/lib/kobject_uevent.c
    --- a/lib/kobject_uevent.c 2004-10-22 16:00:04 -07:00
    +++ b/lib/kobject_uevent.c 2004-10-22 16:00:04 -07:00
    @@ -187,6 +187,8 @@
    u64 seq;
    struct kobject *top_kobj = kobj;
    struct kset *kset;
    + static struct kset_hotplug_ops null_hotplug_ops;
    + struct kset_hotplug_ops *hotplug_ops = &null_hotplug_ops;

    if (!top_kobj->kset && top_kobj->parent) {
    do {
    @@ -194,15 +196,18 @@
    } while (!top_kobj->kset && top_kobj->parent);
    }

    - if (top_kobj->kset && top_kobj->kset->hotplug_ops)
    + if (top_kobj->kset)
    kset = top_kobj->kset;
    else
    return;

    + if (kset->hotplug_ops)
    + hotplug_ops = kset->hotplug_ops;
    +
    /* If the kset has a filter operation, call it.
    Skip the event, if the filter returns zero. */
    - if (kset->hotplug_ops->filter) {
    - if (!kset->hotplug_ops->filter(kset, kobj))
    + if (hotplug_ops->filter) {
    + if (!hotplug_ops->filter(kset, kobj))
    return;
    }

    @@ -221,8 +226,8 @@
    if (!buffer)
    goto exit;

    - if (kset->hotplug_ops->name)
    - name = kset->hotplug_ops->name(kset, kobj);
    + if (hotplug_ops->name)
    + name = hotplug_ops->name(kset, kobj);
    if (name == NULL)
    name = kset->kobj.name;

    @@ -256,9 +261,9 @@
    envp [i++] = scratch;
    scratch += sprintf(scratch, "SUBSYSTEM=%s", name) + 1;

    - if (kset->hotplug_ops->hotplug) {
    + if (hotplug_ops->hotplug) {
    /* have the kset specific function add its stuff */
    - retval = kset->hotplug_ops->hotplug (kset, kobj,
    + retval = hotplug_ops->hotplug (kset, kobj,
    &envp[i], NUM_ENVP - i, scratch,
    BUFFER_SIZE - (scratch - buffer));
    if (retval) {
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:07    [W:0.022 / U:0.524 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site