From owner-dev-commits-src-all@freebsd.org Tue Jun 15 09:46:12 2021 Return-Path: Delivered-To: dev-commits-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 13C3764550B; Tue, 15 Jun 2021 09:46:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G43Nh043qz3DYs; Tue, 15 Jun 2021 09:46:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DAF982600B; Tue, 15 Jun 2021 09:46:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15F9kBVN046895; Tue, 15 Jun 2021 09:46:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15F9kBFw046894; Tue, 15 Jun 2021 09:46:11 GMT (envelope-from git) Date: Tue, 15 Jun 2021 09:46:11 GMT Message-Id: <202106150946.15F9kBFw046894@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Edward Tomasz Napierala Subject: git: 9d167945e840 - main - linux: improve reporting for unsupported syscall flags MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: trasz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9d167945e8409c739442a02e3fbacb3bcdcc3306 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2021 09:46:12 -0000 The branch main has been updated by trasz: URL: https://cgit.FreeBSD.org/src/commit/?id=9d167945e8409c739442a02e3fbacb3bcdcc3306 commit 9d167945e8409c739442a02e3fbacb3bcdcc3306 Author: Edward Tomasz Napierala AuthorDate: 2021-06-15 09:18:04 +0000 Commit: Edward Tomasz Napierala CommitDate: 2021-06-15 09:18:18 +0000 linux: improve reporting for unsupported syscall flags Filter out the flags we do support; previously we would print out the flag value verbatim. Reviewed By: dchagin Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30693 --- sys/compat/linux/linux_file.c | 7 ++++--- sys/compat/linux/linux_stats.c | 21 ++++++++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c index a5ab3506767e..013c435756fb 100644 --- a/sys/compat/linux/linux_file.c +++ b/sys/compat/linux/linux_file.c @@ -1757,10 +1757,11 @@ int linux_fchownat(struct thread *td, struct linux_fchownat_args *args) { char *path; - int error, dfd, flag; + int error, dfd, flag, unsupported; - if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { - linux_msg(td, "fchownat unsupported flag 0x%x", args->flag); + unsupported = args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH); + if (unsupported != 0) { + linux_msg(td, "fchownat unsupported flag 0x%x", unsupported); return (EINVAL); } diff --git a/sys/compat/linux/linux_stats.c b/sys/compat/linux/linux_stats.c index 4e6304500a8b..97bace941943 100644 --- a/sys/compat/linux/linux_stats.c +++ b/sys/compat/linux/linux_stats.c @@ -663,11 +663,12 @@ int linux_fstatat64(struct thread *td, struct linux_fstatat64_args *args) { char *path; - int error, dfd, flag; + int error, dfd, flag, unsupported; struct stat buf; - if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { - linux_msg(td, "fstatat64 unsupported flag 0x%x", args->flag); + unsupported = args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH); + if (unsupported != 0) { + linux_msg(td, "fstatat64 unsupported flag 0x%x", unsupported); return (EINVAL); } flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ? @@ -696,11 +697,12 @@ int linux_newfstatat(struct thread *td, struct linux_newfstatat_args *args) { char *path; - int error, dfd, flag; + int error, dfd, flag, unsupported; struct stat buf; - if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { - linux_msg(td, "fstatat unsupported flag 0x%x", args->flag); + unsupported = args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH); + if (unsupported != 0) { + linux_msg(td, "fstatat unsupported flag 0x%x", unsupported); return (EINVAL); } @@ -769,11 +771,12 @@ int linux_statx(struct thread *td, struct linux_statx_args *args) { char *path; - int error, dirfd, flags; + int error, dirfd, flags, unsupported; struct stat buf; - if (args->flags & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { - linux_msg(td, "statx unsupported flags 0x%x", args->flags); + unsupported = args->flags & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH); + if (unsupported != 0) { + linux_msg(td, "statx unsupported flags 0x%x", unsupported); return (EINVAL); }