aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/cardbus/cardbus.c2
-rw-r--r--sys/kern/subr_bus.c13
-rw-r--r--sys/mips/nlm/xlp_pci.c2
-rw-r--r--sys/powerpc/ofw/ofw_pcibus.c2
-rw-r--r--sys/sparc64/pci/ofw_pcibus.c2
-rw-r--r--sys/sys/bus.h1
6 files changed, 18 insertions, 4 deletions
diff --git a/sys/dev/cardbus/cardbus.c b/sys/dev/cardbus/cardbus.c
index 765c1700dd28..400475379d96 100644
--- a/sys/dev/cardbus/cardbus.c
+++ b/sys/dev/cardbus/cardbus.c
@@ -346,7 +346,7 @@ static device_method_t cardbus_methods[] = {
DEVMETHOD(bus_get_dma_tag, bus_generic_get_dma_tag),
DEVMETHOD(bus_read_ivar, cardbus_read_ivar),
DEVMETHOD(bus_driver_added, cardbus_driver_added),
- DEVMETHOD(bus_rescan, kobj_error_method),
+ DEVMETHOD(bus_rescan, bus_null_rescan),
/* Card Interface */
DEVMETHOD(card_attach_card, cardbus_attach_card),
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index 968cb99f8e50..6ee7e18c8605 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -4289,6 +4289,19 @@ bus_generic_get_domain(device_t dev, device_t child, int *domain)
return (ENOENT);
}
+/**
+ * @brief Helper function for implementing BUS_RESCAN().
+ *
+ * This null implementation of BUS_RESCAN() always fails to indicate
+ * the bus does not support rescanning.
+ */
+int
+bus_null_rescan(device_t dev)
+{
+
+ return (ENXIO);
+}
+
/*
* Some convenience functions to make it easier for drivers to use the
* resource-management functions. All these really do is hide the
diff --git a/sys/mips/nlm/xlp_pci.c b/sys/mips/nlm/xlp_pci.c
index 43b1574ae83d..51ae2b746c0a 100644
--- a/sys/mips/nlm/xlp_pci.c
+++ b/sys/mips/nlm/xlp_pci.c
@@ -154,7 +154,7 @@ static device_method_t xlp_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, xlp_pci_probe),
DEVMETHOD(device_attach, xlp_pci_attach),
- DEVMETHOD(bus_rescan, kobj_error_method),
+ DEVMETHOD(bus_rescan, bus_null_rescan),
DEVMETHOD_END
};
diff --git a/sys/powerpc/ofw/ofw_pcibus.c b/sys/powerpc/ofw/ofw_pcibus.c
index 05aa06c3961a..92022b504167 100644
--- a/sys/powerpc/ofw/ofw_pcibus.c
+++ b/sys/powerpc/ofw/ofw_pcibus.c
@@ -77,7 +77,7 @@ static device_method_t ofw_pcibus_methods[] = {
/* Bus interface */
DEVMETHOD(bus_child_deleted, ofw_pcibus_child_deleted),
DEVMETHOD(bus_child_pnpinfo_str, ofw_pcibus_child_pnpinfo_str_method),
- DEVMETHOD(bus_rescan, kobj_error_method),
+ DEVMETHOD(bus_rescan, bus_null_rescan),
/* PCI interface */
DEVMETHOD(pci_alloc_devinfo, ofw_pcibus_alloc_devinfo),
diff --git a/sys/sparc64/pci/ofw_pcibus.c b/sys/sparc64/pci/ofw_pcibus.c
index 2fa289fa6b91..51d89565d53d 100644
--- a/sys/sparc64/pci/ofw_pcibus.c
+++ b/sys/sparc64/pci/ofw_pcibus.c
@@ -81,7 +81,7 @@ static device_method_t ofw_pcibus_methods[] = {
/* Bus interface */
DEVMETHOD(bus_child_deleted, ofw_pcibus_child_deleted),
DEVMETHOD(bus_child_pnpinfo_str, ofw_pcibus_pnpinfo_str),
- DEVMETHOD(bus_rescan, kobj_error_method),
+ DEVMETHOD(bus_rescan, bus_null_rescan),
/* PCI interface */
DEVMETHOD(pci_alloc_devinfo, ofw_pcibus_alloc_devinfo),
diff --git a/sys/sys/bus.h b/sys/sys/bus.h
index 85cfb0ec4aed..4992cdb4847e 100644
--- a/sys/sys/bus.h
+++ b/sys/sys/bus.h
@@ -430,6 +430,7 @@ int bus_generic_teardown_intr(device_t dev, device_t child,
struct resource *irq, void *cookie);
int bus_generic_write_ivar(device_t dev, device_t child, int which,
uintptr_t value);
+int bus_null_rescan(device_t dev);
/*
* Wrapper functions for the BUS_*_RESOURCE methods to make client code