Re: post 3.14 serial regression

From: Greg Kroah-Hartman
Date: Tue Apr 08 2014 - 20:34:25 EST


On Tue, Apr 08, 2014 at 02:38:31PM -0700, Dave Hansen wrote:
> On 04/08/2014 02:03 PM, Dave Hansen wrote:
> > On 04/08/2014 04:27 AM, One Thousand Gnomes wrote:
> >>> At the end, you can see that init is somehow dying. If I revert this
> >>> patch, init is happy again and doesn't die, and the serial console works
> >>> like before.
> >>
> >> Can you check if init is getting a SIGHUP - possibly its opening the
> >> device and when it goes away gets a hangup which it isn't catching ?
> >
> > I do see plenty of SIGCHLDs and a heap of SIGTERMs to 'systemd-udevd',
> > but no SIGHUP. I do see a "Warning: unable to open an initial console."
> > now, though. (details far below)
> >
> > I instrumented uart_remove_one_port(). It *looks* like while searching
> > for a uart_port for 0x1008 (my actual port),
> > serial8250_find_match_or_unused() finds 0x3e8 since 0x3e8 is
> > PORT_UNKNOWN. The new code unregisters the 0x1008 console since it
> > _thinks_ it is about to re-register it.
>
> <sigh>
>
> Looks like this just changed the detection order so my device went from
> ttyS2 to ttyS4:
>
> # cat /proc/tty/driver/serial
> serinfo:1.0 driver revision:
> 0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 CTS|DSR|CD
> 1: uart:16550A port:000002F8 irq:3 tx:0 rx:0
> 2: uart:unknown port:000003E8 irq:4
> 3: uart:unknown port:000002E8 irq:3
> 4: uart:ST16650V2 port:00001008 irq:18 tx:0 rx:0
> 5: uart:ST16650V2 port:00001000 irq:19 tx:0 rx:0

That's not good.

Geert, any idea how to fix this? Or should I just revert your change to
get back to the "working" behavior?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/