Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2529898pxj; Mon, 10 May 2021 05:16:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw7ApmOSV37VAFhSQftEJ/YA4WWUY96wKUwO459QJLwKFyiiy9PdClUGLwhTjjgLKdUmeaI X-Received: by 2002:a02:a68e:: with SMTP id j14mr21146047jam.122.1620649009165; Mon, 10 May 2021 05:16:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620649009; cv=none; d=google.com; s=arc-20160816; b=QgSpVpFg7XaY+zI4eHqdSV+yTfn+8TYjzPiE1m+i3eSHMWrDSuq/ZfBr0mvB+gmKbb PidwpftHk3D8GZ6coUVIr+xlz1BbjynYh+bixaNIIhHS6EmpDRs5u8rR6lANqNS6e7Ky /S6vIa9jBLT4FLgvOSBP6IySiO5DzD6Yg346Wjq6b1AZxOAT+S9FRr7IJAPRO8YiV6GV tSfkR4KazP1CIIL/phxkYuOFR69IATAnwYfcjO4IDsv1FAmSThiceiaY6+O4lny6WqNR rA58c51gq2h1fLPsfl6bqhak6Pb0wTFh7c8aJ7g0+xs6S7EL3Nwq+f8QthGStVTMuH+g SjrQ== 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=1AB+L9M6VsDY4TUDdhgQ0Y5q2TCZHsDK666IINWieWs=; b=UZfkyTCJiYr+iCsKp99GQ/9O3k1C8+7oGtuvPEapKlchJ/h1q+FQ3go01UUKyhdQXI vfkEuq9NBEY8ZzPuVZs0abeotwFcfRcMJjR1L4owhINW+sAx6f7uGQllIwiDBJAGUHcp /oUrZtFMPosL//DimFEmrg6oYRLRv2OWu9NpgKBjg6ZMEn9ZmVHnhxLA5Nleiu/SAyQg lzSrI6kmhqerXHaua2SyZsWK2q/TKuCsFTYpXzdqXN98NIo6N7ouB6hk0RSyh3pYezhB EHMM1HKLPj5aTOij8lXez4tY9pBE8uFSuBqLxM9dbQrp6UyF/W4toRErEkWfYeC2zrdn FtBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tAFikSiX; 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 w8si15124604jaw.8.2021.05.10.05.16.37; Mon, 10 May 2021 05:16:49 -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=tAFikSiX; 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 S243318AbhEJMFx (ORCPT + 99 others); Mon, 10 May 2021 08:05:53 -0400 Received: from mail.kernel.org ([198.145.29.99]:46276 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236350AbhEJLHy (ORCPT ); Mon, 10 May 2021 07:07:54 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D1D6761976; Mon, 10 May 2021 11:00:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620644417; bh=LOtrRM50iBuAeytGU60d18qxfVh9+uq/meoSzPYtBW0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tAFikSiX3zG0z1t4dRjquhS2k1hgAOLaaegjJckJke4CwMqAG5iUzBkx1U/Bl93nW 8+7eusUhOH8THyHTf7J6tGbw09ZxZ7RLGzD6CG+m5ccvupdZtMVt9S35k6KnpmI19A 4Khy5hzC1TkRSKovmOFXBKbQwrj64uKtb/1pPZJY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sreekanth Reddy , "Martin K. Petersen" Subject: [PATCH 5.12 039/384] scsi: mpt3sas: Block PCI config access from userspace during reset Date: Mon, 10 May 2021 12:17:08 +0200 Message-Id: <20210510102016.158934689@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210510102014.849075526@linuxfoundation.org> References: <20210510102014.849075526@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: Sreekanth Reddy commit 3c8604691d2acc7b7d4795d9695070de9eaa5828 upstream. While diag reset is in progress there is short duration where all access to controller's PCI config space from the host needs to be blocked. This is due to a hardware limitation of the IOC controllers. Block all access to controller's config space from userland applications by calling pci_cfg_access_lock() while diag reset is in progress and unlocking it again after the controller comes back to ready state. Link: https://lore.kernel.org/r/20210330105137.20728-1-sreekanth.reddy@broadcom.com Cc: stable@vger.kernel.org #v5.4.108+ Signed-off-by: Sreekanth Reddy Signed-off-by: Martin K. Petersen Signed-off-by: Greg Kroah-Hartman --- drivers/scsi/mpt3sas/mpt3sas_base.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -7252,6 +7252,8 @@ _base_diag_reset(struct MPT3SAS_ADAPTER ioc_info(ioc, "sending diag reset !!\n"); + pci_cfg_access_lock(ioc->pdev); + drsprintk(ioc, ioc_info(ioc, "clear interrupts\n")); count = 0; @@ -7342,10 +7344,12 @@ _base_diag_reset(struct MPT3SAS_ADAPTER goto out; } + pci_cfg_access_unlock(ioc->pdev); ioc_info(ioc, "diag reset: SUCCESS\n"); return 0; out: + pci_cfg_access_unlock(ioc->pdev); ioc_err(ioc, "diag reset: FAILED\n"); return -EFAULT; }