On Wed, Oct 04, 2023 at 01:14:32PM +1100, Stephen Rothwell wrote: > Hi all, > > On Wed, 4 Oct 2023 12:55:31 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> 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 Thanks, looks good, I'll use this when I resolve the merge conflict when it hits my branches. greg k-h