• Nicolas Pitre's avatar
    sdio: fix recursion issues between sdio-uart driver and tty layer · 15b82b46
    Nicolas Pitre authored
    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: default avatarNicolas Pitre <npitre@mvista.com>
    Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
    15b82b46
sdio_uart.c 27.5 KB