diff options
author | Denis Joseph Barrow <D.Barrow@option.com> | 2009-01-15 16:31:24 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-15 23:48:36 +0300 |
commit | d45eb81c3e345fabaf27ef3ab437b85c0bf9fafa (patch) | |
tree | 46f3008a49f0c3dd167237419267d70626729e8c /drivers/net/usb | |
parent | fe41cbb164a0dc55f3914a0e4cabe8240410157c (diff) | |
download | linux-d45eb81c3e345fabaf27ef3ab437b85c0bf9fafa.tar.xz |
tty: Fix double grabbing of a spinlock
The HSO changes for kref introduced a recursive spinlock take. All
functions which call put_rxbuf_data already have serial->serial_lock
grabbed.
[Comment to code added-AC]
Signed-off-by: Denis Joseph Barrow <D.Barrow@option.com>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/net/usb')
-rw-r--r-- | drivers/net/usb/hso.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 9df04dd1332c..e25a58f6ff69 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -2044,9 +2044,8 @@ static int put_rxbuf_data(struct urb *urb, struct hso_serial *serial) return -2; } - spin_lock(&serial->serial_lock); + /* All callers to put_rxbuf_data hold serial_lock */ tty = tty_kref_get(serial->tty); - spin_unlock(&serial->serial_lock); /* Push data to tty */ if (tty) { |