Re: [uclinux-dist-devel] [PATCH] serial: bfin_5xx: split uart RX lock from uart port lock to avoid deadlock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 03, 2011 at 04:56:30PM -0500, Mike Frysinger wrote:
> On Thu, Feb 3, 2011 at 13:32, Greg KH wrote:
> > On Thu, Feb 03, 2011 at 01:29:08AM -0500, Mike Frysinger wrote:
> >> On Tue, Jan 11, 2011 at 00:16, Mike Frysinger wrote:
> >> > From: Sonic Zhang <sonic.zhang@xxxxxxxxxx>
> >> >
> >> > The RX lock is used to protect the RX buffer from concurrent access in DMA
> >> > mode between the timer and RX interrupt routines.  It is independent from
> >> > the uart lock which is used to protect the TX buffer.  It is possible for
> >> > a uart TX transfer to be started up from the RX interrupt handler if low
> >> > latency is enabled.  So we need to split the locks to avoid deadlocking in
> >> > this situation.
> >> >
> >> > In PIO mode, the RX lock is not necessary because the handle_simple_irq
> >> > and handle_level_irq functions ensure driver interrupt handlers are called
> >> > once on one core.
> >> >
> >> > And now that the RX path has its own lock, the TX interrupt has nothing to
> >> > do with the RX path, so disabling it at the same time.
> >>
> >> ping ...
> >
> > Is this needed for .38?
> 
> it fixes a possible deadlock that exists in current .38 rc, but i
> wouldnt call it a "critical" fix as it only affects certain edge
> cases.  so if you want to merge for .38 or .39, either is OK for us i
> think.

I can do it for .38, just wanted to check.

I'll go queue it up now.

thanks,

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


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux