From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011005.outbound.protection.outlook.com [40.107.208.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 485CB2C3254; Wed, 25 Feb 2026 05:43:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.5 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771998224; cv=fail; b=Qm+W1+TMf+qlA9GW7TvT5s1LTk1o3x0+UyAbmZAVj4EIJF51CkipGJhF9UXYSV1acVnIDHfKGZhYroq7vO7IkNgt8a4MF+D+g2ho3+ZE6b0eXuSgRaXqVFS2j79wYxS7911pzEiUgqz3CDjUz5YSnHttaNOES4tewgMfXV/144A= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771998224; c=relaxed/simple; bh=yb+MB4JzhAMhVdHLfxAMWaWVrQJGAHR5qQjqp22EMwI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=O/XcsikwG6FKnKsabA3EFe95oulNb1f41Rkqp+waZYrbtdWNpFNvHTAbWnYc0lGkJbcljtKWo3rMRFm5yx3RJnWau6eXhBkIBmLGMb7jAebapyrQHTk7/9jMnEg1GHiCpAFuS4ZSomoZYQThW+IRVl6KTYUy897thgZL6Oyo4RM= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=lcFZrKuo; arc=fail smtp.client-ip=40.107.208.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="lcFZrKuo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OORH1PGraId+LkqXFEtOgT1V0w4gRarexRrvR3IS4QetaGiJTnD1cNXQzl6QyuRF+FNatuC9wSDW3aKtqVWPycpat/XDk9lYn00zc8RaEP80qnPiTrZTZqnDdoarUCdE7hyzbow74a1fRW5tKiqQXj1Ec3h/QuelTL/lRxFf6qLaZjoNN692ZmjXq5plHp+tV4ax+VJqnXfrUxt+iL+Dckb0M6kZpwVzAnlIBFpzzKDr1W35jCAa4nof/xZkrXfk+XCzY1qR00/q9XgCdfNM8NW4lhqAKn77IA0xFLtoxuadEXQIlnzegM01zVPxabrEhZqYHxtEz1OSTHTVyEeJig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=Z0qOHi1i3UZ/7j1ArEf84IuK+wfeGixTzmnjwaMbK/Q=; b=yNijtELPgNq530Ll7+plKaTneYUXdoyKmMgoRUu3enWaezALSinz/yFIBO4rVXZXrLXD5BTH8Lpr9h1lHbNsZHrxBG54CEOyRqPI3Y3oxiBZ/OqGBFpRLcr0NvqyRfeXAXzbpLPdRTv9WHKekiYODVFHlEMMt9CfWiRLfHcS0gBiWHOUvbbdG1zmnaXQejcjIfFyjIt+AgoEnxRzWK0XBBtbPlotOEyiRMTVljx4sm+yKzreobgAdyvQg0twXxcH85hi2vVUabalSp915EC9vOUyvIwDU21wOWFi5AIJlHQEs/cR9H9lweTMje32nSeIETpRbacHzkHVKpQTODLg9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z0qOHi1i3UZ/7j1ArEf84IuK+wfeGixTzmnjwaMbK/Q=; b=lcFZrKuomFMWAjkGnx5KkgoIxIaGEkwayu7/4Pwdj2ZH5r2tEH1cATLSvnSaiFA2EznEXQ5QV2ye/aMY9J0HCZYsKG3y1Wk7TJy8aHTYeDHmOBhezBh+ONVvgVBQMN79VrC1iKsDpw6u/UTMrGatsyHbSB83jO5kTFefEseUuOw= Received: from BY3PR03CA0025.namprd03.prod.outlook.com (2603:10b6:a03:39a::30) by IA0PR12MB7627.namprd12.prod.outlook.com (2603:10b6:208:437::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Wed, 25 Feb 2026 05:43:38 +0000 Received: from SJ5PEPF000001EE.namprd05.prod.outlook.com (2603:10b6:a03:39a:cafe::95) by BY3PR03CA0025.outlook.office365.com (2603:10b6:a03:39a::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.23 via Frontend Transport; Wed, 25 Feb 2026 05:43:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001EE.mail.protection.outlook.com (10.167.242.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Wed, 25 Feb 2026 05:43:38 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Feb 2026 23:43:18 -0600 From: Alexey Kardashevskiy To: CC: , , , Thomas Gleixner , "Ingo Molnar" , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , "Sean Christopherson" , Paolo Bonzini , "Andy Lutomirski" , Peter Zijlstra , "Bjorn Helgaas" , Dan Williams , "Marek Szyprowski" , Robin Murphy , Andrew Morton , Catalin Marinas , Michael Ellerman , "Mike Rapoport" , Tom Lendacky , "Ard Biesheuvel" , Neeraj Upadhyay , Ashish Kalra , Stefano Garzarella , Melody Wang , Seongman Lee , Joerg Roedel , "Nikunj A Dadhania" , Michael Roth , "Suravee Suthikulpanit" , Andi Kleen , Kuppuswamy Sathyanarayanan , Tony Luck , David Woodhouse , "Greg Kroah-Hartman" , Denis Efremov , Geliang Tang , Piotr Gregor , "Michael S. Tsirkin" , "Alex Williamson" , Arnd Bergmann , Jesse Barnes , Jacob Pan , Yinghai Lu , Kevin Brodsky , Jonathan Cameron , "Aneesh Kumar K.V (Arm)" , Xu Yilun , Herbert Xu , Kim Phillips , "Konrad Rzeszutek Wilk" , Stefano Stabellini , Claire Chang , , , Alexey Kardashevskiy Subject: [PATCH kernel 8/9] RFC: PCI: Avoid needless touching of Command register Date: Wed, 25 Feb 2026 16:37:51 +1100 Message-ID: <20260225053806.3311234-9-aik@amd.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260225053806.3311234-1-aik@amd.com> References: <20260225053806.3311234-1-aik@amd.com> Precedence: bulk X-Mailing-List: linux-coco@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001EE:EE_|IA0PR12MB7627:EE_ X-MS-Office365-Filtering-Correlation-Id: b9bcf4d3-61ce-4229-6331-08de7430d36c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5ephTRnUL0djjIrbx71Io0FkSw4YQ8vqZTckhrWApKQcZYUa2c7aeW/jd/05?= =?us-ascii?Q?S5TISdFcZ9reCyJfCinNuFQOdfgEXCtFRuOH02ul0xkgIIs7tt50lKxXHc6A?= =?us-ascii?Q?//c28Iu/+oRUtlPliu55DwedGu5nsnnyhxTy+sR15plC5B2DE+gDD/ihxUEh?= =?us-ascii?Q?/Ux8BqtYqwwMXDkSq50Efa8q0TLOTwYWgXSPbp9X0ZBxmII1jMJmpTzFw3Fi?= =?us-ascii?Q?IDUZNoEpBNRbPv1TIRYtOAAjEbrxtyTVnOSLj5gQclFwlduGE20eMd/RQUnF?= =?us-ascii?Q?T0zeXbvgUH160cGT9c19anHejye5GxyoKwk25FR2rpZHXMXk1PENBtSR3cya?= =?us-ascii?Q?7YppKJS7C0xmy2SFchvwj1WpA2cMilrfok3982oTGX+Wq2BGJoQEPuiw5LWh?= =?us-ascii?Q?yZJw7ayPYNgXKKpMMeNBVaHx6Q9IGr7IYar454uUyI10xwGqaZUOqggFyLBS?= =?us-ascii?Q?Wey+xVwxLTeV5+5n/E7sf42YxK2ZTcg3kPj0mnPNPadZVKVKaIrgXda0DswZ?= =?us-ascii?Q?x8VEX7aklZjOoD5coGFjahSPTQjk8QlcFvzZCDBOBVMbhUPAiF4aOQgxpl/y?= =?us-ascii?Q?ESF5lkV9nluMnReDHZREGGBFVUpOJFrYXkzN5dGRnohj7p+ih9sKmcqodQVc?= =?us-ascii?Q?xQcV8bstgyn25FAVjAdbojbPHh51jsk5aLnhkGHBm4ACUwM8bcDmAdO/H6/k?= =?us-ascii?Q?rR9zvyzWNKbQEqY4+4ZSoSAmazw9l9PABYyjpVPH5cjhi6L+nGOGk6gNGluV?= =?us-ascii?Q?vf9YxTAfv9rjGr5bpJygK3ANg/ScNiQCD4cH13g5thCrLAV0aaW9fKbvWkGL?= =?us-ascii?Q?Zxt9WOkmOchNyCtd2NwdEr6cK4+1yiKA6Xb6yGs/owRRZR/HNw6gEZuPg8Wx?= =?us-ascii?Q?AS/mridDThCq9CpLX2JJEVtwdred4nIKn3QHb7qgy8/pS+TFVERpPbEqTt5Z?= =?us-ascii?Q?xT0elLNUJtFB/OoRSvIvoDM5J92WtbNNrbXq8qZ7Ylk23Lqf9E6kqErWYkyv?= =?us-ascii?Q?qCPywOCxkJZqhNTeezE3Xm/nvUmASQiMbdc/5xOYtlOg5Ds2pa+ZSBKWfRNu?= =?us-ascii?Q?Xs1lwpBuYNo7UBm26ZRfxSpXJ8N+L8QL0jPKkstNBrYSfckUs5Pzu6/Zb3zH?= =?us-ascii?Q?yIRnpba7p8/CEFZtB9PPxRawIzH4dIxyEV25V7C4Y6dGaQrs+NHHAnvzfBPp?= =?us-ascii?Q?5dZmzIpf5tBDn3toNwvOKtDk3g1MJ55vLl3EhDadoU+HeFHMBwEgDE7ctaPp?= =?us-ascii?Q?H4Cuapwr4IhJAjodEV1laQca+4+Roj7UVGm4Biyn1H+tVGnaVkAgg8ggQLYD?= =?us-ascii?Q?V/j/k7QOkfdk4AKNjNaVOnjNV7RWbRHoPGM5qnJODLoEA6v25VzCIQ6VQejX?= =?us-ascii?Q?BJSDX255pIEjnroETOvXeb2Dhz6aUlKqXP1LahHx6arxMfVgrL8GSAIKZqt9?= =?us-ascii?Q?ns1kbTnO/TZnoeC2Jx6DiZePTTJPynsFBWLWOsfVmLmsXBVXkhzIRIR2LWe8?= =?us-ascii?Q?8JiunfRdYllJ1+47P2zc5o1nfuQcY8xU187ZJIs7QTid9RubcR0ULTS4+lUM?= =?us-ascii?Q?gIJdv9n+OFtbp3HX18bxfd07EZlM2NZyE3BC6vGyniL6deKWWkUi70XhtVdB?= =?us-ascii?Q?nDazHwEtHoIEKYuhxiJnQwog8tzbAJuccGSrTzM69i3dsWza/gTBxgGOt3pu?= =?us-ascii?Q?UWCkxw=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 10g9krEdChxyQ4dRzEqmNVi1O9Qs6xiAm1ZmUw/F31lNKH2dLgnVZhGak+lhdlxMI7BBzKZb5iO5o6e0NIbZ+2z/UtHrtTP7pnIvjoLgP5Cizxv0PvNNdwUupJafxJJ3BP9+wFc7lOC2n/6y/0ajxRK1LAjSHgfUIjFMmeU2SEzBZBxqw/C3ljBfFyHn08yTsqC5M6KTvRBR17n6uBtd3oW3Qb8Bm7pA9DvYLW1fwr/ihN4s2zVEpX9tpm4ye9ijcaj41Jn95Um8ATI2adXfIEt93Jb0YLu831ucHLQeeLJlQUGz8k1zxfm6iG8h6HNwIwuJc0Gf0nY5Bf84m/g/IU7h0RoX2vXGjqYjrUTVDg7qXeSG/tR4VjB2mmQVbIjoEEIEaQhPPquZb0SMi8pVeKx6POU4RszOW5lkyYN9VVth42XzoXRsmugA3N9vVO6v X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 05:43:38.6117 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b9bcf4d3-61ce-4229-6331-08de7430d36c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001EE.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7627 Once locked, a TDI's MSE and BME are not allowed to be cleared. Skip INTx test as TEE-capable PCI functions are most likely IOV VFs anyway and those do not support INTx at all. Add a quirk preventing the probing code from disabling MSE when updating 64bit BAR (which cannot be done atomically). Note that normally this happens too early and likely not really needed for the device attestation happening long after PCI probing. Signed-off-by: Alexey Kardashevskiy --- This is also handled in QEMU - it will block clearing BME and MSE (normally happening on modprobe/rmmod) as long as the TDI is CONFIG_LOCKED or RUN. This only patch is not enough but reduces the number of unwanted writes to MSE/BME. Also, SRIOV cannot have INTx so pci_intx_mask_broken() could skip VFs too, should it? --- drivers/pci/probe.c | 5 +++++ drivers/pci/quirks.c | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 4c3aec1fd53e..cc0613e7c905 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -1930,6 +1930,11 @@ static int pci_intx_mask_broken(struct pci_dev *dev) { u16 orig, toggle, new; + if (dev->devcap & PCI_EXP_DEVCAP_TEE) { + pci_warn_once(dev, "(TIO) Disable check for broken INTX"); + return 1; + } + pci_read_config_word(dev, PCI_COMMAND, &orig); toggle = orig ^ PCI_COMMAND_INTX_DISABLE; pci_write_config_word(dev, PCI_COMMAND, toggle); diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 214ed060ca1b..b875859699ba 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -316,6 +316,15 @@ static void quirk_mmio_always_on(struct pci_dev *dev) DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on); +static void quirk_mmio_tio_always_on(struct pci_dev *dev) +{ + if (dev->devcap & PCI_EXP_DEVCAP_TEE) { + pci_info(dev, "(TIO) quirk: MMIO always On"); + dev->mmio_always_on = 1; + } +} +DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, quirk_mmio_tio_always_on); + /* * The Mellanox Tavor device gives false positive parity errors. Disable * parity error reporting. -- 2.52.0