All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King <rmk+lkml@arm.linux.org.uk>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Serial: bug in 8250.c when handling PCI or other level triggers
Date: Wed, 14 Dec 2005 19:55:00 +0000	[thread overview]
Message-ID: <20051214195459.GG7124@flint.arm.linux.org.uk> (raw)
In-Reply-To: <1134587288.25663.61.camel@localhost.localdomain>

On Wed, Dec 14, 2005 at 07:08:08PM +0000, Alan Cox wrote:
> On Mer, 2005-12-14 at 16:55 +0000, Russell King wrote:
> > If we trigger this, we can assume that the port is dead anyway, or
> > we're in a situation where the host CPU can not keep up with the
> > data stream.
> 
> Not actually true in some cases.
> 
> - When your UART has a large FIFO and pretends to be an 8250 you can get
> a 256 byte burst triggered by the box sleeping for a moment or the BIOS
> SMI crap going to chat to the battery

In which case the receive_chars() function gobbles up to 255 characters
from the device before relinquishing to the main interrupt loop.  The
main interrupt loop has two exit conditions - no further interrupts
are pending from any device, or we run this loop 256 times.

In the case where further characters are waiting, we will re-run the
receive_chars() function.

Hence, we will check the device up to 256 times and each will potentially
receive 255 characters, which gives about 64K of character reception
before the warning triggers.

Therefore, this scenario is _very_ _very_ unlikely.

> - On a virtualised system this trap can trigger because the emulations
> don't emulate the bit arrival and baud rate.

Again, only if there's more than about 64K of data waiting.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core

      reply	other threads:[~2005-12-14 19:55 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-14 15:23 Serial: bug in 8250.c when handling PCI or other level triggers Alan Cox
2005-12-14 16:07 ` Meelis Roos
2005-12-14 17:24   ` Russell King
2005-12-14 18:43     ` Meelis Roos
2005-12-21 15:24       ` Russell King
2005-12-21 20:33     ` Meelis Roos
2005-12-21 22:15       ` Russell King
2005-12-22 10:35         ` Meelis Roos
2005-12-22 13:07           ` Russell King
2005-12-22 13:19             ` Meelis Roos
2005-12-23  9:20             ` Meelis Roos
2005-12-23  9:33               ` Russell King
2005-12-23 10:05                 ` Meelis Roos
2005-12-23 10:41                   ` Russell King
2005-12-27 13:54                     ` Meelis Roos
2005-12-28 19:55                       ` Russell King
2005-12-29  8:11                         ` Meelis Roos
2006-01-08 23:24                           ` Antonio Vargas
2006-01-09  8:54                             ` Russell King
2005-12-14 22:29   ` Alan Cox
2005-12-15 19:00     ` Stuart MacDonald
2005-12-14 16:55 ` Russell King
2005-12-14 19:08   ` Alan Cox
2005-12-14 19:55     ` Russell King [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20051214195459.GG7124@flint.arm.linux.org.uk \
    --to=rmk+lkml@arm.linux.org.uk \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.