Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2455819pxj; Mon, 10 May 2021 03:29:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwTN1HuIAo4mMvGe7PYCARvxqC/S/LEtPNAadlpAOgWFC0pZWd7nGBE/PUUT/zeCNzSUJS3 X-Received: by 2002:a17:907:2663:: with SMTP id ci3mr24682243ejc.540.1620642576628; Mon, 10 May 2021 03:29:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620642576; cv=none; d=google.com; s=arc-20160816; b=omaAnOH7xKSIkbwazoGuLX6RSKFWvNKJgLum5u2JnEWb4+SDCqXN0mO7UGwxJVRve4 laQz5cLQeHMMpA4bJfbUkcnrQARgpORZeFMweyhjPQuvias1AiwTqOj/nAmNZV9fKHO5 4Z4oPBrdNuKDiUVpmClRzEw77/52m0uONPIDoX8JEABnnP2k57xmtLO8m9f55ybrScnT 90BS50XHfNlNoLUsjf8RE4WqRr11qLob8H7mxvm2fnoERo8qAmmKIKixeSuRS9aG/CeT 0omu8ijF5sdjqYUQNpBDnwLKhEtOl8OfCiNIiX2acSS60HK2r8FSieKg3t/1dgVNBOUY rv1w== 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=kFMJuH96/ybDN3rU6L5ECOJfFWpombW6IaA7k+ni+0Y=; b=HZZFh3STrFH9vTxq+QjeVFIHdFzFg+1NTs6ftbyamRwPFJVPcbyb7nb1AxHq0XExNz xzqPH7rUMG0kT8AGit3W4sCO2w+AFHj/1aUyGZ+fe+fT3CHNjQ27JAlwC7sIL0Kk6RWo 3MtEX+MCvv4n2CAIUpo+FFQ6HOF2ICRVlCtte/O74vDcR8W47Riq1DZCy+fFySk5/cRg TV3QZtML2O6YwU7ZRKgh0WZ+py2Ex063eiQ5mK8WlGfdIU3U0SvKizQa5MJjO7AUK5rg +XKa+R4AJ9KOqtf/VnKOD3Fs19iin+enzQxl8/cwNmmwB9bnP/28452dheyXrxmXC8hi 7hkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=daqxYfGB; 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 m6si12762563eds.421.2021.05.10.03.29.13; Mon, 10 May 2021 03:29:36 -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=daqxYfGB; 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 S231287AbhEJK2g (ORCPT + 99 others); Mon, 10 May 2021 06:28:36 -0400 Received: from mail.kernel.org ([198.145.29.99]:60258 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231163AbhEJK0b (ORCPT ); Mon, 10 May 2021 06:26:31 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 6F17161490; Mon, 10 May 2021 10:25:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620642326; bh=OBqrxIcHsGNiFPj4nBVwK4ZHeugmDxZKMSwmW3OQWgA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=daqxYfGBecZpV2MV96xQi43mcSfScN3QOo9eIeAtGGursudCZyDEPelYCQJGDnqfC FFMM0Wzxw356etFOMY+2AWd79E1/bUcLgNSgo9rjooG6XWCV3SOgG5ZOkI8z1k76Cp pClLtemvKYCRLSkAIsai1Y2P8cTByNVp7BQUHTDM= 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.4 014/184] scsi: mpt3sas: Block PCI config access from userspace during reset Date: Mon, 10 May 2021 12:18:28 +0200 Message-Id: <20210510101950.680939714@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210510101950.200777181@linuxfoundation.org> References: <20210510101950.200777181@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 @@ -6572,6 +6572,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; @@ -6653,10 +6655,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; }