Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2494750pxj; Mon, 10 May 2021 04:28:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwuXo/JSxWHqU4+EhUTBS+wsse+3WMBaMBG2xamCKeNYZda1tMEEP/2SuvhB/FnpzMRddOo X-Received: by 2002:a17:906:194d:: with SMTP id b13mr25011683eje.83.1620646136792; Mon, 10 May 2021 04:28:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620646136; cv=none; d=google.com; s=arc-20160816; b=zVa1lzKL+5Jc5lW8GgPy1LDQY1C/4EVtqxq7u3O7EydUKUYxpp3Gc7k80PxxIN7gKG 1YxZjNiNiQC+A3AF0Cl1Ed8a2bkK8bj5EyvbZSzuY5z4qakI5A+Wvwa/j3oiJ8P+rWRY IV30uJkjhrmYU16rrCWWEWR0R+txt2iFyXgS/cee6YVZj6FYjSADxXY+7W8Vgv7pii4h Q86oPhXxL1JM3qRfOBSh2EbrnjYDyT74JKF3l+qFVASReVmRtkMkNwTQK933l+WZKNNu bpRGjXjTHNvocP5q+vymqt4W+uygepo1c3lgbYxUv9gk0LgswO+A1qYCyyRfUF+9wy1x DhlQ== 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=NZAjdfP4Dsd4H5+78V3uWrhN3j/+mKUP/4XJfCiWNRo=; b=zAdRU3SYyErzXrx3XgAL51Xa/nm6bpvlbkx3O4Uryje8lHBGARsG0Rytr9cpqktL6P 0nmfgnwj3G+gJ5DJgnOmW08wzrv+5hF/n2Q71XzXbugezEuYo9BEatEo1W9+CoI6NoTF uk7KMLvlieSt6DRNLhR+4FxTK6wtJ4rS32h60veEew5X1CnOLPpAVvOkeYce+BF7evDZ nWVBSW8dLbfFiusoJWE7zDW0dh2WxqZgSXRV7OIBNsvY1+GY2LspyHvhzDxkMdqnjpHC fDBdA3Ta7UwoIDSuOSDuce5ha1yIhgRIOU1+gcg7+offB50e8x0Qe5NHws9SKmRQI35t ZfwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=x+PYRaPC; 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 z26si6897458ejr.406.2021.05.10.04.28.07; Mon, 10 May 2021 04:28:56 -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=x+PYRaPC; 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 S235353AbhEJLYa (ORCPT + 99 others); Mon, 10 May 2021 07:24:30 -0400 Received: from mail.kernel.org ([198.145.29.99]:46508 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234240AbhEJK4F (ORCPT ); Mon, 10 May 2021 06:56:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 94DEE61988; Mon, 10 May 2021 10:44:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620643494; bh=Yvb3fb8FwmIt2g/7FcEThSFq/+iV0/1SU+ZaXPKBt4o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=x+PYRaPCJ/ur9o40QMdOFzV14I4Q86c2Kb+fwr8weRg8Ug1N9eIXFeemHubTOz3yp 84gOdm+sClx5MQTAXK9WqIBnFMUll9wC7rX9A27rzeM/mNo9ujCUNqKimusRfLSxSX rmR51+In7qu5eiglRjXsmSeZJnXLuPa7JSSn+XhQ= 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.11 037/342] scsi: mpt3sas: Block PCI config access from userspace during reset Date: Mon, 10 May 2021 12:17:07 +0200 Message-Id: <20210510102011.320303713@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210510102010.096403571@linuxfoundation.org> References: <20210510102010.096403571@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 @@ -7235,6 +7235,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; @@ -7325,10 +7327,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; }