From 8c1c2066f8f0e5f68fca6386d890d23699a0a661 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Sun, 23 Jul 2017 11:16:23 +0000 Subject: [PATCH] Unify PRINT_FIELD_FLAGS and PRINT_FIELD_FLAGS64 * print_fields.h (PRINT_FIELD_FLAGS64): Unify with PRINT_FIELD_FLAGS. * userfaultfd.c (uffdio_ioctl): Replace PRINT_FIELD_FLAGS64 with PRINT_FIELD_FLAGS. --- print_fields.h | 10 +++------- userfaultfd.c | 37 ++++++++++++++++++------------------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/print_fields.h b/print_fields.h index 2e16917b..5ea3be07 100644 --- a/print_fields.h +++ b/print_fields.h @@ -61,13 +61,9 @@ #define PRINT_FIELD_FLAGS(prefix_, where_, field_, xlat_, dflt_) \ do { \ STRACE_PRINTF("%s%s=", (prefix_), #field_); \ - printflags((xlat_), (where_).field_, (dflt_)); \ - } while (0) - -#define PRINT_FIELD_FLAGS64(prefix_, where_, field_, xlat_, dflt_) \ - do { \ - STRACE_PRINTF("%s%s=", (prefix_), #field_); \ - printflags64((xlat_), (where_).field_, (dflt_)); \ + printflags64((xlat_), \ + zero_extend_signed_to_ull((where_).field_),\ + (dflt_)); \ } while (0) #define PRINT_FIELD_XVAL(prefix_, where_, field_, xlat_, dflt_) \ diff --git a/userfaultfd.c b/userfaultfd.c index 7d09a109..965bd330 100644 --- a/userfaultfd.c +++ b/userfaultfd.c @@ -77,9 +77,8 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, if (umove_or_printaddr(tcp, arg, &ua)) return RVAL_DECODED | 1; PRINT_FIELD_X("{", ua, api); - PRINT_FIELD_FLAGS64(", ", ua, features, - uffd_api_features, - "UFFD_FEATURE_???"); + PRINT_FIELD_FLAGS(", ", ua, features, uffd_api_features, + "UFFD_FEATURE_???"); entering_features = malloc(sizeof(*entering_features)); if (entering_features) { *entering_features = ua.features; @@ -90,13 +89,13 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, entering_features = get_tcb_priv_data(tcp); if (!entering_features || *entering_features != ua.features) { - PRINT_FIELD_FLAGS64(" => ", ua, features, - uffd_api_features, - "UFFD_FEATURE_???"); + PRINT_FIELD_FLAGS(" => ", ua, features, + uffd_api_features, + "UFFD_FEATURE_???"); } - PRINT_FIELD_FLAGS64(", ", ua, ioctls, - uffd_api_flags, - "_UFFDIO_???"); + PRINT_FIELD_FLAGS(", ", ua, ioctls, + uffd_api_flags, + "_UFFDIO_???"); } tprints("}"); } @@ -112,8 +111,8 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, PRINT_FIELD_X("{", uc, dst); PRINT_FIELD_X(", ", uc, src); PRINT_FIELD_X(", ", uc, len); - PRINT_FIELD_FLAGS64(", ", uc, mode, uffd_copy_flags, - "UFFDIO_COPY_???"); + PRINT_FIELD_FLAGS(", ", uc, mode, uffd_copy_flags, + "UFFDIO_COPY_???"); } else { if (!syserror(tcp) && !umove(tcp, arg, &uc)) PRINT_FIELD_X(", ", uc, copy); @@ -129,14 +128,14 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, if (umove_or_printaddr(tcp, arg, &ur)) return RVAL_DECODED | 1; PRINT_FIELD_UFFDIO_RANGE("{", ur, range); - PRINT_FIELD_FLAGS64(", ", ur, mode, - uffd_register_mode_flags, - "UFFDIO_REGISTER_MODE_???"); + PRINT_FIELD_FLAGS(", ", ur, mode, + uffd_register_mode_flags, + "UFFDIO_REGISTER_MODE_???"); } else { if (!syserror(tcp) && !umove(tcp, arg, &ur)) { - PRINT_FIELD_FLAGS64(", ", ur, ioctls, - uffd_register_ioctl_flags, - "UFFDIO_???"); + PRINT_FIELD_FLAGS(", ", ur, ioctls, + uffd_register_ioctl_flags, + "UFFDIO_???"); } tprints("}"); } @@ -159,8 +158,8 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, if (umove_or_printaddr(tcp, arg, &uz)) return RVAL_DECODED | 1; PRINT_FIELD_UFFDIO_RANGE("{", uz, range); - PRINT_FIELD_FLAGS64(", ", uz, mode, uffd_zeropage_flags, - "UFFDIO_ZEROPAGE_???"); + PRINT_FIELD_FLAGS(", ", uz, mode, uffd_zeropage_flags, + "UFFDIO_ZEROPAGE_???"); } else { if (!syserror(tcp) && !umove(tcp, arg, &uz)) PRINT_FIELD_X(", ", uz, zeropage); -- 2.40.0