diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e2b6b564e6cbbb7ec69092c3aec74541b99a92b3..3f144e3c1f5df007f3a1200e1e8fe7f0e1a3c736 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7793,6 +7793,7 @@ static int do_futex(CPUState *cpu, bool time64, target_ulong uaddr,
         timeout = 0;
         break;
     case FUTEX_FD:
+        val = target_to_host_signal(val);
         timeout = 0;
         break;
     case FUTEX_CMP_REQUEUE: