diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 17:40:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 17:44:43 +0000 |
commit | b5b67adcc17e3e74dbcda09ff3f8a4636aa53486 (patch) | |
tree | 601c346183757b42c53b1d0aa8773cb00d1bd73c /debian/patches-rt/0030-serial-ip22zilog-Use-port-lock-wrappers.patch | |
parent | Merging upstream version 6.7.7. (diff) | |
download | linux-b5b67adcc17e3e74dbcda09ff3f8a4636aa53486.tar.xz linux-b5b67adcc17e3e74dbcda09ff3f8a4636aa53486.zip |
Merging debian version 6.7.7-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0030-serial-ip22zilog-Use-port-lock-wrappers.patch')
-rw-r--r-- | debian/patches-rt/0030-serial-ip22zilog-Use-port-lock-wrappers.patch | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/debian/patches-rt/0030-serial-ip22zilog-Use-port-lock-wrappers.patch b/debian/patches-rt/0030-serial-ip22zilog-Use-port-lock-wrappers.patch deleted file mode 100644 index c1307a246b..0000000000 --- a/debian/patches-rt/0030-serial-ip22zilog-Use-port-lock-wrappers.patch +++ /dev/null @@ -1,185 +0,0 @@ -From: Thomas Gleixner <tglx@linutronix.de> -Date: Thu, 14 Sep 2023 20:43:47 +0206 -Subject: [PATCH 030/134] serial: ip22zilog: Use port lock wrappers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6.7-rt18.tar.xz - -When a serial port is used for kernel console output, then all -modifications to the UART registers which are done from other contexts, -e.g. getty, termios, are interference points for the kernel console. - -So far this has been ignored and the printk output is based on the -principle of hope. The rework of the console infrastructure which aims to -support threaded and atomic consoles, requires to mark sections which -modify the UART registers as unsafe. This allows the atomic write function -to make informed decisions and eventually to restore operational state. It -also allows to prevent the regular UART code from modifying UART registers -while printk output is in progress. - -All modifications of UART registers are guarded by the UART port lock, -which provides an obvious synchronization point with the console -infrastructure. - -To avoid adding this functionality to all UART drivers, wrap the -spin_[un]lock*() invocations for uart_port::lock into helper functions -which just contain the spin_[un]lock*() invocations for now. In a -subsequent step these helpers will gain the console synchronization -mechanisms. - -Converted with coccinelle. No functional change. - -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> -Signed-off-by: John Ogness <john.ogness@linutronix.de> -Link: https://lore.kernel.org/r/20230914183831.587273-31-john.ogness@linutronix.de -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ---- - drivers/tty/serial/ip22zilog.c | 36 ++++++++++++++++++------------------ - 1 file changed, 18 insertions(+), 18 deletions(-) - ---- a/drivers/tty/serial/ip22zilog.c -+++ b/drivers/tty/serial/ip22zilog.c -@@ -432,7 +432,7 @@ static irqreturn_t ip22zilog_interrupt(i - unsigned char r3; - bool push = false; - -- spin_lock(&up->port.lock); -+ uart_port_lock(&up->port); - r3 = read_zsreg(channel, R3); - - /* Channel A */ -@@ -448,7 +448,7 @@ static irqreturn_t ip22zilog_interrupt(i - if (r3 & CHATxIP) - ip22zilog_transmit_chars(up, channel); - } -- spin_unlock(&up->port.lock); -+ uart_port_unlock(&up->port); - - if (push) - tty_flip_buffer_push(&up->port.state->port); -@@ -458,7 +458,7 @@ static irqreturn_t ip22zilog_interrupt(i - channel = ZILOG_CHANNEL_FROM_PORT(&up->port); - push = false; - -- spin_lock(&up->port.lock); -+ uart_port_lock(&up->port); - if (r3 & (CHBEXT | CHBTxIP | CHBRxIP)) { - writeb(RES_H_IUS, &channel->control); - ZSDELAY(); -@@ -471,7 +471,7 @@ static irqreturn_t ip22zilog_interrupt(i - if (r3 & CHBTxIP) - ip22zilog_transmit_chars(up, channel); - } -- spin_unlock(&up->port.lock); -+ uart_port_unlock(&up->port); - - if (push) - tty_flip_buffer_push(&up->port.state->port); -@@ -504,11 +504,11 @@ static unsigned int ip22zilog_tx_empty(s - unsigned char status; - unsigned int ret; - -- spin_lock_irqsave(&port->lock, flags); -+ uart_port_lock_irqsave(port, &flags); - - status = ip22zilog_read_channel_status(port); - -- spin_unlock_irqrestore(&port->lock, flags); -+ uart_port_unlock_irqrestore(port, flags); - - if (status & Tx_BUF_EMP) - ret = TIOCSER_TEMT; -@@ -664,7 +664,7 @@ static void ip22zilog_break_ctl(struct u - else - clear_bits |= SND_BRK; - -- spin_lock_irqsave(&port->lock, flags); -+ uart_port_lock_irqsave(port, &flags); - - new_reg = (up->curregs[R5] | set_bits) & ~clear_bits; - if (new_reg != up->curregs[R5]) { -@@ -674,7 +674,7 @@ static void ip22zilog_break_ctl(struct u - write_zsreg(channel, R5, up->curregs[R5]); - } - -- spin_unlock_irqrestore(&port->lock, flags); -+ uart_port_unlock_irqrestore(port, flags); - } - - static void __ip22zilog_reset(struct uart_ip22zilog_port *up) -@@ -735,9 +735,9 @@ static int ip22zilog_startup(struct uart - if (ZS_IS_CONS(up)) - return 0; - -- spin_lock_irqsave(&port->lock, flags); -+ uart_port_lock_irqsave(port, &flags); - __ip22zilog_startup(up); -- spin_unlock_irqrestore(&port->lock, flags); -+ uart_port_unlock_irqrestore(port, flags); - return 0; - } - -@@ -775,7 +775,7 @@ static void ip22zilog_shutdown(struct ua - if (ZS_IS_CONS(up)) - return; - -- spin_lock_irqsave(&port->lock, flags); -+ uart_port_lock_irqsave(port, &flags); - - channel = ZILOG_CHANNEL_FROM_PORT(port); - -@@ -788,7 +788,7 @@ static void ip22zilog_shutdown(struct ua - up->curregs[R5] &= ~SND_BRK; - ip22zilog_maybe_update_regs(up, channel); - -- spin_unlock_irqrestore(&port->lock, flags); -+ uart_port_unlock_irqrestore(port, flags); - } - - /* Shared by TTY driver and serial console setup. The port lock is held -@@ -880,7 +880,7 @@ ip22zilog_set_termios(struct uart_port * - - baud = uart_get_baud_rate(port, termios, old, 1200, 76800); - -- spin_lock_irqsave(&up->port.lock, flags); -+ uart_port_lock_irqsave(&up->port, &flags); - - brg = BPS_TO_BRG(baud, ZS_CLOCK / ZS_CLOCK_DIVISOR); - -@@ -894,7 +894,7 @@ ip22zilog_set_termios(struct uart_port * - ip22zilog_maybe_update_regs(up, ZILOG_CHANNEL_FROM_PORT(port)); - uart_update_timeout(port, termios->c_cflag, baud); - -- spin_unlock_irqrestore(&up->port.lock, flags); -+ uart_port_unlock_irqrestore(&up->port, flags); - } - - static const char *ip22zilog_type(struct uart_port *port) -@@ -1016,10 +1016,10 @@ ip22zilog_console_write(struct console * - struct uart_ip22zilog_port *up = &ip22zilog_port_table[con->index]; - unsigned long flags; - -- spin_lock_irqsave(&up->port.lock, flags); -+ uart_port_lock_irqsave(&up->port, &flags); - uart_console_write(&up->port, s, count, ip22zilog_put_char); - udelay(2); -- spin_unlock_irqrestore(&up->port.lock, flags); -+ uart_port_unlock_irqrestore(&up->port, flags); - } - - static int __init ip22zilog_console_setup(struct console *con, char *options) -@@ -1034,13 +1034,13 @@ static int __init ip22zilog_console_setu - - printk(KERN_INFO "Console: ttyS%d (IP22-Zilog)\n", con->index); - -- spin_lock_irqsave(&up->port.lock, flags); -+ uart_port_lock_irqsave(&up->port, &flags); - - up->curregs[R15] |= BRKIE; - - __ip22zilog_startup(up); - -- spin_unlock_irqrestore(&up->port.lock, flags); -+ uart_port_unlock_irqrestore(&up->port, flags); - - if (options) - uart_parse_options(options, &baud, &parity, &bits, &flow); |