From patchwork Fri Apr 7 15:34:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 9669677 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9D5D7602A0 for ; Fri, 7 Apr 2017 15:34:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8D8C7285E8 for ; Fri, 7 Apr 2017 15:34:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 81F4628609; Fri, 7 Apr 2017 15:34:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2FE92285E8 for ; Fri, 7 Apr 2017 15:34:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932127AbdDGPek (ORCPT ); Fri, 7 Apr 2017 11:34:40 -0400 Received: from mail-wm0-f48.google.com ([74.125.82.48]:35947 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756286AbdDGPek (ORCPT ); Fri, 7 Apr 2017 11:34:40 -0400 Received: by mail-wm0-f48.google.com with SMTP id o81so46965075wmb.1 for ; Fri, 07 Apr 2017 08:34:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zRkAJSUHxoixPWJ5HkKkmDVxA/eM9dMFt+VA+1U2cF8=; b=uk0pEHl7BSxWy3wOXF3PMM6isPFbudKnBlTIdq+6k7UHuCz/bHwCylDQf6cwr9tNx1 SUYNawXbK/na3JTBHPGWSGlh9IFyONihNOFMeEQPOigjgwEP5Tlu04zWf4//tu9VDhd1 h3Dyz0HMBLfA3TkkuHNopU5Pq/w7W7BFwuH4wRaeXKSra00Ol01ZSZqU3YNSc6WlQORA kz+8r+5c5n7RdunGvFBThYprYvNa6Rm3nDwdfuDUVlOno6dwQR39Jen8nqJgCK/RVhFR FaiuWO1uoqg2jvLu4fLpmqX1KBZ7auTnZCaZTeK7Gb4KpI9P5soeGnKwpAeZa0lbFoc8 lA0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=zRkAJSUHxoixPWJ5HkKkmDVxA/eM9dMFt+VA+1U2cF8=; b=YdGTgQJWfM8kRYcmyN6Qvwk0jNafdwVs9hYe5ccfZ21oR+vBSGFAX7LvqBpH+5Dc75 REcPE8jGWD8+9Fp5WxyFugU49KL9cCozW8nrc2IQQkW3gLXdvNCy8kfD7F8JmoRYRcVU c5dwIJuLJZ4UO7mb1D8FsO5QBMoRXHzEeS5R+bHR0GWpSnWU7PA1J4S9fUnkTbQB4vVm qfq7bLi+K4pVLygHYLWDzw8TiXqBJSKrqJKmZE+VcMRaDJNjyzYaNe7a4l7dALER1VJ5 51SHz1eWeLW1EY85kMQeHYPsA8j5rmKmJuEduSTnJlSexdUGsRINxyGuVoiANH4tnfV+ wBFw== X-Gm-Message-State: AFeK/H0Z4lc0IKgwsIwLdSsrnT7eetHdI6IGCY3dkb9S2eerIAWE5dO/jAQdiCPlraQlldYX X-Received: by 10.28.62.212 with SMTP id l203mr19377415wma.110.1491579279007; Fri, 07 Apr 2017 08:34:39 -0700 (PDT) Received: from localhost.localdomain ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id 82sm3655870wmg.0.2017.04.07.08.34.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 07 Apr 2017 08:34:38 -0700 (PDT) From: Jerome Brunet To: Martin Blumenstingl , Neil Armstrong , Kevin Hilman , Michael Turquette , Stephen Boyd Cc: linux-amlogic@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, carlo@caione.org, Jerome Brunet Subject: [PATCH v2 2/2] clk: meson: mpll: use 64bit math in rate_from_params Date: Fri, 7 Apr 2017 17:34:33 +0200 Message-Id: <20170407153433.18640-3-jbrunet@baylibre.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170407153433.18640-1-jbrunet@baylibre.com> References: <20170407153433.18640-1-jbrunet@baylibre.com> Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Martin Blumenstingl On Meson8b the MPLL parent clock (fixed_pll) has a rate of 2550MHz. Multiplying this with SDM_DEN results in a value greater than 32bits. This is not a problem on the 64bit Meson GX SoCs, but it may result in undefined behavior on the older 32bit Meson8b SoC. While rate_from_params was only introduced recently to make the math reusable from _round_rate and _recalc_rate the original bug exists much longer. Fixes: 1c50da4f27 ("clk: meson: add mpll support") Signed-off-by: Martin Blumenstingl [as discussed on the ml, use DIV_ROUND_UP_ULL] Signed-off-by: Jerome Brunet Reviewed-by: Neil Armstrong --- drivers/clk/meson/clk-mpll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/meson/clk-mpll.c b/drivers/clk/meson/clk-mpll.c index d9462b505dcc..39eab69fe51a 100644 --- a/drivers/clk/meson/clk-mpll.c +++ b/drivers/clk/meson/clk-mpll.c @@ -79,7 +79,7 @@ static long rate_from_params(unsigned long parent_rate, if (n2 < N2_MIN) return -EINVAL; - return (parent_rate * SDM_DEN) / divisor; + return DIV_ROUND_UP_ULL((u64)parent_rate * SDM_DEN, divisor); } static void params_from_rate(unsigned long requested_rate,