From: Alan Cox <alan@linux.intel.com>
To: Havard Skinnemoen <hskinnemoen@google.com>
Cc: Jiri Slaby <jslaby@suse.cz>, Dave Jones <davej@redhat.com>,
Linux Kernel <linux-kernel@vger.kernel.org>,
Greg Kroah-Hartman <gregkh@suse.de>,
Jiri Slaby <jirislaby@gmail.com>
Subject: Re: [RFC] cdc-acm: Fix potential deadlock (lockdep warning)
Date: Wed, 23 Nov 2011 19:22:33 +0000 [thread overview]
Message-ID: <20111123192233.44f512b7@bob.linux.org.uk> (raw)
In-Reply-To: <1322074412-10873-1-git-send-email-hskinnemoen@google.com>
O> This means we need some other way of preventing the device state from
> being freed before we're done cleaning up. Using the existing kref in
> tty_port, we can let the TTY side and the USB side indenpendently
> signal that they're done with the object, and free it when both are
> done.
I would have thought doing a vhangup was the best approach. The way the
USB serial drivers do it on a cable pull is
take lock
mark device disconnected
drop lock
for each tty on the device {
tty_port_tty_get
if (tty) {
tty_vhangup(tty);
tty_kref_put(tty);
}
then do the USB disconnect processing
and drop our USB side kref
and on the open side they provide their own install() method which
nicely avoids all the nasty locking problems and lets them use the
standard tty_port_open/close/hangup etc rather than the partial ones.
It might be worth turning the ACM driver to work the same way as it'll
save doing that work later to achieve the same use of
tty_port_open/close/..
The main thing is the use of install - which lets you plug the USB and
tty bits together during the lookup of the device.
Alan
next prev parent reply other threads:[~2011-11-23 19:11 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-23 3:38 tty related lockdep trace during bootup on 3.2-rc2 Dave Jones
2011-11-23 7:28 ` Havard Skinnemoen
2011-11-23 7:39 ` Cong Wang
2011-11-23 10:12 ` Jiri Slaby
2011-11-23 10:14 ` Jiri Slaby
2011-11-23 17:58 ` Havard Skinnemoen
2011-11-23 18:53 ` [RFC] cdc-acm: Fix potential deadlock (lockdep warning) Havard Skinnemoen
2011-11-23 19:22 ` Alan Cox [this message]
2011-11-23 19:22 ` Havard Skinnemoen
2011-11-23 19:44 ` Alan Cox
2011-11-23 21:03 ` Havard Skinnemoen
2011-11-23 21:59 ` Alan Cox
2011-11-23 19:34 ` Oliver Neukum
2011-11-23 22:00 ` Alan Cox
2011-11-23 19:55 ` Jiri Slaby
2011-11-23 21:08 ` Havard Skinnemoen
2011-11-23 21:11 ` Jiri Slaby
2011-11-23 21:19 ` Jiri Slaby
2011-11-27 21:37 ` [RFC v2] " Havard Skinnemoen
2011-11-28 18:15 ` Havard Skinnemoen
2011-11-23 7:29 ` tty related lockdep trace during bootup on 3.2-rc2 Cong Wang
2011-11-23 17:29 ` Havard Skinnemoen
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=20111123192233.44f512b7@bob.linux.org.uk \
--to=alan@linux.intel.com \
--cc=davej@redhat.com \
--cc=gregkh@suse.de \
--cc=hskinnemoen@google.com \
--cc=jirislaby@gmail.com \
--cc=jslaby@suse.cz \
--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