Re-check RX queue status after uart_enablerxint() and before blocking the reading task on the receive semaphore. cdcacm (and maybe other UART drivers) can push buffered data into the receive queue during uart_enablerxint(), leading to a blocked task while data is already available. Signed-off-by: Tido Klaassen <tido@4gh.eu>