Re: linux-next: manual merge of the tty tree with the tty.current tree

From: Greg KH
Date: Mon Oct 16 2023 - 04:20:23 EST


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