Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Feb 2000 04:15:41 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        "Jose M. Alcaide" <jose@we.lc.ehu.es>
Cc:        freebsd-hardware@FreeBSD.ORG
Subject:   Re: [fix and RFC] interrupt-level buffer overflows with Xircom  PCMCIAmodem
Message-ID:  <Pine.BSF.4.21.0002140408080.4381-100000@alphplex.bde.org>
In-Reply-To: <38A5E94B.397E77BC@we.lc.ehu.es>

index | next in thread | previous in thread | raw e-mail

On Sun, 13 Feb 2000, Jose M. Alcaide wrote:

> Bruce Evans wrote:
> > 
> > On Sat, 12 Feb 2000, Jose M. Alcaide wrote:
> > 
> > > Now, the conclusions: perhaps RS_IBUFSIZE=256 is too low for some devices
> > > (notably internal modems); it's only a theory. Or perhaps some devices
> > 
> > Too large for devices with broken 16550 emulation.
> 
> Uh? Are you saying that I should decrement RS_IBUFSIZE instead of
> incrementing it? I could test this, but I don't see how a shorter buffer
> could help to avoid buffer overruns...

Oops, I meant "too low".

> > RTS emulation is probably also broken for there to be a problem.  Ideally,
> > the sender should check its version of RTS (i.e., CTS) before sending
> > each character.  For bug for bug compatibility with 16550 senders, the
> > sender only needs to check it every 16th character.
> 
> I could insert some "probes" in sio.c to see what happens with RTS/CTS,
> but I am not a 16550 expert, so I need some advice :-)

Maybe you aren't actually using RTS/CTS.  RTS is mostly for the termios
line discipline.  For slip and ppp, it is only deasserted when the
interrupt-level buffer is more than 3/4 full, not when buffers in higher
layers are almost full.  However that should be enough to stop an emulator.

Bruce



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hardware" in the body of the message



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0002140408080.4381-100000>