public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Kernel bug: bluetooth meets TTY layer
@ 2007-12-20 15:25 Arjan van de Ven
  2007-12-20 19:40 ` David Newall
  0 siblings, 1 reply; 4+ messages in thread
From: Arjan van de Ven @ 2007-12-20 15:25 UTC (permalink / raw)
  To: Alan Cox, Marcel Holtmann; +Cc: linux-kernel

Hi,

with the help of kerneloops.org I've spotted a nice little interaction
between the TTY layer and the bluetooth code, however the tty layer is
not something I'm all too familiar with so I rather ask than brute-force
fix the code incorrectly.

The raw details are at:
http://www.kerneloops.org/search.php?search=uart_flush_buffer

What happens is that, on closing the bluetooth tty,
the tty layer goes into the release_dev() function,
which first does a bunch of stuff, then sets the file->private_data to NULL,
does some more stuff  and then calls the ldisc close function. Which in this
case, is hci_uart_tty_close().

Now, hci_uart_tty_close() calls hci_uart_close() which clears some internal bit,
and then calls hci_uart_flush()... which calls back to the tty layers' uart_flush_buffer() function.
(in drivers/bluetooth/hci_tty.c around line 194)
Which then WARN_ON()'s because that's not allowed/supposed to be called
this late in the shutdown of the port....

should the bluetooth driver even call this flush function at all??

Greetings,
    Arjan van de Ven



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-12-20 21:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-20 15:25 Kernel bug: bluetooth meets TTY layer Arjan van de Ven
2007-12-20 19:40 ` David Newall
2007-12-20 20:17   ` Arjan van de Ven
2007-12-20 21:26     ` Alan Cox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox