Hi all, On Wed, 4 Oct 2023 12:55:31 +1100 Stephen Rothwell wrote: > > Today's linux-next merge of the tty tree got a conflict in: > > drivers/tty/serial/serial_core.c > > between commit: > > 8679328eb859 ("serial: Reduce spinlocked portion of uart_rs485_config()") > > from the tty.current tree and commit: > > 559c7ff4e324 ("serial: core: Use port lock wrappers") > > from the tty tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any particularly > complex conflicts. Not quite right :-( This is what I used: diff --cc drivers/tty/serial/serial_core.c index ca26a8aef2cb,b32bbd7aa3d3..ae1d6782ea0e --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@@ -1413,9 -1409,7 +1413,9 @@@ static int uart_rs485_config(struct uar uart_sanitize_serial_rs485(port, rs485); uart_set_rs485_termination(port, rs485); - spin_lock_irqsave(&port->lock, flags); ++ uart_port_lock_irqsave(port, &flags); ret = port->rs485_config(port, NULL, rs485); - spin_unlock_irqrestore(&port->lock, flags); ++ uart_port_unlock_irqrestore(port, flags); if (ret) memset(rs485, 0, sizeof(*rs485)); @@@ -2480,12 -2474,13 +2480,12 @@@ int uart_resume_port(struct uart_drive if (ret == 0) { if (tty) uart_change_line_settings(tty, state, NULL); + uart_rs485_config(uport); - spin_lock_irq(&uport->lock); + uart_port_lock_irq(uport); if (!(uport->rs485.flags & SER_RS485_ENABLED)) ops->set_mctrl(uport, uport->mctrl); - else - uart_rs485_config(uport); ops->start_tx(uport); - spin_unlock_irq(&uport->lock); + uart_port_unlock_irq(uport); tty_port_set_initialized(port, true); } else { /* @@@ -2592,10 -2587,10 +2592,10 @@@ uart_configure_port(struct uart_driver port->mctrl &= TIOCM_DTR; if (!(port->rs485.flags & SER_RS485_ENABLED)) port->ops->set_mctrl(port, port->mctrl); - spin_unlock_irqrestore(&port->lock, flags); - else - uart_rs485_config(port); + uart_port_unlock_irqrestore(port, flags); + uart_rs485_config(port); + /* * If this driver supports console, and it hasn't been * successfully registered yet, try to re-register it. -- Cheers, Stephen Rothwell