Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp377694pxb; Tue, 29 Mar 2022 05:26:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzDXcIDC1QN2DIDnwxpPiG4JbZTIuk2EVMuHb6q9M1oaJW/9KEsynzLw4zU+i2Ftnx5iAXM X-Received: by 2002:a63:7f48:0:b0:398:7298:c4b6 with SMTP id p8-20020a637f48000000b003987298c4b6mr1843061pgn.436.1648556768709; Tue, 29 Mar 2022 05:26:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648556768; cv=none; d=google.com; s=arc-20160816; b=tid/9DdkkvWG/LBpHwGyGfemZyt+d4rvixF1A9db3ZFdH8OkRloeCpZW+pQPJeRMI8 J+IlEKa5EHT70RBg3YmrZWR9Wf5D7PNpaHSmLKaUko+r1oZaXUKdDCkfnYlHC1IPw6VL 5d5uy6o6RRmFDmB+Ry1ZgDLBiyCgmiZkYZFN0B59WvkpF4u4UDoJ9sK+8bNukjYzQzcj 3dxTIfGer374QA/hli52yJyd9HP/0ZKD2K8sBNN4IK4GKgrVdC3mZjnZGJjxqU/DibIl N94BPTMff+UBwmuS7MwSUerW0dfpz0sSKU/vfqX40yKcBIASVoahjd3ZDXK+9F6K3ldh 0wvA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=V8mj/xCZliUeUXraAQXuQUJXbYRLbFD0/mg+M2ryb2E=; b=y8iK697N32xPyXtMNBpQOGviFo64qTF24nKV8C3MCauZE2M+pp7ec/mBLZv5K0tIzj 5tLIvLWIDJoVJ2hcqhZCUi7/BCNBXz5c9uX5e5w21ZXfCVxFYneTAKCg+KQnx8qo/XlU uHt5d1Cx1A4Nzfcume6U+D9YW/piViLMHoMCA2DdV3OSDHKIUh4bUS/zu4S1Va+CsITQ lYj9gxTR0mNK8feLWnNJzMnSB065Cf9ZwTi/4zV7ZCMBSgY0oSuCKFgdnGUao46niWq9 jLwp1uQPpxkOvC4ZSJ3/OnKtfygQnEJH7tSDG/ZFdObcwkl/FKj1Itsx03Ipe1+Y12mE 3blg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gnuweeb.org header.s=default header.b=BYMidkgO; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnuweeb.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i10-20020a633c4a000000b003865f06faf7si16411533pgn.825.2022.03.29.05.25.53; Tue, 29 Mar 2022 05:26:08 -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=@gnuweeb.org header.s=default header.b=BYMidkgO; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnuweeb.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235386AbiC2KtJ (ORCPT + 99 others); Tue, 29 Mar 2022 06:49:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46398 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235382AbiC2KtG (ORCPT ); Tue, 29 Mar 2022 06:49:06 -0400 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40CA82493E1; Tue, 29 Mar 2022 03:47:24 -0700 (PDT) Received: from integral2.. (unknown [182.2.70.161]) by gnuweeb.org (Postfix) with ESMTPSA id 0076C7E72E; Tue, 29 Mar 2022 10:47:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1648550843; bh=ZrvJYaZ/dGXaHa3O2COi7cmDKWMxBGfg7zKTtQwreOY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BYMidkgOUanB8Jk52lhdqv8mYzAyg8q4Ijnp/myJPf7Vgw/ziXMUl85zhC2+7+ztn JsK3WO/cYNkN4jpG4x37opvzFjmOPLZcQFJUXYhZbGfiiWncLAIM9GRmQWOEMnRgLE AYaabsatBt7OPsn3x1D0LNU0G8mT2uOU8kai0gaNCntbCyHksKMfUDvX9rbmOBTfz2 +FHCFVpEUIHEoXxwp3uhYsJbWLc76IRj5nMo/snsUR2VpYINsHKmovy/3zJwjcadbu ISH6A1iT1XDM9DICHKwdYq2Ftj+WJhEXB8NWZcYUxGqf14Nk14g+pmVafuo7OSX72U 0zD/VGonGv9SA== From: Ammar Faizi To: Borislav Petkov , Thomas Gleixner Cc: Ammar Faizi , Alviro Iskandar Setiawan , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Tony Luck , Yazen Ghannam , Linux Edac Mailing List , Linux Kernel Mailing List , Stable Kernel , GNU/Weeb Mailing List , x86 Mailing List , David Laight , Jiri Hladky Subject: [PATCH v6 1/2] x86/delay: Fix the wrong asm constraint in `delay_loop()` Date: Tue, 29 Mar 2022 17:47:04 +0700 Message-Id: <20220329104705.65256-2-ammarfaizi2@gnuweeb.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220329104705.65256-1-ammarfaizi2@gnuweeb.org> References: <20220329104705.65256-1-ammarfaizi2@gnuweeb.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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_PASS,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 The asm constraint does not reflect that the asm statement can modify the value of @loops. But the asm statement in delay_loop() does modify the @loops. Specifiying the wrong constraint may lead to undefined behavior, it may clobber random stuff (e.g. local variable, important temporary value in regs, etc.). This is especially dangerous when the compiler decides to inline the function and since it doesn't know that the value gets modified, it might decide to use it from a register directly without reloading it. Fix this by changing the constraint from "a" (as an input) to "+a" (as an input and output). Cc: David Laight Cc: Jiri Hladky Cc: Alviro Iskandar Setiawan Fixes: e01b70ef3eb3 ("x86: fix bug in arch/i386/lib/delay.c file, delay_loop function") Signed-off-by: Ammar Faizi --- v6: - Remove unnecessary Cc tags. - Update commit message, emphasize the danger when the compiler decides to inline the function. - Fix the Fixes tag sha1. - Remove stable Cc. --- arch/x86/lib/delay.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/lib/delay.c b/arch/x86/lib/delay.c index 65d15df6212d..0e65d00e2339 100644 --- a/arch/x86/lib/delay.c +++ b/arch/x86/lib/delay.c @@ -54,8 +54,8 @@ static void delay_loop(u64 __loops) " jnz 2b \n" "3: dec %0 \n" - : /* we don't need output */ - :"a" (loops) + : "+a" (loops) + : ); } -- Ammar Faizi