lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Tue, 3 Nov 2009 10:22:59 -0500 (EST)
From:	Alan Stern <stern@...land.harvard.edu>
To:	Dominik Brodowski <linux@...inikbrodowski.net>
cc:	linux-pcmcia@...ts.infradead.org,
	Kernel development list <linux-kernel@...r.kernel.org>
Subject: Re: Lockdep violation in pcmcia

On Mon, 2 Nov 2009, Dominik Brodowski wrote:

> Hey,
> 
> On Mon, Nov 02, 2009 at 04:21:23PM -0500, Alan Stern wrote:
> > I've been getting these warnings for a long, long time, and finally 
> > decided to report them:
> 
> Thanks!
> 
> > [ 1893.036023] other info that might help us debug this:
> > [ 1893.036023] 2 locks held by cardmgr/1457:
> 
> Wow, cardmgr still in use... I had hoped it had already disappeared on
> non-embedded systems...

Yeah; this is on a very old laptop running an FC4 distribution.  I
haven't bothered to upgrade it because there's no point; the CPU speed,
the amount of RAM, and the size of the hard disk are all very limited.

But of course this doesn't affect the main point.  Lockdep violations 
shouldn't occur, no matter what userspace does.

> > The cause is easy enough to track down.  In pcmcia_ioctl.c,
> > pcmcia_adjust_resource_info() does a down_read() on
> > pcmcia_socket_list_rwsem.  While holding the rwsem, one of the pathways
> > calls the s->resource_ops->add_mem method.  On my system this method is
> > realized by adjust_memory() in rsrc_nonstatic.c, which does its own
> > down_read() on the same rwsem -- i.e., a recursive locking attempt.
> > 
> > The reason lockdep warns about this behavior is that it can lead to
> > deadlock in the wrong circumstances, namely, if another thread were to
> > do a down_write() in between the two down_read() calls.
> > 
> > Would it be correct simply to omit the down_read() in adjust_memory()?
> 
> No, for there are other code paths reaching adjust_memory() not holding a
> (read) lock on this semaphore. As pcmcia_ioctl.c is on its way out anyways:
> would you mind keeping it as it is, for a down_write() call is quite
> unlikely during the only time cardmgr actually does this call (system
> startup)?

(Actually the violation occurs during system shutdown.)

I don't mind.  It hasn't caused any problems.  I just wanted to make 
sure that it was recognized as a real issue and was being dealt with 
appropriately.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists