Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3676651pxf; Mon, 5 Apr 2021 19:39:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxSEGOmRlbpG63GGYoOc33C1I0LdwnCYtaTDcEUHh++1iu2C8ZPZ0+cuI7kvJ+h8+v/7cUI X-Received: by 2002:a05:6e02:1cad:: with SMTP id x13mr23149010ill.144.1617676779758; Mon, 05 Apr 2021 19:39:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617676779; cv=none; d=google.com; s=arc-20160816; b=nEny1cjSIQONuAQTdpQpVUCewsKpwZgNCmjUOgG6w73saBJKHATO26T+TDpYm5xbl0 YwOkDzKureATMDrqUOhME2WGPyYSQa8CWgDt9Q2YdOQnLxlmijXL1lKXEbtWa9EFc45k swSI/x6ONgYhEAn4JYu8MYcg3zLfU1D7/NYS8JGEBUHXGj9EFNKP2mZmxejc00ZGvncN qIpZ033Ymfu4+LrN0A10pPCyc5S8WS60gTO03TbCZuImiy47QlJUrdY/1pNBk+guYUgd 6ZEmPf2wNVzbIBVV/A6OLai4VbEH8mT9VUSIOQPx5H9uthpacqA/n6rVpnasaxmetmHe kLIA== 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=XkPdNVaNQcSy6cEWQ8rO6MjXPFYgkoQL1AcvqptpAz4=; b=c8TkWwxNdvOJ87UxU6oOh1/UdTIXExeQ7f/ZCywrSbigTaYwmcqyDTlTlBAt8dJ0YF md4uI66/YmpUxMDg179UPdiARnxI/bvKzBcBEI9EBibJHZL+Q+JjNJJoFUo3HfM2U0Hy GBpWe7Iw0PTG/yR+8cFuquB3w+Lr92cQFRnE89xXEX8kU9BT7jDuOXqvgD90zSdrEFFx Mdpi2000KWYWtPSWXiIlDnZhyPq8Zpirc6W27op4FBflNNx5menfSbDyikLVoV5DbMkS N6w86w+rnD3EEQFiUWPnXlgrCNJYu94IQyRVYz5n36AVhLl3ODeb5H4Im9zw45GWCClc w0GA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=EFZPrhaP; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q15si16792046iow.39.2021.04.05.19.39.27; Mon, 05 Apr 2021 19:39:39 -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; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=EFZPrhaP; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240812AbhDEQHL (ORCPT + 99 others); Mon, 5 Apr 2021 12:07:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:58244 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238891AbhDEQF0 (ORCPT ); Mon, 5 Apr 2021 12:05:26 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8AB2F613F1; Mon, 5 Apr 2021 16:05:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1617638720; bh=/OqoiyF58eJ1ZX2Sbi4gzBwj/jNfSytLlR1vYZznEso=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EFZPrhaPqFE9tsZl7iK3Yqs7aRKH+zStMlnvj8xP2DS2Sa/fU1tvbP5MDwh0n+G0M lVyr/8+k8XDmOGG1TtVn+iNLIRmgzp8LG+0q/Xt3sX+vb/Qf+gtKZRuu516LxxrMSI lSkhddTOoE5kYaXwsVLrXZ8JbKL+aATCadQnHZkGCbFKlm1nb1Yexm2k3raKVwx+Zw RlvYJdxviGzVArE2AZWDBzlyn7v8116ykZ2hHm7DjEqWZZd4b/l52ahgYGSP7C7pRn CvlN+f76rAlaYjVqtdZkmre6Eb3v1Uoxn6vF8FEbvaj7JWeqsdwnHcj2fMV9j2UHIB +Z7I9yomtI3eg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Liu Ying , Philipp Zabel , Sasha Levin , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 4.19 3/8] drm/imx: imx-ldb: fix out of bounds array access warning Date: Mon, 5 Apr 2021 12:05:10 -0400 Message-Id: <20210405160515.269020-3-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210405160515.269020-1-sashal@kernel.org> References: <20210405160515.269020-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arnd Bergmann [ Upstream commit 33ce7f2f95cabb5834cf0906308a5cb6103976da ] When CONFIG_OF is disabled, building with 'make W=1' produces warnings about out of bounds array access: drivers/gpu/drm/imx/imx-ldb.c: In function 'imx_ldb_set_clock.constprop': drivers/gpu/drm/imx/imx-ldb.c:186:8: error: array subscript -22 is below array bounds of 'struct clk *[4]' [-Werror=array-bounds] Add an error check before the index is used, which helps with the warning, as well as any possible other error condition that may be triggered at runtime. The warning could be fixed by adding a Kconfig depedency on CONFIG_OF, but Liu Ying points out that the driver may hit the out-of-bounds problem at runtime anyway. Signed-off-by: Arnd Bergmann Reviewed-by: Liu Ying Signed-off-by: Philipp Zabel Signed-off-by: Sasha Levin --- drivers/gpu/drm/imx/imx-ldb.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c index 221a8cbc57f9..a4dba034dca4 100644 --- a/drivers/gpu/drm/imx/imx-ldb.c +++ b/drivers/gpu/drm/imx/imx-ldb.c @@ -206,6 +206,11 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder) int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN; int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder); + if (mux < 0 || mux >= ARRAY_SIZE(ldb->clk_sel)) { + dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux); + return; + } + drm_panel_prepare(imx_ldb_ch->panel); if (dual) { @@ -264,6 +269,11 @@ imx_ldb_encoder_atomic_mode_set(struct drm_encoder *encoder, int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder); u32 bus_format = imx_ldb_ch->bus_format; + if (mux < 0 || mux >= ARRAY_SIZE(ldb->clk_sel)) { + dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux); + return; + } + if (mode->clock > 170000) { dev_warn(ldb->dev, "%s: mode exceeds 170 MHz pixel clock\n", __func__); -- 2.30.2