[patch 1/1] staging: speakup: flush tty buffers and ensure hardware flow control

Okash Khawaja okash.khawaja at gmail.com
Fri May 12 15:35:18 EDT 2017


On Thu, May 11, 2017 at 02:33:14PM +0100, Alan Cox wrote:
> On Thu, 11 May 2017 09:29:14 +0100
> Okash Khawaja <okash.khawaja at gmail.com> wrote:
> 
> > Hi Alan,
> > 
> > On Wed, May 10, 2017 at 08:41:51PM +0100, Alan Cox wrote:
> > > > +	if (!(tmp_termios.c_cflag & CRTSCTS)) {
> > > > +		tmp_termios.c_cflag |= CRTSCTS;
> > > > +		ret = tty_set_termios(tty, &tmp_termios);
> > > > +		if (ret)
> > > > +			pr_warn("speakup: Failed to set hardware flow control\n");  
> > > 
> > > You should check the tty c_cflag after the call rather than rely on an
> > > error code. Strictly speaking tty_set_termios should error if no tty bits
> > > are changed by the request but it never has on Linux. Instead check the
> > > tty gave you the result you wanted.  
> > Thanks. I will replace the check for return value with check for c_cflag.
> > 
> > May be we should fix this in tty_set_termios?
> 
> Possibly. It however changes the external kernel ABI. It's also not a
> simple memcmp because any undefined bits must be ignored.
> 
> Make a patch, try it and see what breaks ? If nothing breaks then yes it
> makes sense IMHO too.

Right, thanks for the heads up. I'll see if I get round to doing it. For
external kernel ABI, will we need to check libc implementations of
termios functions? Will that be sufficient?

Thanks,
Okash


More information about the Speakup mailing list