From patchwork Mon Aug 21 07:37:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Su Hui X-Patchwork-Id: 136378 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp2943087vqi; Mon, 21 Aug 2023 04:47:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE9BvIanbJFBMTZFSjKgRkLUi7SCg3YZ/vk15aJ1JCPViG8m8DCoa9WgMlSeTYwnEsKUaBj X-Received: by 2002:a05:6a20:f393:b0:138:1c5b:24c3 with SMTP id qr19-20020a056a20f39300b001381c5b24c3mr6760642pzb.49.1692618432427; Mon, 21 Aug 2023 04:47:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692618432; cv=none; d=google.com; s=arc-20160816; b=sETBARCjUkgVkEaU4hPR6uHxk5qsjO+zTF0oW5cra7XgqNy6xI6PfvwGLhOoMfIHYX llm6OQCCnD5E2gslAGqIpxo/cfMfsWu+U4x5akwK5yshqZRqZR4wC3wMtM3tRVdIgqw7 e2zuiEePT7Z5n7Aju1Tgx5VR/b6PFySRCnnMGOvc55gKG45g5qZWKMp4B4kglBcN/n0d I4q980a6h2thOWgixCW7h+dMJRvUurrNP3ylzo66xXyB/VPood9lDtsuAIHiOC7Fd1nu rLud2tBwClgzIMqARck5tnwGqqLxt4Jz5m4wdfDUhmdGssDlXKX+FkMbnXzOEE4SlWw5 Wskw== 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 :message-id:date:subject:cc:to:from; bh=F2qrQ4H8M7KfNurVWbPBmrw/fTMUcX8oYbE0dlZ24X0=; fh=2ZZ8HFSdWnMQb6C0Taq+dTCdtWLkF45umjVBUlvi7Q0=; b=IOBMt598IqiQxNVY3xnRg3cw1vCL+tvIyB9ERexCsRPSlOPUl3v2TPA48SVMQU95zk l9uE4RF6ExG78ro866XCoqmvyuvrWL7+Akcm7cFlC4i4xXPa8kqDWy+vIT1SKhSEAFrn g7Ddm3nOlwc9e3PEWGXnwwIFXcg7Q7qDDfSuRZB9HcqecJI3t73y4K664bEo9wiWraQj bXIG53YGMgncKZsTXmPmL+bva7x35nkyDFm9oZ43y1yU39qsYtImp/hDo5q/K80QWxje 6vMNIQ4OxQLreIyZNmBKksG39kVdiRdUmF35YDhOah3NXe3/Vfu2mqn8BAdN0AGAug5c 2OSA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l15-20020a170902f68f00b001b9ea60cd8bsi7645006plg.332.2023.08.21.04.46.58; Mon, 21 Aug 2023 04:47:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233757AbjHUHkC (ORCPT + 99 others); Mon, 21 Aug 2023 03:40:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233758AbjHUHkA (ORCPT ); Mon, 21 Aug 2023 03:40:00 -0400 Received: from mail.nfschina.com (unknown [42.101.60.195]) by lindbergh.monkeyblade.net (Postfix) with SMTP id CF735D7; Mon, 21 Aug 2023 00:39:40 -0700 (PDT) Received: from localhost.localdomain (unknown [180.167.10.98]) by mail.nfschina.com (Maildata Gateway V2.8.8) with ESMTPA id AED8C6062130A; Mon, 21 Aug 2023 15:39:37 +0800 (CST) X-MD-Sfrom: suhui@nfschina.com X-MD-SrcIP: 180.167.10.98 From: Su Hui To: alexander.deucher@amd.com, christian.koenig@amd.com, Xinhui.Pan@amd.com, airlied@gmail.com, daniel@ffwll.ch Cc: Hawking.Zhang@amd.com, le.ma@amd.com, lijo.lazar@amd.com, yifan1.zhang@amd.com, candice.li@amd.com, guchun.chen@amd.com, Yuliang.Shi@amd.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, christophe.jaillet@wanadoo.fr, Su Hui Subject: [PATCH v2] drm/amdgpu: Avoid possible buffer overflow Date: Mon, 21 Aug 2023 15:37:28 +0800 Message-Id: <20230821073727.225341-1-suhui@nfschina.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,RDNS_NONE, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774834340255344953 X-GMAIL-MSGID: 1774839065259912823 smatch error: drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c:1257 amdgpu_discovery_reg_base_init() error: testing array offset 'adev->vcn.num_vcn_inst' after use. change the assignment order to avoid buffer overflow. Fixes: c40bdfb2ffa4 ("drm/amdgpu: fix incorrect VCN revision in SRIOV") Signed-off-by: Su Hui --- changes in v2: - fix the error about ip->revision (thanks to Christophe JAILLET). drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c index 8e1cfc87122d..b07bfd106a9b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c @@ -1250,11 +1250,10 @@ static int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev) * 0b10 : encode is disabled * 0b01 : decode is disabled */ - adev->vcn.vcn_config[adev->vcn.num_vcn_inst] = - ip->revision & 0xc0; - ip->revision &= ~0xc0; if (adev->vcn.num_vcn_inst < AMDGPU_MAX_VCN_INSTANCES) { + adev->vcn.vcn_config[adev->vcn.num_vcn_inst] = + ip->revision & 0xc0; adev->vcn.num_vcn_inst++; adev->vcn.inst_mask |= (1U << ip->instance_number); @@ -1265,6 +1264,7 @@ static int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev) adev->vcn.num_vcn_inst + 1, AMDGPU_MAX_VCN_INSTANCES); } + ip->revision &= ~0xc0; } if (le16_to_cpu(ip->hw_id) == SDMA0_HWID || le16_to_cpu(ip->hw_id) == SDMA1_HWID ||