2003-02-20  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Remove obsolete
	patch to check for system call errors.
This commit is contained in:
Ulrich Drepper 2003-02-21 00:12:29 +00:00
parent 0585697658
commit 6eb74f3365
2 changed files with 6 additions and 31 deletions

View File

@ -1,3 +1,8 @@
2003-02-20 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Remove obsolete
patch to check for system call errors.
2002-07-24 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Yield ENODEV

View File

@ -56,7 +56,6 @@ tcsetattr (fd, optional_actions, termios_p)
{
struct __kernel_termios k_termios;
unsigned long int cmd;
int retval;
switch (optional_actions)
{
@ -88,35 +87,6 @@ tcsetattr (fd, optional_actions, termios_p)
memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
__KERNEL_NCCS * sizeof (cc_t));
retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
if (retval == 0 && cmd == TCSETS)
{
/* The Linux kernel has a bug which silently ignore the invalid
c_cflag on pty. We have to check it here. */
int save = errno;
retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios);
if (retval)
{
/* We cannot verify if the setting is ok. We don't return
an error (?). */
__set_errno (save);
retval = 0;
}
else if ((termios_p->c_cflag & (PARENB | CREAD))
!= (k_termios.c_cflag & (PARENB | CREAD))
|| ((termios_p->c_cflag & CSIZE)
&& ((termios_p->c_cflag & CSIZE)
!= (k_termios.c_cflag & CSIZE))))
{
/* It looks like the Linux kernel silently changed the
PARENB/CREAD/CSIZE bits in c_cflag. Report it as an
error. */
__set_errno (EINVAL);
retval = -1;
}
}
return retval;
return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
}
libc_hidden_def (tcsetattr)