On Thu, Feb 15, 2018 at 2:12 PM, Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > >> This can be prevented by doing a dummy read of the RX data register. > > Just so I understand the issue correctly: We are reading the register to > throw the content away to prevent it being used in the TTY buffers? Not quite. The problem was that if the buffers are full, sci_receive_chars() returned immediately without reading anything from the data register, and that led to a lockup. I am not fully sure why that is so (I arrived at the fix by examining how the different code paths look from the serial controller's perspective), but dropping data here fixes it. At this point buffers are full, so any data received will have to be discarded anyway. CU Uli