On Sun, Oct 07, 2018 at 09:06:19PM -0700, H. Peter Anvin wrote: > From: "H. Peter Anvin (Intel)" <hpa@xxxxxxxxx> > > Alpha has had c_ispeed and c_ospeed, but still set speeds in c_cflags > using arbitrary flags. Because BOTHER is not defined, the general > Linux code doesn't allow setting arbitrary baud rates, and because > CBAUDEX == 0, we can have an array overrun of the baud_rate[] table in > drivers/tty/tty_baudrate.c if (c_cflags & CBAUD) == 037. > > Resolve both problems by #defining BOTHER to 037 on Alpha. > > However, userspace still needs to know if setting BOTHER is actually > safe given legacy kernels (does anyone actually care about that on > Alpha anymore?), so enable the TCGETS2/TCSETS*2 ioctls on Alpha, even > though they use the same structure. Define struct termios2 just for > compatibility; it is the exact same structure as struct termios. In a > future patchset, this will be cleaned up so the uapi headers are > usable from libc. Is this really needed? By defining BOTHER (and IBSHIFT which you forgot to mention here) you are enabling arbitrary rates also through TCSETS on alpha, right? Johan