Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp844684pxb; Thu, 15 Apr 2021 07:57:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzkPg3b6SMX5qykqr1W64MSC1C5/KGk0/u6mgHFMAfN69oXJlefp5assD20btMH10V1F06Y X-Received: by 2002:a62:a215:0:b029:244:b6ae:680 with SMTP id m21-20020a62a2150000b0290244b6ae0680mr3615083pff.7.1618498633760; Thu, 15 Apr 2021 07:57:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618498633; cv=none; d=google.com; s=arc-20160816; b=DDjveHXYUceRSPYuKkohCFRqtix/vnvuLWwRpIfPW2MVlcxqL0VaZnN1FQ3pQyb50G bMeml8TnAmNPo576/nTRULbfi3dT+aVQ3I5ytbxKIvIHnHmo+sv/7EjZoLCQdMQUyHoz Ch8oQDyApUkcvTyRiBbiPlXHjnQh7Q8E9Nlq1E+JIEpYTZI7mKr/vojlcnjcmz83bUB6 iUreeUO70BnN6tjXP+dv1fItgsDDzYe5IsBxsOi9TEw38gQ6M5KDmAeb/T2cOCgwWFc+ X2QX3yB73GsIqSjm4J2YaoZPZKQYgLvL5i2mfKkEV0TD5uofx8ie7vWMtU9Yyi3jWECY Owow== 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=eyaxKh5VSqFAzDreyR5TCIo1/uVTIaZLu3i9ntaShC4=; b=Z/QFadA5jMgMTeN643H1GllA6gCfUNyB9dQVMODSKMm7gdk4u51yrC7Auc9q6xod3l 9hCwUb/Zw2pcmNhAC1et3JhhQKEofEhbNgN0Hgo9DYpPr6y/aZ5YviZd0xB+LB8DDbd5 9B5VYPf/RsUBwlYukz4FGlrKIVwr+wpzMaYuvUIHR4U4fpicFDZwOjCK9LCfsQh2Q2Id 7u0beFlHyA81M795nZOcECXSYEcRVdFiFo06YbWoMAyCQpdfPZyH9Plxeuoemh5j7Ucf zG5AnTZhix3GP37WGYw7kHy8ui8RoXh+TWfjP+qc5MII8dYSxW7KW/VWZWxtjKqzCiiP lv3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=YUwNry29; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z9si3741691plg.322.2021.04.15.07.57.01; Thu, 15 Apr 2021 07:57:13 -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=@linuxfoundation.org header.s=korg header.b=YUwNry29; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234250AbhDOOzS (ORCPT + 99 others); Thu, 15 Apr 2021 10:55:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:40358 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233889AbhDOOwX (ORCPT ); Thu, 15 Apr 2021 10:52:23 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4E8D8613C1; Thu, 15 Apr 2021 14:51:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1618498319; bh=NP6z82y8UYkzlwGvlhVl2v3BmtjsrN94IHTrZKg4lEo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YUwNry29cRl6/JDtL7z2LQ6qWd6ZIVkhN7yThXI+/UYRZbpBwgYPpivcVoIpEnVR0 9VRxFh2v4VUrZYG7rcEMwL8vObFrU6u0nDFok/rH2YX3lqPJQ+dZWmYtCVVIrTOId2 Mit2W+FC6GcRjZJ2NCdzyqwktQIKZEgV5/tVc2QE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Arnd Bergmann , Liu Ying , Philipp Zabel , Sasha Levin Subject: [PATCH 4.9 43/47] drm/imx: imx-ldb: fix out of bounds array access warning Date: Thu, 15 Apr 2021 16:47:35 +0200 Message-Id: <20210415144414.833339007@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210415144413.487943796@linuxfoundation.org> References: <20210415144413.487943796@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 2df407b2b0da..3a9d06de81b4 100644 --- a/drivers/gpu/drm/imx/imx-ldb.c +++ b/drivers/gpu/drm/imx/imx-ldb.c @@ -212,6 +212,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) { @@ -270,6 +275,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