From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Kroah-Hartman Subject: Re: [PATCH] serial/amba-pl011: Disable interrupts around TX softirq Date: Fri, 12 Jun 2015 17:39:45 -0700 Message-ID: <20150613003945.GA10941@kroah.com> References: <1433513267-24163-1-git-send-email-Dave.Martin@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1433513267-24163-1-git-send-email-Dave.Martin@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Dave Martin Cc: Russell King , Jakub =?utf-8?B?S2ljacWEc2tp?= , Andre Przywara , Andrew Jackson , Graeme Gregory , linux-serial@vger.kernel.org, popcorn mix , Jorge Ramirez-Ortiz , Robin Murphy , linux-arm-kernel@lists.infradead.org List-Id: linux-serial@vger.kernel.org On Fri, Jun 05, 2015 at 03:07:47PM +0100, Dave Martin wrote: > pl011_tx_softirq() currently uses spin_{,un}lock(), which are not > sufficient to inhibit pl011_int() from being triggered by a local > IRQ and trying to re-take the same lock. This can lead to > deadlocks. > > This patch uses the _irq() locking variants instead to ensure that > pl011_int() handling for a given port is deferred until any > pl011_tx_softirq() work for that port is complete. > > Signed-off-by: Dave Martin > Tested-by: Robin Murphy > Cc: stable # 4.1 > --- > > Another candidate for v4.1 if possible (sorry!) -- I thought this change > was already in, but it went astray when I was refactoring. Too late for 4.1, sorry. This doesn't apply to my tty-next branch, otherwise I would have queued it up there. Care to redo it and mark it for -stable, like I did above, and resend it? thanks, greg k-h From mboxrd@z Thu Jan 1 00:00:00 1970 From: gregkh@linuxfoundation.org (Greg Kroah-Hartman) Date: Fri, 12 Jun 2015 17:39:45 -0700 Subject: [PATCH] serial/amba-pl011: Disable interrupts around TX softirq In-Reply-To: <1433513267-24163-1-git-send-email-Dave.Martin@arm.com> References: <1433513267-24163-1-git-send-email-Dave.Martin@arm.com> Message-ID: <20150613003945.GA10941@kroah.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Jun 05, 2015 at 03:07:47PM +0100, Dave Martin wrote: > pl011_tx_softirq() currently uses spin_{,un}lock(), which are not > sufficient to inhibit pl011_int() from being triggered by a local > IRQ and trying to re-take the same lock. This can lead to > deadlocks. > > This patch uses the _irq() locking variants instead to ensure that > pl011_int() handling for a given port is deferred until any > pl011_tx_softirq() work for that port is complete. > > Signed-off-by: Dave Martin > Tested-by: Robin Murphy > Cc: stable # 4.1 > --- > > Another candidate for v4.1 if possible (sorry!) -- I thought this change > was already in, but it went astray when I was refactoring. Too late for 4.1, sorry. This doesn't apply to my tty-next branch, otherwise I would have queued it up there. Care to redo it and mark it for -stable, like I did above, and resend it? thanks, greg k-h