diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c index 1a59f4bc3fa3..44b5fa57f560 100644 --- a/sys/compat/linux/linux_ioctl.c +++ b/sys/compat/linux/linux_ioctl.c @@ -806,22 +806,22 @@ linux_ioctl_termio(struct thread *td, struct linux_ioctl_args *args) } case LINUX_TCFLSH: { - args->cmd = TIOCFLUSH; + int val; switch (args->arg) { case LINUX_TCIFLUSH: - args->arg = FREAD; + val = FREAD; break; case LINUX_TCOFLUSH: - args->arg = FWRITE; + val = FWRITE; break; case LINUX_TCIOFLUSH: - args->arg = FREAD | FWRITE; + val = FREAD | FWRITE; break; default: fdrop(fp, td); return (EINVAL); } - error = (ioctl(td, (struct ioctl_args *)args)); + error = (fo_ioctl(fp,TIOCFLUSH,(caddr_t)&val,td->td_ucred,td)); break; }