resource: Per-CPU hardware resources support, step 5 of many
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 9 Oct 2011 14:00:33 +0000 (22:00 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 9 Oct 2011 14:00:33 +0000 (22:00 +0800)
Fix up cpuid parameter passed to resource_list_add() after
bus_set_resource and bus_alloc_resource DEVMETHODs have cpuid
parameter.

sys/bus/pccard/pccard.c
sys/bus/pci/pci.c
sys/dev/misc/puc/puc.c
sys/dev/netif/ndis/if_ndis_pccard.c

index 40d70d1..3af2b36 100644 (file)
@@ -482,7 +482,8 @@ pccard_function_init(struct pccard_function *pf)
                        if (r == NULL)
                                goto not_this_one;
                        resource_list_add(rl, SYS_RES_IRQ, rid,
-                           rman_get_start(r), rman_get_end(r), 1, -1);
+                           rman_get_start(r), rman_get_end(r), 1,
+                           rman_get_cpuid(r));
                        rle = resource_list_find(rl, SYS_RES_IRQ, rid);
                        if (rle == NULL)
                                panic("Cannot add resource rid %d IRQ", rid);
index 4537100..610ed62 100644 (file)
@@ -43,6 +43,7 @@
 #include <sys/queue.h>
 #include <sys/sysctl.h>
 #include <sys/endian.h>
+#include <sys/machintr.h>
 
 #include <vm/vm.h>
 #include <vm/pmap.h>
@@ -2860,7 +2861,8 @@ pci_assign_interrupt(device_t bus, device_t dev, int force_route)
        }
 
        /* Add this IRQ as rid 0 interrupt resource. */
-       resource_list_add(&dinfo->resources, SYS_RES_IRQ, 0, irq, irq, 1, -1);
+       resource_list_add(&dinfo->resources, SYS_RES_IRQ, 0, irq, irq, 1,
+           machintr_intr_cpuid(irq));
 }
 
 void
index 367b662..156ca92 100644 (file)
@@ -293,7 +293,7 @@ puc_pci_attach(device_t dev)
                resource_list_add(&pdev->resources, SYS_RES_IRQ, 0,
                    rman_get_start(sc->irqres), rman_get_end(sc->irqres),
                    rman_get_end(sc->irqres) - rman_get_start(sc->irqres) + 1,
-                   -1);
+                   rman_get_cpuid(sc->irqres));
                rle = resource_list_find(&pdev->resources, SYS_RES_IRQ, 0);
                rle->res = sc->irqres;
 
@@ -302,7 +302,7 @@ puc_pci_attach(device_t dev)
                resource_list_add(&pdev->resources, SYS_RES_IOPORT, 0,
                    rman_get_start(res) + sc->sc_desc->ports[i].offset,
                    rman_get_end(res) + sc->sc_desc->ports[i].offset + 8 - 1,
-                   8);
+                   8, -1);
                rle = resource_list_find(&pdev->resources, SYS_RES_IOPORT, 0);
 
                if (sc->barmuxed == 0) {
index a49ab68..cd8a0d9 100644 (file)
@@ -215,7 +215,8 @@ ndis_attach_pccard(device_t dev)
        }
        sc->ndis_rescnt++;
        resource_list_add(&sc->ndis_rl, SYS_RES_IRQ, rid,
-           rman_get_start(sc->ndis_irq), rman_get_start(sc->ndis_irq), 1, -1);
+           rman_get_start(sc->ndis_irq), rman_get_start(sc->ndis_irq), 1,
+           rman_get_cpuid(sc->ndis_irq));
 
        sc->ndis_iftype = PCMCIABus;