Messages in this thread Patch in this message | | | From | "S, Shirish" <> | Subject | RE: UART/TTY console deadlock | Date | Thu, 2 Jul 2020 03:48:43 +0000 |
| |
Hi All,
Can we land this patch upstream? Feel free to add my tested-by.
Thanks.
Regards, Shirish S
-----Original Message----- From: S, Shirish <Shirish.S@amd.com> Sent: Wednesday, July 1, 2020 12:15 PM To: Tony Lindgren <tony@atomide.com>; Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Cc: Petr Mladek <pmladek@suse.com>; Andy Shevchenko <andy.shevchenko@gmail.com>; Raul Rangel <rrangel@google.com>; Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>; linux-kernel <linux-kernel@vger.kernel.org>; Greg Kroah-Hartman <gregkh@linuxfoundation.org>; Andy Shevchenko <andriy.shevchenko@linux.intel.com>; kurt@linutronix.de; S, Shirish <Shirish.S@amd.com>; Peter Zijlstra <peterz@infradead.org>; John Ogness <john.ogness@linutronix.de>; Steven Rostedt <rostedt@goodmis.org> Subject: Re: UART/TTY console deadlock
On 6/30/2020 11:32 PM, Tony Lindgren wrote: > * Sergey Senozhatsky <sergey.senozhatsky@gmail.com> [200630 13:06]: >> On (20/06/30 14:22), Petr Mladek wrote: > ... > >>>>>> @@ -2284,8 +2289,6 @@ int serial8250_do_startup(struct uart_port *port) >>>>>> * allow register changes to become visible. >>>>>> */ >>>>>> spin_lock_irqsave(&port->lock, flags); >>>>>> - if (up->port.irqflags & IRQF_SHARED) >>>>>> - disable_irq_nosync(port->irq); >>>>>> >>>>>> wait_for_xmitr(up, UART_LSR_THRE); >>>>>> serial_port_out_sync(port, UART_IER, UART_IER_THRI); @@ >>>>>> -2297,9 +2300,9 @@ int serial8250_do_startup(struct uart_port *port) >>>>>> iir = serial_port_in(port, UART_IIR); >>>>>> serial_port_out(port, UART_IER, 0); >>>>>> >>>>>> - if (port->irqflags & IRQF_SHARED) >>>>>> - enable_irq(port->irq); >>>>>> spin_unlock_irqrestore(&port->lock, flags); >>>>>> + if (irq_shared) >>>>>> + enable_irq(port->irq); >>>>>> >>>>>> /* >>>>>> * If the interrupt is not reasserted, or we otherwise >>>>> I think that it might be safe but I am not 100% sure, sigh. >>>> Yeah, I'm not 100%, but I'd give it a try. >>> I do not feel brave enough to ack it today. But I am all for trying >>> it if anyone more familiar with the code is fine with it. >> I see. Well, I suppose we need Ack-s from tty/serial/8250 maintainers. >> I would not be very happy if _only_ printk people Ack the patch.
FWIW, the lockdep trace is not seen anymore with the patch applied.
Regards,
Shirish S
> This conditional disable for irq_shared does not look nice to me from > the other device point of view :) > > Would it be possible to just set up te dummy interrupt handler for the > startup, then change it back afterwards? See for example > omap8250_no_handle_irq(). > > The other device for irq_shared should be capable of dealing with > spurious interrupts if it's shared. > > Regards, > > Tony
-- Regards, Shirish S
| |