public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: Andrew <cmkrnl@speakeasy.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kernel-2.6.9.rc4 lib/kobject.c
Date: Sun, 17 Oct 2004 10:14:36 -0700	[thread overview]
Message-ID: <20041017171436.GA23454@kroah.com> (raw)
In-Reply-To: <4171EB60.50800@speakeasy.net>

On Sat, Oct 16, 2004 at 11:47:44PM -0400, Andrew wrote:
> 
> --- lib/kobject.c.orig    2004-10-16 20:51:01.450973973 -0400
> +++ lib/kobject.c    2004-10-16 21:08:19.961602269 -0400
> @@ -177,6 +177,10 @@ static void kset_hotplug(const char *act
>    envp [i++] = scratch;
>    scratch += sprintf(scratch, "ACTION=%s", action) + 1;
> 
> +    kobj_path = kobject_get_path(kset, kobj, GFP_KERNEL);
> +    if (!kobj_path)
> +        goto exit;
> +

Your email client ate the tabs :(

>    spin_lock(&sequence_lock);
>    seq = sequence_num++;
>    spin_unlock(&sequence_lock);
> @@ -184,10 +188,6 @@ static void kset_hotplug(const char *act
>    envp [i++] = scratch;
>    scratch += sprintf(scratch, "SEQNUM=%ld", seq) + 1;
> 
> -    kobj_path = kobject_get_path(kset, kobj, GFP_KERNEL);
> -    if (!kobj_path)
> -        goto exit;
> -
>    envp [i++] = scratch;
>    scratch += sprintf (scratch, "DEVPATH=%s", kobj_path) + 1;
> 
> @@ -199,6 +199,13 @@ static void kset_hotplug(const char *act
>        if (retval) {
>            pr_debug ("%s - hotplug() returned %d\n",
>                  __FUNCTION__, retval);
> +            /* decr sequence_num since no event will happen
> +               but only if it is consistent */
> +            spin_lock(&sequence_lock);
> +            if (sequence_num == seq+1)
> +               sequence_num--;
> +            spin_unlock(&sequence_lock);
> +

This could cause the same sequence number to be given to more than one
event.  That would really mess userspace up.  It can handle gaps in
sequence numbers, as long as they are constantly incrementing.

Care to redo this to give out the sequence number as the last thing
before calling call_usermodehelper()?  That should fix the issue, right?

Oh, and this portion of the kernel has been pretty much reworked a lot
recently.  Check out the -mm kernel release for what it now looks like
(and what will be sent to Linus after 2.6.9 is released.)

thanks,

greg k-h

      parent reply	other threads:[~2004-10-17 17:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-17  3:47 [PATCH] kernel-2.6.9.rc4 lib/kobject.c Andrew
2004-10-17  8:20 ` Olaf Hering
2004-10-17 17:14 ` Greg KH [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20041017171436.GA23454@kroah.com \
    --to=greg@kroah.com \
    --cc=cmkrnl@speakeasy.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox