Hi, I'm testing 4.0-rc1 kernel on my board with 8250 Designware UART.(ARM Cortex-a15 single core). I found if serial is busy and writes to the LCR failed after tried 1000 times. The kernel will hung up. The system boot success after changed from: 95 static void dw8250_serial_out(struct uart_port *p, int offset, int value) 96 { 97 struct dw8250_data *d = p->private_data; 98 ... ... 112 writeb(value, p->membase + (UART_LCR << p->regshift)); 113 } 114 dev_err(p->dev, "Couldn't set LCR to %d\n", value); 115 } 116 } to: 95 static void dw8250_serial_out(struct uart_port *p, int offset, int value) 96 { 97 struct dw8250_data *d = p->private_data; 98 ... ... 112 writeb(value, p->membase + (UART_LCR << p->regshift)); 113 } 114 dev_info(p->dev, "Couldn't set LCR to %d\n", value); //changed here 115 } 116 } The reason is serial8250_console_write can't get port->lock because serial8250_do_set_termios has got port->lock. So i think here we should change from dev_err to dev_info ? Any suggestions are welcome. Best regards! -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html