From patchwork Mon May 8 12:06:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Geert Uytterhoeven X-Patchwork-Id: 91088 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2108617vqo; Mon, 8 May 2023 05:16:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7eOWxmnri9cAvcGdz9ShpitZJAZkQHW01Miv15ac3PcgE0jy+mp6c6MlG/ovs3TFK/MZ4p X-Received: by 2002:a17:90a:7786:b0:23f:58a2:7d86 with SMTP id v6-20020a17090a778600b0023f58a27d86mr10120404pjk.10.1683548182017; Mon, 08 May 2023 05:16:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683548182; cv=none; d=google.com; s=arc-20160816; b=vRU4HbEsI3zq85UOTHd9ONYhwhBqICb277Pdt0IEbUlPzvruzUVOrcmNVOL+s1FyRC ZLpcvpVnn630JIzZUPOU8s9Qwoo6qtN1fJ8SZ0ya648tjby0Vs4+OBicPXVBZ4TdJQWv p82dVrSXHj94bSQiwwmS0h+UTjuTeIehlh+HPS0fJjSdaf1+/Y5liW9yd6/1nvwW/h5G CtWeYSSMMEglJweIXx6kKrFKKrB/G74dQ4Hwgip7hJVnLr+oy1HB86UjsMXs+le9Nor+ 18GFC3qwJJ8T1J9Z4fE6cLb0rAQ1H3rwwnj2qsx9FJQugjqSh22Z5/Gs5zdiI1ajFJcv yFGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=tcmH0VspNjYnHiFLNiDkg3XubSjncxlPG90PyW1bfd0=; b=wO3HC8FGDicJ6gLweizrdaCXEv+FZCJXD2EMOkjPNRxetH1IMHZPhMeGiiSAyJVzPg nPE+td6IrMWwLL4hIyQ88JqyMlPwNvP77ISpF6OVF8L5k66BO633zLbNOI+nvtTuCqU2 atolpbB3NJ9VDtXmcqyIpWiHPW+udT4/kveX1iOi0WL016eJlpkAPjGJbytvjX7Y+GB3 y4lZ96+gobqMpAbMYNgl4lOyap4yobLN0bwC6EK/J1EZM5Z15kVhli9en9Gjqp1fXda8 drBcu6LMsNVx6I3L79iO2czhkBVMwS1nYtn4bPHUNzG1pU5cdjfh86pS6PIYY+yIrWg+ PAmQ== ARC-Authentication-Results: i=1; mx.google.com; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lx13-20020a17090b4b0d00b002471d40b4d0si6971607pjb.106.2023.05.08.05.16.05; Mon, 08 May 2023 05:16:21 -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; 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 S233044AbjEHMGm (ORCPT + 99 others); Mon, 8 May 2023 08:06:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41196 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232166AbjEHMGk (ORCPT ); Mon, 8 May 2023 08:06:40 -0400 Received: from xavier.telenet-ops.be (xavier.telenet-ops.be [IPv6:2a02:1800:120:4::f00:14]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C3B71BF1 for ; Mon, 8 May 2023 05:06:37 -0700 (PDT) Received: from ramsan.of.borg ([IPv6:2a02:1810:ac12:ed30:6a18:41e7:fcfe:24c0]) by xavier.telenet-ops.be with bizsmtp id uC6b2900D2WBekD01C6byZ; Mon, 08 May 2023 14:06:35 +0200 Received: from rox.of.borg ([192.168.97.57]) by ramsan.of.borg with esmtp (Exim 4.95) (envelope-from ) id 1pvzdM-001Vg5-I6; Mon, 08 May 2023 14:06:35 +0200 Received: from geert by rox.of.borg with local (Exim 4.95) (envelope-from ) id 1pvzdT-00Au3m-8z; Mon, 08 May 2023 14:06:35 +0200 From: Geert Uytterhoeven To: "Darrick J . Wong" , Dave Chinner Cc: linux-xfs@vger.kernel.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven Subject: [PATCH] xfs: Fix undefined behavior of shift into sign bit Date: Mon, 8 May 2023 14:06:34 +0200 Message-Id: <20230508120634.2598765-1-geert+renesas@glider.be> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE, 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765328218172402567?= X-GMAIL-MSGID: =?utf-8?q?1765328218172402567?= With gcc-5: In file included from ./include/trace/define_trace.h:102:0, from ./fs/xfs/scrub/trace.h:988, from fs/xfs/scrub/trace.c:40: ./fs/xfs/./scrub/trace.h: In function ‘trace_raw_output_xchk_fsgate_class’: ./fs/xfs/scrub/scrub.h:111:28: error: initializer element is not constant #define XREP_ALREADY_FIXED (1 << 31) /* checking our repair work */ ^ Shifting the (signed) value 1 into the sign bit is undefined behavior. Fix this for all definitions in the file by shifting "1U" instead of "1". This was exposed by the first user added in commit 466c525d6d35e691 ("xfs: minimize overhead of drain wakeups by using jump labels"). Fixes: 160b5a784525e8a4 ("xfs: hoist the already_fixed variable to the scrub context") Signed-off-by: Geert Uytterhoeven Reviewed-by: Darrick J. Wong --- fs/xfs/scrub/scrub.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/xfs/scrub/scrub.h b/fs/xfs/scrub/scrub.h index b38e93830ddea2b0..e113f2f5c254b085 100644 --- a/fs/xfs/scrub/scrub.h +++ b/fs/xfs/scrub/scrub.h @@ -105,10 +105,10 @@ struct xfs_scrub { }; /* XCHK state flags grow up from zero, XREP state flags grown down from 2^31 */ -#define XCHK_TRY_HARDER (1 << 0) /* can't get resources, try again */ -#define XCHK_FSGATES_DRAIN (1 << 2) /* defer ops draining enabled */ -#define XCHK_NEED_DRAIN (1 << 3) /* scrub needs to drain defer ops */ -#define XREP_ALREADY_FIXED (1 << 31) /* checking our repair work */ +#define XCHK_TRY_HARDER (1U << 0) /* can't get resources, try again */ +#define XCHK_FSGATES_DRAIN (1U << 2) /* defer ops draining enabled */ +#define XCHK_NEED_DRAIN (1U << 3) /* scrub needs to drain defer ops */ +#define XREP_ALREADY_FIXED (1U << 31) /* checking our repair work */ /* * The XCHK_FSGATES* flags reflect functionality in the main filesystem that