From nobody Fri Apr 17 01:47:01 2026 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 6B08939A7F7; Tue, 24 Feb 2026 12:35:09 +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=1771936510; cv=none; b=hVzNeGD256rqcAIp6qqtKpAb6jN15HX9o3QohCPReHm9h0y2BVfGhaYCAMiFor3rPBq3tKg7wUJoTwh7gkWH6FnYMdwB85/lf4aXAFpJYaCTl1tmarbv2eeZeQaAN4q8on6gCv2X7YB2P3e3khP+p05sAowbNsVGVl5lP+A3vog= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771936510; c=relaxed/simple; bh=tjmKpw//coEsp47bAZan5IDFs/BPQODW0fAHVvFfIoc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=THNj+qHr6KAl2I/tX0U0ywf1Jj+YaVyv7/bOMzKu9mKs722uYvvi6uv0CRPhfduh6+eq6l9HBXcGhLxrXVVmnsHadHxci4H9b807ZKz1agz7Y0vaNOsHZWsvHjqg4nCJXby4t92G9f/bZGQPHb2DOrX9FFi1r0RvRqh71RVbHHQ= 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=G/hT/hsM; 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="G/hT/hsM" 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 61O4YRQA1887407; Tue, 24 Feb 2026 12:35:04 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=J7jsn5 Y1CBWTiTVkIR1DpKKnTOb9BTHEIjr2dnSa1LU=; b=G/hT/hsMFjYM0caLd8qPk+ SPpHlM1iqGyjIWZUwRTCEXi0YONPWfvM+CoLbPiAqU8+vwa2TI6kKisY6Rkg9PfQ W5C+56Hz8/Kk7uUpEk8AH1zuo5JEAxBXlIafe3sQ3Rt07CZ9glHKhNT8102IqagW BLVLlKT1EsNLrh9PnJs755b+s/r/SBPCpU9kmgL0OgOsysreYS03xlnkVG7jOeqI 7MEwt+EkLw5Xfprz5kxzk5QxkbvifhGv/nngpe42mnwdwEO1ccbkXSYP3I13TbQl PphmNAOZkHHBWRETd4ji3CFX6hmD84Ulw9zUUAUNO9n+mNoDHdDA9XbzybtCEBcQ == 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 4cf24gb4jb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 12:35:04 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 61OCSdK4001646; Tue, 24 Feb 2026 12:35:03 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4cfr1n0txp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 12:35:03 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 61OCYxJi30474746 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 24 Feb 2026 12:34:59 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2FC7C2004D; Tue, 24 Feb 2026 12:34:59 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E849C20063; Tue, 24 Feb 2026 12:34:58 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 24 Feb 2026 12:34:58 +0000 (GMT) From: Julian Ruess Date: Tue, 24 Feb 2026 13:34:32 +0100 Subject: [PATCH v2 1/3] vfio/pci: Rename vfio_config_do_rw() to vfio_pci_config_rw_single() and export it Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260224-vfio_pci_ism-v2-1-f010945373fa@linux.ibm.com> References: <20260224-vfio_pci_ism-v2-0-f010945373fa@linux.ibm.com> In-Reply-To: <20260224-vfio_pci_ism-v2-0-f010945373fa@linux.ibm.com> To: schnelle@linux.ibm.com, wintera@linux.ibm.com, ts@linux.ibm.com, oberpar@linux.ibm.com, gbayer@linux.ibm.com, Alex Williamson , Jason Gunthorpe , Yishai Hadas , Shameer Kolothum , Kevin Tian Cc: mjrosato@linux.ibm.com, alifm@linux.ibm.com, raspl@linux.ibm.com, hca@linux.ibm.com, agordeev@linux.ibm.com, gor@linux.ibm.com, julianr@linux.ibm.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-pci@vger.kernel.org X-Mailer: b4 0.14.2 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=TNRIilla c=1 sm=1 tr=0 ts=699d9af8 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VnNF1IyMAAAA:8 a=cWa1uGzX6g6nnwD3VQ4A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: IJrixcTNLnhqviBmm0Qo8Iuz-yvNrBnL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDA5OCBTYWx0ZWRfX57VSimVRtsNd fsBPHprT6/lNAVo5bpIvfCkhI84UuYStnoNlxJDz6s1dMOt5Vg1snUb1xlG1WKsuxwGN/UjeD3j zd8KJUZx/S3JlzGytznQMiwOZR8dj2/l6aMI28CaNVsuCVlZSd88vvtLg9W0qj60f4/JNEtym8Q NolZeJ25m/7cewB0MWWXHGBLMP+8Upbd5ENUgROw5FmtbP9ODoLnpYAc/8KkyrNnXYNscZOVSUR +uFI/9mSNFsSpFHX+WZ4I1fZdC/VLqUoxwHmZycGeOeeo+UXaXbeKQjqdunLdlAH75X37gckctO sDHQP3uuWMUDEdGpgIfCJHbhA1HTZvPN/boyDoo9SVyGd9YKnUiqmZH01ErNLXB3InnZX6ffvao U6x5S0OgxKR6Pm9ztl5cxsxWKM5ZzX/Tj+qV0sT++jSXLpwjwQhconf+k/f4+Ajx/GnSCiF4F3T gY5truYgNUoDyOOB/tw== X-Proofpoint-ORIG-GUID: IJrixcTNLnhqviBmm0Qo8Iuz-yvNrBnL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-24_01,2026-02-23_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 priorityscore=1501 impostorscore=0 spamscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602240098 A follow-up patch adds a new variant driver for s390 ISM devices. Since this device uses a 256=E2=80=AFTiB BAR 0 that is never mapped, the variant driver needs its own ISM_VFIO_PCI_OFFSET_MASK. To minimally mirror the functionality of vfio_pci_config_rw() with such a custom mask, export vfio_config_do_rw(). To better distinguish the now exported function from vfio_pci_config_rw(), rename it to vfio_pci_config_rw_single() emphasizing that it does a single config space read or write. Signed-off-by: Julian Ruess Reviewed-by: Niklas Schnelle --- drivers/vfio/pci/vfio_pci_config.c | 8 +++++--- drivers/vfio/pci/vfio_pci_priv.h | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci= _config.c index b4e39253f98da61a5e2b6dd0089b2f6aef4b85a0..a724fdd8f4860bd529c5c7501be= b1f7156fae9b0 100644 --- a/drivers/vfio/pci/vfio_pci_config.c +++ b/drivers/vfio/pci/vfio_pci_config.c @@ -1880,8 +1880,9 @@ static size_t vfio_pci_cap_remaining_dword(struct vfi= o_pci_core_device *vdev, return i; } =20 -static ssize_t vfio_config_do_rw(struct vfio_pci_core_device *vdev, char _= _user *buf, - size_t count, loff_t *ppos, bool iswrite) +ssize_t vfio_pci_config_rw_single(struct vfio_pci_core_device *vdev, + char __user *buf, size_t count, loff_t *ppos, + bool iswrite) { struct pci_dev *pdev =3D vdev->pdev; struct perm_bits *perm; @@ -1970,6 +1971,7 @@ static ssize_t vfio_config_do_rw(struct vfio_pci_core= _device *vdev, char __user =20 return ret; } +EXPORT_SYMBOL(vfio_pci_config_rw_single); =20 ssize_t vfio_pci_config_rw(struct vfio_pci_core_device *vdev, char __user = *buf, size_t count, loff_t *ppos, bool iswrite) @@ -1981,7 +1983,7 @@ ssize_t vfio_pci_config_rw(struct vfio_pci_core_devic= e *vdev, char __user *buf, pos &=3D VFIO_PCI_OFFSET_MASK; =20 while (count) { - ret =3D vfio_config_do_rw(vdev, buf, count, &pos, iswrite); + ret =3D vfio_pci_config_rw_single(vdev, buf, count, &pos, iswrite); if (ret < 0) return ret; =20 diff --git a/drivers/vfio/pci/vfio_pci_priv.h b/drivers/vfio/pci/vfio_pci_p= riv.h index 27ac280f00b975989f6cbc02c11aaca01f9badf3..28a3edf65aeecfa06cd1856637c= d33eec1fa3006 100644 --- a/drivers/vfio/pci/vfio_pci_priv.h +++ b/drivers/vfio/pci/vfio_pci_priv.h @@ -37,6 +37,10 @@ int vfio_pci_set_irqs_ioctl(struct vfio_pci_core_device = *vdev, uint32_t flags, ssize_t vfio_pci_config_rw(struct vfio_pci_core_device *vdev, char __user = *buf, size_t count, loff_t *ppos, bool iswrite); =20 +ssize_t vfio_pci_config_rw_single(struct vfio_pci_core_device *vdev, + char __user *buf, size_t count, loff_t *ppos, + bool iswrite); + ssize_t vfio_pci_bar_rw(struct vfio_pci_core_device *vdev, char __user *bu= f, size_t count, loff_t *ppos, bool iswrite); =20 --=20 2.51.0 From nobody Fri Apr 17 01:47:01 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 78D28396D35; Tue, 24 Feb 2026 12:35:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771936511; cv=none; b=JBQbfjravI/EoO9Tr6+om7nxOrgNMwAjoYd1y1q8CxDFEzsHhnvLnrMsRdzAFe3yBfTofd4oGhQnxCStaF4DKuVl40bYDti5Yxd7c4RsXAqvm+2LGFbTH/2SyBZckso6Wzy3s2SZ0ArCvgXrKvM0OETx8rpLujV2MmyeS1Ij8wQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771936511; c=relaxed/simple; bh=IzurqrIHxavTc0zKLaYlNBqM1W+d6RbX4e7VcclhJgA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=o39vWtCUl+ecapo75D7By0SwPujuqZckDpj3VcAXyAG2S0bqj2FdtWCu9ZbNCoUb6NHIOaJwzIw7pWtCDzejEERe77ES8dKsYJkTXbn0zVf0DH5mq5MQm/tKV4GtsQjR9d9k83SjUAi+51Dz1my+4hdVO1zLAEupJbKvttPbcUQ= 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=m5sOMSua; arc=none smtp.client-ip=148.163.156.1 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="m5sOMSua" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61O3VhGh1314639; Tue, 24 Feb 2026 12:35:05 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=Qy9JOo wwv5InNoh7gsQkxoOQvwcP6L3vhzMP9O4FIsY=; b=m5sOMSuaKOm2C+2PxTd7rn gL5tBvz29JmKqNFOZSPPi97sMNS2BSGS7lAfQ8QDp+Rj3c4POjPB5IU55kcuj2er Y/79Ny2BQtVu0IhZAHqo1KgSKglIuQ3tOaG6sgqOsn9853If4Eq8jsa1bs05fQ82 5ZgEF4dl07v+wgKsN+5MyO7SaE6LQ7oTi+c+hMD5UR28esZl+HptDgt6cQ6xLFxv O4yGw9J/Och1b7gpt/0LJmYRkzpR5sWUjStZq+X17f3TvKEkWGJt++33pLOp5801 5ceRMjj9Ppfo/rlVXlidK1riXHp+81cjzyG51bKe+YLqTIf7MUVB6nNcGBH99XRQ == Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4cf471uhc9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 12:35:04 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 61OBxsSq013411; Tue, 24 Feb 2026 12:35:03 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4cfqdy0x0e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 12:35:03 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 61OCYxIJ30474748 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 24 Feb 2026 12:34:59 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8D4242004E; Tue, 24 Feb 2026 12:34:59 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 40D972005A; Tue, 24 Feb 2026 12:34:59 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 24 Feb 2026 12:34:59 +0000 (GMT) From: Julian Ruess Date: Tue, 24 Feb 2026 13:34:33 +0100 Subject: [PATCH v2 2/3] vfio/ism: Implement vfio_pci driver for ISM devices Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260224-vfio_pci_ism-v2-2-f010945373fa@linux.ibm.com> References: <20260224-vfio_pci_ism-v2-0-f010945373fa@linux.ibm.com> In-Reply-To: <20260224-vfio_pci_ism-v2-0-f010945373fa@linux.ibm.com> To: schnelle@linux.ibm.com, wintera@linux.ibm.com, ts@linux.ibm.com, oberpar@linux.ibm.com, gbayer@linux.ibm.com, Alex Williamson , Jason Gunthorpe , Yishai Hadas , Shameer Kolothum , Kevin Tian Cc: mjrosato@linux.ibm.com, alifm@linux.ibm.com, raspl@linux.ibm.com, hca@linux.ibm.com, agordeev@linux.ibm.com, gor@linux.ibm.com, julianr@linux.ibm.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-pci@vger.kernel.org X-Mailer: b4 0.14.2 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: K9w4_GPM3rRJbY5WmQIVinVTPcNhhCOz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDA5OCBTYWx0ZWRfXxavEmgyiLx85 GwUCE9O0/YqVuwpc+iKIwMiWQSJvDyXf/Pnwnfp6EvKmrtw066KF4D5V4evfeKigdnnqSHYU51r EjFGD/3wYd9OotSYH5EdE3+lLpo3irgbjZ+L5la0khmITyCsP3D3TUsQ1haHQkTK567DPR0Xu5m T+9SpkO2CgKQNi/KDTmSa/Oqp4e8WAM07w9uQaSjDmANuXTClihI3qZfWUwVLSpuZf5wDL2iXxP jkIhEvOM+ddFjCFEgQZlFcHywr0x62yrk8RiS7JxCLiDvioPUd4IIcYYZTKi0221smbrIeLK+s6 k+S7eUatrNJynJzfIiVU7M6x0j+PkNcvj3y93RxDemJXwkL/ytBGlVpyDihL8xQYnb7Z7qFh3lV tfUqpjLxtBmflwSnwyEPeI7+U0ObX/4uiziH2aBot3bF5+IwaZOHbTXerat7T++2B1x/hIy4Otw hqHKRLdC12CM8pptRyw== X-Authority-Analysis: v=2.4 cv=R7wO2NRX c=1 sm=1 tr=0 ts=699d9af8 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VnNF1IyMAAAA:8 a=cTLaN8c8KuEQSVX0tZ0A:9 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: K9w4_GPM3rRJbY5WmQIVinVTPcNhhCOz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-24_01,2026-02-23_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602240098 Add a vfio_pci variant driver for the s390-specific Internal Shared Memory (ISM) devices used for inter-VM communication. This enables the development of vfio-pci-based user space drivers for ISM devices. On s390, kernel primitives such as ioread() and iowrite() are switched over from function handle based PCI load/stores instructions to PCI memory-I/O (MIO) loads/stores when these are available and not explicitly disabled. Since these instructions cannot be used with ISM devices, ensure that classic function handle-based PCI instructions are used instead. The driver is still required even when MIO instructions are disabled, as the ISM device relies on the PCI store block (PCISTB) instruction to perform write operations. Stores are not fragmented, therefore one ioctl corresponds to exactly one PCISTB instruction. User space must ensure to not write more than 4096 bytes at once to an ISM BAR which is the maximum payload of the PCISTB instruction. Signed-off-by: Julian Ruess Reviewed-by: Niklas Schnelle --- drivers/vfio/pci/Kconfig | 2 + drivers/vfio/pci/Makefile | 2 + drivers/vfio/pci/ism/Kconfig | 11 ++ drivers/vfio/pci/ism/Makefile | 3 + drivers/vfio/pci/ism/main.c | 297 ++++++++++++++++++++++++++++++++++++++= ++++ 5 files changed, 315 insertions(+) diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig index 1e82b44bda1a0a544e1add7f4b06edecf35aaf81..296bf01e185ecacc388ebc69e92= 706c99e47c814 100644 --- a/drivers/vfio/pci/Kconfig +++ b/drivers/vfio/pci/Kconfig @@ -60,6 +60,8 @@ config VFIO_PCI_DMABUF =20 source "drivers/vfio/pci/mlx5/Kconfig" =20 +source "drivers/vfio/pci/ism/Kconfig" + source "drivers/vfio/pci/hisilicon/Kconfig" =20 source "drivers/vfio/pci/pds/Kconfig" diff --git a/drivers/vfio/pci/Makefile b/drivers/vfio/pci/Makefile index e0a0757dd1d2b0bc69b7e4d79441d5cacf4e1cd8..6138f1bf241df04e7419f196b40= 4abdf9b194050 100644 --- a/drivers/vfio/pci/Makefile +++ b/drivers/vfio/pci/Makefile @@ -11,6 +11,8 @@ obj-$(CONFIG_VFIO_PCI) +=3D vfio-pci.o =20 obj-$(CONFIG_MLX5_VFIO_PCI) +=3D mlx5/ =20 +obj-$(CONFIG_ISM_VFIO_PCI) +=3D ism/ + obj-$(CONFIG_HISI_ACC_VFIO_PCI) +=3D hisilicon/ =20 obj-$(CONFIG_PDS_VFIO_PCI) +=3D pds/ diff --git a/drivers/vfio/pci/ism/Kconfig b/drivers/vfio/pci/ism/Kconfig new file mode 100644 index 0000000000000000000000000000000000000000..072b41099601b84e8d3b4a915eb= db3eebdf10488 --- /dev/null +++ b/drivers/vfio/pci/ism/Kconfig @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +config ISM_VFIO_PCI + tristate "VFIO support for ISM devices" + depends on S390 + select VFIO_PCI_CORE + help + This provides user space support for + IBM Internal Shared Memory (ISM) Adapter devices + using the VFIO framework. + + If you don't know what to do here, say N. diff --git a/drivers/vfio/pci/ism/Makefile b/drivers/vfio/pci/ism/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..32cc3c66dd11395da85a2b6f05b= 3d97036ed8a35 --- /dev/null +++ b/drivers/vfio/pci/ism/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_ISM_VFIO_PCI) +=3D ism-vfio-pci.o +ism-vfio-pci-y :=3D main.o diff --git a/drivers/vfio/pci/ism/main.c b/drivers/vfio/pci/ism/main.c new file mode 100644 index 0000000000000000000000000000000000000000..5f9674f6dd1d44888c4e1e416d0= 5edfd89fd09fe --- /dev/null +++ b/drivers/vfio/pci/ism/main.c @@ -0,0 +1,297 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * vfio-ISM driver for s390 + * + * Copyright IBM Corp. + */ + +#include "../vfio_pci_priv.h" + +#define ISM_VFIO_PCI_OFFSET_SHIFT 48 +#define ISM_VFIO_PCI_OFFSET_TO_INDEX(off) (off >> ISM_VFIO_PCI_OFFSET_SHIF= T) +#define ISM_VFIO_PCI_INDEX_TO_OFFSET(index) ((u64)(index) << ISM_VFIO_PCI_= OFFSET_SHIFT) +#define ISM_VFIO_PCI_OFFSET_MASK (((u64)(1) << ISM_VFIO_PCI_OFFSET_SHIFT) = - 1) + +struct ism_vfio_pci_core_device { + struct vfio_pci_core_device core_device; +}; + +static int ism_pci_open_device(struct vfio_device *core_vdev) +{ + struct ism_vfio_pci_core_device *ivdev; + struct vfio_pci_core_device *vdev; + int ret; + + ivdev =3D container_of(core_vdev, struct ism_vfio_pci_core_device, + core_device.vdev); + vdev =3D &ivdev->core_device; + + ret =3D vfio_pci_core_enable(vdev); + if (ret) + return ret; + + vfio_pci_core_finish_enable(vdev); + return 0; +} + +static ssize_t ism_vfio_pci_do_io_r(struct vfio_pci_core_device *vdev, + char __user *buf, loff_t off, size_t count, + int bar) +{ + struct zpci_dev *zdev =3D to_zpci(vdev->pdev); + ssize_t ret, done =3D 0; + u64 req, length, tmp; + + while (count) { + if (count >=3D 8 && IS_ALIGNED(off, 8)) + length =3D 8; + else if (count >=3D 4 && IS_ALIGNED(off, 4)) + length =3D 4; + else if (count >=3D 2 && IS_ALIGNED(off, 2)) + length =3D 2; + else + length =3D 1; + req =3D ZPCI_CREATE_REQ(READ_ONCE(zdev->fh), bar, length); + /* use pcilg to prevent using MIO instructions */ + ret =3D __zpci_load(&tmp, req, off); + if (ret) + return ret; + if (copy_to_user(buf, &tmp, length)) + return -EFAULT; + count -=3D length; + done +=3D length; + off +=3D length; + buf +=3D length; + } + return done; +} + +static ssize_t ism_vfio_pci_do_io_w(struct vfio_pci_core_device *vdev, + char __user *buf, loff_t off, size_t count, + int bar) +{ + struct zpci_dev *zdev =3D to_zpci(vdev->pdev); + void *data __free(kfree) =3D NULL; + ssize_t ret; + u64 req; + + if (count > zdev->maxstbl) + return -EINVAL; + data =3D kzalloc(count, GFP_KERNEL); + if (!data) + return -ENOMEM; + if (copy_from_user(data, buf, count)) + return -EFAULT; + req =3D ZPCI_CREATE_REQ(READ_ONCE(zdev->fh), bar, count); + ret =3D __zpci_store_block(data, req, off); + if (ret) + return ret; + return count; +} + +static ssize_t ism_vfio_pci_bar_rw(struct vfio_pci_core_device *vdev, + char __user *buf, size_t count, loff_t *ppos, + bool iswrite) +{ + int bar =3D ISM_VFIO_PCI_OFFSET_TO_INDEX(*ppos); + loff_t pos =3D *ppos & ISM_VFIO_PCI_OFFSET_MASK; + resource_size_t end; + ssize_t done =3D 0; + + if (pci_resource_start(vdev->pdev, bar)) + end =3D pci_resource_len(vdev->pdev, bar); + else + return -EINVAL; + + if (pos >=3D end) + return -EINVAL; + + count =3D min(count, (size_t)(end - pos)); + + if (iswrite) + done =3D ism_vfio_pci_do_io_w(vdev, buf, pos, count, bar); + else + done =3D ism_vfio_pci_do_io_r(vdev, buf, pos, count, bar); + + if (done >=3D 0) + *ppos +=3D done; + + return done; +} + +static ssize_t ism_vfio_pci_config_rw(struct vfio_pci_core_device *vdev, + char __user *buf, size_t count, + loff_t *ppos, bool iswrite) +{ + loff_t pos =3D *ppos; + size_t done =3D 0; + int ret =3D 0; + + pos &=3D ISM_VFIO_PCI_OFFSET_MASK; + + while (count) { + /* + * zPCI must not use MIO instructions for config space access, + * so we can use common code path here. + */ + ret =3D vfio_pci_config_rw_single(vdev, buf, count, &pos, iswrite); + if (ret < 0) + return ret; + + count -=3D ret; + done +=3D ret; + buf +=3D ret; + pos +=3D ret; + } + + *ppos +=3D done; + + return done; +} + +static ssize_t ism_vfio_pci_rw(struct vfio_device *core_vdev, char __user = *buf, + size_t count, loff_t *ppos, bool iswrite) +{ + unsigned int index =3D ISM_VFIO_PCI_OFFSET_TO_INDEX(*ppos); + struct vfio_pci_core_device *vdev; + int ret; + + vdev =3D container_of(core_vdev, struct vfio_pci_core_device, vdev); + + if (!count) + return 0; + + switch (index) { + case VFIO_PCI_CONFIG_REGION_INDEX: + ret =3D ism_vfio_pci_config_rw(vdev, buf, count, ppos, iswrite); + break; + + case VFIO_PCI_BAR0_REGION_INDEX ... VFIO_PCI_BAR5_REGION_INDEX: + ret =3D ism_vfio_pci_bar_rw(vdev, buf, count, ppos, iswrite); + break; + + default: + return -EINVAL; + } + + return ret; +} + +static ssize_t ism_vfio_pci_read(struct vfio_device *core_vdev, + char __user *buf, size_t count, loff_t *ppos) +{ + return ism_vfio_pci_rw(core_vdev, buf, count, ppos, false); +} + +static ssize_t ism_vfio_pci_write(struct vfio_device *core_vdev, + const char __user *buf, size_t count, + loff_t *ppos) +{ + return ism_vfio_pci_rw(core_vdev, (char __user *)buf, count, ppos, + true); +} + +static int ism_vfio_pci_ioctl_get_region_info(struct vfio_device *core_vde= v, + struct vfio_region_info *info, + struct vfio_info_cap *caps) +{ + struct vfio_pci_core_device *vdev =3D + container_of(core_vdev, struct vfio_pci_core_device, vdev); + struct pci_dev *pdev =3D vdev->pdev; + + switch (info->index) { + case VFIO_PCI_CONFIG_REGION_INDEX: + info->offset =3D ISM_VFIO_PCI_INDEX_TO_OFFSET(info->index); + info->size =3D pdev->cfg_size; + info->flags =3D VFIO_REGION_INFO_FLAG_READ | + VFIO_REGION_INFO_FLAG_WRITE; + break; + case VFIO_PCI_BAR0_REGION_INDEX ... VFIO_PCI_BAR5_REGION_INDEX: + info->offset =3D ISM_VFIO_PCI_INDEX_TO_OFFSET(info->index); + info->size =3D pci_resource_len(pdev, info->index); + if (!info->size) { + info->flags =3D 0; + break; + } + info->flags =3D VFIO_REGION_INFO_FLAG_READ | + VFIO_REGION_INFO_FLAG_WRITE; + break; + default: + info->offset =3D 0; + info->size =3D 0; + info->flags =3D 0; + } + return 0; +} + +static const struct vfio_device_ops ism_pci_ops =3D { + .name =3D "ism-vfio-pci", + .init =3D vfio_pci_core_init_dev, + .release =3D vfio_pci_core_release_dev, + .open_device =3D ism_pci_open_device, + .close_device =3D vfio_pci_core_close_device, + .ioctl =3D vfio_pci_core_ioctl, + .get_region_info_caps =3D ism_vfio_pci_ioctl_get_region_info, + .device_feature =3D vfio_pci_core_ioctl_feature, + .read =3D ism_vfio_pci_read, + .write =3D ism_vfio_pci_write, + .request =3D vfio_pci_core_request, + .match =3D vfio_pci_core_match, + .match_token_uuid =3D vfio_pci_core_match_token_uuid, + .bind_iommufd =3D vfio_iommufd_physical_bind, + .unbind_iommufd =3D vfio_iommufd_physical_unbind, + .attach_ioas =3D vfio_iommufd_physical_attach_ioas, + .detach_ioas =3D vfio_iommufd_physical_detach_ioas, +}; + +static int ism_vfio_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) +{ + struct ism_vfio_pci_core_device *ivpcd; + int ret; + + ivpcd =3D vfio_alloc_device(ism_vfio_pci_core_device, core_device.vdev, + &pdev->dev, &ism_pci_ops); + if (IS_ERR(ivpcd)) + return PTR_ERR(ivpcd); + + dev_set_drvdata(&pdev->dev, &ivpcd->core_device); + ret =3D vfio_pci_core_register_device(&ivpcd->core_device); + if (ret) + vfio_put_device(&ivpcd->core_device.vdev); + return ret; +} + +static void ism_vfio_pci_remove(struct pci_dev *pdev) +{ + struct vfio_pci_core_device *core_device; + struct ism_vfio_pci_core_device *ivpcd; + + core_device =3D dev_get_drvdata(&pdev->dev); + ivpcd =3D container_of(core_device, struct ism_vfio_pci_core_device, + core_device); + + vfio_pci_core_unregister_device(&ivpcd->core_device); + vfio_put_device(&ivpcd->core_device.vdev); +} + +static const struct pci_device_id ism_device_table[] =3D { + { PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_IBM, + PCI_DEVICE_ID_IBM_ISM) }, + {} +}; +MODULE_DEVICE_TABLE(pci, ism_device_table); + +static struct pci_driver ism_vfio_pci_driver =3D { + .name =3D KBUILD_MODNAME, + .id_table =3D ism_device_table, + .probe =3D ism_vfio_pci_probe, + .remove =3D ism_vfio_pci_remove, + .driver_managed_dma =3D true, +}; + +module_pci_driver(ism_vfio_pci_driver); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("vfio-pci variant driver for the IBM Internal Shared Me= mory (ISM) device"); +MODULE_AUTHOR("IBM Corporation"); --=20 2.51.0 From nobody Fri Apr 17 01:47:01 2026 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 CEC87395DBC; Tue, 24 Feb 2026 12:35:09 +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=1771936512; cv=none; b=MfAWnnL8PXYyDelds3EzsOJ4T+HeL/dBfDF27sQDx1irqtCmIdykCeCGjshBLmnBGasZ9hdK9mIlda73D2wSK9vR9qTjoY1zksDVlz/vO0Wok7K4xNThycGvxEtGMYmcjupkh9E8pn6LlhWqo2RSAj90cGrYwvlZgsUrp83U4PE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771936512; c=relaxed/simple; bh=jgV0M3inHIdG82dqe/HOmmFItJk44LXErTHkR3d5wdI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TAZzuL702bPGU66H9GfCemXeeVHA0DHRWvZzWZxqYbXmC+JiG4IQQYlN8mozqDVKmVZIXstU+2FrEC5R8RtouWhh2/KpGKR2+D2toopurKgH2v+4IBYsPJhlG0NbOf+ylhq0xT4oEcFYzhFv5qOKffGY2xnI5j7/fgqHGZD20VQ= 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=OxeRycpe; 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="OxeRycpe" 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 61O90xGr2849182; Tue, 24 Feb 2026 12:35:04 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=2GRSXU xjybI8Mm7DxJNae/l+qDkmGkl+yaEQNMvLc2U=; b=OxeRycpedKmxNhw8HrxayP bOQDZb+kuRk41Dlt0UpEg+ZaaMtfmfodjakkMmIZYK9pIz5aJpZFwQRToeBBQ7X6 nEiJxBoBF2C5lqAWtBbmnTHPl4bgJgI6m3L6425lPl0DO7hqxI0W1Gw7xo9nqGUM LYYylD3imAL5j2QcLjEXNz4T7HJFKk5LbdT/7E+jh1uPyWPBnSrIGItSRbG91Bto 5T0FhSf7SE5d1PSSNAJ+3GVqgrL/Z1iM9346ObdVwxNoJUHeqpyGxs6gv9lL736v ZO9HupmAVhp9I6QiD623Pyq+IORUAPd1WOeI2c1H5tLJLLpFI7knSkU7Boj5ia7g == Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4cf24gb4jc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 12:35:04 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 61O9CZRw027887; Tue, 24 Feb 2026 12:35:03 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4cfsr1rj4p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 12:35:03 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 61OCYxGr30802326 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 24 Feb 2026 12:35:00 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D44C820040; Tue, 24 Feb 2026 12:34:59 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 92B9F20063; Tue, 24 Feb 2026 12:34:59 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 24 Feb 2026 12:34:59 +0000 (GMT) From: Julian Ruess Date: Tue, 24 Feb 2026 13:34:34 +0100 Subject: [PATCH v2 3/3] MAINTAINERS: add VFIO ISM PCI DRIVER section Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260224-vfio_pci_ism-v2-3-f010945373fa@linux.ibm.com> References: <20260224-vfio_pci_ism-v2-0-f010945373fa@linux.ibm.com> In-Reply-To: <20260224-vfio_pci_ism-v2-0-f010945373fa@linux.ibm.com> To: schnelle@linux.ibm.com, wintera@linux.ibm.com, ts@linux.ibm.com, oberpar@linux.ibm.com, gbayer@linux.ibm.com, Alex Williamson , Jason Gunthorpe , Yishai Hadas , Shameer Kolothum , Kevin Tian Cc: mjrosato@linux.ibm.com, alifm@linux.ibm.com, raspl@linux.ibm.com, hca@linux.ibm.com, agordeev@linux.ibm.com, gor@linux.ibm.com, julianr@linux.ibm.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-pci@vger.kernel.org X-Mailer: b4 0.14.2 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=TNRIilla c=1 sm=1 tr=0 ts=699d9af8 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VnNF1IyMAAAA:8 a=VwQbUJbxAAAA:8 a=Ikd4Dj_1AAAA:8 a=pktR2d_FFHlprNNHfO0A:9 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: jelGowaXYEAFxmg675U-D9l3YFnzYKES X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDA5OCBTYWx0ZWRfX7QCzjVxsjQTW Iox9qUdokImXmDj+oD9IBOVPs4NEhXvM2hAnvXma74HPXy74+/0semJoZioTwVJjVu7EUuwkTBB dCgLJsfGzma8IWx0YerfTGB5YK2h9CZOSPjUNIlFnFWkZlpv4Gv/4/TC0WF6vksvxsoT2Mmfthd SOMfT5g7rMareBeh1cTDpVEPxjB9CqwvmTfPOrgCDx8Us0CGuRUqr4uvGWVWqwGMxQI99m/BFy5 M9U/VCyJFrJoI6LI/hoQmAZHvC/q0gzX/9Gi2nUhu3y2TKh2j0N75yUNfHZiDecOHiLQLpOSdP4 6nCOBJIUmcYWMUsNGXfFU9BL3kMBZ892QJJxKZKphfxh7JEaM9zRrO40IlD05LFaQBfLyhdp8Gg 4Kwe2QsQn/xYdppLglFTPzBiWsb3vntRI5106RK0RD4gZeVQGK2eBmIUQDi+3ZkqEPv6ihF90ZP Cod4YTBQlEmszQS40Ng== X-Proofpoint-ORIG-GUID: jelGowaXYEAFxmg675U-D9l3YFnzYKES X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-24_01,2026-02-23_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 priorityscore=1501 impostorscore=0 spamscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602240098 ism_vfio_pci is a new kernel component that allows to use the ISM device from userspace. Add myself as a maintainer. Signed-off-by: Julian Ruess Reviewed-by: Niklas Schnelle --- MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 55af015174a54e17cc7449e5a80b6cdc83aa6fde..88d728abeab4faedf5bfefbf98a= b45e288d1332c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -27710,6 +27710,12 @@ L: kvm@vger.kernel.org S: Maintained F: drivers/vfio/pci/hisilicon/ =20 +VFIO ISM PCI DRIVER +M: Julian Ruess +L: kvm@vger.kernel.org +S: Maintained +F: drivers/vfio/pci/ism/ + VFIO MEDIATED DEVICE DRIVERS M: Kirti Wankhede L: kvm@vger.kernel.org --=20 2.51.0