From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 471283C277B; Wed, 22 Apr 2026 09:21:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776849676; cv=none; b=IBC0oE/mjm3InUyEQrkyTlNB+6MUezb33Wi2A+F7PvePkSLY3PGqeKqVqXENSJsdUBag3gCDHIFeRSIFE3ats2TebXNoLC64PW459GyKl7foJt7UbfeJhvmrl1VYuarLZoN2IYrcSWb8nS8Cj51TbGCZl3UnFo1zomcpH86UlDU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776849676; c=relaxed/simple; bh=m8d+hWHOrlwp1zfk8VnyaGsSLiFqVDfS09cITAkuYQw=; h=Message-ID:Subject:From:To:Cc:In-Reply-To:References:Content-Type: Date:MIME-Version; b=Su63Y2caC9pM4FwF+A7qrBJNR5uolPJ5uLQHYVs+vAZw9FxnEpg1AqZjtlZEUZxnIakvvb+/RPKZVxjJUdKjwom/ITretdzSh011mSLTQXOXhvrvEvKGvV4ex7dEZcl3HjlywgPGA0+cejTQOm0C1v9yVSXoGl7PdarQgH3SYVc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=aOXcjhxM; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="aOXcjhxM" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63LImZwu679949; Wed, 22 Apr 2026 09:20:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=EG2bkp 34DF+E5AoBOOEU8TRmQ1Q7aJxQLR1xkPD3mM0=; b=aOXcjhxMKsI2s3HHdGLIrj m7BUOXFH76bodclCDVH42MplE8vnEZcRf9zZJNbbLFWs8/0fA2+6jziYBDSS3toF RPRTIppbguMw1gVLxAFaTPFpdSnOm1ymW8La6YsT2v82F/p5JS9ka87ZRoN9EikB Xbzhyv3o9YPRIzvYtFpmeGgl0bJ8ftSZjcyeUmX4WMi32jiyJprhCnELyMeCCms8 viK7bIWg+Xh5WWqfJNbJXlE9hj97X/KSmdLi9yy1abfm/ckTNpBVEikodgGYiAg0 N2aCsMvMDD4BqKIIaioABUtJL+Lp7uLam9bOPS1UXfHvfqrUT9v/9ZlQFaMXFjOw == Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dpeu7jf90-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 22 Apr 2026 09:20:55 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 63M9KNTW019093; Wed, 22 Apr 2026 09:20:55 GMT Received: from smtprelay07.wdc07v.mail.ibm.com ([172.16.1.74]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dpjky9k9j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 22 Apr 2026 09:20:55 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay07.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 63M9KspY28312114 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 22 Apr 2026 09:20:54 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AF0EF58058; Wed, 22 Apr 2026 09:20:54 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5229B58059; Wed, 22 Apr 2026 09:20:53 +0000 (GMT) Received: from [9.52.215.169] (unknown [9.52.215.169]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Wed, 22 Apr 2026 09:20:53 +0000 (GMT) Message-ID: <8de7b03f58c53bf40933f1afa5833419a58cef7c.camel@linux.ibm.com> Subject: Re: [PATCH] PCI/P2PDMA: Avoid returning a provider for non_mappable_bars From: Niklas Schnelle To: Matt Evans , Bjorn Helgaas , Logan Gunthorpe , Ankit Agrawal , Leon Romanovsky , Alex Williamson Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20260421174351.3897842-1-mattev@meta.com> References: <20260421174351.3897842-1-mattev@meta.com> Autocrypt: addr=schnelle@linux.ibm.com; prefer-encrypt=mutual; keydata=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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Date: Wed, 22 Apr 2026 11:19:52 +0200 Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Evolution 3.58.3 (3.58.3-1.fc43) X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: qAd29RjgHtMCGDtl7JMvERW9lwz0z0wL X-Authority-Analysis: v=2.4 cv=Ksp9H2WN c=1 sm=1 tr=0 ts=69e892f8 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VwQbUJbxAAAA:8 a=VabnemYjAAAA:8 a=VnNF1IyMAAAA:8 a=_dJdq47d6hiFVcz4INMA:9 a=QEXdDO2ut3YA:10 a=gKebqoRLp9LExxC7YDUY:22 X-Proofpoint-GUID: -eOgB84tUtr3Qt4eAXc8AFBJcS0Eet52 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIyMDA4OCBTYWx0ZWRfXx6qdu6HwQBGf MHjmrxFLn4ma0AUNZSKBbyLPVxsanhuWlpqOKZFBV3V9ju5YApLCb86Qo500r3xFSjRhNWuU4ue UwwMdAaRdt3hCntwSSm6M5mC3VGAQ4IAranAQCpheTuxTW1S51KN7SnNfgeBHJOL4pWFsnt6BJM EVV/XXGRkSY5JxOg2wrI2mqorWlrIooqfWhSe7KksHBJWPUIur4ijoDF7dq+Ko5mT6dEdUh5Fe1 fXGqjrA7FeELoVk0QJ5e3HK5fy0CXMQ6fMLgzQXMKkIpFK3/DZVrZ3WeX39mRsYts5JYPGvTTb/ kIO9sR/aurbtb8i30DnBT1YgbJ0SgfgD1CHQ4tYLTRgwIsyTlMkgBWSrtFGubw6HBQT3UzrVRkV 8IMo2pZ15w1vNw8RbOhLKUDZv54Ba9dOwKI/R0VpumLQRdBVTZe9O6QhMaJxOZJauvQL4wmcvrO +Ajf62xo//Y/oaKt+Xw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-22_01,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 malwarescore=0 phishscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1011 adultscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604220088 On Tue, 2026-04-21 at 10:43 -0700, Matt Evans wrote: > Extend pcim_p2pdma_provider()'s checks to exclude functions that have > pdev->non_mappable_bars set. >=20 > Consumers such as VFIO were previously able to map these for access by > the CPU or P2P. Update the comment on non_mappable_bars to show it > refers to any access, not just userspace CPU access. >=20 > Fixes: 372d6d1b8ae3c ("PCI/P2PDMA: Refactor to separate core P2P function= ality from memory allocation") > Signed-off-by: Matt Evans > --- >=20 > This arises from Alex Williamson's suggestion to test > non_mappable_bars when getting the provider, with discussion here: >=20 > https://lore.kernel.org/kvm/20260415181623.1021090-1-mattev@meta.com/ >=20 > The goal was to prevent a hole where VFIO could export DMABUFs for > BARs marked non-mappable, and to fix for all users of the provider > rather than just VFIO. Alex observed that non_mappable_bars should be > taken to mean BARs weren't usable by the CPU _or_ peers and, > considering that, its comment about userspace access wasn't quite > right. >=20 >=20 > drivers/pci/p2pdma.c | 3 ++- > include/linux/pci.h | 2 +- > 2 files changed, 3 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c > index 7c898542af8d..4a783413f466 100644 > --- a/drivers/pci/p2pdma.c > +++ b/drivers/pci/p2pdma.c > @@ -318,7 +318,8 @@ struct p2pdma_provider *pcim_p2pdma_provider(struct p= ci_dev *pdev, int bar) > { > struct pci_p2pdma *p2p; > =20 > - if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM)) > + if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM) || > + pdev->non_mappable_bars) > return NULL; > =20 > p2p =3D rcu_dereference_protected(pdev->p2pdma, 1); > diff --git a/include/linux/pci.h b/include/linux/pci.h > index 2c4454583c11..1e6802017d6b 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -508,7 +508,7 @@ struct pci_dev { > unsigned int no_command_memory:1; /* No PCI_COMMAND_MEMORY */ > unsigned int rom_bar_overlap:1; /* ROM BAR disable broken */ > unsigned int rom_attr_enabled:1; /* Display of ROM attribute enabled? *= / > - unsigned int non_mappable_bars:1; /* BARs can't be mapped to user-space= */ > + unsigned int non_mappable_bars:1; /* BARs can't be mapped by CPU or pee= rs */ > pci_dev_flags_t dev_flags; > atomic_t enable_cnt; /* pci_enable_device has been called */ > =20 Sorry for the late reply. For s390's ISM device this definitely makes sense. The BAR can indeed not be accessed by P2P and extending this seems reasonable to me.=C2=A0 Feel free to add my: Reviewed-by: Niklas Schnelle Thanks, Niklas