From 0111d600f0f456d09eb0ff6ac217fa5f30ae79ab Mon Sep 17 00:00:00 2001 From: Jeremy Linton Date: Sun, 8 Mar 2026 23:59:30 -0500 Subject: [PATCH 1/4] PCI: of: Reduce severity of missing of_root error message Arm64 kernels are frequently built dual ACPI/DT, and then boot in ACPI mode. In this case, there won't be an of_root, except for rare DT described PCIe boards. As a result, users in the common case see this high priority worrying message, despite the machine working as expected. Reduce this message to pr_debug() to avoid unnecessary noise. Signed-off-by: Jeremy Linton Signed-off-by: Bjorn Helgaas Link: https://patch.msgid.link/20260309045930.21531-1-jeremy.linton@arm.com --- drivers/pci/of.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/of.c b/drivers/pci/of.c index 9f8eb5df279e..0eba56e0ebcd 100644 --- a/drivers/pci/of.c +++ b/drivers/pci/of.c @@ -775,7 +775,7 @@ void of_pci_make_host_bridge_node(struct pci_host_bridge *bridge) /* Check if there is a DT root node to attach the created node */ if (!of_root) { - pr_err("of_root node is NULL, cannot create PCI host bridge node\n"); + pr_debug("of_root node is NULL, cannot create PCI host bridge node\n"); return; } From 0026bb20d12531ca2925b60bf081cc8be910ccf9 Mon Sep 17 00:00:00 2001 From: Richard Cheng Date: Thu, 12 Mar 2026 19:54:41 +0800 Subject: [PATCH 2/4] PCI: Use pr_warn_once() for ACS parameter parse failure When the ACS command line parameter cannot be parsed, the kernel skips applying the requested ACS override. This indicates an invalid boot parameter and should not be logged at informational level. Use pr_warn_once() so the message is surfaced as a warning while still avoiding repeated log spam during device enumeration. Signed-off-by: Richard Cheng Signed-off-by: Bjorn Helgaas Acked-by: Tushar Dave Link: https://patch.msgid.link/20260312115441.8168-1-icheng@nvidia.com --- drivers/pci/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 8479c2e1f74f..af735748a4a4 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -949,7 +949,7 @@ static void __pci_config_acs(struct pci_dev *dev, struct pci_acs *caps, ret = pci_dev_str_match(dev, p, &p); if (ret < 0) { - pr_info_once("PCI: Can't parse ACS command line parameter\n"); + pr_warn_once("PCI: Can't parse ACS command line parameter\n"); break; } else if (ret == 1) { /* Found a match */ From 47e2a338222c902dc44f4f6e29eb236a68600ef4 Mon Sep 17 00:00:00 2001 From: Li RongQing Date: Mon, 16 Mar 2026 20:28:03 -0400 Subject: [PATCH 3/4] PCI/sysfs: Suppress FW_BUG warning when NUMA node already matches The numa_node sysfs interface allows users to manually override a PCI device's NUMA node assignment. Currently, every write triggers a FW_BUG warning and taints the kernel, even when writing the same value that is already set. Check if the requested node is already assigned to the device. If it matches, return success immediately without tainting the kernel or printing a warning. Signed-off-by: Li RongQing Signed-off-by: Bjorn Helgaas Link: https://patch.msgid.link/20260317002803.2353-1-lirongqing@baidu.com --- drivers/pci/pci-sysfs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 16eaaf749ba9..dd7c9e5f993e 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c @@ -378,6 +378,9 @@ static ssize_t numa_node_store(struct device *dev, if (node != NUMA_NO_NODE && !node_online(node)) return -EINVAL; + if (node == dev->numa_node) + return count; + add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); pci_alert(pdev, FW_BUG "Overriding NUMA node to %d. Contact your vendor for updates.", node); From 7010f13acd3828056e50badb5138bf9ca21ddd8f Mon Sep 17 00:00:00 2001 From: Julian Braha Date: Mon, 30 Mar 2026 22:45:49 +0100 Subject: [PATCH 4/4] PCI: Clean up dead code in Kconfig There is already an 'if PCI' condition wrapping several config options, e.g., PCI_DOMAINS and VGA_ARB, making the 'depends on PCI' statement for each of these a duplicate dependency (dead code). Leave the outer 'if PCI...endif' and remove the individual 'depends on PCI' statement from each option. This dead code was found by kconfirm, a static analysis tool for Kconfig. Signed-off-by: Julian Braha Signed-off-by: Bjorn Helgaas Link: https://patch.msgid.link/20260330214549.16157-1-julianbraha@gmail.com --- drivers/pci/Kconfig | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index e3f848ffb52a..33c88432b728 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -31,7 +31,6 @@ if PCI config PCI_DOMAINS bool - depends on PCI config PCI_DOMAINS_GENERIC bool @@ -255,7 +254,7 @@ config PCI_DYNAMIC_OF_NODES choice prompt "PCI Express hierarchy optimization setting" default PCIE_BUS_DEFAULT - depends on PCI && EXPERT + depends on EXPERT help MPS (Max Payload Size) and MRRS (Max Read Request Size) are PCIe device parameters that affect performance and the ability to @@ -272,20 +271,17 @@ choice config PCIE_BUS_TUNE_OFF bool "Tune Off" - depends on PCI help Use the BIOS defaults; don't touch MPS at all. This is the same as booting with 'pci=pcie_bus_tune_off'. config PCIE_BUS_DEFAULT bool "Default" - depends on PCI help Default choice; ensure that the MPS matches upstream bridge. config PCIE_BUS_SAFE bool "Safe" - depends on PCI help Use largest MPS that boot-time devices support. If you have a closed system with no possibility of adding new devices, this @@ -294,7 +290,6 @@ config PCIE_BUS_SAFE config PCIE_BUS_PERFORMANCE bool "Performance" - depends on PCI help Use MPS and MRRS for best performance. Ensure that a given device's MPS is no larger than its parent MPS, which allows us to @@ -303,7 +298,6 @@ config PCIE_BUS_PERFORMANCE config PCIE_BUS_PEER2PEER bool "Peer2peer" - depends on PCI help Set MPS = 128 for all devices. MPS configuration effected by the other options could cause the MPS on one root port to be @@ -317,7 +311,7 @@ endchoice config VGA_ARB bool "VGA Arbitration" if EXPERT default y - depends on (PCI && !S390) + depends on !S390 select SCREEN_INFO if X86 help Some "legacy" VGA devices implemented on PCI typically have the same @@ -340,4 +334,4 @@ source "drivers/pci/endpoint/Kconfig" source "drivers/pci/switch/Kconfig" source "drivers/pci/pwrctrl/Kconfig" -endif +endif # PCI