Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp1391997rdh; Fri, 24 Nov 2023 11:20:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IGM4KkI2MW14tEdn2Yxszb7v5i4iNUEuTttNB6+LcUhvpHxUqUn3F91qjas5FXlgrrwqdlF X-Received: by 2002:a05:6a00:1daa:b0:6cb:88c2:83b3 with SMTP id z42-20020a056a001daa00b006cb88c283b3mr4926719pfw.0.1700853622392; Fri, 24 Nov 2023 11:20:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700853622; cv=none; d=google.com; s=arc-20160816; b=a0D0bJ7WTVXMF/v/uRI1LukVR22upux6BrAOBtHCRFHRSEz0TjPLoUW2TyuapkMjei jm1TjyW2M5j4LXfD8eMcHxXD5SuhHQMnRzZQ7YNnWx1OTPfrld4rXuY03oBGRoaORz1K GFMwQKDB3JB0qqyZHWENYehb/PSReutOv7QyHab2EeymrWzV7++gZYKSBg6Nsh9reCMJ By5NS+2gbsYzJ7iZotKZ7j5YzFI4/Rfky2il3+WjMjmCTYi/bssWW2ppC1MHXBQp2dxU 8zvJjpXUiVRRcSlyF+xUFSGEGzvVMMYLg69l/2NUQPhRe/4hV57aUmqcEsfYIMxMOVK7 Swkg== 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=FkSSMPi+7vQHA4thvnYTGccJ6A/W4qMqA97WKqwk82c=; fh=1OZ9RX9IKbqWI8zN0X3f6s2xqddPULldfl5vVKffLis=; b=Bgd3kQj+071hb7N2ke/Ybmjx2sVlBv/3JzjChuD6d9zxsYLxLHgVCc0TVBqa7xATqu XnkT2XUQNIB9KFoMPH6E1tCZsFJedTem66COMWAk7N3O3yONqD5DzOYDPNw4bevj9XlK mfFmn6XZNpTiwKDmPPRSHTeHQjqIvi1Xv12uXwy+Qqqb3OiVFPLy5NBL7d1mMYVVGDy6 ePgj63BOLvu0/hAQnWbnSYxdCRPOp8rLN59+Y/DTo8gHj+Qdt2eqE8LBLjchC812rlKP JhLLTpwzVb8kKfvB8EslEBrc/LCtu7DOLFp0+cbOmwXNWjweAUzy0UphuXMCHW96lB3f cHxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=n31ZpreM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 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 fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id z14-20020a056a00240e00b0069100706960si4075520pfh.116.2023.11.24.11.20.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Nov 2023 11:20:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=n31ZpreM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 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 fry.vger.email (Postfix) with ESMTP id C1DA28087B78; Fri, 24 Nov 2023 11:20:19 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345911AbjKXTUD (ORCPT + 99 others); Fri, 24 Nov 2023 14:20:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230200AbjKXTUC (ORCPT ); Fri, 24 Nov 2023 14:20:02 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 87A55210D for ; Fri, 24 Nov 2023 11:20:08 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE515C433C8; Fri, 24 Nov 2023 19:20:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1700853608; bh=Yw1hEo62+TYnV/OVU0azFUtAGB8JTnrZzuqqMxStj9Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n31ZpreMJ8yf4SRkxelQrlaTbUYuPL8JPharxyjLHXRCdI/XcsOQIqeZtJdqFh5wU ugcWWJV4EH8EDzGA/v14vdEbYkEgZuNWe+LzfyxeL50IIXAFoGG3KozjDn9HpUd3w0 CYLgZTJeprezZnitBMweoRXybl9x1bZ1Vu8DEmo0= 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 5.15 256/297] sbsa_gwdt: Calculate timeout with 64-bit math Date: Fri, 24 Nov 2023 17:54:58 +0000 Message-ID: <20231124172009.129056335@linuxfoundation.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231124172000.087816911@linuxfoundation.org> References: <20231124172000.087816911@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 fry.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 (fry.vger.email [0.0.0.0]); Fri, 24 Nov 2023 11:20:19 -0800 (PST) 5.15-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; }