All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 0/2] Linux user patches
@ 2026-07-26 19:36 Helge Deller
  2026-07-26 19:36 ` [PULL 1/2] linux-user: Guard local FUTEX_CMD_MASK definition Helge Deller
  2026-07-26 19:36 ` [PULL 2/2] linux-user: fix guards for the fsmount(2) syscall series Helge Deller
  0 siblings, 2 replies; 3+ messages in thread
From: Helge Deller @ 2026-07-26 19:36 UTC (permalink / raw)
  To: qemu-devel, Stefan Hajnoczi
  Cc: Helge Deller, Laurent Vivier, Matt Turner, Cédric Le Goater,
	Pierrick Bouvier

From: Helge Deller <deller@gmx.de>

The following changes since commit 300438ffbb8d9430cac2fcc15cba6f482b2c0587:

  Merge tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu into staging (2026-07-24 09:13:49 -0400)

are available in the Git repository at:

  https://github.com/hdeller/qemu-hppa.git tags/linux-user-pull-request

for you to fetch changes up to 4fdc24696cbf1ac6d97075d877cafc9fead4c475:

  linux-user: fix guards for the fsmount(2) syscall series (2026-07-26 15:10:59 +0200)

----------------------------------------------------------------
linux-user patches

Enable fsmount() syscalls and fix build with Linux 7.2 kernel headers.

----------------------------------------------------------------

Cédric Le Goater (1):
  linux-user: Guard local FUTEX_CMD_MASK definition

Matt Turner (1):
  linux-user: fix guards for the fsmount(2) syscall series

 linux-user/strace.c       | 2 +-
 linux-user/strace.list    | 2 +-
 linux-user/syscall.c      | 4 ++--
 linux-user/syscall_defs.h | 2 ++
 4 files changed, 6 insertions(+), 4 deletions(-)

-- 
2.54.0



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PULL 1/2] linux-user: Guard local FUTEX_CMD_MASK definition
  2026-07-26 19:36 [PULL 0/2] Linux user patches Helge Deller
@ 2026-07-26 19:36 ` Helge Deller
  2026-07-26 19:36 ` [PULL 2/2] linux-user: fix guards for the fsmount(2) syscall series Helge Deller
  1 sibling, 0 replies; 3+ messages in thread
From: Helge Deller @ 2026-07-26 19:36 UTC (permalink / raw)
  To: qemu-devel, Stefan Hajnoczi
  Cc: Helge Deller, Laurent Vivier, Matt Turner, Cédric Le Goater,
	Pierrick Bouvier, Philippe Mathieu-Daudé

From: Cédric Le Goater <clg@redhat.com>

Building linux-user on a host with Linux 7.2 kernel headers fails with
a macro redefinition error for FUTEX_CMD_MASK. The kernel commit
3ca9595d9fb6 ("futex: Add support for unlocking robust futexes")
expanded the mask to include the new FUTEX_ROBUST_UNLOCK and
FUTEX_ROBUST_LIST32 flags, which conflicts with QEMU's local
definition.

Add a #ifndef guard so the host definition takes precedence when
available. The local fallback is kept for older kernel headers
(pre-2.6.29) that lack FUTEX_CMD_MASK or define a mask without
FUTEX_CLOCK_REALTIME.

Signed-off-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Signed-off-by: Helge Deller <deller@gmx.de>
---
 linux-user/syscall_defs.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 5799769f83..e033c7db34 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2593,7 +2593,9 @@ struct target_drm_i915_getparam {
 
 #define FUTEX_PRIVATE_FLAG      128
 #define FUTEX_CLOCK_REALTIME    256
+#ifndef FUTEX_CMD_MASK
 #define FUTEX_CMD_MASK          ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
+#endif
 
 #if defined(TARGET_X86_64)
 #define TARGET_EPOLL_PACKED QEMU_PACKED
-- 
2.54.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PULL 2/2] linux-user: fix guards for the fsmount(2) syscall series
  2026-07-26 19:36 [PULL 0/2] Linux user patches Helge Deller
  2026-07-26 19:36 ` [PULL 1/2] linux-user: Guard local FUTEX_CMD_MASK definition Helge Deller
@ 2026-07-26 19:36 ` Helge Deller
  1 sibling, 0 replies; 3+ messages in thread
From: Helge Deller @ 2026-07-26 19:36 UTC (permalink / raw)
  To: qemu-devel, Stefan Hajnoczi
  Cc: Helge Deller, Laurent Vivier, Matt Turner, Cédric Le Goater,
	Pierrick Bouvier

From: Matt Turner <mattst88@gmail.com>

The fsopen(), fsconfig(), fsmount() and fspick() implementations are
guarded by defined(NR_fsopen) rather than defined(__NR_fsopen). No such
macro exists, so the guard is never true and the entire series compiles
out. Guests calling any of the four get -ENOSYS, which for example makes
systemd's credential setup fail with EXIT_CREDENTIALS for most units.

The strace bits for fsconfig() have the same typo.

Fixes: 767c32fe6983 ("linux-user: implement fsmount(2) series of syscalls")
Fixes: 6e0aa9f6c731 ("linux-user/strace: add fsmount series of syscalls")
Signed-off-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Helge Deller <deller@gmx.de>
Signed-off-by: Helge Deller <deller@gmx.de>
---
 linux-user/strace.c    | 2 +-
 linux-user/strace.list | 2 +-
 linux-user/syscall.c   | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/linux-user/strace.c b/linux-user/strace.c
index 3a81cc95f4..af1cf9548a 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -4344,7 +4344,7 @@ print_statx(CPUArchState *cpu_env, const struct syscallname *name,
 }
 #endif
 
-#if defined(TARGET_NR_fsconfig) && defined(NR_fsconfig)
+#if defined(TARGET_NR_fsconfig) && defined(__NR_fsconfig)
 static void
 print_fsconfig_cmd_name(int cmd)
 {
diff --git a/linux-user/strace.list b/linux-user/strace.list
index e363892e0a..ba1c1dc0ae 100644
--- a/linux-user/strace.list
+++ b/linux-user/strace.list
@@ -1725,7 +1725,7 @@
 #ifdef TARGET_NR_fsopen
 { TARGET_NR_fsopen, "fsopen", "%s(%s,%d)", NULL, NULL },
 #endif
-#if defined(TARGET_NR_fsconfig) && defined(NR_fsconfig)
+#if defined(TARGET_NR_fsconfig) && defined(__NR_fsconfig)
 { TARGET_NR_fsconfig, "fsconfig", NULL, print_fsconfig, NULL },
 #endif
 #ifdef TARGET_NR_fsmount
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 3da5530d42..740142825d 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -9740,7 +9740,7 @@ _syscall5(int, sys_move_mount, int, __from_dfd, const char *, __from_pathname,
            int, __to_dfd, const char *, __to_pathname, unsigned int, flag)
 #endif
 
-#if defined(TARGET_NR_fsopen) && defined(NR_fsopen)
+#if defined(TARGET_NR_fsopen) && defined(__NR_fsopen)
 #define __NR_sys_fsopen __NR_fsopen
 _syscall2(int, sys_fsopen, const char *, fs_name, unsigned int, flags);
 #define __NR_sys_fsconfig __NR_fsconfig
@@ -14485,7 +14485,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
         return do_map_shadow_stack(cpu_env, arg1, arg2, arg3);
 #endif
 
-#if defined(TARGET_NR_fsopen) && defined(NR_fsopen)
+#if defined(TARGET_NR_fsopen) && defined(__NR_fsopen)
     case TARGET_NR_fsopen:
         {
             p = lock_user_string(arg1);
-- 
2.54.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-07-26 19:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-26 19:36 [PULL 0/2] Linux user patches Helge Deller
2026-07-26 19:36 ` [PULL 1/2] linux-user: Guard local FUTEX_CMD_MASK definition Helge Deller
2026-07-26 19:36 ` [PULL 2/2] linux-user: fix guards for the fsmount(2) syscall series Helge Deller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.