> > sdio_uart_irq > > sdio_uart_port_remove > > port->func = NULL; > > sdio_in > > BUG_ON > > This is actually happening? sdio_claim_host()/sdio_release_host() act Found by inspection > like a mutex so sdio_uart_port_remove() will wait in sdio_claim_host() > until sdio_uart_irq() returns (SDIO interrupt handlers are called with > the host claimed). Ok that was a detail I was missing. That part of the locking now makes sense. Ok so I think I have it fixed up barring stuff which is "feature add" - such as implementing TIOCMIWAIT and blocking on no carrier. -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html