hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/tty/serial/8250/8250_core.c
....@@ -275,8 +275,10 @@
275275 * Must disable interrupts or else we risk racing with the interrupt
276276 * based handler.
277277 */
278
- if (up->port.irq)
279
- ier = serial8250_clear_IER(up);
278
+ if (up->port.irq) {
279
+ ier = serial_in(up, UART_IER);
280
+ serial_out(up, UART_IER, 0);
281
+ }
280282
281283 iir = serial_in(up, UART_IIR);
282284
....@@ -299,7 +301,7 @@
299301 serial8250_tx_chars(up);
300302
301303 if (up->port.irq)
302
- serial8250_set_IER(up, ier);
304
+ serial_out(up, UART_IER, ier);
303305
304306 spin_unlock_irqrestore(&up->port.lock, flags);
305307
....@@ -582,14 +584,6 @@
582584
583585 #ifdef CONFIG_SERIAL_8250_CONSOLE
584586
585
-static void univ8250_console_write_atomic(struct console *co, const char *s,
586
- unsigned int count)
587
-{
588
- struct uart_8250_port *up = &serial8250_ports[co->index];
589
-
590
- serial8250_console_write_atomic(up, s, count);
591
-}
592
-
593587 static void univ8250_console_write(struct console *co, const char *s,
594588 unsigned int count)
595589 {
....@@ -683,7 +677,6 @@
683677
684678 static struct console univ8250_console = {
685679 .name = "ttyS",
686
- .write_atomic = univ8250_console_write_atomic,
687680 .write = univ8250_console_write,
688681 .device = uart_console_device,
689682 .setup = univ8250_console_setup,