Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp5450351pxu; Tue, 22 Dec 2020 18:21:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJxfogiNKP/smBYk9GPWCU4L9itKFujgww9zAh5zLw4XI9xQeOKF460+PYzml0iUS7y1lZAM X-Received: by 2002:a17:906:58f:: with SMTP id 15mr10758679ejn.67.1608690099992; Tue, 22 Dec 2020 18:21:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608690099; cv=none; d=google.com; s=arc-20160816; b=RX8+CcEIoYJusNuO0PHgcPD69IO3M/HmdSAHnKHRsNueOn69SApYCs+Zsc8ag+tEvm iXI7ro3WfjE+/8yAL5T0P1sH9DtrTR+5f8JePgfuS2mmL4z4f5ZXADpqyrXKYD/kdIrS iH2tgZJz3UwlgtGWIRy2ga4mru0QSuGLpi7SmIUUcptnFqy1h8SPhtYFZ93TOVOeLnC8 9MRLdQeWZxDgd60SVn5tmRHxsImqeuUGF5Ah4E9uPpqOOHcWv2fvW0B4t1S6OyjXG4HW XsCP95KoAZu0wzSPFESi9kEybNDJkCVmbznap4V+aykse5CVMBBL0PGmEGKsuYB00x6e Pcyw== 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=rVRFsfz4hI01SN+Ca8rOwCDPpoy1PVdqwb9eJmHLiQg=; b=NNvDzKOdXfiCGY/Z3C1XwmLJCXqIViIUeBuqS4UFOPaghVzHPy4XP69dBpY4uQFlMC 6A0T0/CBc9Krj5bru4bNQUvL3ejy3KS6lgIwSdVnkn2R6eXysDbr8P2h+lvPNKnNQGpw dn7SYZ6KKZygWz2qvVvNfqm+YUZDloTq0dXnWoSARMUJP5xTiNb8O+XRi/y5koHY4t2v tu+tFTJvbmNGJl+X65zQ58Qjd68me863GQIKAou3t09wR3LVOM1/msDjCuRh9LI5uZil r0CQ28zGqYNtT9zLgBvIPRFLTar6hGknW+c4ZF+yfC2CS679RN8sZR2LQ8tnNM2kIcSJ P8Nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bjh0HBgx; 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 x25si12701349edi.388.2020.12.22.18.21.18; Tue, 22 Dec 2020 18:21:39 -0800 (PST) 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=bjh0HBgx; 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 S1728832AbgLWCT7 (ORCPT + 99 others); Tue, 22 Dec 2020 21:19:59 -0500 Received: from mail.kernel.org ([198.145.29.99]:46354 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728689AbgLWCTg (ORCPT ); Tue, 22 Dec 2020 21:19:36 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id AB15722257; Wed, 23 Dec 2020 02:19:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1608689944; bh=kFY3jfaSGn9wP3jpuMECk2u7kpTMi3nSn4DQgzodpoQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bjh0HBgxmPMK2IlWLrrNO3YjSM7Q5F6HMBZM7S9AtwqVdZV4Sr+/yGUFiq5rHSDAV fji+RugJ6ZxrrG3nv3fBPS9+rCoDGA9+lPJO4Iq6c8D/NOuQmKUlCj41X/ee/46WjZ vpI/W2h8pmKF7ehj/uGPh2jxiNGtpN5IAQm+pBZFDQRHN+16HMefVWma8FZUAK/b7A YjO/e9dH9c1tEELGrGY5dm76hQhrBUQlPw1QAsqWUKvd7YdNIXn6hJ3+EzMrY0wyjM dmVQq+vYXafb3FeT0C17i7scOUCfQk+/xxfl2fDDU22T29yhsncpih7pK9BqEe3NLf kl3w/uHgYQfxQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Evgeny Novikov , Hans Verkuil , Mauro Carvalho Chehab , Sasha Levin , linux-media@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 039/130] media: isif: reset global state Date: Tue, 22 Dec 2020 21:16:42 -0500 Message-Id: <20201223021813.2791612-39-sashal@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201223021813.2791612-1-sashal@kernel.org> References: <20201223021813.2791612-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: Evgeny Novikov [ Upstream commit 6651dba2bd838f34cf5a1e84229aaa579b1a94fe ] isif_probe() invokes iounmap() on error handling paths, but it does not reset the global state. So, later it can invoke iounmap() even when ioremap() fails. This is the case also for isif_remove(). The patch resets the global state after invoking iounmap() to avoid this. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Evgeny Novikov Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/media/platform/davinci/isif.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/davinci/isif.c b/drivers/media/platform/davinci/isif.c index e2e7ab7b7f45b..29434f076c047 100644 --- a/drivers/media/platform/davinci/isif.c +++ b/drivers/media/platform/davinci/isif.c @@ -1075,10 +1075,14 @@ static int isif_probe(struct platform_device *pdev) release_mem_region(res->start, resource_size(res)); i--; fail_nobase_res: - if (isif_cfg.base_addr) + if (isif_cfg.base_addr) { iounmap(isif_cfg.base_addr); - if (isif_cfg.linear_tbl0_addr) + isif_cfg.base_addr = NULL; + } + if (isif_cfg.linear_tbl0_addr) { iounmap(isif_cfg.linear_tbl0_addr); + isif_cfg.linear_tbl0_addr = NULL; + } while (i >= 0) { res = platform_get_resource(pdev, IORESOURCE_MEM, i); @@ -1096,8 +1100,11 @@ static int isif_remove(struct platform_device *pdev) int i = 0; iounmap(isif_cfg.base_addr); + isif_cfg.base_addr = NULL; iounmap(isif_cfg.linear_tbl0_addr); + isif_cfg.linear_tbl0_addr = NULL; iounmap(isif_cfg.linear_tbl1_addr); + isif_cfg.linear_tbl1_addr = NULL; while (i < 3) { res = platform_get_resource(pdev, IORESOURCE_MEM, i); if (res) -- 2.27.0