{"id":2215479,"url":"http://patchwork.ozlabs.org/api/patches/2215479/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260324165633.4583-11-ilpo.jarvinen@linux.intel.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260324165633.4583-11-ilpo.jarvinen@linux.intel.com>","list_archive_url":null,"date":"2026-03-24T16:56:33","name":"[10/10] PCI: Fix alignment calculation for resource size larger than align","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"986c32aec75d938b464e905c5de0d4b28367981b","submitter":{"id":83553,"url":"http://patchwork.ozlabs.org/api/people/83553/?format=json","name":"Ilpo Järvinen","email":"ilpo.jarvinen@linux.intel.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260324165633.4583-11-ilpo.jarvinen@linux.intel.com/mbox/","series":[{"id":497318,"url":"http://patchwork.ozlabs.org/api/series/497318/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=497318","date":"2026-03-24T16:56:23","name":"PCI: Improve head free space usage","version":1,"mbox":"http://patchwork.ozlabs.org/series/497318/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2215479/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2215479/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-50939-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=fdPQijol;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-50939-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=\"fdPQijol\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=198.175.65.15","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.intel.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fgGhh07hMz1y1G\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 04:08:36 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 0D2E8317F246\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 24 Mar 2026 17:01:19 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 387A31EDA0F;\n\tTue, 24 Mar 2026 17:01:02 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [198.175.65.15])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id F23973115B8;\n\tTue, 24 Mar 2026 17:01:00 +0000 (UTC)","from orviesa002.jf.intel.com ([10.64.159.142])\n  by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 24 Mar 2026 10:01:00 -0700","from ijarvine-mobl1.ger.corp.intel.com (HELO localhost)\n ([10.245.244.217])\n  by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 24 Mar 2026 10:00:51 -0700"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774371662; cv=none;\n b=bdnoWWxeXrQzt1FN4n6Qndyco4N/QXkAQ2BP35KTCd5BBQvcbHhTvjdft59uPy42y/+55aEpXGWHe7i4nnBZjCS+cj6qViT7oAtNxZyylUszwaCM5ycpzrGNHc5A12GWIjWoLIMnMDbEhlUPxXxoK+5tjWkyMMX46tSqGZhUfQ0=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774371662; c=relaxed/simple;\n\tbh=9odwDAEObJO7qnios8NXzgvO+dTMZAcsFe/K0R+E/MA=;\n\th=From:To:Subject:Date:Message-Id:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=dz8buy6NrMvHEuJeaMG8i6+QpWlF0/o6n8B84FoaHtEp+7dfVzE1GQ9OPZR5klMjQ0Pa9dAJDP2hANhrA8/FExiAxUy6lyIMT5vUrF4bAxeLye95fm03bNbtWLGdHMkRwP2wVxBezDJ3upc0Yzgk/c+DuSMN6YdghNt2ykUrl0A=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com;\n spf=pass smtp.mailfrom=linux.intel.com;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=fdPQijol; arc=none smtp.client-ip=198.175.65.15","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1774371661; x=1805907661;\n  h=from:to:subject:date:message-id:in-reply-to:references:\n   mime-version:content-transfer-encoding;\n  bh=9odwDAEObJO7qnios8NXzgvO+dTMZAcsFe/K0R+E/MA=;\n  b=fdPQijolZkoXol/SJjY9hE/6J/JsbNRtcOlCVyTorpTSwk4ilWQf/TaX\n   4rD2fvqdo6LKiW1t0Ty2ARTtwmKUFFD1y9oK+dgYErHx0/omftpHJ2FBa\n   yeAnTfR/4k0PCTtuiQyrSyECYD1njslGbXRuD+Z1mi8o52J5MQFiGbFUt\n   +oGJGI9yreoxBbMHs2sZJQX3IS4lBsPpht/SuXgnj4otysdvjWy+9wJ/y\n   rOKglWHDPFh0d4OQy7klkNmLT+VjCeNuP1YBnsCGGuZo8dSKDzf7HXgR4\n   yhhKnAi21Wt8b6VceHySmB9X0jsoCI91T4JqBQQS/cNuomStObv3HvCld\n   Q==;","X-CSE-ConnectionGUID":["B8fCFw4oTI2UOKipbgp4Yg==","hHMisBSDR/+i1mWAm9Fh8g=="],"X-CSE-MsgGUID":["fq/wCFxbR5i90z+MO4XFWw==","e4f6sgI4SzaAnXpv3WumJQ=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11739\"; a=\"78991839\"","E=Sophos;i=\"6.23,138,1770624000\";\n   d=\"scan'208\";a=\"78991839\"","E=Sophos;i=\"6.23,138,1770624000\";\n   d=\"scan'208\";a=\"254912161\""],"X-ExtLoop1":"1","From":"=?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>","To":"linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,\n Guenter Roeck <linux@roeck-us.net>, linux-alpha@vger.kernel.org,\n linux-arm-kernel@lists.infradead.org, linux-m68k@lists.linux-m68k.org,\n linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,\n linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,\n linux-sh@vger.kernel.org, Russell King <linux@armlinux.org.uk>,\n Geert Uytterhoeven <geert@linux-m68k.org>,\n Thomas Bogendoerfer <tsbogend@alpha.franken.de>,\n \"James E.J. Bottomley\" <James.Bottomley@HansenPartnership.com>,\n Helge Deller <deller@gmx.de>, Michael Ellerman <mpe@ellerman.id.au>,\n Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,\n Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,\n \"H. Peter Anvin\" <hpa@zytor.com>, Chris Zankel <chris@zankel.net>,\n Max Filippov <jcmvbkbc@gmail.com>, Madhavan Srinivasan <maddy@linux.ibm.com>,\n Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>,\n John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>, =?utf-8?q?Ilpo_J?=\n\t=?utf-8?q?=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>,\n linux-kernel@vger.kernel.org","Subject":"[PATCH 10/10] PCI: Fix alignment calculation for resource size larger\n than align","Date":"Tue, 24 Mar 2026 18:56:33 +0200","Message-Id":"<20260324165633.4583-11-ilpo.jarvinen@linux.intel.com>","X-Mailer":"git-send-email 2.39.5","In-Reply-To":"<20260324165633.4583-1-ilpo.jarvinen@linux.intel.com>","References":"<20260324165633.4583-1-ilpo.jarvinen@linux.intel.com>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit"},"content":"The commit bc75c8e50711 (\"PCI: Rewrite bridge window head alignment\nfunction\") did not use if (r_size <= align) check from pbus_size_mem()\nfor the new head alignment bookkeeping structure (aligns2[]). In some\nconfigurations, this can result in producing a gap into the bridge\nwindow which the resource larger than its alignment cannot fill.\n\nThe old alignment calculation algorithm was removed by the subsequent\ncommit 3958bf16e2fe (\"PCI: Stop over-estimating bridge window size\")\nwhich renamed the aligns2[] array leaving only aligns[] array.\n\nAdd the if (r_size <= align) check back to avoid this problem.\n\nFixes: bc75c8e50711 (\"PCI: Rewrite bridge window head alignment function\")\nCloses: https://lore.kernel.org/all/b05a6f14-979d-42c9-924c-d8408cb12ae7@roeck-us.net/\nReported-by: Guenter Roeck <linux@roeck-us.net>\nSigned-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>\n---\n drivers/pci/setup-bus.c | 9 ++++++++-\n 1 file changed, 8 insertions(+), 1 deletion(-)","diff":"diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c\nindex edc0d682dcad..e5af8799c36f 100644\n--- a/drivers/pci/setup-bus.c\n+++ b/drivers/pci/setup-bus.c\n@@ -1333,7 +1333,14 @@ static void pbus_size_mem(struct pci_bus *bus, struct resource *b_res,\n \t\t\tr_size = resource_size(r);\n \t\t\tsize += max(r_size, align);\n \n-\t\t\taligns[order] += align;\n+\t\t\t/*\n+\t\t\t * If resource's size is larger than its alignment,\n+\t\t\t * some configurations result in an unwanted gap in\n+\t\t\t * the head space that the larger resource cannot\n+\t\t\t * fill.\n+\t\t\t */\n+\t\t\tif (r_size <= align)\n+\t\t\t\taligns[order] += align;\n \t\t\tif (order > max_order)\n \t\t\t\tmax_order = order;\n \t\t}\n","prefixes":["10/10"]}