From: Alexander Polakov Date: Fri, 16 Oct 2009 16:02:13 +0000 (+0400) Subject: BUS_CONFIG_INTR takes 2 devices now: parent and child X-Git-Url: https://gitweb.dragonflybsd.org/~polachok/dragonfly.git/commitdiff_plain/edb0c031396c07e022abb0fd4b6ce554e24e5544 BUS_CONFIG_INTR takes 2 devices now: parent and child We have to pass child as other BUS_ function do to be able to actually do something useful (like configure APIC). --- diff --git a/sys/kern/bus_if.m b/sys/kern/bus_if.m index ca68f203ee..77d11a274e 100644 --- a/sys/kern/bus_if.m +++ b/sys/kern/bus_if.m @@ -318,6 +318,7 @@ METHOD int child_location_str { # METHOD int config_intr { device_t _dev; + device_t _child; int _irq; enum intr_trigger _trig; enum intr_polarity _pol; diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 943aa7e2e1..0059dcdafd 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -2533,12 +2533,12 @@ bus_generic_enable_intr(device_t dev, device_t child, void *cookie) } int -bus_generic_config_intr(device_t dev, int irq, enum intr_trigger trig, +bus_generic_config_intr(device_t dev, device_t child, int irq, enum intr_trigger trig, enum intr_polarity pol) { /* Propagate up the bus hierarchy until someone handles it. */ if (dev->parent) - return(BUS_CONFIG_INTR(dev->parent, irq, trig, pol)); + return(BUS_CONFIG_INTR(dev->parent, child, irq, trig, pol)); else return(EINVAL); } diff --git a/sys/sys/bus.h b/sys/sys/bus.h index a374363fa1..cbf4722740 100644 --- a/sys/sys/bus.h +++ b/sys/sys/bus.h @@ -236,7 +236,7 @@ struct resource * struct resource_list * bus_generic_get_resource_list (device_t, device_t); -int bus_generic_config_intr(device_t, int, enum intr_trigger, +int bus_generic_config_intr(device_t, device_t, int, enum intr_trigger, enum intr_polarity); int bus_generic_attach(device_t dev); int bus_generic_child_present(device_t dev, device_t child);