Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp3667763rwd; Mon, 29 May 2023 14:50:13 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7MF5e6lPxh084fduXG8+xLYYcE76gvXdgFdPgxW8uUZDwmgvIvHZ5R/3A8a91tydMeSZzl X-Received: by 2002:a17:90b:3e84:b0:256:4cd3:95c5 with SMTP id rj4-20020a17090b3e8400b002564cd395c5mr512443pjb.5.1685397013701; Mon, 29 May 2023 14:50:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685397013; cv=none; d=google.com; s=arc-20160816; b=eklCvFq+ljwwrZ2y+374l6S9K2rGBpS45FTFH9S0cDH+MwGXR9NtUzY0vUdbMcGB48 rv7pxzK11QCQY9lSFNaPpyUBm8VDXl+mQEK3pczp0IbrD0eeC76UcPzUKWdZsIB9HWwS VOXw1Fz+Dwiajb8K8vmfTErWkARjTvMrFl2DYglWKEinUuMkWqkdXnJQnG1cqC4jP7XG hzi4HE5dly9WRro02MDVRhXFRpiA4jr3EsCjww4bSQV0vo6tB35dE/cbbfUYlsxnszgm RPiQbJRGnAdeTQE/US+PeMXCF9Ed4jiRHB+ozXHjyFfOobJ7cdy5BU7el3HijNhTztBq dHfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:dkim-signature:date; bh=3GUy8y5jSA+uzqFF0uWxWns1ekDpGvYyW3JhYFgBXBc=; b=KsvX8p9EQGl6jQ6BgBAMILKoglp7nblyB+NUuNJbWRiW673vymmYrmXeyZH78AESGc MWyGfr7zYFwG6noGLrTxQezqwj4dMsIBXlG40OxsXnuhaqV3PJbgB5Lv4cDwKsBb52lO RRUDvGGf3qEMKdMqEPF79ve32cxz066qzNqrHQdEU4Vv2GVHyXmzyvxyEIiWPOsM6Mrj MFHP3xXvAJmorUwV8LLhJu7f4H9/MUBiUBToOQBomxoONd2nO6Yk6kIjmUBp37oTMoC+ nkXyJ++C8p0xYFEfcOHD+1WqJqT5oFaAeDzK6RWoCJmz9r2NewcxpZs5JULgLJL6G8ib VsAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@t-8ch.de header.s=mail header.b=EsjZvZNl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x24-20020a63db58000000b0051394ccd19csi10306927pgi.55.2023.05.29.14.50.01; Mon, 29 May 2023 14:50:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@t-8ch.de header.s=mail header.b=EsjZvZNl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229668AbjE2VjR (ORCPT + 99 others); Mon, 29 May 2023 17:39:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33832 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229461AbjE2VjQ (ORCPT ); Mon, 29 May 2023 17:39:16 -0400 Received: from todd.t-8ch.de (todd.t-8ch.de [IPv6:2a01:4f8:c010:41de::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68C2EC1; Mon, 29 May 2023 14:39:15 -0700 (PDT) Date: Mon, 29 May 2023 23:39:11 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=t-8ch.de; s=mail; t=1685396352; bh=KERa37f1jCecyGjPwDTuzqnl75Mz6w4gg8XNi9sny+w=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=EsjZvZNlKzIeZ/C1NZ0oNAsYZo+76a2qugPQ+dERKwf0VIJ+gZT7N2+56s/ZcfWch kE7kbdQKhvkOFnUNSjZZQXdRJ05uafQpIdadfpI3d1t14QZtF+K95m9AeNtuRfnmFc GNOJ025pHOfgaS+mUQmYx7ubLMC/Nm2Tw4J0FVio= From: Thomas =?utf-8?Q?Wei=C3=9Fschuh?= To: Zhangjin Wu Cc: w@1wt.eu, arnd@arndb.de, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v2 04/13] tools/nolibc: add missing nanoseconds support for __NR_statx Message-ID: <3a3edd48-1ace-4c89-89e8-9c594dd1b3c9@t-8ch.de> References: <4cd637be248b5bfad6f2a01b82a9fb6f3fe4c6fa.1685387484.git.falcon@tinylab.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4cd637be248b5bfad6f2a01b82a9fb6f3fe4c6fa.1685387484.git.falcon@tinylab.org> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2023-05-30 03:50:34+0800, Zhangjin Wu wrote: > Commit a89c937d781a ("tools/nolibc: support nanoseconds in stat()") > added nanoseconds for stat() but missed the statx case, this adds it. Welp, I should have thought of that. At least the testcase seems to have been useful. Thanks for the fix! > The stx_atime, stx_mtime, stx_ctime are in type of 'struct > statx_timestamp', which is incompatible with 'struct timespec', should > convert explicitly. > > /* include/uapi/linux/stat.h */ > > struct statx_timestamp { > __s64 tv_sec; > __u32 tv_nsec; > __s32 __reserved; > }; > > /* include/uapi/linux/time_types.h */ > struct __kernel_timespec { > __kernel_time64_t tv_sec; /* seconds */ > long long tv_nsec; /* nanoseconds */ > }; > > /* tools/include/nolibc/types.h */ > #define timespec __kernel_timespec > > Without this patch, the stat_timestamps test case would fail on rv32. > > Fixes: a89c937d781a ("tools/nolibc: support nanoseconds in stat()") > Signed-off-by: Zhangjin Wu > --- > tools/include/nolibc/sys.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/tools/include/nolibc/sys.h b/tools/include/nolibc/sys.h > index 154194056962..98cfa2f6d021 100644 > --- a/tools/include/nolibc/sys.h > +++ b/tools/include/nolibc/sys.h > @@ -1175,9 +1175,9 @@ int sys_stat(const char *path, struct stat *buf) > buf->st_size = statx.stx_size; > buf->st_blksize = statx.stx_blksize; > buf->st_blocks = statx.stx_blocks; > - buf->st_atime = statx.stx_atime.tv_sec; > - buf->st_mtime = statx.stx_mtime.tv_sec; > - buf->st_ctime = statx.stx_ctime.tv_sec; > + buf->st_atim = (struct timespec){ .tv_sec = statx.stx_atime.tv_sec, .tv_nsec = statx.stx_atime.tv_nsec }; > + buf->st_mtim = (struct timespec){ .tv_sec = statx.stx_mtime.tv_sec, .tv_nsec = statx.stx_mtime.tv_nsec }; > + buf->st_ctim = (struct timespec){ .tv_sec = statx.stx_ctime.tv_sec, .tv_nsec = statx.stx_ctime.tv_nsec }; I would prefer to split the compound assignment into two single assignments, though. buf->st_ctim.tv_sec = statx.stx_ctime.tv_sec; buf->st_ctim.tv_nsec = statx.stx_ctime.tv_nsec; > return ret; > } > #else > -- > 2.25.1 >