sdio: fix recursion issues between sdio-uart driver and tty layer
authorNicolas Pitre <nico@cam.org>
Mon, 20 Aug 2007 21:17:37 +0000 (17:17 -0400)
committerPierre Ossman <drzeus@drzeus.cx>
Sun, 23 Sep 2007 19:24:52 +0000 (21:24 +0200)
commit15b82b46de358a574c2a6a6dea4c8076bef7ac43
tree8ba3384b5dc10f7fca38de998e36366d5b2c8c4f
parent2ba30eedec37e2f65babf4ea54233f98afbe0871
sdio: fix recursion issues between sdio-uart driver and tty layer

In a few places, sdio_uart_irq() is called directly instead of waiting
for the actual interrupt to be raised and the SDIO IRQ thread scheduled
in order to reduce latency.  However, some interaction with the tty core
may end up calling us back (serial echo, flow control, etc.) creating
two issues:

 - the host lock gets claimed twice from the same thread causing a
   deadlock;

 - the same direct calls to sdio_uart_irq() may be performed causing
   unexpected reentrancy into the IRQ handler.

This patch handles both of those issues.

Signed-off-by: Nicolas Pitre <npitre@mvista.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/card/sdio_uart.c