{"id":2196681,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2196681/?format=json","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.0/projects/28/?format=json","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":"<SI2PR01MB43934A39792A32D5058876E5DC6CA@SI2PR01MB4393.apcprd01.prod.exchangelabs.com>","date":"2026-02-16T02:26:41","name":"[v5,5/6] PCI: Enable the enhanced ACS controls introduced by PCI_ACS_ECAP","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"7095fba23000130a4acb00266a56bf6b5e8a8247","submitter":{"id":92382,"url":"http://patchwork.ozlabs.org/api/1.0/people/92382/?format=json","name":"Wei Wang","email":"wei.w.wang@hotmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/SI2PR01MB43934A39792A32D5058876E5DC6CA@SI2PR01MB4393.apcprd01.prod.exchangelabs.com/mbox/","series":[{"id":492242,"url":"http://patchwork.ozlabs.org/api/1.0/series/492242/?format=json","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/2196681/checks/","tags":{},"headers":{"Return-Path":"\n <linux-pci+bounces-47328-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=Gpx/W8Y2;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-47328-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=\"Gpx/W8Y2\"","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 tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\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 4fDmtK2XBjz1xtN\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 13:28:57 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 02C62302B203\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 02:27:46 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 010832D0635;\n\tMon, 16 Feb 2026 02:27:31 +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 8FE8F2C08AC;\n\tMon, 16 Feb 2026 02:27:29 +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:24 +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:24 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771208850; cv=fail;\n b=fsQ3DUZe1PJxIySrWcz0JM9N79lsMHrT1SY8mj9R90UhviebShyp3wR24zl4A4r0C2zH2wzTW9bKyignb9fZ3AV+MUJZQ8UhLFBSEP5L3NbqfC4QpFYcoN3BM4SXH9Oc2ZvAiUF+lbCV4p+H7h9KMrA4ObBePJYKh342wh8Ci38=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=FWE6GqmjwiHhycu3tE+wSzQK0UmXiTFgrlQ1ccuMJkh/496QoAXh7XrbJPsj/IvXCbUEtp9JEKR628wC4zFlY3gSyYbXWOwKDyPW+qAmw3yyf/8HA6bW5QtZcc3IYHIa7l66IBrlCtg+0orgwvbGkoKQ8+Mwa+0WG8ZIUxn3xwP/SeOuQR4yP8KAN2gPYj4P2pOOAz2M9P177PGysjOOjJUxEdqM1GiErdVTsGWjjF3aJt7Y2KcshXqZ0AudtRj+bdFpeIRC2NrOQ7NaX8kqwxObjmVRHIHfSCsdUE2JMI05aGnpfThxgK7j0INusWYzyaJXIVXZ21eyYNhnGROJHQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771208850; c=relaxed/simple;\n\tbh=KcYco5FyyhZ6GfntI3ZHYfCvLEC1jPl1ptoVgVI6itQ=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=ImnT2lnXnkYm52fXmiiwc98+Rr2me7+uq/6QOL1YPte5wjTrmG5gA7lBjOV1sfqy1VR24X2bTaheH+frFzukgzIaoa3VkniSLsfidbMbVIMPr3BMfzCFv0PEew/QZQ63ph0r/5OpXvUETBu3Nfq8Ai7stkz/2agO/8TCZlUFLYw=","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=DMHBdzedRi2jcd25MbiZz5f91uLxmhRxn9metCerQGY=;\n b=IrRZEnrCOh/EdrYW9g37PaWSKaVah5XJoC9u/pCi0Zd1c+dcxe7sSSEoZeuM/xMEYuvXPM+aGnPKq3N6+BTAyagL9nU+9ALbbG0TXu6j5HK5ebqm4TuoSQ3ovy/tMnyNfj1sGYk2uDMtNewwxlF/1CD+n5/JuTWIAqPTEWrhRgq7NyRH6DAieScyvTJ0780VvJ+HL/J59zVLeGRHvFApayiBf00Lovjt9NBGwUXt8Q1n7QleuP5hOOLyJYH/3tYDjRkMH9HTtPyVdidKbv03RKwKIBgvvLDhJWBzSqB2kkWH6VSWItC3jkX2wmQuUBU/ohelPGNs/CUJzhGaGB7mnQ=="],"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=Gpx/W8Y2; 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=DMHBdzedRi2jcd25MbiZz5f91uLxmhRxn9metCerQGY=;\n b=Gpx/W8Y2QhfUeAcUpHAN0E0TmA4Q3fkiP7TywljYqddyxbKiHDGV9XS0WUFnjOHyAsUbjQfkDv0KbRQoO/zpc2+CDaSUFWp/o2a2EW1Tv/uXmVaIit4SGlTCyzdugG3Fgy7o9g7/3WHYNT8kVLOFBCamldO1j82QbvDMKhZJMLiToZASNGlZvGMvQvWLVqCCQYZiNWvzPFlZVBBObs0HMbXaGBmvnnHHg5O+G7gxkMmcX2b3Y7nIuKyGzSqKeSNfOtRYPQY6pIrwvzmeYJHcH6H/4+TPoYI+VO+hDhC4dOFfJhWoztI7GHjQgBcLZbmuzU6IbfWe+K0OzDlN0hLPaA==","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 5/6] PCI: Enable the enhanced ACS controls introduced by\n PCI_ACS_ECAP","Date":"Mon, 16 Feb 2026 10:26:41 +0800","Message-ID":"\n <SI2PR01MB43934A39792A32D5058876E5DC6CA@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-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","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-6-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":"51494b6f-ff5d-4f33-9f53-08de6d02eb92","X-Microsoft-Antispam":"\n\tBCL:0;ARA:14566002|51005399006|6090799003|5072599009|461199028|41001999006|8060799015|19110799012|37102599003|15080799012|23021999003|12121999013|3412199025|440099028|40105399003|1710799026;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?7WJ/yjDJwcgyEYt6SBCBc4pePmhO3aB?=\n\t=?utf-8?q?0ZXfvs+4ra9YmOnsY+idpMtccfy4iuCm0KkoN2crkv+JYTKGl7AXbHkQKggB0qj2f?=\n\t=?utf-8?q?kmjAtpQ4EKWEww7mLBRHZjUV2e1Ig5yUJa9O+OPqmQA3IZP5qb369xUHpCls5tial?=\n\t=?utf-8?q?3tvTaOTtcshRdnm7YuhBOk4ohlIbnVt75AxzoPcWlN74w/TuvUbUZfnoXSTJNV55r?=\n\t=?utf-8?q?ZWlFEwonuyRyrIPot0HgHxmqO7AIiDWiPDyDiVioWXLzzK0b39gldPQqSsvv5Q88f?=\n\t=?utf-8?q?7kaXmsAFum0XHdcaIA8tfD/kB4W4ryGTvxWWXSWikJxkD9dMnroLkU+tYQ6gRxccB?=\n\t=?utf-8?q?QlY5lQF5NPl5sVhEU3WngNPwuBR3EJab2czZyDFCttkrYlkvs8XWvblm7JhJDvJq1?=\n\t=?utf-8?q?9ogvikDPNmUer5ujGW1i858wjc49xl68H/r/o8x9HUyWjUGY7q845ZlfxuzO4Ms/1?=\n\t=?utf-8?q?r3CCEy1ig23aGlsLpieiIB3f9zP4z75Elf75+Y5AbrnMh/WERlv2xgskVZL9Xv+rJ?=\n\t=?utf-8?q?fjrUq9Q8+yjLIhZLGcIBVdZhmPTTfvAnJ+6YH6SzH1wmFewRbGG1m0aFdxh1P8oa8?=\n\t=?utf-8?q?oxMxLIlRuGsuBBnGolvuwxxKJDK0AmkB/XeA6TcBn0im1zd42DNfDEBM0ecJclPlJ?=\n\t=?utf-8?q?ZnmDrNVdbg61evjqus+laQN6mgDzepKXtUyZI4hJP6AM2UQliL2guTbg5RYtPfJtK?=\n\t=?utf-8?q?HnEtxeWn/Qq6+APgWkLJuiw+A7Y98Y9LkKZpfVUOOoAucz3lkfZXumzR/LYUJoI/J?=\n\t=?utf-8?q?FjUsYc4NTaSCyiqupMUZA2pF/PdF0wkIWyte/rswxtwnUZdXfrZZ8DmQpAu7qNHE8?=\n\t=?utf-8?q?cPd2GsrDNeNVwsr5m4Pk0AVTOkEMmv8hadjU8yLPX4g6qoG5zjCpLp5tqsJKDGssm?=\n\t=?utf-8?q?CSOlsczrGgp6VeNh1WB1WTmH523BoD///4v2F6tOa4UcIBFeqItEuUJfmEAgHRvRK?=\n\t=?utf-8?q?b+2o43MvB1FklVa3ccJRRcTr47RXX4vjUqX/UZYTA8tld9P9R6uE/JJ2d83fcyAoW?=\n\t=?utf-8?q?xj/P1S/naEMJyikkci2k3FTGVzL6GfRAGo6lUD3usnmR8mkc48ycRKRP6tXEwvBmx?=\n\t=?utf-8?q?tGUzkNku6RnlS+Yes9XxZX0jsMlYsatWGjEs/DKCzm782rLI19GmPYknNw6UAfHKv?=\n\t=?utf-8?q?rwpzcy1SQyaYRP28rk3tdununOGWB2OK4nq38flXAR7zN64bWOVTWNIOVzqoAg9OD?=\n\t=?utf-8?q?TlYRZFUDwuoy2+u1fnbBXluppH1V13MwMtfIt+MSIZdXPkJvoP3knmSlyyd8fPyJR?=\n\t=?utf-8?q?2icq6Q8Rj5NcfA64hsoXOs8KfoRGCMQe7sQ=3D=3D?=","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?Wv3QhNJEgchWxQaVA4kWtM1E6zKm?=\n\t=?utf-8?q?bCHubXau+QxuemEZiy+qrEOGDcgDGoWfpTDuiw+OixSDUoapzRfc78UHuE3dIHbyP?=\n\t=?utf-8?q?hzRLdMtxiI5yoKQj9WLJ6Lv/Ieu6xELuYpPfnD69/JNVoayZ5MgLMfF80xptZ77n0?=\n\t=?utf-8?q?RjQyo3k9Ku2rSqInvEacT5VrZLTczapxZK4FUmADxHMqwHFx3/4XxdEnDxAGQWXh/?=\n\t=?utf-8?q?+zCRvlAQvTBbLa3ApKqErEFD/3yoFnVQFN1U8Kr0LFRRmJ8Lh3fPawPMV01Vpsjt3?=\n\t=?utf-8?q?SkBEaccToBo8IHj71QcvCLlgN6KZ+o2FCFDBJ6G5PYShBtrJUK78UGbk5susn/5pd?=\n\t=?utf-8?q?tpF6PKQ27AKs9v19IVI5uNvUawPBTGFbe/0DX6TRtGRRLaG3HBgTsj8jxUrmyMCTr?=\n\t=?utf-8?q?dNvuNeN8Vb9csJEMYxL4B52AIH69AJgwG2B05E0mUmpCwvfLCbtGvovjmGLH8a4g8?=\n\t=?utf-8?q?1Hlk6V/UwSta3spB6WcAIGJ3ZPGYq5mqF2Ao++hwe/WK+K5cCKifL1HpkCkrv+Jq0?=\n\t=?utf-8?q?a2uDrNmxZTL7+vXakvh2426lu43nevN2BsMG8TNC5Hq68IJqZPWwR3pSLpO3NGeq1?=\n\t=?utf-8?q?txiKO3XKCDOsG6StXxg1NLbW/P9PLIR0NL7J95MIw6s3sHqvu4SNLyGh5LYdb7fc6?=\n\t=?utf-8?q?xmbiSuSLInalMeWs7e33sRlCsgPfdO4csOU9GNyzO0IVHYXwV43xEaL+eZdFybyxZ?=\n\t=?utf-8?q?9v654XGvbokb99ysrkU+u+qFVy4iD6gVwpHtmJiw1zQP0yfJsnvQ61F0NJlpiwK06?=\n\t=?utf-8?q?szBrQ2KCsaCbbt4L3ErHaCMvdvyg77o+sNZ1YdvfPv0UEwm0ZJHRMZgtIejygFcUi?=\n\t=?utf-8?q?SH8Vq5Z7PepIfXfBm754mRQ4+AvB9YcF4pGIjeHGmHgXqfce/QTCxDIQWBJRst4hB?=\n\t=?utf-8?q?h9dJj5LnybYLvI6p7OCWgMV1U8/SKmWsawpzyA4RseUT5CJ5ee/PBraIISqyj+lbz?=\n\t=?utf-8?q?0HUfNKwS71f7e66hmfpxwp4XdLQMmcynDE6u5tTtts7qlzi0gb0nrcXZVa6hTR11X?=\n\t=?utf-8?q?byx9WbXBSpDK4Kxwc9CsdGefk95CL7bphcPqf7PPzG3re6bf9+PZ8hw7cYTK2w/Pm?=\n\t=?utf-8?q?GLdjt7Dzh/bM6e7T15tJQzDJ+gAg2tC5NaRH+rY7+oCc/E60wXGGzXDnQWjwS/wEd?=\n\t=?utf-8?q?hgtCHsRAu4qlErRXhjmV8dWHOvVjlrYzY9t4gvJOMkc30z5mmPmidVfL/L4vQF1K+?=\n\t=?utf-8?q?G0dT/K54mMzR/pP41rRhpZIgsp6jJh5aN1PQ7hDwsXrqRH72l/OckC3O6bQYi+rZZ?=\n\t=?utf-8?q?YzMvtcSAwRJIPWVkrqmg/tk/YaXfCK2e3SoRBXkRotkfqX1lnVfir/thCAJLJwypg?=\n\t=?utf-8?q?LBFIIwmoxyWbEU7?=","X-OriginatorOrg":"sct-15-20-9412-4-msonline-outlook-5f51e.templateTenant","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 51494b6f-ff5d-4f33-9f53-08de6d02eb92","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:24.6939\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 ACS Enhanced Capability introduces several new access controls to\nimprove device isolation. These new controls are particularly important\nfor device passthrough in virtualization scenarios.\n\nFor example, a DMA transaction from a device may target a guest physical\naddress that lies within the memory aperture of the switch's upstream\nport, but not within any memory aperture or BAR space of a downstream\nport. In such cases, the switch would generate an Unsupported Request (UR)\nresponse to the device, which is undesirable. Enabling Unclaimed Request\nRedirect Control ensures that these DMA requests are forwarded upstream\ninstead of being rejected.\n\nThe ACS DSP and USP Memory Target Access Control and ACS I/O Request\nBlocking features similarly enhance device isolation. Device grouping in\nLinux assumes that devices are properly isolated. Therefore, enable these\ncontrols by default if PCI_ACS_ECAP is supported by the hardware. As with\nother basic ACS access controls, these new controls can be configured via\nthe \"config_acs=\" boot parameter.\n\nSigned-off-by: Wei Wang <wei.w.wang@hotmail.com>\nReviewed-by: Jason Gunthorpe <jgg@nvidia.com>\n---\n .../admin-guide/kernel-parameters.txt         | 23 +++++++++++++------\n drivers/pci/pci.c                             | 10 ++++++++\n include/uapi/linux/pci_regs.h                 | 13 +++++++++++\n 3 files changed, 39 insertions(+), 7 deletions(-)","diff":"diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt\nindex bfd13197658f..f8444fea9914 100644\n--- a/Documentation/admin-guide/kernel-parameters.txt\n+++ b/Documentation/admin-guide/kernel-parameters.txt\n@@ -5281,13 +5281,22 @@ Kernel parameters\n \t\t\t\tflags.\n \n \t\t\t\tACS Flags is defined as follows:\n-\t\t\t\t  bit-0 : ACS Source Validation\n-\t\t\t\t  bit-1 : ACS Translation Blocking\n-\t\t\t\t  bit-2 : ACS P2P Request Redirect\n-\t\t\t\t  bit-3 : ACS P2P Completion Redirect\n-\t\t\t\t  bit-4 : ACS Upstream Forwarding\n-\t\t\t\t  bit-5 : ACS P2P Egress Control\n-\t\t\t\t  bit-6 : ACS Direct Translated P2P\n+\t\t\t\t  bit-0     : ACS Source Validation\n+\t\t\t\t  bit-1     : ACS Translation Blocking\n+\t\t\t\t  bit-2     : ACS P2P Request Redirect\n+\t\t\t\t  bit-3     : ACS P2P Completion Redirect\n+\t\t\t\t  bit-4     : ACS Upstream Forwarding\n+\t\t\t\t  bit-5     : ACS P2P Egress Control\n+\t\t\t\t  bit-6     : ACS Direct Translated P2P\n+\t\t\t\t  bit-7     : ACS I/O Request Blocking\n+\t\t\t\t  bit-9:8   : ACS DSP Memory Target Access Ctrl\n+\t\t\t\t      00    : Direct Request access enabled\n+\t\t\t\t      01    : Request blocking enabled\n+\t\t\t\t      10    : Request redirect enabled\n+\t\t\t\t      11    : Reserved\n+\t\t\t\t  bit-11:10 : ACS USP Memory Target Access Ctrl\n+\t\t\t\t              Same encoding as bit-9:8\n+\t\t\t\t  bit-12    : ACS Unclaimed Request Redirect Ctrl\n \t\t\t\tEach bit can be marked as:\n \t\t\t\t  '0' – force disabled\n \t\t\t\t  '1' – force enabled\ndiff --git a/drivers/pci/pci.c b/drivers/pci/pci.c\nindex 4b32fbbcacb6..c34780a5f886 100644\n--- a/drivers/pci/pci.c\n+++ b/drivers/pci/pci.c\n@@ -1039,6 +1039,16 @@ static void pci_std_enable_acs(struct pci_dev *dev, struct pci_acs *caps)\n \t/* Upstream Forwarding */\n \tcaps->ctrl |= (dev->acs_capabilities & PCI_ACS_UF);\n \n+\t/*\n+\t * Redirect Unclaimed Request Redirect Control, I/O Request Blocking,\n+\t * and Downstream and Upstream Port Memory Target Access Redirect.\n+\t */\n+\tif (dev->acs_capabilities & PCI_ACS_ECAP) {\n+\t\tcaps->ctrl |= PCI_ACS_URRC | PCI_ACS_IB;\n+\t\tFIELD_MODIFY(PCI_ACS_DMAC_MASK, &caps->ctrl, PCI_ACS_MAC_RR);\n+\t\tFIELD_MODIFY(PCI_ACS_UMAC_MASK, &caps->ctrl, PCI_ACS_MAC_RR);\n+\t}\n+\n \t/* Enable Translation Blocking for external devices and noats */\n \tif (pci_ats_disabled() || dev->external_facing || dev->untrusted)\n \t\tcaps->ctrl |= (dev->acs_capabilities & PCI_ACS_TB);\ndiff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h\nindex ec1c54b5a310..dcff29eb839b 100644\n--- a/include/uapi/linux/pci_regs.h\n+++ b/include/uapi/linux/pci_regs.h\n@@ -1016,6 +1016,7 @@\n \n /* Access Control Service */\n #define PCI_ACS_CAP\t\t0x04\t/* ACS Capability Register */\n+#define  PCI_ACS_ECAP\t\t0x0080  /* ACS Enhanced Capability */\n #define  PCI_ACS_SV\t\t0x0001\t/* Source Validation */\n #define  PCI_ACS_TB\t\t0x0002\t/* Translation Blocking */\n #define  PCI_ACS_RR\t\t0x0004\t/* P2P Request Redirect */\n@@ -1023,10 +1024,22 @@\n #define  PCI_ACS_UF\t\t0x0010\t/* Upstream Forwarding */\n #define  PCI_ACS_EC\t\t0x0020\t/* P2P Egress Control */\n #define  PCI_ACS_DT\t\t0x0040\t/* Direct Translated P2P */\n+#define  PCI_ACS_IB\t\t0x0080\t/* I/O Request Blocking */\n+#define  PCI_ACS_DMAC_MASK\t0x0300  /* DSP Memory Target Access Control */\n+#define  PCI_ACS_UMAC_MASK\t0x0C00  /* USP Memory Target Access Control */\n+#define  PCI_ACS_URRC\t\t0x1000\t/* Unclaimed Request Redirect Ctrl */\n #define PCI_ACS_EGRESS_BITS\t0x05\t/* ACS Egress Control Vector Size */\n #define PCI_ACS_CTRL\t\t0x06\t/* ACS Control Register */\n #define PCI_ACS_EGRESS_CTL_V\t0x08\t/* ACS Egress Control Vector */\n \n+/* Encodings for DSP and USP Memory Target Access Control */\n+enum {\n+\tPCI_ACS_MAC_DA   = 0x0,\t\t/* Direct request access */\n+\tPCI_ACS_MAC_RB   = 0x1,\t\t/* Request blocking */\n+\tPCI_ACS_MAC_RR   = 0x2,\t\t/* Request redirect */\n+\tPCI_ACS_MAC_RSVD = 0x3,\t\t/* Reserved */\n+};\n+\n /* SATA capability */\n #define PCI_SATA_REGS\t\t4\t/* SATA REGs specifier */\n #define  PCI_SATA_REGS_MASK\t0xF\t/* location - BAR#/inline */\n","prefixes":["v5","5/6"]}