From patchwork Wed Aug 7 15:17:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 13756415 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2075.outbound.protection.outlook.com [40.107.93.75]) (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 99FFA81AB1; Wed, 7 Aug 2024 15:17:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.75 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043860; cv=fail; b=jKyrrGjMybJqOCf85E4HvGdKX2nEmta9Q9Ktb7Rz/GQqOO0hJmRY5P1aZ7ZcWc54LM7InDtFOY+8Cd1oVaZYtQ29nLk65hq3d3m3FuM2wqGLItqEl0glOZKmENBn66TZaEZB4/u4MvrWr2cGcUkDmW5JnJ/nGpcAqaXb6Q0IARQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043860; c=relaxed/simple; bh=+Utb6ygez7N3eokQoG0VzinLCHeAIn9IfllSEnROM+4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cbGVfZ/Sbf4BegROdPCXjoF/2IUAgc4/KEaHvBwrOHChz/ULioX+aEgV4XeEz60BJF5R/JrZdW2WLVK2qBXG0f1b5Eky38J81XwgsS8ckVY26H0qKWCcVqeZgFDEszxF8jvb0KuhJB9xMs8+V6iF6kJE9VAXLf8uSm/6sbnyxlk= 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=TTo1IeTE; arc=fail smtp.client-ip=40.107.93.75 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="TTo1IeTE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EC0s9wWoKVbEe4b3TAmkUHeLhflIsEv2FHgXC6Oo3Og/bVjCLy0JUVu5J3U7YkxoXbIcQqbhqwJTPIRhvRS2BS7vQcbbti9XSOmkBwQ3XLGUN9JR0hiA4VYmU4IC2kuZc0Ryl1X4YVoI5tgwwG8yvX6vqLFe6q7ipilqLAzqWl+aJZNuFanJ2iJa9D24KlKnStvRgjDmPQgZB7zcFKYDdT6RC8EvDjo+FOuzhBiLeprYI+dcK4yeckVzRXkGLoFy6pW8EfFx4Ea3OWVmpAhsYkw/COnKAbXJ4ZNfusv/x+KvnwVrHMiv9pflzSUq35Ros34Z5Pf6sn/KEe7gVNShCA== 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=Q2BNuvrw/Hf36Uoxdd8ol6I3JLai8YB29pRt116znio=; b=wYm4bpqjjpdAE+6ZWh9/C9owEw1JoHM24bhiU/OsQdDzSkHThmCQQN5RoIrdeymDE46dfbuDbcdZUEaCuV2/Kv3F0MQ+M1w9j/mpCj+cQrDOTsm907fB752VlznZW+2Edys5ipcKYqY3UBYq4gYg2Ycrk225wOjXRQMw4BBSyeDee66EzF+fDmbwpsVLOMQ+rJlRVIcWrcdMW0mixmgqeErthAFhTk/om/YqdZwBXtgJRO2ROmT8OWCT3li25N3fUR8FLjpM9ofnw9XTImWY8/O9Ach65gazGEi5BUu2BFVlizi1FprSEGAGIOGOFETjVL7xi2idM+wuiswnDaubHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=Q2BNuvrw/Hf36Uoxdd8ol6I3JLai8YB29pRt116znio=; b=TTo1IeTE9cCeTXMgMKkFOmY0Of18nQ6HNyfRVVEqy9oltWPcTK6arBNuuyhWDC4wWILah2CTjgVSrQMxCVGbITrza02pgWgPURPljIuQUI3Gebbt9s/HeeL95cbHu8a6tTXDabJFGbv73WAf6oMrujeEpXaWcF4xWzQmWNYGQNM= Received: from DM6PR02CA0162.namprd02.prod.outlook.com (2603:10b6:5:332::29) by SJ1PR12MB6076.namprd12.prod.outlook.com (2603:10b6:a03:45d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.29; Wed, 7 Aug 2024 15:17:35 +0000 Received: from DS2PEPF00003440.namprd02.prod.outlook.com (2603:10b6:5:332:cafe::fd) by DM6PR02CA0162.outlook.office365.com (2603:10b6:5:332::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.12 via Frontend Transport; Wed, 7 Aug 2024 15:17:35 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DS2PEPF00003440.mail.protection.outlook.com (10.167.18.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7849.8 via Frontend Transport; Wed, 7 Aug 2024 15:17:35 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:17:34 -0500 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:17:34 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 7 Aug 2024 10:17:32 -0500 From: Stewart Hildebrand To: Bjorn Helgaas , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , "Philipp Stanner" CC: Stewart Hildebrand , , , Subject: [PATCH v3 1/8] x86/PCI: Improve code readability Date: Wed, 7 Aug 2024 11:17:10 -0400 Message-ID: <20240807151723.613742-2-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240807151723.613742-1-stewart.hildebrand@amd.com> References: <20240807151723.613742-1-stewart.hildebrand@amd.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PEPF00003440:EE_|SJ1PR12MB6076:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f95031e-be91-4d80-a35a-08dcb6f41119 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: 23ZMbs6FFzQ5hX0DTMbhPoWQ7whMcmb7nnGX/k0YwjDzadDQTV/NpaTpSIz7qKoLYxtapCNPA8DeTkK5PRLxqLbzj7WPjoaYzgdyQrl1GgsVLTfZLhQ+bPta8yKjClSpvuJmlNZ+emEG1Br2OTm1uN3D2Op7lg2th1fIW9Yo/w2uObwYy4wIp97WrJ8TC4m6BGdwcH9VAyUzhDBFIuQVycmlNTsPjTkA0EDIUZNnhxuYRRNFB96CHe70w7GsKTj6fyvSIBHsm1KBExYhTqVWQI/dnH7wnPvHyY3lIk9Wid7jtC75iaCbCZYUWzaUuuM3q3NabisXNN2WFvC6/Qnm1HyWKRCfFCXcjDHhrYll7HNlfM2j1TdMtwTmdqljvZLSzB6l8TZFnzS4rDOejL9FaDnW7IyCxh/aUQIvfhV9bnCxf5ODlqzQtE6StgnpmdhTED9psQ0d6QPDoQi+mn6UzbiF51oP/o7+kWCgtd0HQuQtYH/ZYBn68d4W3Vo+P6UoD8HopkjQEVBxP3AAhg0WRtbxY2hgXCNNAG1cmBIEvouvT7TUZ6pbA9iT7jwip1W+ePoB8CWAPGRdd+UnPMSEUbD7px8EA4N7wOZn2ZiHNygHC6t7wEAcTnu8ehXoLpporV+CXB9KzgqI/okng6EuitpjBSzL4o8N+ZYNeHtj0xWxrFJLrqZ2U2SJKpftnmuRD5c/SfadWcD+HMauU14zPcUh4wZZM8pLBQj7x04y89uzAddxAMGUPN3mdqLYRMATuU4SmDLZjAPfRjUDH/298JZHTFF89wJcN4Q/EPIF/hrcXuRap2Hw8hWcUinxFZbjQtdsw+gf6kjAQOlafJVS1n+NW3icNhNZtWSRR1ae12q4Fypb9SP1ADh0oMt4nviOU8/N1q/BVHCXi00M5fDqVc7i5InK4ZXsa79ORxz6d66A203e7V+F8Z82vstWg/HR1IEkk+l2pvnkAVntcA7DLZVZ4BrG/lfqZd/JxrG/zpORvOecq/tdN33ozjbcjXYFX+zI/aBGY+9z0P/r8NaNEGxEqcEmVHubsj1aAJjt/kZScOozP5A7DLE259+a5JutzTSEDS2Cr2VWTbYtbROWqnoMX8j6QDmjNTn9bpq3wWNxIG0soF7peMgn3YI2gyKgGnJXoM5a9FDCAPNiY3y7rz3lbxIFrWP1KKs7jYPWu10W0Y7nenE/Pdg+Lyt96aFEB0ovIKboPm/hkqvyw5BoVR410hK0Dh7DyIheijJcqKDE9K8YxeQo7lByiVSmU7kKxDQKzvEpcuJZhsgiJLfLlPQCr/LVZFH/Lc3eYSgu1Aqz/T8lc7T1nrzWJ8wMPYkfyxWrHzyoGC7UcCIhVo32G9d7iihDmG6iAiPweGR/Hpu5vL9qbwXTWJUxWh17SPfo54x6SBF/0WOQamc5Gh7YoubIiWEjXfcTG2OBLhuPdMZ8JCh1UY/ObjWTk/QJy1gH X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2024 15:17:35.3842 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8f95031e-be91-4d80-a35a-08dcb6f41119 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF00003440.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6076 The indentation in pcibios_allocate_dev_resources() is unusually deep. Improve that by moving some of its code to a new function, alloc_resource(). Take the opportunity to remove redundant information from dev_dbg(). Signed-off-by: Stewart Hildebrand Reviewed-by: Ilpo Järvinen --- v2->v3: * new subject (was: "x86/PCI: Move some logic to new function") * reword commit message (thanks Philipp) v1->v2: * new patch --- arch/x86/pci/i386.c | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c index f2f4a5d50b27..3abd55902dbc 100644 --- a/arch/x86/pci/i386.c +++ b/arch/x86/pci/i386.c @@ -246,6 +246,25 @@ struct pci_check_idx_range { int end; }; +static void alloc_resource(struct pci_dev *dev, int idx, int pass) +{ + struct resource *r = &dev->resource[idx]; + + dev_dbg(&dev->dev, "BAR %d: reserving %pr (p=%d)\n", idx, r, pass); + + if (pci_claim_resource(dev, idx) < 0) { + if (r->flags & IORESOURCE_PCI_FIXED) { + dev_info(&dev->dev, "BAR %d %pR is immovable\n", + idx, r); + } else { + /* We'll assign a new address later */ + pcibios_save_fw_addr(dev, idx, r->start); + r->end -= r->start; + r->start = 0; + } + } +} + static void pcibios_allocate_dev_resources(struct pci_dev *dev, int pass) { int idx, disabled, i; @@ -271,23 +290,8 @@ static void pcibios_allocate_dev_resources(struct pci_dev *dev, int pass) disabled = !(command & PCI_COMMAND_IO); else disabled = !(command & PCI_COMMAND_MEMORY); - if (pass == disabled) { - dev_dbg(&dev->dev, - "BAR %d: reserving %pr (d=%d, p=%d)\n", - idx, r, disabled, pass); - if (pci_claim_resource(dev, idx) < 0) { - if (r->flags & IORESOURCE_PCI_FIXED) { - dev_info(&dev->dev, "BAR %d %pR is immovable\n", - idx, r); - } else { - /* We'll assign a new address later */ - pcibios_save_fw_addr(dev, - idx, r->start); - r->end -= r->start; - r->start = 0; - } - } - } + if (pass == disabled) + alloc_resource(dev, idx, pass); } if (!pass) { r = &dev->resource[PCI_ROM_RESOURCE]; From patchwork Wed Aug 7 15:17:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 13756416 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2057.outbound.protection.outlook.com [40.107.94.57]) (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 CC3A512F5B1; Wed, 7 Aug 2024 15:17:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043868; cv=fail; b=hXPxZBZogiPixnlFuXRTb+pnAswEyM5MkXwYHxQ6q+27h8m1WuMXeEKCqZ9phRqVN6h86Gr8lD8hlTIJbmXL+4E+SQFj9RbZGS5Ku2UvftT2+kwNmq+QmtDX06a9SnLYAnn5b8tTOi6h2zVer2TYMHgke5CWD8f1jxUiESouEmY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043868; c=relaxed/simple; bh=gXXfhf4woFguESRPS2CMN46Pq4Zw0K+E4mmrr9mk0V4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oDmjCa7LVqZD5HYX0EoovzonYPWp61JHOpXchTp1KimNtXfc2C7ZBNy/Xim6A8ndeQb37XHVrwrXpGHXcuP3OZvb1iAD1Jckv3PbS26s0Uz2E6J4LK9g70J1wuis2O6N8YdEWc/6+Xima+g+8jm4siVn1vZEEN6T5n75puac/fQ= 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=djZS1vP6; arc=fail smtp.client-ip=40.107.94.57 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="djZS1vP6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zTCbeuNTJrPcdfMeKKrYnye/3W0UC95/oo2e+aYwqQ8yH0RadFipmIpFHCJJY1yPd3knR9Tbwe77G8oijEqkbvqh2NVqCVT5h26ezR2eqHHct8586Z8k0tGBIY6ArR20uaC743AnrehBYa6cB/JZtslohSn0qBWVahg58tVs6D876KoymHHY4MkytRkcHmPgQ68syWtptYUMw9eofpVXGgJ+a9VFT9nNPkKqdirSEyVq3A/EyngfREnYD1fTpJTWysPMqkHkYFuH3/bFVIdsCAMAlYtjDXXewXovoKNCQu/4ibIhOT4VdRHCdN8AKOyabP8frDHqPHnLaMFjnNBgrQ== 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=nLFg0mg+YVGWGwkYxp5keBZXpsyMlteDCbkUrVXS3cA=; b=sxAUFzMHVJzEh9Jxvs5ySC6IvPo8yFAtKsC+FGmndgxrk2R0aXlwAnMaOyQMFTPT0/b5qH0+q9KBYBeMaLTjRPg4kx7t8gCQIQ7cSgixqBkHDeZ+LNuo8AsVF3AMkW4I9XSUGacOE3xlK1OGUfZzmrZ6buJ+SCnPdyAmr2XE8gsrbKl73kpqYWBtrhEzV8eef731B3HRhY7ZNSePJcaXGoTsz7lT7MWw285gkMfcyesxzoNvvvCytF+a2Jxp6jCMJaHY/zUKMCHbgIoUVInz+YV3eW7t0smzgqlfx54onz88wgUnVzl7c0YAkPOdgalT5I7A1WV2lXeFK75hPnDTvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=nLFg0mg+YVGWGwkYxp5keBZXpsyMlteDCbkUrVXS3cA=; b=djZS1vP6t80J2GP4ElGjTN0Lmnql6vYw1WgEAJRXwoKLdCyOXMHSAZPgvuXW3MeTQxHdsm9vEko//7rUBiSdtZMuMtCUMWxwQ2C0/T5XOA6NMGjVGtr+LLQKQjTST4eZeJVmgTPlKn5CMIoqfmku7e7aa5eXC+BVfBxP6QoWNUw= Received: from BN1PR14CA0010.namprd14.prod.outlook.com (2603:10b6:408:e3::15) by CYXPR12MB9317.namprd12.prod.outlook.com (2603:10b6:930:e2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.27; Wed, 7 Aug 2024 15:17:41 +0000 Received: from BL6PEPF00020E66.namprd04.prod.outlook.com (2603:10b6:408:e3:cafe::e) by BN1PR14CA0010.outlook.office365.com (2603:10b6:408:e3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.13 via Frontend Transport; Wed, 7 Aug 2024 15:17:41 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7849.8 via Frontend Transport; Wed, 7 Aug 2024 15:17:41 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:17:40 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 7 Aug 2024 10:17:40 -0500 From: Stewart Hildebrand To: Bjorn Helgaas CC: Stewart Hildebrand , , Subject: [PATCH v3 2/8] PCI: Don't unnecessarily disable memory decoding Date: Wed, 7 Aug 2024 11:17:11 -0400 Message-ID: <20240807151723.613742-3-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240807151723.613742-1-stewart.hildebrand@amd.com> References: <20240807151723.613742-1-stewart.hildebrand@amd.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E66:EE_|CYXPR12MB9317:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d1553af-f625-41fc-e303-08dcb6f4148e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info: uIsh3ETLQYWurzqb6L39veielq2rhA1lXA3xmOE13ujD3Udsm6/e7sg4QD61unRKbWYXpN37GXKu7qpWg1id3XtnAYlWgAY1ltDJUY2tCOLHrYBiK4CSvTcFrz1ACIWIKTYix5LWVyf0/8uJ4FywZDfJTnFtvzVcLwKz56dbgh/j7JCcB/zTNKgjIur/BaSeKiCnJD4IfqPTgq7qYDtEJT5U2ncr3PhkEhy/zrhZXsq+H5GPgf+4XpxJ5i6xRVlculgrqGRF7ezQTTCkCC/DAPSw6eT3PlK9RPVkqHZaNNiKp6ZylL9GQmkp6BomeO0VtX1TaT3B5GWclyZMyVwGWFhV/ltyXBCBHH3+LHTWP4vO/X3OOrjmGIJg+u7J2/9gYtn3Q5rUIXk4LvQyKAtfP5Nc5ZRY1QuQiTR/T8lwfONI3dhG8leULK+nXOKwWcj9XP2Ds4dH72OFBqH5LYmB3KxfA8GI5xQYKlIBnNRLPVbDatsKiZA/fQdkUjCMDgokFp7u5BO2aJlfPQ7YFaj3H0pPigeEamdEm89wRY2tIoJeIBEAe8ZpxMzTJO77+Eh+UkPFLWrnJalYMJ/kSzqLITvzb+Fkst70m4jW2bfviSme6DoEvOnxUY/+MAZ3SnedGfq/zshjVOW+3E2EtJgfD+m84pgJMmhhBTePZvIuq6XSIlnrg6o4nK9iTvx+H4SJVcuYTX2y+JOEiTMeZe+82GCr5Bd7C7/A0Crz/h7B3IIDsGiU4grnNC9P/6P6hl9xp2/VwMbZ/Qe2d67no2gSz1+wIH3cmuRpiLsfCZyGDlrnBMg4eE64Bct+GcjFjMOTtggNo4jVdhku67Q0EL2Pl4ddskid4tODNYwMmkcnDf1YhlN3EMYvjTPBsiReSw6oGETF3pFDcbRBhm6gtYyQvolW76CT72dBb76aBlgdDN6HtCDbomWnLaGTJYk6/DKt6DOfXzY23hC950NyqfZfuyVjTtGZBG1SQ93hlPdaL+iOVNfu5JVQJs7ihA80tCb2N/6U+R+gr1Fkdf0NOHDnLQfkDiYccmVrWlwhpC8l8unvZC7vM/Z9uOf0eAym7y6w+eSl5EfK2zcjjMc2uY3+mLIENN1YoeM91zUUSOS7HoIOqJV5EdWREdHRVGRgTdovX7Ospgwc076tg1EFhX96mKWmUtV0cipz24VxqRNVLzu7uk4Ch3A/cdA9jqbNKnWzSrOhLkSrAyDRqDbfZhMKp3VVj1ncscYKgk/E3xBythstfRsw92nzS/VC10dLZxJ0EGHJpOx7vgUHY4e1U3ddUc9sir58ONaIpptBiSYfSkD4yRlWgCowCTIWJVtMcNr3shQ9f6VY+Pbv1hphnHfmg0hx0iv6NoLUsIi7cDZ7zomak+UDV/aNYGumsd5U2N1FStQXVPPF+KeqYJZ7dXreF5lci4UmyNKv/PeM22CqOxwhPgKEf/IV+26e2U1nDgnL X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2024 15:17:41.2326 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5d1553af-f625-41fc-e303-08dcb6f4148e 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E66.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9317 If alignment is requested for a device and all the BARs are already sufficiently aligned, there is no need to disable memory decoding for the device. Add a check for this scenario to save a PCI config space access. Also, there is no need to disable memory decoding if already disabled, since the bit in question (PCI_COMMAND_MEMORY) is a RW bit. Make the write conditional to save a PCI config space access. Signed-off-by: Stewart Hildebrand --- v2->v3: * no change v1->v2: * new subject (was: "PCI: don't clear already cleared bit") * don't disable memory decoding if alignment is not needed --- drivers/pci/pci.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index e3a49f66982d..acecdd6edd5a 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -6564,7 +6564,7 @@ static resource_size_t pci_specified_resource_alignment(struct pci_dev *dev, return align; } -static void pci_request_resource_alignment(struct pci_dev *dev, int bar, +static bool pci_request_resource_alignment(struct pci_dev *dev, int bar, resource_size_t align, bool resize) { struct resource *r = &dev->resource[bar]; @@ -6572,17 +6572,17 @@ static void pci_request_resource_alignment(struct pci_dev *dev, int bar, resource_size_t size; if (!(r->flags & IORESOURCE_MEM)) - return; + return false; if (r->flags & IORESOURCE_PCI_FIXED) { pci_info(dev, "%s %pR: ignoring requested alignment %#llx\n", r_name, r, (unsigned long long)align); - return; + return false; } size = resource_size(r); if (size >= align) - return; + return false; /* * Increase the alignment of the resource. There are two ways we @@ -6625,6 +6625,8 @@ static void pci_request_resource_alignment(struct pci_dev *dev, int bar, r->end = r->start + size - 1; } r->flags |= IORESOURCE_UNSET; + + return true; } /* @@ -6640,7 +6642,7 @@ void pci_reassigndev_resource_alignment(struct pci_dev *dev) struct resource *r; resource_size_t align; u16 command; - bool resize = false; + bool resize = false, align_needed = false; /* * VF BARs are read-only zero according to SR-IOV spec r1.1, sec @@ -6662,12 +6664,21 @@ void pci_reassigndev_resource_alignment(struct pci_dev *dev) return; } - pci_read_config_word(dev, PCI_COMMAND, &command); - command &= ~PCI_COMMAND_MEMORY; - pci_write_config_word(dev, PCI_COMMAND, command); + for (i = 0; i <= PCI_ROM_RESOURCE; i++) { + bool ret; - for (i = 0; i <= PCI_ROM_RESOURCE; i++) - pci_request_resource_alignment(dev, i, align, resize); + ret = pci_request_resource_alignment(dev, i, align, resize); + align_needed = align_needed || ret; + } + + if (!align_needed) + return; + + pci_read_config_word(dev, PCI_COMMAND, &command); + if (command & PCI_COMMAND_MEMORY) { + command &= ~PCI_COMMAND_MEMORY; + pci_write_config_word(dev, PCI_COMMAND, command); + } /* * Need to disable bridge's resource window, From patchwork Wed Aug 7 15:17:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 13756417 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2066.outbound.protection.outlook.com [40.107.96.66]) (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 C33C285270; Wed, 7 Aug 2024 15:17:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043873; cv=fail; b=jq2ed2JLy1aJu6/w9NTjGtMD2PWzg6U5Lui7TkqhMFkUZ5KPyS6ezCfOZWApNbyqZM7mGiSefd13ptneq95ayNXSFXBFAdBP7eosKFbCYLGmlq7sto6dqe5g1Bh4l52tdAp8809eWlOLXPadLmCIPo8G6Tnl1RrFqm06gwxKp9g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043873; c=relaxed/simple; bh=+yBJp+Opjza7bjckqM7BPGv0rw7vCNSvXGRyuwnugto=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GVFayKsGFeomSsSQYel35Y4/cU9zGXdSpZvkdyV3tpSfLNHUZ/PnjgifT8DuUGYJ6OafavGZd8zM3RNn8MWupS+S1VDkgOt0WByS7kDPtvk8pqRpiInfDc0ssL6Tb8/VZ6nwVsDPRWM8cnQXO6InMXpdRhMi8+a4PPiYSkGq4w8= 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=fpEoRqMp; arc=fail smtp.client-ip=40.107.96.66 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="fpEoRqMp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H9F+wWg1xlR4HkjjMn+M73rMkNsqRCz99KjxrwxRUVDMub0bMsovpbwPPvT+T8u4MQf85fHv+hx+mOefXggNxP52CZUmlS386BwfzKoB36bBapMWWWnLkvPlx7Sm3b7I6MVCTJe2LMqnOld308Ylzoy8Iyz5tFD2cNFja9psk1iAzMS/gCyyIFYUipx8kQrf6JVbzbc4zFyetVbPYOuTL/D1rWSY00M1krDdni6Y5nV7yh8GX8PAHcYtphVcu11l34Ntfce9K1i3irNZr4O99hWxXlgpdCEVgnXAKw/waruUhB5jlJxjubD3pdOLFD9zXGCrBfLWf+xTRFYz5GRNrQ== 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=pzfAhHmogGL8Mx/oaR/dEuCCwVy+hR/mxT507XLJLfY=; b=r9RMTvXbCg+f5qoq3nJeGxDGMqx4oOvDGoAs53VcoTBN8GkoMeidngf4pDDy2uNcfBeWbdQ9bySFFwxb14EZrOym+GMGOroyAMWP1d/kot5iVMHmNHqdRlxF2uU4Kie/NEUulcGBhIiC170wfxwLcAyB4d3qz6ydfsBgkTXS/yd+pLTRLBvMISm+SLy7lFmQlgzrCc0V8u2Z7Sbn21/DQBiyEpv1+LErSY+tHLb003DYcHB4dIWPOPKx5Qdg0RGXSNZA3nffM02nqNXYM0K2SEVa11pkhJL/rsFso1n5X2LL904SwDX2jXUV39V0S9ASabWPBig860rHbvTn8qsqmg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=pzfAhHmogGL8Mx/oaR/dEuCCwVy+hR/mxT507XLJLfY=; b=fpEoRqMpNJ8Gqq2rjn0Od8F0YNDItJlyKbfUv6SCcWT7WSFL1xHQ2N3tuhFtg7PcS/PwjEeyLjwNvT1VplmTGFHhi4drRrpF7AfEIM+RgvKv2Manj1GWd+BHfIwH0Z+zXAxVg6Cf9Xcsg53YWgiiydyCI70hGGJItSgIjAy6x1w= Received: from DM6PR07CA0104.namprd07.prod.outlook.com (2603:10b6:5:330::30) by LV8PR12MB9405.namprd12.prod.outlook.com (2603:10b6:408:1fa::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.14; Wed, 7 Aug 2024 15:17:48 +0000 Received: from DS2PEPF0000343A.namprd02.prod.outlook.com (2603:10b6:5:330:cafe::83) by DM6PR07CA0104.outlook.office365.com (2603:10b6:5:330::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.12 via Frontend Transport; Wed, 7 Aug 2024 15:17:48 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DS2PEPF0000343A.mail.protection.outlook.com (10.167.18.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7849.8 via Frontend Transport; Wed, 7 Aug 2024 15:17:48 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:17:47 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 7 Aug 2024 10:17:46 -0500 From: Stewart Hildebrand To: Bjorn Helgaas CC: Stewart Hildebrand , , Subject: [PATCH v3 3/8] PCI: Restore resource alignment Date: Wed, 7 Aug 2024 11:17:12 -0400 Message-ID: <20240807151723.613742-4-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240807151723.613742-1-stewart.hildebrand@amd.com> References: <20240807151723.613742-1-stewart.hildebrand@amd.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PEPF0000343A:EE_|LV8PR12MB9405:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d20451f-6066-4a53-280c-08dcb6f418b9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info: GGKRK3zvl2UhbZ2KPr1ciNUk1c7qTAP2Fv1XrdmN0+fSG7ZHmGvXPSWtiNGLwQwbGra1LmvYRx+2I2IibPze7O7EhVwYOaUus0KfyRdv7k1EZpMho4KNJNA0IJL6cX2AAW5FhqGLBg3zF3NfG+nKxtzvt9erreLLitI0llaAYRtiIz0P9Yg2sLej+ny6m0M6F2lXNB+pvwjga8GotHkl1wTBnHeMf3A2SLOBvGNrBitifER+1HVQY5o2hu0VvLY93GqxIrjLfgWBA+L0OPK0dxJBaRt7JskRwRLEgtWeJyGXMV1AjmoXA9UjXarqpUG6pFgCQbIMvoQpvXPJc2/JoPPY6fRf+8FebDaaYeiyxojw65JXIAzfnXnCCjLKN2AaJDSpvZPdcG1YtsfjQl7uZ43HCbF3+mw51jvu/M4hww9tf5rPLTPj0UgcpnH4FyqAiCqSHncSoFfwY/UjnYk4aONtebTkXSYZQYO7oT0FDmcpZBqygkh42Mu15xb5cWvusxMB5lpzoIcK3OoKl37hhOhMwXkxsPIm/G0osaJEJTY6B8d+wxAh/jngQFRijiBI+vLwVjgBUzmQVaX2DnfuLbXU2yaz8nUuK61XnZzOk5d55nZoEuMox+9FPa0A6VRgjziTXwCE3s1LOJ2Hd1HmS65hnWevU+6PkJSKDGjE6I7nP/37V8KiJXpG+tWfdOnns9E7/5YD4SNAQbFPHaXwUMQnk0TTbmOofdENoAilE48DR/CZl9zDA3lYSMohWFMZVzvQz62ui7XrEqC3zs24OAKR7bCQxQrNg+azeJSSYOeerxNZJEzpmvh3V8ctLA/LRBmPOA8gduYrviabqknDz/UekaPDxVQqUM6jI9KX9+R4LalJZGnJUEnuUNp7VNHSk0gIKn+NIswRQ2zAq7b+TvymnyQpiR2575+d5vXaRkQDOY01kEN6EMWNb0awaPez8nGLSnQzcJeV+yRr6ZCMVtK00h8MXqBASTTj3X4btbnnzXta3s073SPfqNBv3GjVrbXaenxctfDAqn+STemJ8i7imPrJ5WoTahlGxSZ+95ucLFNdBNTAXdc3rmxBAUKk5DuWEGgrnik0+UEXiMp+hSBHyjVePGfe0wV7kPSgwBmeePj9NYPUw/HlKx29bHRGekP2oOrkZnYfzcn7O11736wW2u+BC6JQpqTP/CRuy+xxTXqR6CwfA8PvWLaINnVjXsFDood6ziw0APoagEhBKewY6Xu9xADBlFef0KWDBy4XFFZxbnHk4W+ETUh7/tbQFU0Ss0vh5y5TTwqCCPYD4O49YpQrGdWwic+BmeFF95Vc6kmytBv7yjzjAlZatdmozVJ3Bzn4MYny2EF37m9WXcpif0e4LmwhwM795ZD230DspJEwzdYkweS4XBbZQrL4SFLmIwRY18GsxR+1sviO3DXeULbmsP4YXAAZ4PG5Gak4IlBYTe4RNdnOYOFIfiTu X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2024 15:17:48.1737 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0d20451f-6066-4a53-280c-08dcb6f418b9 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF0000343A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9405 Devices with alignment specified will lose their alignment in cases when the bridge resources have been released, e.g. due to insufficient bridge window size. Restore the alignment. Signed-off-by: Stewart Hildebrand --- v2->v3: * no change v1->v2: * capitalize subject text --- drivers/pci/setup-bus.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index 23082bc0ca37..ab7510ce6917 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -1594,6 +1594,23 @@ static void __pci_bridge_assign_resources(const struct pci_dev *bridge, } } +static void restore_child_resource_alignment(struct pci_bus *bus) +{ + struct pci_dev *dev; + + list_for_each_entry(dev, &bus->devices, bus_list) { + struct pci_bus *b; + + pci_reassigndev_resource_alignment(dev); + + b = dev->subordinate; + if (!b) + continue; + + restore_child_resource_alignment(b); + } +} + #define PCI_RES_TYPE_MASK \ (IORESOURCE_IO | IORESOURCE_MEM | IORESOURCE_PREFETCH |\ IORESOURCE_MEM_64) @@ -1648,6 +1665,8 @@ static void pci_bridge_release_resources(struct pci_bus *bus, r->start = 0; r->flags = 0; + restore_child_resource_alignment(bus); + /* Avoiding touch the one without PREF */ if (type & IORESOURCE_PREFETCH) type = IORESOURCE_PREFETCH; From patchwork Wed Aug 7 15:17:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 13756418 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2074.outbound.protection.outlook.com [40.107.94.74]) (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 6830179949; Wed, 7 Aug 2024 15:17:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.74 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043880; cv=fail; b=mlOezDD797LeNrzexHIjFoml+Tktw82V1F1Q9MN/DdRDFqVsf/BKOhHlgJqzqUMtFSgHKrdiw/KisNSKJx1F0h1gnno3jOSnn563hA3ZemwMlBBSbakzY3lOLb4SGnirlJpUOP6+pH8ZMuDfFUHiO7FtBUY5C5AvOhtio8yB5TA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043880; c=relaxed/simple; bh=WTGaoKLGmKcpdor9RtT2osJ8c+CnhFELP9JCBrzCLc0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Qw9ACNVPEp04x2LGGZssOrfyOKFXoq7Pq8Ju99MBsbHTn0xOucf7Ki/y05CahrdIwSeqxLTXGcfYo5T++53mNWTAcjyaYWF8B4fni+CwKJLqigCyx05lpCy9w5cwmhullfP4kRs5q6DQTCd831yyilowUqeEpICaNE7OaCCd6Hs= 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=d7RpIq9J; arc=fail smtp.client-ip=40.107.94.74 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="d7RpIq9J" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kSm33aT1FZG2qX3OjEfbYlAcW84t5UEVva1cf04VIXLSK8lgafOH9BJkueC+/A0oaFcC2Q64e5JHeSXw+ZxL8MgGUH4a2+XAJNEu3xRI56r/UquHqaKFDPddtLqce5J5+3JQ3dplr0UzCx6Nwac7tCBUnLZd2hzIOC4QoOnLOyqFS+NsMildC7wyoWJ/aF+uMLO79LpvboX8z1pmo1rq2d1sQZSjsG/7ILxSkjHlOk42sy8rEuFjdQisAtjuvRCYrOa/1VP7fr6ktZfLP9y0O/XgpdhuCJLUWVhfxerHJJK12ko172RQ3jyaZPAhoD3pFRXxwyLm7OUAbj1f/V1zTg== 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=uoRPZSlQUrXffMRiUvvcx0DN3xHbVWz/kyrltfBIZ4M=; b=Wzqa4vA6fbkCkV0iuh26F5B9T8g9idXCuHMJNGzzkDBhFYB4th5KPkX3zQbcTusVAE4tKa006Ytp698u74IbwerG4+NAZD3Ma4oQ4ULbyT/4CwQUB315m6lATNtgT2H5Lsw2VZuMjpt8LLLEKO1LjC4GRjhJDtOdmS0ldtXEWvFEt+7JuvPBO0STpr8VkQRpz2ciXWZbFO+IosfCWxFKX1Izhk/SCPX/cq5FvfK+KalzWg6hTbEz2vcWfUJcVg6Izl3TkbZF+7un6Odf0u0AZ/myYp0CrZkWcLrwBsNjRpgpSTEOc+KkvH/i+Iba4lb/Alk3HpVjvs0UKCgm1NFu9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=uoRPZSlQUrXffMRiUvvcx0DN3xHbVWz/kyrltfBIZ4M=; b=d7RpIq9J4Nwei9LOevUyftOgEY5NZSt4h8rso9SC0TIr5VkY02Zg+KcWeqBqq6K7TRjVwfuPpDsKP1Kvh1AoJKpzYFq8mCRe2B7lSH+nsaWM2d89Ixw8p6+msZR7EOldI6kS+TyTPzErY2ZDIJQEA7hpfsG5rGjeYCebM7F/ry4= Received: from DM6PR07CA0105.namprd07.prod.outlook.com (2603:10b6:5:330::8) by PH0PR12MB8798.namprd12.prod.outlook.com (2603:10b6:510:28d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.13; Wed, 7 Aug 2024 15:17:55 +0000 Received: from DS2PEPF0000343A.namprd02.prod.outlook.com (2603:10b6:5:330:cafe::b) by DM6PR07CA0105.outlook.office365.com (2603:10b6:5:330::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.14 via Frontend Transport; Wed, 7 Aug 2024 15:17:54 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DS2PEPF0000343A.mail.protection.outlook.com (10.167.18.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7849.8 via Frontend Transport; Wed, 7 Aug 2024 15:17:54 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:17:54 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 7 Aug 2024 10:17:53 -0500 From: Stewart Hildebrand To: Bjorn Helgaas CC: Stewart Hildebrand , , Subject: [PATCH v3 4/8] PCI: Restore memory decoding after reallocation Date: Wed, 7 Aug 2024 11:17:13 -0400 Message-ID: <20240807151723.613742-5-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240807151723.613742-1-stewart.hildebrand@amd.com> References: <20240807151723.613742-1-stewart.hildebrand@amd.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PEPF0000343A:EE_|PH0PR12MB8798:EE_ X-MS-Office365-Filtering-Correlation-Id: 4ce2b8c4-72b3-43e6-c032-08dcb6f41c9d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info: K0ZkAQ6XYhJhkIP+wTzbuCMpQred85Xfj8kSQrOUU1f5yMVcPiCxcnnkkfbmJ9LuZr19Xq3TdvchlR1t29GkNNp8W1O9YKv0sP5SU2zI1gp3Smf1U8HGeoZMqqTg0giayi68gUGb+XJ3gIqDhW1/sAwn21jqZpPiwVBHSKOXLs+fmiczUGMkfp9rORAdgNw5FC8xM0XQV7s6wO2PeRhlTTNIXgi4Ku7l4QEK9Q8l2GnN2bgNtKkvqDEB2skCqwRBwarRPDseiKwRaYQg6H3Rdi8Kzxs0T/TzxckyWdDkX7nChMSaZujCg6BPm4S/NIct+3PXh3aGEXvirnySjKWSYcM/QG5tuRwmtXjYero0PHslU5RMzBx7Ky/ClYFVsDY3MBidfFI/F7WVsrhCoKLYs1cepPJxvrTHfl2VDJWSQsDqIUwJqKuyjwW+9KAR95tLk+283NIJzM2erWL55HCJWm1/xRVaYRSR+LazLp53sIqKmFp78twL+RiiIkEQInsiW/ml7rjikF/pRWYA0rr2bO49dW4BJg5phG9vYtc+O3dEzIRBXnjzkm2hAIEhjgiSDkeEQeY+s0Y7ihhBwtCW7zk0VPkmVF14JyfKlWLmVA8zGsQJoa48kKHQQKxCVav4qvVm+Uzx76dWiyghjtsW205kYyt/caEPQrKBE4qU0U5rJvYbd9SvYbBNc22pT9XPbOpmzjzyH8l0wkqaFctZgg3AeVYU9MXICLLL52Km3wfR9RNM/m9oRrb9bMoSP/uuymnyzpyQpXrmW7SX4r7AKUCvAKezygXVHG2C4/3cuSnNoySDjZcIw5vtt7nJF0voAkyvZlNaJLdtR10i6vl0BWgiMEaFPnsDIQsaFk9baR1xM9dEpyt0ucFzidzb6nQqOcHVoXRaqS/aUgPXGqcX6tosINSiqgomx3wi55cHGZwfxIRtu+vxPyfHH1bzXDzbwTFo5SRMiDIOefIsNYRW4j+PLvU+6D651tZS1cDr9dYUwB/POeI9aLDq1JfAvZpB7Nf/+/hUFPJulqpEzievR7kn/08eivc6cYboVNEdbgAyIxez+smQb+rBf8wSirKiurggPIBqx5I0LDWSbOd9YgjV1uELoCtM39ss2N6BY7qXyPzbsg9HisTP4duiywXInB5p91/vEwVdY/rOtJ5qfVPT79MduWoUauHumKEPneInuqdM8BAlLkdO09RttMs2KW3ktqpIvsQMYEIOa034PWWYeHNNwe4H/Ovfu39dpzJ0rpf9Zac5Y75mR2mDk4u0LbOB5OdJY+pG6q9/JEhSKWWMN6kWS+cN93wK0CFgLAgBBoR0NstfC9jo63nMlCX+z3S+MwDd34s3vq199Rs0xWD4T1+z8IjuMSwZWn8TJuStDECa2DMMn5K+/n2uNdku9N/gIIHhzBQvVGXNgnaySQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2024 15:17:54.7049 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4ce2b8c4-72b3-43e6-c032-08dcb6f41c9d 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF0000343A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8798 Currently, the PCI subsystem unconditionally clears the memory decoding bit of devices with resource alignment specified. While drivers should call pci_enable_device() to enable memory decoding, some platforms have devices that expect memory decoding to be enabled even when no driver is bound to the device. It is assumed firmware enables memory decoding in these cases. For example, the vgacon driver uses the 0xb8000 buffer to display a console without any PCI involvement, yet, on some platforms, memory decoding must be enabled on the PCI VGA device in order for the console to be displayed properly. Restore the memory decoding bit after the resource has been reallocated. Signed-off-by: Stewart Hildebrand --- v2->v3: * no change v1->v2: * capitalize subject text * reword commit message Testing notes / how to check if your platform needs memory decoding enabled in order to use vgacon: 1. Boot your system with a monitor attached, without any driver bound to your PCI VGA device. You should see a console on your display. 2. Find the SBDF of your VGA device with lspci -v (00:01.0 in this example). 3. Disable memory decoding (replace 00:01.0 with your SBDF): $ sudo setpci -v -s 00:01.0 0x04.W=0x05 4. Type something to see if it appears on the console display 5. Re-enable memory decoding: $ sudo setpci -v -s 00:01.0 0x04.W=0x07 Relevant prior discussion at [1] [1] https://lore.kernel.org/linux-pci/20160906165652.GE1214@localhost/ --- drivers/pci/pci.c | 1 + drivers/pci/setup-bus.c | 25 +++++++++++++++++++++++++ include/linux/pci.h | 2 ++ 3 files changed, 28 insertions(+) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index acecdd6edd5a..4b97d8d5c2d8 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -6676,6 +6676,7 @@ void pci_reassigndev_resource_alignment(struct pci_dev *dev) pci_read_config_word(dev, PCI_COMMAND, &command); if (command & PCI_COMMAND_MEMORY) { + dev->dev_flags |= PCI_DEV_FLAGS_MEMORY_ENABLE; command &= ~PCI_COMMAND_MEMORY; pci_write_config_word(dev, PCI_COMMAND, command); } diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index ab7510ce6917..6847b251e19a 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -2131,6 +2131,29 @@ pci_root_bus_distribute_available_resources(struct pci_bus *bus, } } +static void restore_memory_decoding(struct pci_bus *bus) +{ + struct pci_dev *dev; + + list_for_each_entry(dev, &bus->devices, bus_list) { + struct pci_bus *b; + + if (dev->dev_flags & PCI_DEV_FLAGS_MEMORY_ENABLE) { + u16 command; + + pci_read_config_word(dev, PCI_COMMAND, &command); + command |= PCI_COMMAND_MEMORY; + pci_write_config_word(dev, PCI_COMMAND, command); + } + + b = dev->subordinate; + if (!b) + continue; + + restore_memory_decoding(b); + } +} + /* * First try will not touch PCI bridge res. * Second and later try will clear small leaf bridge res. @@ -2229,6 +2252,8 @@ void pci_assign_unassigned_root_bus_resources(struct pci_bus *bus) goto again; dump: + restore_memory_decoding(bus); + /* Dump the resource on buses */ pci_bus_dump_resources(bus); } diff --git a/include/linux/pci.h b/include/linux/pci.h index 4246cb790c7b..74636acf152f 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -245,6 +245,8 @@ enum pci_dev_flags { PCI_DEV_FLAGS_NO_RELAXED_ORDERING = (__force pci_dev_flags_t) (1 << 11), /* Device does honor MSI masking despite saying otherwise */ PCI_DEV_FLAGS_HAS_MSI_MASKING = (__force pci_dev_flags_t) (1 << 12), + /* Firmware enabled memory decoding, to be restored if BAR is updated */ + PCI_DEV_FLAGS_MEMORY_ENABLE = (__force pci_dev_flags_t) (1 << 13), }; enum pci_irq_reroute_variant { From patchwork Wed Aug 7 15:17:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 13756419 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2073.outbound.protection.outlook.com [40.107.244.73]) (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 CC95579949; Wed, 7 Aug 2024 15:18:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043887; cv=fail; b=I5mkeB4CSip+H5hxMNO3YcHZsiCUv/RYEWqX+w/m7Hhn5IAvNjV4VaFF6qPxEy2mzHu13DCYcrnIJAsBR6ODhiXLAwH7L/KzmJTt73DWNtUYowTEikPv/Ewn4MRxuVEWAOhNKI+vv14QSz/b/noCYaJiMeLrmAkYH+4PjIPCx2Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043887; c=relaxed/simple; bh=cVBsiHAWpw4OuQ18rY2DwAlgjomXyaaiypMVy4lCKug=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XKuTgu3nvOvbF03v3/vQQA0MetdXPM4Hv19RC2EYPfblfLdJDIhXou9eiJiqcaEnssUPKhGmMF327fZs66ruIiZnlgjw7Zx7nG7+ObjvhSgnvhmXnGEYtSHIiVblv+2Nqoo/lsnj9MqP874TJqYqtXhw2oMoP2pAcgSzX5IteB8= 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=1Ef+V3VR; arc=fail smtp.client-ip=40.107.244.73 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="1Ef+V3VR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Soy+P84cVw+1Ml+rKxgVXET9Pi1yPjoEVxkhGNVMey55nF/EtcXlkR6NfttBL5ctkTyapIC5SEdhQzhutUzmKqAYhoGaD73T2eOCoWTmGsUku5NGD2aiD8XBrf4fcEFUlcnC3SjbUKczP7q/jcRW94FHFHy4K7HW0kjmMsylh8S0G4SVkZZT2NKbeAe5MH63LULAdS4csGJaYl3Skxnbk+FRLiaUiQlt4ba9IdpvvqRTrJ/FqwmMwLHmB7iWNgqAJKr4a+D4NjIUXDahmY6s9mhjX9RyH+gZBDWBbLXcX91amE+Vi25ovKtJXqT2dO1S9fxR/HtXYJ621R/mCFzFvA== 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=+3wIVH/Wi3pxhDbWAVJByEUW1uhpVaxbPDKzRrzajk8=; b=LG4ImkmMs1Rt19H+1OiUUjMMlLHHITObt106fV3UhxYHzFEnyNMsH0GfZtUUPtfckBIT1FvpkWaW5gQn1mcJdizAsyZImvy+gCo7g85/tTOfkz/FQtokfx9A6gif5bOQ5cW/bBZ9+ni2I27JXkpKsnA+cF7RZtR+21DcBqtIpwgYn9JvJN4Konnre1pC7SyYM1nyEA1VdQQIIYAfKmHaIgPsx6NtbTTE3krc96t0fBM/Zl4kay/HAK04ETWerxvOgCLzwksmC2yYTvEtGtVtkCnQIqPhvoVLnhg/RUZd8Tm5c2ps+aRC1ZROSMXIBt4zafyoMgOJWJdnOy9GJOmTLg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=+3wIVH/Wi3pxhDbWAVJByEUW1uhpVaxbPDKzRrzajk8=; b=1Ef+V3VR4x7lnk70aE4vJUuZ1hYcHdcq/5tWe7ue+LbtJIcZd1rPbIuOyhO94SzS3v6OaeFycSokkpuiKTK6VYaitLyZm3wmPnQwENKyJucKPBNasdS5JHr+/sR+Y5HYjvLvJtQxmtLWHn6IJSl6vXkW7ZQZ52qYB6b2FsiVWAs= Received: from BN1PR14CA0020.namprd14.prod.outlook.com (2603:10b6:408:e3::25) by MW4PR12MB6756.namprd12.prod.outlook.com (2603:10b6:303:1e9::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.24; Wed, 7 Aug 2024 15:18:02 +0000 Received: from BL6PEPF00020E66.namprd04.prod.outlook.com (2603:10b6:408:e3:cafe::d2) by BN1PR14CA0020.outlook.office365.com (2603:10b6:408:e3::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.12 via Frontend Transport; Wed, 7 Aug 2024 15:18:02 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7849.8 via Frontend Transport; Wed, 7 Aug 2024 15:18:01 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:18:01 -0500 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:18:01 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 7 Aug 2024 10:17:59 -0500 From: Stewart Hildebrand To: Bjorn Helgaas , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Yongji Xie , =?utf-8?q?Ilpo_J=C3=A4rvinen?= CC: Stewart Hildebrand , , , Subject: [PATCH v3 5/8] x86/PCI: Preserve IORESOURCE_STARTALIGN alignment Date: Wed, 7 Aug 2024 11:17:14 -0400 Message-ID: <20240807151723.613742-6-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240807151723.613742-1-stewart.hildebrand@amd.com> References: <20240807151723.613742-1-stewart.hildebrand@amd.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E66:EE_|MW4PR12MB6756:EE_ X-MS-Office365-Filtering-Correlation-Id: 319bde24-8e79-4cc2-8d0f-08dcb6f420e3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026|7416014; X-Microsoft-Antispam-Message-Info: 07LKOlNka9VkwSer+P7P7XRoP3I6uHq5zon40mUYRulUB8UYzN8l/OJP0bBnqms/p9RfS6M9keyKZZuO4AkhZAnNjbNMfQx0gAEYfTvoajQt6Rwk8Xli7bugqj08qINfAbdYZBm5aAoOBw2epSepMOgR21+Ukco+el8jf+utEAO8U40eDBAGD63GhkspDETgRWQ8PNCUAXJ7xgZb47GOtigAdpCQVACpwDJBHM27gYk2UME7u3Vl50nX7AL9UbC/MphEg1+3wrgg19uzS2jBzQkcJvYNvT5ETYm0nzCbGKtxk7/b1EdPxrMnQ9gkdeVjx6xJY8oX2O7HxatapfMPQ1h6oA8HiR9b6lnWG0wJl91eI461Hwh+MvIE3Y6eMC0GtL0uFs9af2k9bdouCL6SvF2nCXCzXWtTJvwJJ/AQPpRjCCglm/zIjMugsD5hajyzedd5WYcdyDQTlssOEZ5aLelHoeD/VrIIKywZ0Az0Qwh4od4zEZI9RutSLZbSZIzJQZtVLfJm9K0CdyRlWbuZQX2ZbVRnpXC1+GOjLgea/zL7ywRzvLK7MnhlE2LyW7LsgufbX2nQ/e6KEKDYJGs5PEOM6SiX4Oxd7XtXTo/nl2I4rq8gh9N3lbCf+AxJQSi1pehTZ9OD5BEp2cA7L9Or4BqSCM9qtKxeoXJmbVj2/l7J52Wnk4ijyUdvFTDQQzm0JN6rxd8c3Pih5Qb/wFaI9v4v9lkZRiyIL9/QP+ylwN2L1Kj7yaOwuERyutJMDnoOf0FZNKqG2Zuu8FOzEtXvx912gBoNpuRoHnkOCavEWpMKL/KkUNIJjCok7opZR2FReGBbxnbI266O3TEAChQvQPNmH7RLr92aIOQLHc1PpEkJf4A6JMLPV7ygKVcquFoL49iY9p7w0drJ309egpG1/15iqQhaTBYpMkO6z3polOXDw7KRta2Fdq5MZrStFHUBlt7NIpznhyEGBB2M++V5uWa5AE38djA34nixlvxobz6szGkNHukhHZ8on6xIee7bxQNI198MAupe5lBCaWsJ/4Tg/bbRs2EkYV9CMP32X2zWJW4VW7pErj0eyb55xOOeE5WobewKl35C8aczB4RYkktLGwcxuypvF72+J6Ed3+ACKm3b2fBqkhr3OYS3q4qK89GTL1NyyqXEmg12rIcdL7qMsgM07yi7Itp9GPVo19iNYMkSRb6ho01cGWiyvwka9o4DL+lA88t5+7y1Fx3dYMyJVQwzRZoczzjnCHKf2U/pJUtXsDyqm1jLiwpkhkfuQx6fG9QLbVTwxzqIMvGjgEiVD8NZltBw1MOZLUC/YynfAHoactTR47XlnRhdHK6+VcvaBJ2RWZE94fCKQuoPK/RvqveJPq9QHQSF23llYHeb9GvbCtAT6ga1vt1nl6Ni+54bqWjzsqJcfmtc78V8BhojZO0VHopHtFF5bVQhJByMdMgRal2hXsymu6eTIrWZ X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2024 15:18:01.9045 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 319bde24-8e79-4cc2-8d0f-08dcb6f420e3 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E66.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6756 There is a corner case in pcibios_allocate_dev_resources() where the IORESOURCE_STARTALIGN alignment of memory BAR resources gets overwritten. This does not affect bridge resources. The corner case is not yet possible to trigger on x86, but it will be possible once the default resource alignment changes, and memory BAR resources will start to use IORESOURCE_STARTALIGN. Account for IORESOURCE_STARTALIGN in preparation for changing the default resource alignment. Skip the pcibios_save_fw_addr() call since the resource doesn't contain a valid address when alignment has been requested. The impact of this is that we won't be able to restore the firmware allocated BAR, which does not meet alignment requirements anyway. Signed-off-by: Stewart Hildebrand --- v2->v3: * no change v1->v2: * capitalize subject text * clarify commit message * skip pcibios_save_fw_addr() call --- arch/x86/pci/i386.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c index 3abd55902dbc..13d7f7ac3bde 100644 --- a/arch/x86/pci/i386.c +++ b/arch/x86/pci/i386.c @@ -256,7 +256,7 @@ static void alloc_resource(struct pci_dev *dev, int idx, int pass) if (r->flags & IORESOURCE_PCI_FIXED) { dev_info(&dev->dev, "BAR %d %pR is immovable\n", idx, r); - } else { + } else if (!(r->flags & IORESOURCE_STARTALIGN)) { /* We'll assign a new address later */ pcibios_save_fw_addr(dev, idx, r->start); r->end -= r->start; From patchwork Wed Aug 7 15:17:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 13756420 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2067.outbound.protection.outlook.com [40.107.244.67]) (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 85C4D79949; Wed, 7 Aug 2024 15:18:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043894; cv=fail; b=nSIYlFk0WiD6sYF5pnbEPeEdt2+AXJ6/6R7JyJRhQmF7b+aORLniQwuSL8A9m/IMP2vowdxliWI7/nYDYdmpqdpli/T803lb/cYZsbyQfLCbD/DduLHG8uzehPNJW8TBFR9gZl2ZUg17i/lsV/2bJruofkiqJztimAxxOLbx5tQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043894; c=relaxed/simple; bh=zqZ0swoiJmEaLzKViaoAne11xOlFO/zCamPlwIRW3P4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=L8lYcnOagBXaVimdiY3Ya3NWkINzZqwRW3DyW22u9KHzd5Gq/JJqk64O2GaaR4n00X5G0CeJGCQuvCggKQ+dKV2qltOJ87nEhGRI+x2enjX0GAK9D220d4fKvUUtaM3Qfnrt9hC5HgwcqS4CNgU18nE35KBkFZQowQ8H2IELhEs= 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=H5N6vJuZ; arc=fail smtp.client-ip=40.107.244.67 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="H5N6vJuZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UocXqFLjpS9FzTpoD1iWnKKF83LxuWIq3ckAt98AmuiWmvqWVo1U9Vr43+cWl+J2AzlYIJJuTxpqp33o1SP0pOMVd6fuZVvzd4kxW3WvzwZ8PShmcNdyc5xuf2PPRxl935xi62a2FgApL2QITu6KWcJtZcuAwpoTzucSaW/06gL0LqZMRamW0FyPRS+7IHlXOLQb1u8g2RrlwC4I6XP6cNKzkqMiAs2IhQgpcGK/APYyTkEQHPuq8qqSMYmyaM2VFnFTfoVwYppAYHzcmbXhbdJ8tcgHskBLbaWM4W3F4ntxdl9SyCeKdwWLtRWWYZ763jA+tcVfov9SNX8MM/Vdjg== 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=xQjW1+zPJyuNaM4nJsShFENsz8wXgdGK0F+W2U3VryI=; b=OtnGNZhn2SqU+Bv4hZgqNbW0jWUhMSn95x3vb4crytNs0UJJ38brLP+sCL8DJ984OtBoNMO2FxSdJl0JG7s3+vk1ayjO8sb0VG1CSEtLI5c4sBtC6iG7bUG9OVOJbaLhpFRYWAsJpHlKe7IoryLaQLb+LwWNiQnieNqwWBqtz82wZ7MyndRvj6S1o6qLUpvZchQe0SyeWkTNN7sakld05bbfvA5DCgRNZ/iO2Kdic73b73bG12IhuDAOwScAYf+vE+/zPoWrEf+E1NswO1h4sGSWAN6Y3srC0Jwbl+WwR/d8yQrtFmnrh+IHG75HF+7mOey2IFYD9waN+F6AKhbgYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=xQjW1+zPJyuNaM4nJsShFENsz8wXgdGK0F+W2U3VryI=; b=H5N6vJuZvcp7y7p7Ts4YDYpwkIPfT0IeSaK8M164WT72PjjX/WTReHMIVNMMS6ApK7vM+WoU55H6bs4uu5FzLAwThZpIs/+UigGxh5Bhr6kmmO8fQ4RCcr5ih1PLDhGiuGoYjRWcLRe5pwDod4ULiWuF258FGqeJn3zfGT1f0lM= Received: from DM5PR07CA0063.namprd07.prod.outlook.com (2603:10b6:4:ad::28) by CH2PR12MB4198.namprd12.prod.outlook.com (2603:10b6:610:7e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.12; Wed, 7 Aug 2024 15:18:09 +0000 Received: from DS2PEPF0000343E.namprd02.prod.outlook.com (2603:10b6:4:ad:cafe::d3) by DM5PR07CA0063.outlook.office365.com (2603:10b6:4:ad::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.27 via Frontend Transport; Wed, 7 Aug 2024 15:18:09 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DS2PEPF0000343E.mail.protection.outlook.com (10.167.18.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7849.8 via Frontend Transport; Wed, 7 Aug 2024 15:18:09 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:18:08 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 7 Aug 2024 10:18:06 -0500 From: Stewart Hildebrand To: Bjorn Helgaas , Michael Ellerman , Nicholas Piggin , Christophe Leroy , "Naveen N. Rao" , Thomas Zimmermann , Arnd Bergmann , "Sam Ravnborg" CC: Stewart Hildebrand , , , Subject: [PATCH v3 6/8] powerpc/pci: Preserve IORESOURCE_STARTALIGN alignment Date: Wed, 7 Aug 2024 11:17:15 -0400 Message-ID: <20240807151723.613742-7-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240807151723.613742-1-stewart.hildebrand@amd.com> References: <20240807151723.613742-1-stewart.hildebrand@amd.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PEPF0000343E:EE_|CH2PR12MB4198:EE_ X-MS-Office365-Filtering-Correlation-Id: 9166e00d-17aa-4d2b-fd6f-08dcb6f42582 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: ERSb8i+uJZA7FSaFG4UpLyp1bA59gwJp22mhZGMHzGHQ6GFQPgGorrEtAYuqcYEutJ8pd4SPR5Aix6MwmjO9oK3iiu/0K43M8xtI+HmqRVxgZ2orEiSICszzVRf+GFxQhzfhh9F9yyCwpDxV8JnpXUav3w/izG0Ni3vpPDAnAAtYbxfVCK3Fxq+XqDzP4J7wcnkU/aLUyUP2eb+X0MktfzbaeELzt69wpm1xtl7Mq7ggRRnbBJC2moC6ld9U2CEykV5zlNkZrL8VO8AwxYMriMUthReF5Zf5aPplyJTqnPe8p6Yh1NumAa/vTW7PbGb2R1d0A0ZHgwE8qwXsVLHcjSh2fHkwNKkgKeS49vWyLQo/zGgX+Kor4lUq9LrZZ+baDpLnkdnMkyrtqd47RuX/6mo+FMFVhy/13CNEp0k/18F6+PSwg2dCBPVhhwdYYhlxcJX3yJER1A4l5mCxPGRNeWOUDZZLRNP9d2/xGXxZnWRFiHxYdy4UehSNytbuDEEPtk/XcC1QNJk03+wa9HjuyNbLLyPvjAeJ8pVFDx0DZWe7+2Yfw4apVu/XGNrg4kgHQBBdWGweNVc8c8j3/gmbj72ue+YAM4+T6T4nacwbbzOUd2dwO27bZ+QX4srccS0JsQH6iF+p07XnVHUR5XAxREAE6y4USm+3qk3h+HiJFWmdbL23FKOzFFcDIFqFw/eiLnhBU4GvXfRqM86MrQEXhbK1wlsHkQBzupZjWKE+MSwOtk1uuYv7Xs/hAQRwT0bCRA791PEy+5EtywUmEyOZl2ZNwRwSTbpju9foV8VNEpdb36zEep5OS8u/vde3e6ZFTwvtyZcuXaj5/lbR7nZfnfMKHKepLNw6EI0aQJ91nAusLqy/aJqCYD61rvwOrHRgcb+/DkuWip3FiHP2nEzWSlr+SdCtF1Sh93SmyKt3Fr/8oxpPIiUuOwdXsVrDUJ1s27vw+k4Tr5sM0UvIQUpUoj2JpsKG+DiM1nFddnUEtzVVw9D5d28gwi0SktCyd5mmM3O2QGOTxCFWgjSy1+NvxoXMeK9RW6zGfUcHjEmu6KBW/HUj04Iz/8pqwkeqSF+hPGSyPjs39Yc7IXzd9dlTQqIUY5oTOWL1CysmSyCCqng0oHc5I0unjwmp4W1ZxfrA5mikI8G3jcIS7aMGSaQlDTUnkvCzR1+47wlHbiSLHKjgmxVnLfwRm5maRUJVY/LdwnreJDdJd7bf8eKzh94kwzHPIsk9c1RLK/x3BJ7kY3EI7fhJnFrgzoBdc5ohjv3mcMH0TZmVO0VtsBuBevKX7gYVNbYPWmByW010ipyFFip9ivdxMW8ELzp5ZQaFisznIIPs3A53gREWO8plphrtNrJuinQYd8FEq6S+Gtk55WCGykCkpWSt0JAG1nAeJkr7fH0TpEAjxwaLxL8871joHBONVSWT1EaYdqwLOn0ro3Sou1WQx6zSaqd+XPpYhmHM X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2024 15:18:09.6291 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9166e00d-17aa-4d2b-fd6f-08dcb6f42582 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF0000343E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4198 There is a corner case in pcibios_allocate_resources()/alloc_resource() where the IORESOURCE_STARTALIGN alignment of memory BAR resources gets overwritten. This does not affect bridge resources. Account for IORESOURCE_STARTALIGN. Signed-off-by: Stewart Hildebrand --- v2->v3: * no change v1->v2: * new patch --- arch/powerpc/kernel/pci-common.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index eac84d687b53..3f346ad641e0 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c @@ -1303,8 +1303,10 @@ static inline void alloc_resource(struct pci_dev *dev, int idx) pr_debug("PCI: parent is %p: %pR\n", pr, pr); /* We'll assign a new address later */ r->flags |= IORESOURCE_UNSET; - r->end -= r->start; - r->start = 0; + if (!(r->flags & IORESOURCE_STARTALIGN)) { + r->end -= r->start; + r->start = 0; + } } } From patchwork Wed Aug 7 15:17:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 13756422 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2056.outbound.protection.outlook.com [40.107.243.56]) (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 8073F12CDBE; Wed, 7 Aug 2024 15:18:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043913; cv=fail; b=cJa1NeGIGX9xkgf3I+jtkT9KSNbGuLLnzOXnmwSp6WYHamzgbxCQPivmG3v9qhpSvqmnttg0WlZ7p4Ce1hCgnKNGvIfEnmZ2FjziDh0j92yHIDl9WJU4bsOEIMaTx17m+378Tpy2/jckteX517Vv9qCTp97cNqliQ2CVULBhxa8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043913; c=relaxed/simple; bh=VbB9UAB9Oj402xPmMSvAP2FyTLDjGE88oel6mYb+hmU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hodkzrTlFumeYs7H+OhvZYLsIeX5T+WG53JM7sthxzgapVOHjCA18o3yKLJEdRxYOPJ/wmkimzDsTNj/S8kQT9bfF9We+3vPcXGrMV0/7zAeTpE2HwBhTSY+5POt1Rl7SM+YLn4pE5hb38iB8+60QmQrZrVCRR2KGHmRtaPIWFE= 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=Ck01tqqW; arc=fail smtp.client-ip=40.107.243.56 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="Ck01tqqW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mx9FsNRtft/essKCqi2Osw0ricyVAu9eyphvPcTyVCzRS55ETpysm4d9AjrvCDP4xV4nuofs2F0W41CXdZ5QeyDB/Nz6gzOHQGV1eBl63FiqU5RZwExkni7ZMHwDmKgWae970OHfu5VYAFiFycwGeXlYH3pd3RCtysphy4bha+CCPUs1D3jIth5XS9mfTGBSY1aT4AXjCreHI9wLUQEZyhb0QZgugcUTVbbn6+F5568fv7A3J7wOk7wTOQLjMWIckq0CG0rpmLfnzMUzt+9ttBvTsxDT4W09l0LwTjkcjIKIzga0oyw2qXP00qi6jPI6yuf4XBhLsdzJyNR14Jp9LA== 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=YUAL2p/eq8aSt7Ix7IjrN+OJU35c/19SpI61XiVbGgI=; b=wlcn0zOUtywHOwpt0k/EPPl27DfOyxQvt6AFgn/q0QvOkOjARQjBMoJGySpMc/BhC3BtpT3F6BZ8SHlOD3dksFxJVnyiQ7i1acmA/XT6VIa3rYkW8f1AgqJ3o4+a8uYhFH+ZRm21S1fUc1PWTi14dNRRNI63IhnIcQRPyHxl2zVnnNPibW/+DHowceBGfhF/QeE9npsMRnQXhm8NnrpXGXvVe+npI468/JO6KltUclSjNj5/nwY2WsdgYaLMBGm0oxl3ZzgBtTRO+8+WBmmlegB26+t1VDvoFKzJqCBNRFxiFJk/8uh4KP1Dl7xc7KXzxvh7OX/FieKqpTHYlguUQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=YUAL2p/eq8aSt7Ix7IjrN+OJU35c/19SpI61XiVbGgI=; b=Ck01tqqWvkR15OKICMdMiht91LDchLhjKaYswPDeOojsAdnSwQxegEiZy2ggpc7Jn+waZEhQGu6F0sEfqHE6/IReusCqa98GrC5Yt8tP0drccMn/2oxypeQC41avADTjfzq6KtsAcMAHRxX4BK3+prr8t0Wp3F/TR6srur0fLpY= Received: from MN2PR01CA0014.prod.exchangelabs.com (2603:10b6:208:10c::27) by CH2PR12MB4168.namprd12.prod.outlook.com (2603:10b6:610:a8::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.12; Wed, 7 Aug 2024 15:18:27 +0000 Received: from BL6PEPF00020E63.namprd04.prod.outlook.com (2603:10b6:208:10c:cafe::f9) by MN2PR01CA0014.outlook.office365.com (2603:10b6:208:10c::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.25 via Frontend Transport; Wed, 7 Aug 2024 15:18:26 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF00020E63.mail.protection.outlook.com (10.167.249.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7849.8 via Frontend Transport; Wed, 7 Aug 2024 15:18:26 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:18:14 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 7 Aug 2024 10:18:14 -0500 From: Stewart Hildebrand To: Bjorn Helgaas CC: Stewart Hildebrand , , Subject: [PATCH v3 7/8] PCI: Don't reassign resources that are already aligned Date: Wed, 7 Aug 2024 11:17:16 -0400 Message-ID: <20240807151723.613742-8-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240807151723.613742-1-stewart.hildebrand@amd.com> References: <20240807151723.613742-1-stewart.hildebrand@amd.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E63:EE_|CH2PR12MB4168:EE_ X-MS-Office365-Filtering-Correlation-Id: f3c00629-51af-4df4-342a-08dcb6f42fa9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024; X-Microsoft-Antispam-Message-Info: nt6VOfW8dTsTelTRhPOKPQplZshlBEgKJ/PuxCF8GD69tSMVUDPhd/ajj4Vu7gP22IoKZDpZadyxT8Ik7KsTs6Cv6SmsuLPGI0Y0toWgJjQn7scfo8OpLLSk1FZkwf6bMd+Qcq4xjbWFEGq8Caval2kwc1nz+otpWd2UJGkqtW8xb3Ymgc3YA/x7/WbICJcYNQR2UKVxBsLCSCdn7hAYcW1MfNOf4AX+VhJW0eXhW/RU38jxfPteTY7E1TSXsko7thOkn6jNoMxueA1Pxs9MWv+gl1WFmXewbXH5vqL/mufoVlpbd/8nYf8XaYm9rdqRNAQUZnUaWUk/lHdowG5TIOVN0rqXBoJpd8A3xyg3iFMvsZlr79FCNn8S6Uyh1ZbOArzGhTz6X1lbW1dpQi82LzTNCjiYQYjzAqQN3OI8Mzx8Vm2+C9z5QpuUojUyKhE1RfB8LTim+m+TLeT2BET7f4j7lDQW7ggAwCvJ+W835nAtMMbWXiBzLgepfzV/+RtXbadGXji0PWhUDyq2rK8IQxv9vbqo6Tr/Z0nrG2ByS0gMGBygIH6I+FtCsthuaOtUQAm0oAR2nUnaX+Xn0LTu3Vc5j/AQRZg1m+3iDFWmKcEaDwgeK0yxxl0N2y55+vxoSXZrywvrpDikC2p+p23XR/q8zW0CCeY9dFaAO0qSNactEKyabtCv1s/PDya3GJifjg+WZbNVwHf5nPvIJ/NLd5LEsyqMcebqzt4YiPN34fpdIAYQl7lX85Fmd3OHWqUNUiI/IAlIIIUjK7umsRjeOA/7bFJs10837ZHA7QioKWdoq3UB1BlPzp1wDMOYLhOaTPOFDyyCJWjsSGo7eQoU5VclAfM/97gsZ3vZ12I0Gxw3aWSWMYrecVWdRwagLHT/jgAx0NvIIPO++RnoGEptWoyFpvZjOlGsS+2Djn1wdcofARBzcaqZgUxc4Wgg4Dg9LV3eqOTOeDq+Gt8W5THLTS/HweT+TlRhtuy8FLTMLzwT5vg9iwohIgzjxMC9veGIa5t8tRT9eTpe3mtMGP9ysbthdbV89NYlbY2L46B+6v/DjOrlBX9pkxPeE1QKIJ/a+8+KNu8oF5dOjA54nA3kQyOEykoC8k6eHeLushNePssOJ2PnE4vzcGP/a8odZh5MLTHIlRjW3jRb2UgwvptHCNyCVhxQ4dyf7ISN4fZ0w+1IjioxzerdUX+v8YhSXWYPgXpX16jz7Tpb9iSr3r8f4TD6xG/vQ6ioE/pbAylUOZn/d2CKRYS2TtmlXYCHoOtzN9gYxPmeX6HrR9xDaixI5hjpDyN6MHoSXLVyxIrwDN94yCQBtjY6QV1AgH6+gB4G/x8FV/Bnekx3ZSRqMSIxG6vIB45oOkULfE6MwEaIeB3yQGjiX6k21jAtmDA6RBbEEJKS9BrbrfMwpRD5wnCVB2mfDg83IhOwXr+BteeJz+81E2dcpOPB2qb0XUBVy+7k X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2024 15:18:26.7036 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f3c00629-51af-4df4-342a-08dcb6f42fa9 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E63.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4168 As a follow-up to commit 0dde1c08d1b9 ("PCI: Don't reassign resources that are already aligned"), don't reassign already aligned resources that have requested alignment without resizing. Signed-off-by: Stewart Hildebrand --- v2->v3: * no change v1->v2: * capitalize subject text --- drivers/pci/pci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 4b97d8d5c2d8..af34407f2fb9 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -6584,6 +6584,9 @@ static bool pci_request_resource_alignment(struct pci_dev *dev, int bar, if (size >= align) return false; + if (!resize && (r->start > align) && !(r->start & (align - 1))) + return false; + /* * Increase the alignment of the resource. There are two ways we * can do this: From patchwork Wed Aug 7 15:17:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 13756421 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2068.outbound.protection.outlook.com [40.107.236.68]) (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 84EC679949; Wed, 7 Aug 2024 15:18:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043909; cv=fail; b=evZP8KJ9vfeDOZe8NmxugLyS1YaMZNjORWE/UeSE/aznfLON1e5V7ekg+ntasteO/JeZEn8/PBkMAFDt7ScYQ2xIZv6lDFTpMa7dvDZBj0n8jFsolRMq306nErZLEUROV8EKxDYlMo+IJ1FqGN0ZQ8SkV5RxZuxA/PPwTY2NmTM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723043909; c=relaxed/simple; bh=dm4vU9LmxJor9k+TGamv2Yo6oPTG7aVdDB3Sabd7v3k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pG7VthKFyqj5KwlSBOGWxbuaD70KHijjw2i7Wt7OHCn/BkYiWzua4vPthWu0QmGrKk2v+ONwaJ5wl4lRaw3qirUQ0j+T8DbRPUnyHN4HCUPmAHk4GQwDb//OFjEc6jjADhlwqISwf2aHAh2TifEdXGinKqnnVcwW9UJsqq4LpWw= 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=QubD58VG; arc=fail smtp.client-ip=40.107.236.68 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="QubD58VG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uASGWldfckLdp2Xkvl2GgXWmeH0xTG/8OvkYgW2Tijj0pD3GOBVZqzo3E9K8dApPoA1Y+Ac6smfmKMgwB88VYL2wsMhL5PRgo8Ydsw99Fui4ox6sOPB5OGrhbFkHWV4F9XQVEuMI3jF+SZj1iEeW6cTQ2vHCEOkFmO1auTfXRyBf5g4qjEVCkn8oS2/0Ft9ZQiR+rDT75cqgqU5OeNk3CKC2SEiaTjHm65vDTcc0P1nJBZ1ZryIqPphWlpbRVlltqee4yj8S69E4xC48w0RWAPu6atCakyc7ikken8nijB+/ndss0MIV9SjD4ByTZ2fFVzumhiIHq3rMfjAKz/2eEQ== 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=bFwnRwtCAegQbxdYZ9WG0kvFW7XZdhwDbKqmw1mh588=; b=v3n5YaQv9kgr5uUp/c6jTeZ2Qt3TVh2jd39tj6ycxRLbaqna6q6+/Mm8K0ku87IIY98wOM7t5VTWCpV7iouZS0K4rjryeN5Q5KFn4nxOsEv/yIKIGSyJahW7E6tzn+XWg/DmOAix2hoW07Nvkcb18bCefsoblCD0MRoPtVojUZc7y0F8GxiXMUlG20C+FGCeFkXebqE4z7zFx7dOuhiI+OVB07umpB58mYP6T6Yl0XnBasHoOxGk1YrrOZo5iwi0ai6qjo9X9O7Bb8tvG8TV/Y4u2TRvUKXa6A/USBESa6lnqCJsrSqsmxmJSDRQM+2a7FDjLyJoNtgXXXg/SAnABQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=bFwnRwtCAegQbxdYZ9WG0kvFW7XZdhwDbKqmw1mh588=; b=QubD58VGpmtaMHcNFVBXHFm4uS45F6PbmcA+61/1io3iXPECG1QHpnHiz/TJ4tq8d5jWTLkCXKFObPvuE3mvtQcFpdn5Nu2GU8H76f6unHYULHzWeN3YvyWysJqiqdHVuqLTzPl0vyRvMlKFaC3wb/Y0H+y/k+IDZfnw0I7bwSA= Received: from DM6PR07CA0126.namprd07.prod.outlook.com (2603:10b6:5:330::9) by IA0PR12MB8421.namprd12.prod.outlook.com (2603:10b6:208:40f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.12; Wed, 7 Aug 2024 15:18:22 +0000 Received: from DS2PEPF0000343A.namprd02.prod.outlook.com (2603:10b6:5:330:cafe::ad) by DM6PR07CA0126.outlook.office365.com (2603:10b6:5:330::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.12 via Frontend Transport; Wed, 7 Aug 2024 15:18:22 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DS2PEPF0000343A.mail.protection.outlook.com (10.167.18.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7849.8 via Frontend Transport; Wed, 7 Aug 2024 15:18:22 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 7 Aug 2024 10:18:21 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 7 Aug 2024 10:18:20 -0500 From: Stewart Hildebrand To: Bjorn Helgaas , =?utf-8?q?Ilpo_J=C3=A4rvinen?= CC: Stewart Hildebrand , , Subject: [PATCH v3 8/8] PCI: Align small BARs Date: Wed, 7 Aug 2024 11:17:17 -0400 Message-ID: <20240807151723.613742-9-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240807151723.613742-1-stewart.hildebrand@amd.com> References: <20240807151723.613742-1-stewart.hildebrand@amd.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PEPF0000343A:EE_|IA0PR12MB8421:EE_ X-MS-Office365-Filtering-Correlation-Id: 2c9e4a61-4369-46eb-1628-08dcb6f42d09 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: 6D66cjtFM25064WASyk9G3DAy78Qz0DlmgQcK7HCNVUajBpwTAfqTMhJXQIx2wUSvhu3jh2RSuH8iytreuOO5KdQZPrnZvReRmWtv7MB79X46thbvDkvucmSyqHnhPET1muCdADMSFtF+QuDh3HLIyHy3+QiDtm2PJs0xtiqM9yULexSOQOI37To+0rvjQBGJMkXOYcIpLNikcQ7XYgEIWgEYuCl8sx7WT9Uv+f4aeRgk3/Xv+O9KnKRPHTrW/qpAgjHmie00uVXdx0qJHgLiGBk53rw7+psmdiQ56KM5Q4crdjPOKHFaFhfCZ0LXPMrUHLXaRD96fIMbvZknDnQ3nAzODR+2ikPUWdVwUkBxSrn2FFhztZoms5uCXJTqRFE7GwG2Jz8QaBevdGu4uYGVh9MRmRJV/DzPRB7tyVhghwwm7OpmlZV5huw5//pTlYQUdFtSI/jzSLMJrTx3w4ABF41vJnCClm1589484ahd25bJXUWWOaOgKZIgtmE0Eap4HUyh79gH87JtAyqWVgncqFYYLNclogWi3SSBlysqjtVI9TEGYTWtjTRzv5v5C3QdJtAlp3keKp6KhKNPn8+jvFoyuNrsb8VGw3NEvkIyFrvdZYUFfjBaYPVL6+malME9GXbYUucHyp1MsneAaj7qsFWvER1o0AFAq5QECm5g9p9w9Qn28To6WivKI71IVMBl++gyXDSI3PdiZ76mz3hu0KjRDS11J/zGDx1TN6vOJ+6037ViaH+sFcjLTjJATwts/qVn5IVEWSq7DPrpM59ODF5BM+nFSPrt/Mrq8Pm+96RdBZD/S/nzItqYNI0lCMpLp3hX6p0fMA4t4TJwNUbsniOIjX/kpqnLrZw7jtmhporc+Oj/n+KIp0Tpq+J9aaMyAfia+jMRWUfLVql7NXGOAohGtBcPTa5lPzIknREMJkCvRjkuzc63KXCBjZu3u/ZTvR759QTUum0Cp8cPcCQsPjYTVmBFQl7etP+eYhYK+SNsdQRl8A3Vy885j/qc4Dh6Flvi5B/0LBHyDles7eKTLdm6zGI1vUyyu+6sJHK5NFTea7ZDVplRioq+wXHEErFCKdeMVF4k55cNfGu5tf8z5nUtXs7bSr4M3IKqLUrcAHFTTFJmNf2vNLuGlU0bvEYOKY3U5dBRnrvGbFftt0dMSZQ+w3TYOJD1ts1+DGhtOXVI5H9NrMyR0e7ywgaaDMdxfLQXWobN+I0o8eSHHyRCUyYLwIBOOPQjMH5+/rip3xt2BKVt0VU7FnTE9erUpZDF8YCvK4h0AaG62wRSvbSH3UF7JVFN4qbcvq1opmQoXU9l3eCmaTVkqQEZuj7YKB9VyF7uzZPWMdcOcVUn9TEZBy8kZfdya/26VRXyDN4IH8pMkU8oRgaNFPa0reKMFZZiW4YsxgI55UbZZJLr55tgKn/H0z1IPwy/cPGEOyRGN+A1j6F1+2XUTaLUUYXLKoG X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2024 15:18:22.2519 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2c9e4a61-4369-46eb-1628-08dcb6f42d09 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF0000343A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8421 In this context, "small" is defined as less than max(SZ_4K, PAGE_SIZE). Issues observed when small BARs are not sufficiently aligned are: 1. Devices to be passed through (to e.g. a Xen HVM guest) with small BARs require each memory BAR to be page aligned. Currently, the only way to guarantee this alignment from a user perspective is to fake the size of the BARs using the pci=resource_alignment= option. This is a bad user experience, and faking the BAR size is not always desirable. For example, pcitest is a tool that is useful for PCI passthrough validation with Xen, but pcitest fails with a fake BAR size. 2. Devices with multiple small BARs could have the MSI-X tables located in one of its small BARs. This may lead to the MSI-X tables being mapped in the same 4k region as other data. The PCIe 6.1 specification (section 7.7.2 MSI-X Capability and Table Structure) says we probably should avoid that. To improve the user experience (i.e. don't require the user to specify pci=resource_alignment=), and increase conformance to PCIe spec, set the default minimum resource alignment of memory BARs to the greater of 4k or PAGE_SIZE. Quoting the comment in drivers/pci/pci.c:pci_request_resource_alignment(), there are two ways we can increase the resource alignment: 1) Increase the size of the resource. BARs are aligned on their size, so when we reallocate space for this resource, we'll allocate it with the larger alignment. This also prevents assignment of any other BARs inside the alignment region, so if we're requesting page alignment, this means no other BARs will share the page. The disadvantage is that this makes the resource larger than the hardware BAR, which may break drivers that compute things based on the resource size, e.g., to find registers at a fixed offset before the end of the BAR. 2) Retain the resource size, but use IORESOURCE_STARTALIGN and set r->start to the desired alignment. By itself this doesn't prevent other BARs being put inside the alignment region, but if we realign *every* resource of every device in the system, none of them will share an alignment region. Changing pcibios_default_alignment() results in the second method of alignment with IORESOURCE_STARTALIGN. The new default alignment may be overridden by arches by implementing pcibios_default_alignment(), or by the user on a per-device basis with the pci=resource_alignment= option (although this reverts to using IORESOURCE_SIZEALIGN). Signed-off-by: Stewart Hildebrand --- Preparatory patches in this series are prerequisites to this patch. v2->v3: * new subject (was: "PCI: Align small (<4k) BARs") * clarify 4k vs PAGE_SIZE in commit message v1->v2: * capitalize subject text * s/4 * 1024/SZ_4K/ * #include * update commit message * use max(SZ_4K, PAGE_SIZE) for alignment value --- drivers/pci/pci.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index af34407f2fb9..efdd5b85ea8c 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "pci.h" DEFINE_MUTEX(pci_slot_mutex); @@ -6484,7 +6485,12 @@ struct pci_dev __weak *pci_real_dma_dev(struct pci_dev *dev) resource_size_t __weak pcibios_default_alignment(void) { - return 0; + /* + * Avoid MSI-X tables being mapped in the same 4k region as other data + * according to PCIe 6.1 specification section 7.7.2 MSI-X Capability + * and Table Structure. + */ + return max(SZ_4K, PAGE_SIZE); } /*