Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2218619/?format=api
{ "id": 2218619, "url": "http://patchwork.ozlabs.org/api/patches/2218619/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260401-uid_slot-v5-1-e73036c74bf6@linux.ibm.com/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260401-uid_slot-v5-1-e73036c74bf6@linux.ibm.com>", "list_archive_url": null, "date": "2026-04-01T14:50:37", "name": "[v5] PCI: s390: Expose the UID as an arch specific PCI slot attribute", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "5bd78705cdf28bc924cc390ed3d9b0cf631b36d3", "submitter": { "id": 78856, "url": "http://patchwork.ozlabs.org/api/people/78856/?format=api", "name": "Niklas Schnelle", "email": "schnelle@linux.ibm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260401-uid_slot-v5-1-e73036c74bf6@linux.ibm.com/mbox/", "series": [ { "id": 498349, "url": "http://patchwork.ozlabs.org/api/series/498349/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=498349", "date": "2026-04-01T14:50:37", "name": "[v5] PCI: s390: Expose the UID as an arch specific PCI slot attribute", "version": 5, "mbox": "http://patchwork.ozlabs.org/series/498349/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2218619/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2218619/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-pci+bounces-51684-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-pci@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=p3lzUE99;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-pci+bounces-51684-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com\n header.b=\"p3lzUE99\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=148.163.158.5", "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.ibm.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.ibm.com" ], "Received": [ "from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fm7vX41jrz1yCp\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 02:19:52 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 6D67331A68DF\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 1 Apr 2026 14:50:58 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 8A15539281F;\n\tWed, 1 Apr 2026 14:50:55 +0000 (UTC)", "from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n [148.163.158.5])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id D16E8381B02;\n\tWed, 1 Apr 2026 14:50:51 +0000 (UTC)", "from pps.filterd (m0360072.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 631BFgL74187356;\n\tWed, 1 Apr 2026 14:50:49 GMT", "from ppma22.wdc07v.mail.ibm.com\n (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92])\n\tby mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d66ms7wxj-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tWed, 01 Apr 2026 14:50:48 +0000 (GMT)", "from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1])\n\tby ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 631AplZC005910;\n\tWed, 1 Apr 2026 14:50:47 GMT", "from smtprelay05.dal12v.mail.ibm.com ([172.16.1.7])\n\tby ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d6spy659u-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tWed, 01 Apr 2026 14:50:47 +0000", "from smtpav01.dal12v.mail.ibm.com (smtpav01.dal12v.mail.ibm.com\n [10.241.53.100])\n\tby smtprelay05.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 631Eoknu19661440\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n\tWed, 1 Apr 2026 14:50:46 GMT", "from smtpav01.dal12v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 7744F58058;\n\tWed, 1 Apr 2026 14:50:46 +0000 (GMT)", "from smtpav01.dal12v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id CA0C35806E;\n\tWed, 1 Apr 2026 14:50:43 +0000 (GMT)", "from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9])\n\tby smtpav01.dal12v.mail.ibm.com (Postfix) with ESMTP;\n\tWed, 1 Apr 2026 14:50:43 +0000 (GMT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775055055; cv=none;\n b=eZ49ez+gQmYFKOa53+jamEKn93bKSLGRSZjV/i71ba52IS89Xx/xzGKJscYavrEsV5J4gQpP3Rw27SHZEYoqMUR2DoiRO3EKHny+VeQFpevSFNi2+TlvEx1skwJJrQg4JoGehB8Ub7zhRvnjaWAZjJ9PJzushSJ8P56sGsk0HvU=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775055055; c=relaxed/simple;\n\tbh=lcKUqKVpDGrlKtZ0l0bIByKGI3a2642T2eSarw23m4E=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc;\n b=pF0S9aTIsNfV6sPbOupKujYavBvB5qe8laE65GkiOr4WLfxomqb28CbXIHmUezdfwO32PAZSLPJkB8rd6804+NuSt4ZOT3LSuXEZWDa6xTxOa2of2KT+uPk+jKavmLO/cYB4R8dIN2Bl08mPnaXHDuj8QGo3fEsv7HgWEHHDblk=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.ibm.com;\n spf=pass smtp.mailfrom=linux.ibm.com;\n dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com\n header.b=p3lzUE99; arc=none smtp.client-ip=148.163.158.5", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n\t:content-transfer-encoding:content-type:date:from:message-id\n\t:mime-version:subject:to; s=pp1; bh=0+jGhCGksYaZ1jZMwVWLjJny3Cre\n\twAyGcX1Jm8Ui6Ak=; b=p3lzUE99FhcLYrIcTN5lWSIxWNF3TjQEbJZ1b6+vm1SY\n\tq4zPZ+Vt5NxJxp4534uQCYNunIP/san+ZhmGqvssG2CZOQ66Cqp/rDLzN09cwiQx\n\tIgrsfNaWbh8OJK2FdHrOgIXkpyORj2NG28M5O8OIq1LVn7F3TL/f/DV9vS+USuxI\n\tI/VUd/rqkZ6Kv3gZbknxQdPy9hrvtloyJT1yD3c64Ppwxek3lU+p9XVa/YDHjYLA\n\t7HFf33GN+4vfEKKo5xLonn49hZVdfU84Zhqk2hFAx1jopKUfLY4Q/9mJlnokmIze\n\txkguGNIaeqP6lFZJmUlIJpr86zHvMaZ05biM6glyDA==", "From": "Niklas Schnelle <schnelle@linux.ibm.com>", "Date": "Wed, 01 Apr 2026 16:50:37 +0200", "Subject": "[PATCH v5] PCI: s390: Expose the UID as an arch specific PCI slot\n attribute", "Precedence": "bulk", "X-Mailing-List": "linux-pci@vger.kernel.org", "List-Id": "<linux-pci.vger.kernel.org>", "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260401-uid_slot-v5-1-e73036c74bf6@linux.ibm.com>", "X-B4-Tracking": "v=1; b=H4sIALwwzWkC/23Q0WoDIRAF0F8JPtego1O1T/2PUopOxkZIdsuaL\n Clh/71uKO2y7MvAHTx3wLuoPBSu4mV3FwOPpZa+awGfdoKOsftkWQ4tC1CAKoCR13L4qKf+Itk\n gBspI0SjRnn8NnMvtUfX23vKx1Es/fD+aRz1vN0pGLbU0DoGio+yjeT2V7nrbl3TeU3+ee3+RX\n SEVIiubrSd0KzRfH+HvolbKLzA0zBmA2nDO6i1sFljjApuGrTU++ICkU9rC9h+DdgtsG57/jBO\n GFJ/DGk/T9APT6nhOkAEAAA==", "X-Change-ID": "20250923-uid_slot-e3559cf5ca30", "To": "Bjorn Helgaas <bhelgaas@google.com>, Jonathan Corbet <corbet@lwn.net>,\n Lukas Wunner <lukas@wunner.de>, Shuah Khan <skhan@linuxfoundation.org>", "Cc": "Alexander Gordeev <agordeev@linux.ibm.com>,\n Christian Borntraeger <borntraeger@linux.ibm.com>,\n Gerald Schaefer <gerald.schaefer@linux.ibm.com>,\n Gerd Bayer <gbayer@linux.ibm.com>, Heiko Carstens <hca@linux.ibm.com>,\n Julian Ruess <julianr@linux.ibm.com>,\n Matthew Rosato <mjrosato@linux.ibm.com>,\n Peter Oberparleiter <oberpar@linux.ibm.com>,\n Ramesh Errabolu <ramesh@linux.ibm.com>,\n Sven Schnelle <svens@linux.ibm.com>,\n Vasily Gorbik <gor@linux.ibm.com>,\n linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,\n linux-pci@vger.kernel.org, linux-s390@vger.kernel.org,\n Niklas Schnelle <schnelle@linux.ibm.com>", "X-Mailer": "b4 0.14.2", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=6086;\n i=schnelle@linux.ibm.com; h=from:subject:message-id;\n bh=lcKUqKVpDGrlKtZ0l0bIByKGI3a2642T2eSarw23m4E=;\n b=owGbwMvMwCX2Wz534YHOJ2GMp9WSGDLPGhzmii1ZZFf86cKiDx2u5p4xJ+fHnkvjvZBozVVW1\n hyzouJlRykLgxgXg6yYIsuiLme/dQVTTPcE9XfAzGFlAhnCwMUpABOZ2svwPyDEgIHF26xzR0Lp\n ljNvP+/j6Zav0Ematu7QkcfBd8XTHzMyzHrwLtdC8byFnZFf1JozS3ouHOW/oFXLc+pGofFqrZW\n ajAA=", "X-Developer-Key": "i=schnelle@linux.ibm.com; a=openpgp;\n fpr=9DB000B2D2752030A5F72DDCAFE43F15E8C26090", "X-TM-AS-GCONF": "00", "X-Proofpoint-Reinject": "loops=2 maxloops=12", "X-Authority-Analysis": "v=2.4 cv=J6enLQnS c=1 sm=1 tr=0 ts=69cd30c8 cx=c_pps\n a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VwQbUJbxAAAA:8\n a=VnNF1IyMAAAA:8 a=WU3I-MCEZjdC1qMpAq0A:9 a=QEXdDO2ut3YA:10", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDAxMDEzOCBTYWx0ZWRfX0EAbxOS8kx7Q\n qxC+W28toOtUoYxbUlywoanoaOGqlYArziHslv8D93iWdeidOb7Xy7A/98EOGMjJ9mPMyPdj604\n lNuLA+d5Fl7MpC/rsoIlw35bd9ojjUhL997wIy+PtIo7e4uvXUF/wruG5utfyd9mr0k4QU/b1m7\n KibDlwmcJBH1AQXgGkDBCPAXdP7veb79c0OqbqZtZQ0dlVM1IOGSuOfWzSdw2cQeAx1q8REO+o5\n pJzT3AmnQjnz6NmKNc//zjKDO/xDvSvluBatMoqZqqWkTpAAj3PC5eU0e+7E8fT5Mu9jC63kBoI\n 6+lRI+4ql+s+R+f3VpeEaeJIEYgXTDnjGAYmg9+pqAHNxlZ27nDSwN1ZNT04t9kXPQZBqZFZvVU\n O4bidXfFt3kxAPnzHoB+NWgmH9nco3XZTLjZyRshB+qpLH85+Ci8WGt65vxqrZxzE9eITdQmgNU\n 1hvNG6rC+tML2sMqrOw==", "X-Proofpoint-GUID": "H8SQZchlgABax1JS-L70tt96XqisY21f", "X-Proofpoint-ORIG-GUID": "ScCIqmZfyLmQsBK7PpRPH-q3Z_TNyxm6", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-01_04,2026-04-01_02,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n suspectscore=0 clxscore=1011 adultscore=0 priorityscore=1501 bulkscore=0\n phishscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 impostorscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010138" }, "content": "On s390, an individual PCI function can generally be identified by two\nidentifiers, the FID and the UID. Which identifier is used depends on\nthe scope and the platform configuration.\n\nThe first identifier, the FID, is always available and identifies a PCI\ndevice uniquely within a machine. The FID may be virtualized by\nhypervisors, but on the LPAR level, the machine scope makes it\nimpossible to create the same configuration based on FIDs on two\ndifferent LPARs of the same machine, and difficult to reuse across\nmachines.\n\nSuch matching LPAR configurations are useful, though, allowing\nstandardized setups and booting a Linux installation on different LPARs.\nTo this end the UID, or user-defined identifier, was introduced. While\nit is only guaranteed to be unique within an LPAR and only if indicated\nby firmware, it allows users to replicate PCI device setups.\n\nOn s390, which uses a machine hypervisor, a per PCI function hotplug\nmodel is used. The shortcoming with the UID then is, that it is not\nvisible to the user without first attaching the PCI function and\naccessing the \"uid\" device attribute. The FID, on the other hand, is\nused as the slot name and is thus known even with the PCI function in\nstandby.\n\nRemedy this shortcoming by providing the UID as an attribute on the slot\nallowing the user to identify a PCI function based on the UID without\nhaving to first attach it. Do this via a macro mechanism analogous to\nwhat was introduced by commit 265baca69a07 (\"s390/pci: Stop usurping\npdev->dev.groups\") for the PCI device attributes.\n\nReviewed-by: Gerd Bayer <gbayer@linux.ibm.com>\nReviewed-by: Julian Ruess <julianr@linux.ibm.com>\nSigned-off-by: Niklas Schnelle <schnelle@linux.ibm.com>\n---\nNote: I considered adding the UID as a generic slot index attribute\nanalogous to the PCI device index attribute (SMBIOS index / s390 UID)\nbut decided against it as this seems rather s390 specific.\n\nv4->v5:\n- Rebase on v7.0-rc6\n- Reworded note\n- Add documentation for the new attribute\n- Link to v4: https://lore.kernel.org/r/20251217-uid_slot-v4-1-559ceb59ba69@linux.ibm.com\n\nv3->v4:\n- Rebase on v6.19-rc1\n- Collect R-bs\n- Link to v3: https://lore.kernel.org/r/20251015-uid_slot-v3-1-44389895c1bb@linux.ibm.com\n---\n\n---\n Documentation/arch/s390/pci.rst | 7 +++++++\n arch/s390/include/asm/pci.h | 4 ++++\n arch/s390/pci/pci_sysfs.c | 20 ++++++++++++++++++++\n drivers/pci/slot.c | 13 ++++++++++++-\n 4 files changed, 43 insertions(+), 1 deletion(-)\n\n\n---\nbase-commit: 7aaa8047eafd0bd628065b15757d9b48c5f9c07d\nchange-id: 20250923-uid_slot-e3559cf5ca30\n\nBest regards,", "diff": "diff --git a/Documentation/arch/s390/pci.rst b/Documentation/arch/s390/pci.rst\nindex d5755484d8e75c7bf67a350e61bbe04f0452a2fa..03afb57ece4df90a75597cb34c1f048c2e162b67 100644\n--- a/Documentation/arch/s390/pci.rst\n+++ b/Documentation/arch/s390/pci.rst\n@@ -55,6 +55,13 @@ Entries specific to zPCI functions and entries that hold zPCI information.\n \n - /sys/bus/pci/slots/XXXXXXXX/power\n \n+ In addition to using the FID as the name of the slot the slot directory\n+ also contains the following s390 specific slot attributes\n+\n+ - uid\n+ The User-defined identifier (UID) of the function which may be configured\n+ by this slot. See also the corresponding attribute of the device.\n+\n A physical function that currently supports a virtual function cannot be\n powered off until all virtual functions are removed with:\n echo 0 > /sys/bus/pci/devices/XXXX:XX:XX.X/sriov_numvf\ndiff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h\nindex c0ff19dab5807c7e1aabb48a0e9436aac45ec97d..5dcf35f0f325f5f44b28109a1c8d9aef18401035 100644\n--- a/arch/s390/include/asm/pci.h\n+++ b/arch/s390/include/asm/pci.h\n@@ -208,6 +208,10 @@ extern const struct attribute_group zpci_ident_attr_group;\n \t\t\t &pfip_attr_group,\t\t \\\n \t\t\t &zpci_ident_attr_group,\n \n+extern const struct attribute_group zpci_slot_attr_group;\n+\n+#define ARCH_PCI_SLOT_GROUPS (&zpci_slot_attr_group)\n+\n extern unsigned int s390_pci_force_floating __initdata;\n extern unsigned int s390_pci_no_rid;\n \ndiff --git a/arch/s390/pci/pci_sysfs.c b/arch/s390/pci/pci_sysfs.c\nindex c2444a23e26c4218832bb91930b5f0ffd498d28f..d98d97df792adb3c7e415a8d374cc2f3a65fbb52 100644\n--- a/arch/s390/pci/pci_sysfs.c\n+++ b/arch/s390/pci/pci_sysfs.c\n@@ -187,6 +187,17 @@ static ssize_t index_show(struct device *dev,\n }\n static DEVICE_ATTR_RO(index);\n \n+static ssize_t zpci_uid_slot_show(struct pci_slot *slot, char *buf)\n+{\n+\tstruct zpci_dev *zdev = container_of(slot->hotplug, struct zpci_dev,\n+\t\t\t\t\t hotplug_slot);\n+\n+\treturn sysfs_emit(buf, \"0x%x\\n\", zdev->uid);\n+}\n+\n+static struct pci_slot_attribute zpci_slot_attr_uid =\n+\t__ATTR(uid, 0444, zpci_uid_slot_show, NULL);\n+\n static umode_t zpci_index_is_visible(struct kobject *kobj,\n \t\t\t\t struct attribute *attr, int n)\n {\n@@ -243,6 +254,15 @@ const struct attribute_group pfip_attr_group = {\n \t.attrs = pfip_attrs,\n };\n \n+static struct attribute *zpci_slot_attrs[] = {\n+\t&zpci_slot_attr_uid.attr,\n+\tNULL,\n+};\n+\n+const struct attribute_group zpci_slot_attr_group = {\n+\t.attrs = zpci_slot_attrs,\n+};\n+\n static struct attribute *clp_fw_attrs[] = {\n \t&uid_checking_attr.attr,\n \tNULL,\ndiff --git a/drivers/pci/slot.c b/drivers/pci/slot.c\nindex 787311614e5b6ebb39e7284f9b9f205a0a684d6d..2f8fcfbbec24e73d0bb6e40fd04c05a94f518045 100644\n--- a/drivers/pci/slot.c\n+++ b/drivers/pci/slot.c\n@@ -96,7 +96,18 @@ static struct attribute *pci_slot_default_attrs[] = {\n \t&pci_slot_attr_cur_speed.attr,\n \tNULL,\n };\n-ATTRIBUTE_GROUPS(pci_slot_default);\n+\n+static const struct attribute_group pci_slot_default_group = {\n+\t.attrs = pci_slot_default_attrs,\n+};\n+\n+static const struct attribute_group *pci_slot_default_groups[] = {\n+\t&pci_slot_default_group,\n+#ifdef ARCH_PCI_SLOT_GROUPS\n+\tARCH_PCI_SLOT_GROUPS,\n+#endif\n+\tNULL,\n+};\n \n static const struct kobj_type pci_slot_ktype = {\n \t.sysfs_ops = &pci_slot_sysfs_ops,\n", "prefixes": [ "v5" ] }