On Wed, Oct 04, 2023 at 08:38:51AM +0200, Greg KH wrote: > 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. This should now be resolved in my tree, thanks! greg k-h