Browse Source

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>
Denis Joseph Barrow 16 years ago
parent
commit
d45eb81c3e
1 changed files with 1 additions and 2 deletions
  1. 1 2
      drivers/net/usb/hso.c

+ 1 - 2
drivers/net/usb/hso.c

@@ -2044,9 +2044,8 @@ static int put_rxbuf_data(struct urb *urb, struct hso_serial *serial)
 		return -2;
 		return -2;
 	}
 	}
 
 
-	spin_lock(&serial->serial_lock);
+	/* All callers to put_rxbuf_data hold serial_lock */
 	tty = tty_kref_get(serial->tty);
 	tty = tty_kref_get(serial->tty);
-	spin_unlock(&serial->serial_lock);
 
 
 	/* Push data to tty */
 	/* Push data to tty */
 	if (tty) {
 	if (tty) {