Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Apr 2026 11:55:10 +0000
Message-ID:  <69ef4e9e.21caf.72e553f3@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by pouria:

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

commit fdea83a5f63b881ade91c6cc9dfbf173137512c5
Author:     Ricardo Branco <rbranco@suse.de>
AuthorDate: 2026-04-26 09:44:53 +0000
Commit:     Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
CommitDate: 2026-04-27 11:50:39 +0000

    linux: Ignore sigaction(2) flags SA_UNSUPPORTED and SA_EXPOSE_TAGBITS
    
    SA_UNSUPPORTED was introduced in Linux 5.11 to probe support
    for other flags such as SA_EXPOSE_TAGBITS, introduced
    at the same time. Ignore both.
    
    Signed-off-by:  Ricardo Branco <rbranco@suse.de>
    PR:             289285
    Reviewed by:    pouria, kib
    Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2163
---
 sys/amd64/linux/linux.h         | 2 ++
 sys/amd64/linux32/linux.h       | 2 ++
 sys/arm64/linux/linux.h         | 2 ++
 sys/compat/linux/linux_signal.c | 8 ++++++++
 sys/i386/linux/linux.h          | 2 ++
 5 files changed, 16 insertions(+)

diff --git a/sys/amd64/linux/linux.h b/sys/amd64/linux/linux.h
index 918b9129f47b..fb7aaa2d731c 100644
--- a/sys/amd64/linux/linux.h
+++ b/sys/amd64/linux/linux.h
@@ -154,6 +154,8 @@ struct l_newstat {
 #define	LINUX_SA_NOCLDSTOP	0x00000001
 #define	LINUX_SA_NOCLDWAIT	0x00000002
 #define	LINUX_SA_SIGINFO	0x00000004
+#define	LINUX_SA_UNSUPPORTED	0x00000400
+#define	LINUX_SA_EXPOSE_TAGBITS	0x00000800
 #define	LINUX_SA_RESTORER	0x04000000
 #define	LINUX_SA_ONSTACK	0x08000000
 #define	LINUX_SA_RESTART	0x10000000
diff --git a/sys/amd64/linux32/linux.h b/sys/amd64/linux32/linux.h
index 5542df1b3185..737f785905fa 100644
--- a/sys/amd64/linux32/linux.h
+++ b/sys/amd64/linux32/linux.h
@@ -255,6 +255,8 @@ struct l_statfs64 {
 #define	LINUX_SA_NOCLDSTOP	0x00000001
 #define	LINUX_SA_NOCLDWAIT	0x00000002
 #define	LINUX_SA_SIGINFO	0x00000004
+#define	LINUX_SA_UNSUPPORTED	0x00000400
+#define	LINUX_SA_EXPOSE_TAGBITS	0x00000800
 #define	LINUX_SA_RESTORER	0x04000000
 #define	LINUX_SA_ONSTACK	0x08000000
 #define	LINUX_SA_RESTART	0x10000000
diff --git a/sys/arm64/linux/linux.h b/sys/arm64/linux/linux.h
index 00a70fabc54f..b44512e51ed1 100644
--- a/sys/arm64/linux/linux.h
+++ b/sys/arm64/linux/linux.h
@@ -150,6 +150,8 @@ struct l_newstat {
 #define	LINUX_SA_NOCLDSTOP	0x00000001
 #define	LINUX_SA_NOCLDWAIT	0x00000002
 #define	LINUX_SA_SIGINFO	0x00000004
+#define	LINUX_SA_UNSUPPORTED	0x00000400
+#define	LINUX_SA_EXPOSE_TAGBITS	0x00000800
 #define	LINUX_SA_RESTORER	0x04000000
 #define	LINUX_SA_ONSTACK	0x08000000
 #define	LINUX_SA_RESTART	0x10000000
diff --git a/sys/compat/linux/linux_signal.c b/sys/compat/linux/linux_signal.c
index 9a84700b3949..2318cfcccc1e 100644
--- a/sys/compat/linux/linux_signal.c
+++ b/sys/compat/linux/linux_signal.c
@@ -129,6 +129,14 @@ linux_to_bsd_sigaction(l_sigaction_t *lsa, struct sigaction *bsa)
 		bsa->sa_flags |= SA_NODEFER;
 	}
 
+	/*
+	 * SA_UNSUPPORTED was introduced in Linux 5.11 to probe support for
+	 * other flags such as SA_EXPOSE_TAGBITS, introduced at the same time.
+	 * Ignore both.
+	 */
+	if (lsa->lsa_flags & (LINUX_SA_UNSUPPORTED | LINUX_SA_EXPOSE_TAGBITS))
+		flags &= ~(LINUX_SA_UNSUPPORTED | LINUX_SA_EXPOSE_TAGBITS);
+
 	if (flags != 0)
 		linux_msg(curthread, "unsupported sigaction flag %#lx", flags);
 }
diff --git a/sys/i386/linux/linux.h b/sys/i386/linux/linux.h
index 914dc9c9ae84..f547ddfae8fd 100644
--- a/sys/i386/linux/linux.h
+++ b/sys/i386/linux/linux.h
@@ -227,6 +227,8 @@ struct l_statfs64 {
 #define	LINUX_SA_NOCLDSTOP	0x00000001
 #define	LINUX_SA_NOCLDWAIT	0x00000002
 #define	LINUX_SA_SIGINFO	0x00000004
+#define	LINUX_SA_UNSUPPORTED	0x00000400
+#define	LINUX_SA_EXPOSE_TAGBITS	0x00000800
 #define	LINUX_SA_RESTORER	0x04000000
 #define	LINUX_SA_ONSTACK	0x08000000
 #define	LINUX_SA_RESTART	0x10000000


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ef4e9e.21caf.72e553f3>