git: 7e7859e7c2b9 - main - linux: Partially implement TCSBRK

From: Edward Tomasz Napierala <trasz_at_FreeBSD.org>
Date: Sun, 17 Oct 2021 10:48:49 UTC
The branch main has been updated by trasz:

URL: https://cgit.FreeBSD.org/src/commit/?id=7e7859e7c2b900fd1b1af6e90ed31d51b9b5514d

commit 7e7859e7c2b900fd1b1af6e90ed31d51b9b5514d
Author:     Edward Tomasz Napierala <trasz@FreeBSD.org>
AuthorDate: 2021-10-17 10:19:51 +0000
Commit:     Edward Tomasz Napierala <trasz@FreeBSD.org>
CommitDate: 2021-10-17 10:19:56 +0000

    linux: Partially implement TCSBRK
    
    This fixes tcflush(3), unbreaking cheribuild.py under arm64 Focal.
    
    Reviewed By:    imp
    Sponsored By:   EPSRC
    Differential Revision:  https://reviews.freebsd.org/D32291
---
 sys/compat/linux/linux_ioctl.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c
index 62cb958aa42f..e3ce41ed38f8 100644
--- a/sys/compat/linux/linux_ioctl.c
+++ b/sys/compat/linux/linux_ioctl.c
@@ -755,7 +755,15 @@ linux_ioctl_termio(struct thread *td, struct linux_ioctl_args *args)
 		    td));
 		break;
 
-	/* LINUX_TCSBRK */
+	case LINUX_TCSBRK:
+		if (args->arg != 0) {
+			error = (fo_ioctl(fp, TIOCDRAIN, (caddr_t)&bios, td->td_ucred,
+			    td));
+		} else {
+			linux_msg(td, "ioctl TCSBRK arg 0 not implemented");
+			error = ENOIOCTL;
+		}
+		break;
 
 	case LINUX_TCXONC: {
 		switch (args->arg) {