All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Tejun Heo <tj@kernel.org>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Kernel development list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] sysfs: get rid of some lockdep false positives
Date: Mon, 14 May 2012 12:18:53 -0700	[thread overview]
Message-ID: <20120514191853.GA4344@kroah.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1205141324200.1699-100000@iolanthe.rowland.org>

On Mon, May 14, 2012 at 01:30:03PM -0400, Alan Stern wrote:
> This patch (as1554) fixes a lockdep false-positive report.  The
> problem arises because lockdep is unable to deal with the
> tree-structured locks created by the device core and sysfs.
> 
> This particular problem involves a sysfs attribute method that
> unregisters itself, not from the device it was called for, but from a
> descendant device.  Lockdep doesn't understand the distinction and
> reports a possible deadlock, even though the operation is safe.
> 
> This is the sort of thing that would normally be handled by using a
> nested lock annotation; unfortunately it's not feasible to do that
> here.  There's no sensible way to tell sysfs when attribute removal
> occurs in the context of a parent attribute method.
> 
> As a workaround, the patch adds a new flag to struct attribute
> telling sysfs not to inform lockdep when it acquires a readlock on a
> sysfs_dirent instance for the attribute.  The readlock is still
> acquired, but lockdep doesn't know about it and hence does not
> complain about impossible deadlock scenarios.
> 
> Also added are macros for static initialization of attribute
> structures with the ignore_lockdep flag set.  The three offending
> attributes in the USB subsystem are converted to use the new macros.
> 
> Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
> Acked-by: Tejun Heo <tj@kernel.org>
> CC: Eric W. Biederman <ebiederm@xmission.com>
> CC: Peter Zijlstra <peterz@infradead.org>
> 
> ---
> 
>  drivers/usb/core/sysfs.c |    6 +++---
>  fs/sysfs/dir.c           |   31 ++++++++++++++++++++++++++-----
>  include/linux/device.h   |    3 +++
>  include/linux/sysfs.h    |   12 ++++++++++++
>  4 files changed, 44 insertions(+), 8 deletions(-)
> 
> Index: usb-3.4/include/linux/sysfs.h
> ===================================================================
> --- usb-3.4.orig/include/linux/sysfs.h
> +++ usb-3.4/include/linux/sysfs.h

Just a note about this patch, from a meta-point of view (I have no
objection to the patch at all, I'll go apply it in a bit.)

You do use git to generate these patches, right?  Or are you using
something else?  The "Index:" lines seem odd, like cvs things.

Also, I just learned about the '--3way' option to 'git am', which, when
I have merge problems with a patch (like, for example this one, which
had rejects in the device.h portion), should be able to help me out, if
you used git to generate the patch.

But, if you don't use git, no problems, I was just curious as to what
was creating the "Index:" lines.

thanks,

greg k-h

  reply	other threads:[~2012-05-14 19:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-14 17:30 [PATCH] sysfs: get rid of some lockdep false positives Alan Stern
2012-05-14 19:18 ` Greg KH [this message]
2012-05-14 20:03   ` Alan Stern
2012-05-14 20:08     ` Greg KH

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=20120514191853.GA4344@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=stern@rowland.harvard.edu \
    --cc=tj@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.