Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3288447pxk; Tue, 15 Sep 2020 15:28:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQIvkGGjqGHbNQj1//npGWM5xhQ7Xiw2EjwrNTar21E40w7Kqp2qxGERhrh8Umkw/VA24W X-Received: by 2002:a05:6402:176e:: with SMTP id da14mr25059467edb.349.1600208894168; Tue, 15 Sep 2020 15:28:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600208894; cv=none; d=google.com; s=arc-20160816; b=KWp6lsX5eIS9WcG+ohO6EuW25OORovtw9lcSW/yOgrDzbr7SmDBnlEmhvvisqnFBp8 82+FTn8xJ486RYLaNdwqln6V1C6UoV9muz8eAwYsE3dl05L1D/sAGMhYNa4GCPhUDed7 5oGd00w5p8Xj72vGcm2vojs7QKdmUPJrveLRNujdVb3eOmUBybWtbKPuSz9asQraPxhj nq9eZubZ/b/9e8WkVwWnNBSRIjCGVSWQYSz97iP1loljbkZ4KD3HywimoZ8ae89aTN/4 bQ0GV/B8YY5zA7k3T8V4GvemDBj0fgHKSjdI9Q9s9eovUJAW5JJGkP12gNYHVWFxV4ql n/3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=ioeCz7FUMSCabdv4SXq2EQ9Al75ehsLxZ8lOVrH9Zww=; b=I8Gr89CdPU6DYQdBMwX5jThNfvGW26nZC3L9aBGca42Oawc1DSPW4v6+9DQMwj1ve/ C49EpbACXFfiJgAFn83VnamywEeIkA60V8zaq29qMZT7zU1KX0yN6KPbNDfofaZiNWNv dWTaaqDK7gklV1IftyuVxsqNploei7ouxirkqSfinTIIFh+WE+T/p3ioG5DlPYperU9b 2+MEQtiMtbwocWDKXZ6JPsnNHtL7vNPxIy2xHV0RLyo5qvkHQoBMN5sFyZ39WwCXNhgU 50tn42a+OEhYcLzlU+MO26zYyPopFs5MTJh935U2ELeK5kc+j+H+6udkHIMUEGjBTEFE K6/w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id la18si10334544ejb.526.2020.09.15.15.27.50; Tue, 15 Sep 2020 15:28:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727578AbgIOW1V (ORCPT + 99 others); Tue, 15 Sep 2020 18:27:21 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:49502 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727472AbgIOQVC (ORCPT ); Tue, 15 Sep 2020 12:21:02 -0400 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1kIDhJ-0007yl-QR; Tue, 15 Sep 2020 16:20:49 +0000 From: Colin King To: Sandy Huang , =?UTF-8?q?Heiko=20St=C3=BCbner?= , David Airlie , Daniel Vetter , Chris Zhong , Guenter Roeck , Sean Paul , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/rockchip: cdn-dp: fix sign extension on an int multiply for a u64 result Date: Tue, 15 Sep 2020 17:20:49 +0100 Message-Id: <20200915162049.36434-1-colin.king@canonical.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Colin Ian King The variable bit_per_pix is a u8 and is promoted in the multiplication to an int type and then sign extended to a u64. If the result of the int multiplication is greater than 0x7fffffff then the upper 32 bits will be set to 1 as a result of the sign extension. Avoid this by casting tu_size_reg to u64 to avoid sign extension and also a potential overflow. Addresses-Coverity: ("Unintended sign extension") Fixes: 1a0f7ed3abe2 ("drm/rockchip: cdn-dp: add cdn DP support for rk3399") Signed-off-by: Colin Ian King --- drivers/gpu/drm/rockchip/cdn-dp-reg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/cdn-dp-reg.c b/drivers/gpu/drm/rockchip/cdn-dp-reg.c index 9d2163ef4d6e..33fb4d05c506 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-reg.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-reg.c @@ -658,7 +658,7 @@ int cdn_dp_config_video(struct cdn_dp_device *dp) */ do { tu_size_reg += 2; - symbol = tu_size_reg * mode->clock * bit_per_pix; + symbol = (u64)tu_size_reg * mode->clock * bit_per_pix; do_div(symbol, dp->max_lanes * link_rate * 8); rem = do_div(symbol, 1000); if (tu_size_reg > 64) { -- 2.27.0