aboutsummaryrefslogtreecommitdiff
path: root/futex.c
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2016-08-29 23:56:24 +0300
committerDmitry V. Levin <ldv@altlinux.org>2016-08-30 15:53:51 +0000
commitbfa22a596fc6ae7f706b0d1321210021af8bcbab (patch)
tree535483a82c3b03180952d81de34ffebd0dc0d2a3 /futex.c
parentb80894cf07bb14f15d666333d195a05bbf944a52 (diff)
downloadstrace-bfa22a596fc6ae7f706b0d1321210021af8bcbab.tar.gz
futex: fix FUTEX_WAKE_OP compare function mask
According to the initial and current (v4.7) kernel implementations, in FUTEX_WAKE_OP case the compare function does not have FUTEX_OP_OPARG_SHIFT flag and occupies 4 bits starting with bit 24. * futex.c (SYS_FUNC(futex)): Do not print FUTEX_OP_OPARG_SHIFT for 27th bit of val3 in FUTEX_WAKE_OP case.
Diffstat (limited to 'futex.c')
-rw-r--r--futex.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/futex.c b/futex.c
index 7090c7d0..92682168 100644
--- a/futex.c
+++ b/futex.c
@@ -92,9 +92,7 @@ SYS_FUNC(futex)
tprints("FUTEX_OP_OPARG_SHIFT|");
printxval(futexwakeops, (val3 >> 28) & 0x7, "FUTEX_OP_???");
tprintf(", %u, ", (val3 >> 12) & 0xfff);
- if ((val3 >> 24) & 8)
- tprints("FUTEX_OP_OPARG_SHIFT|");
- printxval(futexwakecmps, (val3 >> 24) & 0x7, "FUTEX_OP_CMP_???");
+ printxval(futexwakecmps, (val3 >> 24) & 0xf, "FUTEX_OP_CMP_???");
tprintf(", %u}", val3 & 0xfff);
break;
case FUTEX_WAIT_REQUEUE_PI: