Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.0/patches/2196680/?format=api
{ "id": 2196680, "url": "http://patchwork.ozlabs.org/api/1.0/patches/2196680/?format=api", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/1.0/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 }, "msgid": "<SI2PR01MB439378762AC028FDF3B72519DC6CA@SI2PR01MB4393.apcprd01.prod.exchangelabs.com>", "date": "2026-02-16T02:26:42", "name": "[v5,6/6] PCI: Add the enhanced ACS controls check to pci_acs_flags_enabled()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "81efd4815365b15c58214a2ff1aab2bbab512ceb", "submitter": { "id": 92382, "url": "http://patchwork.ozlabs.org/api/1.0/people/92382/?format=api", "name": "Wei Wang", "email": "wei.w.wang@hotmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/SI2PR01MB439378762AC028FDF3B72519DC6CA@SI2PR01MB4393.apcprd01.prod.exchangelabs.com/mbox/", "series": [ { "id": 492242, "url": "http://patchwork.ozlabs.org/api/1.0/series/492242/?format=api", "date": "2026-02-16T02:26:36", "name": "PCI: Add support for ACS Enhanced Capability", "version": 5, "mbox": "http://patchwork.ozlabs.org/series/492242/mbox/" } ], "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2196680/checks/", "tags": {}, "headers": { "Return-Path": "\n <linux-pci+bounces-47329-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=hotmail.com header.i=@hotmail.com header.a=rsa-sha256\n header.s=selector1 header.b=RrqWRV61;\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-47329-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=hotmail.com header.i=@hotmail.com\n header.b=\"RrqWRV61\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.103.66.63", "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=hotmail.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=hotmail.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 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fDmsz6Gn0z1xxp\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 13:28:39 +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 A164C300C366\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 02:27:49 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7E60F29AB02;\n\tMon, 16 Feb 2026 02:27:32 +0000 (UTC)", "from OS8PR02CU002.outbound.protection.outlook.com\n (mail-japanwestazolkn19012063.outbound.protection.outlook.com [52.103.66.63])\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 25CE12D12EE;\n\tMon, 16 Feb 2026 02:27:31 +0000 (UTC)", "from SI2PR01MB4393.apcprd01.prod.exchangelabs.com\n (2603:1096:4:1b0::7) by SEYPR01MB5340.apcprd01.prod.exchangelabs.com\n (2603:1096:101:d2::14) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb\n 2026 02:27:27 +0000", "from SI2PR01MB4393.apcprd01.prod.exchangelabs.com\n ([fe80::c735:fab8:6e3d:6d1c]) by SI2PR01MB4393.apcprd01.prod.exchangelabs.com\n ([fe80::c735:fab8:6e3d:6d1c%4]) with mapi id 15.20.9611.012; Mon, 16 Feb 2026\n 02:27:27 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771208852; cv=fail;\n b=ZGAlHxQOp03/WWMEO1HA3S9zPJw6fawaI/Wy3rNaZqYlNk7Mr3+px4BEhaZtvBwbPiuVVMsDKjNkLLtmTpi+DQZcvLoeS3LRq8QvOKt+AItPkZayIUwyXe9nMTC9CSYRcJuhZ0GlAg0JS2whID2+RwStA1YMjU0VfF+efV5xeA8=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=irbGojOpEsqOsdvxveycGZk1o+GzRbqjPvS94P7mq/ttRl92/TJIKAoJbq4ruFb4wKTcWbvKGEZF9VqlgmuVovulHJ7TndKh3FVdqs5V5+Kkt11DuY9AM0V351AmkRArBy6p/ista227R7bwfxcaXsqMFXXiTnG12xUr6ZD8gv+57EJDzdyZ330tkQtfwTMUGt5FEw3JSSWzF0gUTKSsRCpeaNqnt+GuLOw7FyDRz1RqxGN1ifqgL2eUhVkyIruU2A2rwYZ7VHU98ib6wuHledCrnTuH4juOO4tvpzAtHP7hMP0IPjwXqSoqevNtkhoc54eZxV6jqZYAxp5rQImSBw==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771208852; c=relaxed/simple;\n\tbh=uHo9ofCC8KyH+aFADVPSFLC6NmUp6howgSQZfuyEVTI=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=BYIpCt4HcpIq5iKbn+Ny1LJqmty9XBlVZtgvTUFhgOqQX5KkxRuiqIDl0PUCkTWGqgk+XW+MZRpEObwBbn+JRI7XJcAZdjYNpqOSdI0fZyModcepLmW/wde5JsCdHdeOo2vuVihSNUg9q/nHkk9WlHAlziCRVggdaG8Ek9o32R0=", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=AoZVRO8RHU3yCWP+9AMNDhmCI2OLewu7q+ZKnA3G1ZM=;\n b=Br/hQEOKhrG5wPFGUTZVemJN9JEPvKw6kDWrvLKCiBmOHOJQXJcO6W/0WP8LD1Zuu2dgRuSzGQ++rNBpsu8GaUW7zEWCDDgQnkhpTSlvLvy9EPffxba/Ssmk+KZHUKpRGB7n2n7d/KKqyve/ApvEhT4f5K776Ydt6fiCgCZRvo8Y20dRejUzw1/W6zSVi2naJZn61RsRzDO8ofk5Jiq7wAaRMmiOoeJacdgOuRIjH1pmY3EBeOdikd254k9keGSSxG9Zle+Zg/MmtBbRliua/s7kipPZnxoOantI38JULErVbbMFEvGvcLL+qEq+s8gDxx+S5w8G9/qs8jNww5uFOg==" ], "ARC-Authentication-Results": [ "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=hotmail.com;\n spf=pass smtp.mailfrom=hotmail.com;\n dkim=pass (2048-bit key) header.d=hotmail.com header.i=@hotmail.com\n header.b=RrqWRV61; arc=fail smtp.client-ip=52.103.66.63", "i=1; mx.microsoft.com 1; spf=none; dmarc=none;\n dkim=none; arc=none" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=AoZVRO8RHU3yCWP+9AMNDhmCI2OLewu7q+ZKnA3G1ZM=;\n b=RrqWRV61Y/44X01spUerc72IIaS+bYXZGTAOfrhmtgu0tGJXn9pUW4ZJDOqoiGoLqOSmHf3vHRNtjfOpu48lWW0SCxOzlJRNnp/ruf48hdprsehYXBoXXbbvXQUe5Zsq/P2FEs6aH5LDm2OhjozjV5sciOja+BZ4MRHaemliqQTvijx49vRjZQmFeBrRZj+VI8Rj3eZXknRzqFVCR3zbCf3mtOOf/F3QHWIzZ0Lq89KDHdWknoy6vaMrHIBE5xp8HmaANQwFjrSFA8PxWknrh0UhX71+0u4sj/CXs6vZfpkLuCP5hBPMQtsI8RE0Z4pZLvXEVCrfTrC/wwM99oRijg==", "From": "Wei Wang <wei.w.wang@hotmail.com>", "To": "bhelgaas@google.com,\n\tjgg@nvidia.com,\n\tjonathan.cameron@huawei.com,\n\takpm@linux-foundation.org,\n\tbp@alien8.de,\n\trdunlap@infradead.org,\n\talex@shazbot.org,\n\tkevin.tian@intel.com", "Cc": "linux-kernel@vger.kernel.org,\n\tlinux-pci@vger.kernel.org,\n\twei.w.wang@hotmail.com", "Subject": "[PATCH v5 6/6] PCI: Add the enhanced ACS controls check to\n pci_acs_flags_enabled()", "Date": "Mon, 16 Feb 2026 10:26:42 +0800", "Message-ID": "\n <SI2PR01MB439378762AC028FDF3B72519DC6CA@SI2PR01MB4393.apcprd01.prod.exchangelabs.com>", "X-Mailer": "git-send-email 2.51.0", "In-Reply-To": "\n <SI2PR01MB439326AF08A79D1C5661C29BDC6CA@SI2PR01MB4393.apcprd01.prod.exchangelabs.com>", "References": "\n <SI2PR01MB439326AF08A79D1C5661C29BDC6CA@SI2PR01MB4393.apcprd01.prod.exchangelabs.com>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "TY4P301CA0029.JPNP301.PROD.OUTLOOK.COM\n (2603:1096:405:2be::12) To SI2PR01MB4393.apcprd01.prod.exchangelabs.com\n (2603:1096:4:1b0::7)", "X-Microsoft-Original-Message-ID": "\n <20260216022642.112923-7-wei.w.wang@hotmail.com>", "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", "X-MS-Exchange-MessageSentRepresentingType": "1", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "SI2PR01MB4393:EE_|SEYPR01MB5340:EE_", "X-MS-Office365-Filtering-Correlation-Id": "ab83d8dc-6282-43e2-c9be-08de6d02ed3a", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:14566002|51005399006|5072599009|461199028|41001999006|8060799015|19110799012|37102599003|15080799012|23021999003|12121999013|3412199025|440099028|40105399003|1710799026;", "X-Microsoft-Antispam-Message-Info": "\n qVWyRNXrgYf8bEurhKsSguqP1WE0Rs54fK1SCKuKX6FZnyuOmR1mUu6QjhTd8CI3niAfWK70AjG1XNdiAXEVc7a813IsXWv3SB6cw+6WqwpDO6f3Wrbg2emuzGYvdEvanW87qnVEp+HPYdyZB3vk3ecAlDVwGYjplU2nAEsP5MrJ0HaRERW5wsjIUYXPutZtut5IOFBp1ok38XN6JQprKoPkWxlQCucrfiG0JiNid4DHYb5qJCaWdHUQDDesvCQPu6SE6Pu3BgLPhqWaLC0KMyI5Yhxdpz/+F+z12muIqVwCgibQvn2mbhr+K6wEfyqLfYzjA+SK1vehss+uaS74vzzYSoT0GRNXztrX9t8k1c22vFF7OBoDM3U7OaSARul73d7x/szYjQvy+3ckBT/Ux+Q3NXJnIX1xgF5Hw7nGcn0xH8dQqrE8n36lz1H7wUj74nmV7YhKM36U8pf2PL+9cFXK8etPEh7I4YnXUmDhOq9x1qGzPqlSyCG2LpMzHQeVDERNQ2W0TE8lt7TPnMo3kkvPVMf62nIW45gWmQT1BAAVwNBftnaqqAdkOL3LmUk+FgVKUPR7mouEJHQ3qSTEtxQppyfEVQa9ko2bt8ELqavC8Y4ax8M711gHf5CsnCmQ3EChtdixbGz7Pgc3dwDMmsN9kV1w6h+U3jN7lwMVtPTzZ+wbv40hBw40dXPQ94mbWC8mTQbC5indBqnMEoLGdgf7Edl+DSPhPdjEFPiUUapAlSxZefCKZUZDBPeRWMfL8qpkOAEUX3SAmMN5elhDQlWTXxNDOhN4TRhknSQRwgh7+D5MVe3ZM3vpgN7j8lTDLeyGkQ9VJvc6LylcQ/rSjGwn9hvPxtCGy7WHVA9x4bvF02G4/HPh91tBhB9x/u1H7sFAOqHvOyvFPY8WXvG4ok+GVfMuyiRn/QATzPUsi8GCUs7h2E+av3SIlaLVE5Hq6o/aMKLCIXouQpNtmp0meF6sOQ5vtaFdaxYotsDI4mJJIygPT4sK/lwHkKw2Vn/HRl8Ui3hy8O5e9+IdWVEElpAMJyOjaUGUL5Y8UaMm3BW/GinEmcl9my5YqvMGFRyBk0vOoYTMD+S4arV0V9H7tOWdhRbqs5VlsLsDNXnEpRwEO4MG1QYqrQf+C6dYV3o2erymIH+XVraNyThDFM1GFkPWJaL7xrSYMNAgGxi8sxXKfC2OH41QbaHFR4rwalGhMOmUs+tDe84majucjTpc/JH7Tnde5XvVvu1ejnevrto40+Ike43WL7CV0EqP/GdND+fSSQOYQr5wqMTdH2yrgRL8jRmPAYLcYjsXQnK4Jwg=", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n yCyCa8xUebxS/5kuiFkSuVVlyCcgYqCMWCJAHnYPXGMJ0EwUglbrL90SmY3Ac58fKDf6UkJcFKiWGlTSSk6Y0xWQeXMy+0IWvD2wyuT9ZOK+KN1+ZtTI84hS/UB5xzaUYMoqFBC/N9kZPBf2HbRXpw0dqR0yU7zrvclrssDo98fcTYoHXefdpnNpy4vcxGTtpo6rzVJd1Roi23UhalL+dbqUwei10OtGplHC8JY0kZXBlQEOhMye7DZRRwUnhsvts9sDk0jEcqsRC3k7lHVWGG9vLm+b4tZeN3I7W2Mm2OzHjBDWQlCvioeLM8GMH6eJrwmLRZL9TxV/9xXOTmRFOmuwDoGxCoi5KPyX406D4jcGVZa8jzJhFrXAG1CWZnRK14X9yHHxi/8Ty2yFHOuzfgoaJhE6yDY/DXLwdYeCa4F6okxUhWqROO75RtDHqJklsI4moHVIgoUfvotXEzO4XKt7DijOTpko0/C8kE2z+/b4aRFzPNR+waEUNeMjO4wviB+sE+iiG/VRUscYuOc3bgRXb4O2iWahAAhYQwevysYNq5OcE2l6fWMG2GJHJNWIqCYaDf8TvRm/1tGoFuz+2r2dL0IgNIRau6ddA9BySo5/NBaewG+5IeI1k45MkMgRnswsflsLEZSzU5a63NGme3sPEfUJxenKiqdKVRRmAVY6j+Z75ruWh59fuSE0pY3fYAeenXdVnSBUehKP/sAu8LP4eIsuYYQ84iP6UScZVR7jm8Qll3voRtPSWf/e6UfrdJmts44Dd51RrgJL5DVnER7m6iPLZcJ7zrKZksGrJGcNCcVjOc5C5gHYa/hcVW5LkOJmUSsB1Hw160GS1iy1tIz0Qy5R5jyoEojq37Dch7ybLnQ4GffRzGgmIhQ0xhQnl+arQBOGB8TCERDGrqgNe1PC0dnPfFN2HTrz4wSZ/icy3ByGDdbbjN3MZkhnLxWdQPYCM5NwqVUDdziJE9xL/5eIMtrQv1nPLF46UUFKYpxz1lCQbP651KuSSmbLlhjQHJcGm+sgqZy937iD5+nEeJQ2Mu/FESHNSAKO/Jjjfy2nehvav9zV/8GuR/Og6rgSVoD2lv12yv8lGLlqdSHnwq0OtO9J+23h/qr+zciWRDwKlAjiPd5B/JFTVdcS/qbd9H8soM5Kk0/uzmLn2GbCLVrBz7z3OqWVK9rBBCvkosVmlrinWq8NR9TNe9bdY09e18MFng0VUZZuh4IPls+Tz0ym4B0ALkxRefXFAMK37rhzHUmQ7WDOvXexb6bWvvxFJKNASMDgEJxTv2kyvIPYL7bYVefD0IJEsrQ0iIMXhRT82xjXBhV3O8im9NwdyB+ekZB3qqUC0vKsmuWrccOwS5i7DR4iqqOH6Sw2JXlkzO1scTHiD9heOixCJPVR3JRJ", "X-OriginatorOrg": "sct-15-20-9412-4-msonline-outlook-5f51e.templateTenant", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ab83d8dc-6282-43e2-c9be-08de6d02ed3a", "X-MS-Exchange-CrossTenant-AuthSource": "\n SI2PR01MB4393.apcprd01.prod.exchangelabs.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "16 Feb 2026 02:27:27.5252\n (UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-CrossTenant-Id": "84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa", "X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg": "\n\t00000000-0000-0000-0000-000000000000", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SEYPR01MB5340" }, "content": "The enhanced ACS controls introduced by PCIe Gen 5 ensures better device\nisolation. On devices that support the PCI_ACS_ECAP capability, the\ncontrols are required to be enabled properly:\n- ACS I/O Request Blocking needs to be enabled to avoid unintended\n upstream I/O requests.\n- ACS DSP and USP Memory Target Access Control needs to be set with\n Request Redirect or Request Blocking to ensure the Downstream and\n Upstream Port memory resource ranges are not accessed by upstream\n memory requests.\n- ACS Unclaimed Request Redirect needs to be enabled to ensure accesses to\n areas that lies within a Switch's Upstream Port memory apertures but not\n within any Downstream Port memory apertures get redirected.\n\nTo maintain compatibility with legacy devices that lack PCI_ACS_ECAP\nsupport, pci_acs_enabled() skips checking for the capability.\n\nSigned-off-by: Wei Wang <wei.w.wang@hotmail.com>\n---\n drivers/pci/pci.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 62 insertions(+)", "diff": "diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c\nindex c34780a5f886..50400f646539 100644\n--- a/drivers/pci/pci.c\n+++ b/drivers/pci/pci.c\n@@ -3560,6 +3560,53 @@ void pci_configure_ari(struct pci_dev *dev)\n \t}\n }\n \n+static bool pci_dev_has_memory_bars(struct pci_dev *pdev)\n+{\n+\tint i;\n+\n+\tfor (i = 0; i <= PCI_ROM_RESOURCE; i++) {\n+\t\tif (pci_resource_flags(pdev, i) & IORESOURCE_MEM)\n+\t\t\treturn true;\n+\t}\n+\n+\treturn false;\n+}\n+\n+static bool pci_acs_ecap_enabled(struct pci_dev *pdev, u16 ctrl)\n+{\n+\t/*\n+\t * For ACS DSP/USP Memory Target Access Control, either Request\n+\t * Redirect or Request Blocking must be enabled to enforce isolation.\n+\t * According to PCIe spec 7.0, the DSP Memory Target Access is\n+\t * applicable to both Root Ports and Switch Downstream Ports that have\n+\t * applicable Memory BAR space to protect. So if the device does not\n+\t * have a Memory BAR, it skips the check.\n+\t */\n+\tif (pci_dev_has_memory_bars(pdev) &&\n+\t FIELD_GET(PCI_ACS_DMAC_MASK, ctrl) != PCI_ACS_MAC_RB &&\n+\t FIELD_GET(PCI_ACS_DMAC_MASK, ctrl) != PCI_ACS_MAC_RR)\n+\t\treturn false;\n+\n+\tif (pci_pcie_type(pdev) == PCI_EXP_TYPE_DOWNSTREAM) {\n+\t\t/*\n+\t\t * The USP Memory Target Access is only applicable to\n+\t\t * downstream ports that have applicable Memory BAR space in\n+\t\t * the Switch Upstream Port to protect.\n+\t\t */\n+\t\tif (pci_dev_has_memory_bars(pci_upstream_bridge(pdev)) &&\n+\t\t FIELD_GET(PCI_ACS_UMAC_MASK, ctrl) != PCI_ACS_MAC_RB &&\n+\t\t FIELD_GET(PCI_ACS_UMAC_MASK, ctrl) != PCI_ACS_MAC_RR)\n+\t\t\treturn false;\n+\n+\t\t/* PCI_ACS_URRC is applicable to Downstream Ports only. */\n+\t\tif (!(ctrl & PCI_ACS_URRC))\n+\t\t\treturn false;\n+\t}\n+\n+\t/* PCI_ACS_IB is applicable to both Root and Downstream Ports. */\n+\treturn !!(ctrl & PCI_ACS_IB);\n+}\n+\n static bool pci_acs_flags_enabled(struct pci_dev *pdev, u16 acs_flags)\n {\n \tint pos;\n@@ -3577,6 +3624,19 @@ static bool pci_acs_flags_enabled(struct pci_dev *pdev, u16 acs_flags)\n \tacs_flags &= (pdev->acs_capabilities | PCI_ACS_EC);\n \n \tpci_read_config_word(pdev, pos + PCI_ACS_CTRL, &ctrl);\n+\n+\tif (acs_flags & PCI_ACS_ECAP &&\n+\t pdev->acs_capabilities & PCI_ACS_ECAP) {\n+\t\tif (!pci_acs_ecap_enabled(pdev, ctrl))\n+\t\t\treturn false;\n+\t\t/*\n+\t\t * The check for the required controls in PCI_ACS_ECAP has\n+\t\t * passed. Clear the ECAP flag and continue to check the\n+\t\t * basic ACS controls.\n+\t\t */\n+\t\tacs_flags &= ~PCI_ACS_ECAP;\n+\t}\n+\n \treturn (ctrl & acs_flags) == acs_flags;\n }\n \n@@ -3635,6 +3695,8 @@ bool pci_acs_enabled(struct pci_dev *pdev, u16 acs_flags)\n \t */\n \tcase PCI_EXP_TYPE_DOWNSTREAM:\n \tcase PCI_EXP_TYPE_ROOT_PORT:\n+\t\t/* PCI_ACS_ECAP applies to Root and Downstream Ports only */\n+\t\tacs_flags |= PCI_ACS_ECAP;\n \t\treturn pci_acs_flags_enabled(pdev, acs_flags);\n \t/*\n \t * PCIe 3.0, 6.12.1.2 specifies ACS capabilities that should be\n", "prefixes": [ "v5", "6/6" ] }