From: "Krzysztof Wilczyński" <kwilczynski@kernel.org>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: "Bjorn Helgaas" <helgaas@kernel.org>,
"Manivannan Sadhasivam" <mani@kernel.org>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Alex Williamson" <alex@shazbot.org>,
"Magnus Lindholm" <linmag7@gmail.com>,
"Matt Turner" <mattst88@gmail.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Christophe Leroy" <chleroy@kernel.org>,
"Madhavan Srinivasan" <maddy@linux.ibm.com>,
"Michael Ellerman" <mpe@ellerman.id.au>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Dexuan Cui" <decui@microsoft.com>,
"Krzysztof Hałasa" <khalasa@piap.pl>,
"Lukas Wunner" <lukas@wunner.de>,
"Oliver O'Halloran" <oohall@gmail.com>,
"Saurabh Singh Sengar" <ssengar@microsoft.com>,
"Shuan He" <heshuan@bytedance.com>,
"Srivatsa Bhat" <srivatsabhat@microsoft.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
linux-pci@vger.kernel.org, linux-alpha@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org
Subject: [PATCH v7 23/24] PCI/sysfs: Remove pci_create_legacy_files() and pci_sysfs_init()
Date: Fri, 8 May 2026 04:35:42 +0000 [thread overview]
Message-ID: <20260508043543.217179-24-kwilczynski@kernel.org> (raw)
In-Reply-To: <20260508043543.217179-1-kwilczynski@kernel.org>
Currently, pci_create_legacy_files() and pci_remove_legacy_files() are
no-op stubs. With legacy attributes now handled by static groups
registered via pcibus_groups[], no call site needs them.
Remove both functions, their declarations, and the call sites in
pci_register_host_bridge(), pci_alloc_child_bus(), and pci_remove_bus().
Remove the pci_sysfs_init() late_initcall and sysfs_initialized. The
late_initcall originally existed to create all the dynamic PCI sysfs
files, but with both resource and legacy attributes now handled by
static groups, it is no longer needed.
Remove the legacy_io and legacy_mem fields from struct pci_bus which
were used to track the dynamically allocated legacy attributes.
Tested-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
---
drivers/pci/pci-sysfs.c | 21 ---------------------
drivers/pci/pci.h | 8 --------
drivers/pci/probe.c | 6 ------
drivers/pci/remove.c | 2 --
include/linux/pci.h | 2 --
5 files changed, 39 deletions(-)
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 868b42420358..f5427bcfb0cc 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -37,10 +37,6 @@
#define ARCH_PCI_DEV_GROUPS
#endif
-#ifdef HAVE_PCI_LEGACY
-static int sysfs_initialized; /* = 0 */
-#endif
-
/* show configuration fields */
#define pci_config_attr(field, format_string) \
static ssize_t \
@@ -1094,8 +1090,6 @@ static const struct attribute_group pci_legacy_mem_sparse_group = {
.is_bin_visible = pci_legacy_mem_sparse_is_visible,
};
-void pci_create_legacy_files(struct pci_bus *b) { }
-void pci_remove_legacy_files(struct pci_bus *b) { }
#endif /* HAVE_PCI_LEGACY */
const struct attribute_group *pcibus_groups[] = {
@@ -1782,21 +1776,6 @@ static const struct attribute_group pci_dev_resource_resize_attr_group = {
.is_visible = resource_resize_attr_is_visible,
};
-#ifdef HAVE_PCI_LEGACY
-static int __init pci_sysfs_init(void)
-{
- struct pci_bus *pbus = NULL;
-
- sysfs_initialized = 1;
-
- while ((pbus = pci_find_next_bus(pbus)))
- pci_create_legacy_files(pbus);
-
- return 0;
-}
-late_initcall(pci_sysfs_init);
-#endif
-
static struct attribute *pci_dev_dev_attrs[] = {
&dev_attr_boot_vga.attr,
&dev_attr_serial_number.attr,
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index c64c7f5f0bcf..4d17dab4662c 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -358,14 +358,6 @@ static inline int pci_proc_detach_bus(struct pci_bus *bus) { return 0; }
int pci_hp_add_bridge(struct pci_dev *dev);
bool pci_hp_spurious_link_change(struct pci_dev *pdev);
-#if defined(CONFIG_SYSFS) && defined(HAVE_PCI_LEGACY)
-void pci_create_legacy_files(struct pci_bus *bus);
-void pci_remove_legacy_files(struct pci_bus *bus);
-#else
-static inline void pci_create_legacy_files(struct pci_bus *bus) { }
-static inline void pci_remove_legacy_files(struct pci_bus *bus) { }
-#endif
-
/* Lock for read/write access to pci device and bus lists */
extern struct rw_semaphore pci_bus_sem;
extern struct mutex pci_slot_mutex;
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index b63cd0c310bc..748c7a198262 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1073,9 +1073,6 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
dev_err(&bus->dev, "failed to add bus: %d\n", err);
}
- /* Create legacy_io and legacy_mem files for this bus */
- pci_create_legacy_files(bus);
-
if (parent)
dev_info(parent, "PCI host bridge to bus %s\n", name);
else
@@ -1281,9 +1278,6 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,
dev_err(&child->dev, "failed to add bus: %d\n", ret);
}
- /* Create legacy_io and legacy_mem files for this bus */
- pci_create_legacy_files(child);
-
return child;
}
diff --git a/drivers/pci/remove.c b/drivers/pci/remove.c
index 6e796dbc5b29..d8bffa21498a 100644
--- a/drivers/pci/remove.c
+++ b/drivers/pci/remove.c
@@ -65,8 +65,6 @@ void pci_remove_bus(struct pci_bus *bus)
list_del(&bus->node);
pci_bus_release_busn_res(bus);
up_write(&pci_bus_sem);
- pci_remove_legacy_files(bus);
-
if (bus->ops->remove_bus)
bus->ops->remove_bus(bus);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index e37677a8dd3c..74b767012766 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -726,8 +726,6 @@ struct pci_bus {
pci_bus_flags_t bus_flags; /* Inherited by child buses */
struct device *bridge;
struct device dev;
- struct bin_attribute *legacy_io; /* Legacy I/O for this bus */
- struct bin_attribute *legacy_mem; /* Legacy mem */
unsigned int is_added:1;
unsigned int unsafe_warn:1; /* warned about RW1C config write */
unsigned int flit_mode:1; /* Link in Flit mode */
--
2.54.0
next prev parent reply other threads:[~2026-05-08 4:37 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-08 4:35 [PATCH v7 00/24] PCI: Convert all dynamic sysfs attributes to static Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 01/24] PCI/sysfs: Use PCI resource accessor macros Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 02/24] PCI: Add pci_resource_is_io() and pci_resource_is_mem() helpers Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 03/24] PCI/sysfs: Only allow supported resource types in I/O and MMIO helpers Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 04/24] PCI/sysfs: Split pci_llseek_resource() for device and legacy attributes Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 05/24] PCI/sysfs: Add CAP_SYS_ADMIN check to __resource_resize_store() Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 06/24] PCI/sysfs: Add static PCI resource attribute macros Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 07/24] PCI/sysfs: Convert PCI resource files to static attributes Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 08/24] PCI/sysfs: Warn about BAR resize failure in __resource_resize_store() Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 09/24] PCI/sysfs: Add stubs for pci_{create,remove}_sysfs_dev_files() Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 10/24] PCI/sysfs: Limit pci_sysfs_init() late_initcall compile scope Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 11/24] alpha/PCI: Add security_locked_down() check to pci_mmap_resource() Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 12/24] alpha/PCI: Use BAR index in sysfs attr->private instead of resource pointer Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 13/24] alpha/PCI: Use PCI resource accessor macros Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 14/24] alpha/PCI: Fix __pci_mmap_fits() overflow for zero-length BARs Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 15/24] alpha/PCI: Remove WARN from __pci_mmap_fits() and __legacy_mmap_fits() Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 16/24] alpha/PCI: Add static PCI resource attribute macros Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 17/24] alpha/PCI: Convert resource files to static attributes Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 18/24] PCI/sysfs: Remove pci_{create,remove}_sysfs_dev_files() Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 19/24] PCI: Add macros for legacy I/O and memory address space sizes Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 20/24] alpha/PCI: Compute legacy size in pci_mmap_legacy_page_range() Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 21/24] PCI/sysfs: Add __weak pci_legacy_has_sparse() helper Krzysztof Wilczyński
2026-05-08 4:35 ` [PATCH v7 22/24] PCI/sysfs: Convert legacy I/O and memory attributes to static definitions Krzysztof Wilczyński
2026-05-08 4:35 ` Krzysztof Wilczyński [this message]
2026-05-08 4:35 ` [PATCH v7 24/24] PCI/sysfs: Limit BAR resize attribute scope to platforms with PCI mmap Krzysztof Wilczyński
2026-05-08 23:00 ` [PATCH v7 00/24] PCI: Convert all dynamic sysfs attributes to static Bjorn Helgaas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260508043543.217179-24-kwilczynski@kernel.org \
--to=kwilczynski@kernel.org \
--cc=alex@shazbot.org \
--cc=bhelgaas@google.com \
--cc=chleroy@kernel.org \
--cc=decui@microsoft.com \
--cc=helgaas@kernel.org \
--cc=heshuan@bytedance.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=khalasa@piap.pl \
--cc=linmag7@gmail.com \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lpieralisi@kernel.org \
--cc=lukas@wunner.de \
--cc=maddy@linux.ibm.com \
--cc=mani@kernel.org \
--cc=mattst88@gmail.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=oohall@gmail.com \
--cc=richard.henderson@linaro.org \
--cc=srivatsabhat@microsoft.com \
--cc=ssengar@microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox