Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp1375629rdh; Fri, 24 Nov 2023 10:58:54 -0800 (PST) X-Google-Smtp-Source: AGHT+IG5M3AMpERn2AoevhlUtXRibhIXEHEsnZfqkHI9OoVFOXaUuaFRJyXNqktX4qBSNjM00RO0 X-Received: by 2002:a05:6a20:da91:b0:18b:d2d6:2f73 with SMTP id iy17-20020a056a20da9100b0018bd2d62f73mr4502403pzb.7.1700852334070; Fri, 24 Nov 2023 10:58:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700852334; cv=none; d=google.com; s=arc-20160816; b=D+MvV/MXmshJen4dJL4eFCeCZgz9HxA0x99jxdOZcz1rTnLgwX8oYaMPPO6un0YhGF vyr3XtiQ3tOddTXgKzwdbDYSUbK2Q833yQjGXodVXutYEZFLcYBGsp08Nr7ZXdFhHYbX p3goRDnfj6e30Vg111bILdek2YPDDRozmmS1nk6q0b25JP3ZpJHtK0niDPgtsM12C/3Q UOEOU2o8OtSLUYsr8SQcHlIDVRiVYAIYjaq4J6bqR7F/OItGPTl/pZK49xb+tFLdYfDu UZufwBowRuwQppThiCgVeNVkE+7Wa+iJ7c6b0S8o+I2tkpzKQgm4hqEgoFu+Hd+QMdjV mTiw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Yb2mCUy7oyOVIjBJl8PQ9419KdJuU/50airJLoyI+go=; fh=1OZ9RX9IKbqWI8zN0X3f6s2xqddPULldfl5vVKffLis=; b=jOi+C6lcWpaWKfPr4c7ZtcRsOBvAJ4Wwp93JZh4nJjtyxcbIUb/yX7RWuUaNp9y2O4 ZKiGXcC0okhFcXoWtKox1fBXAkrwt7QnKr4blJB3/U84Yg6Q7p8XX6Reg6/icHQkbabc jcgIhYkDBp4QPUbSzJst68cCNHZ3izYAaqy1Nrdz65cKOxnY5ilsDDiQiILbUsnTz66u HvFBdU7qkoxiFt8vsiwpzOBHD/DRVRvhNbhjj1aWfSd6yu6vejLrgPtFcbaw37cHHtE3 LUR6xz+uIu0sVloneaX4GQZxbyY9Uc1oq4wqLQOJrRNQkXQ9SdtSg+75DNlaVi3ig2yo aAhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=eNqfbAea; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id k15-20020a634b4f000000b005824bad8f83si4149195pgl.846.2023.11.24.10.58.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Nov 2023 10:58:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=eNqfbAea; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 8A93C83746B9; Fri, 24 Nov 2023 10:58:51 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345742AbjKXS6g (ORCPT + 99 others); Fri, 24 Nov 2023 13:58:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229703AbjKXS6f (ORCPT ); Fri, 24 Nov 2023 13:58:35 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2CB92706 for ; Fri, 24 Nov 2023 10:58:40 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31834C433C7; Fri, 24 Nov 2023 18:58:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1700852320; bh=OitIkk/KczZ9zjgXU6gXEQ2EjaKX9udOFK3h89gF5YE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eNqfbAeag13st+486XDBof9rvnQy75hXQeJw/3dcHKTC4iIN2GqtH+r4q4dYshuU7 5IGDIdY6dkMwVK/RvyhqwzJlp605vE+l4swMAu5ht4p/hAor1dvKD+pe6QmKuONrb1 L8gTlPs4NZBgLI5tKqLo9Otjiqj2od5Rt/NSREEc= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Vanshidhar Konda , Darren Hart , Wim Van Sebroeck , Guenter Roeck , linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 6.1 309/372] sbsa_gwdt: Calculate timeout with 64-bit math Date: Fri, 24 Nov 2023 17:51:36 +0000 Message-ID: <20231124172020.703826908@linuxfoundation.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231124172010.413667921@linuxfoundation.org> References: <20231124172010.413667921@linuxfoundation.org> User-Agent: quilt/0.67 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Fri, 24 Nov 2023 10:58:51 -0800 (PST) 6.1-stable review patch. If anyone has any objections, please let me know. ------------------ From: Darren Hart commit 5d6aa89bba5bd6af2580f872b57f438dab883738 upstream. Commit abd3ac7902fb ("watchdog: sbsa: Support architecture version 1") introduced new timer math for watchdog revision 1 with the 48 bit offset register. The gwdt->clk and timeout are u32, but the argument being calculated is u64. Without a cast, the compiler performs u32 operations, truncating intermediate steps, resulting in incorrect values. A watchdog revision 1 implementation with a gwdt->clk of 1GHz and a timeout of 600s writes 3647256576 to the one shot watchdog instead of 300000000000, resulting in the watchdog firing in 3.6s instead of 600s. Force u64 math by casting the first argument (gwdt->clk) as a u64. Make the order of operations explicit with parenthesis. Fixes: abd3ac7902fb ("watchdog: sbsa: Support architecture version 1") Reported-by: Vanshidhar Konda Signed-off-by: Darren Hart Cc: Wim Van Sebroeck Cc: Guenter Roeck Cc: linux-watchdog@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: # 5.14.x Reviewed-by: Guenter Roeck Link: https://lore.kernel.org/r/7d1713c5ffab19b0f3de796d82df19e8b1f340de.1695286124.git.darren@os.amperecomputing.com Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Signed-off-by: Greg Kroah-Hartman --- drivers/watchdog/sbsa_gwdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/watchdog/sbsa_gwdt.c +++ b/drivers/watchdog/sbsa_gwdt.c @@ -153,14 +153,14 @@ static int sbsa_gwdt_set_timeout(struct timeout = clamp_t(unsigned int, timeout, 1, wdd->max_hw_heartbeat_ms / 1000); if (action) - sbsa_gwdt_reg_write(gwdt->clk * timeout, gwdt); + sbsa_gwdt_reg_write((u64)gwdt->clk * timeout, gwdt); else /* * In the single stage mode, The first signal (WS0) is ignored, * the timeout is (WOR * 2), so the WOR should be configured * to half value of timeout. */ - sbsa_gwdt_reg_write(gwdt->clk / 2 * timeout, gwdt); + sbsa_gwdt_reg_write(((u64)gwdt->clk / 2) * timeout, gwdt); return 0; }