Date: Mon, 24 Jul 2006 13:28:20 GMT From: Paolo Pisati <piso@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 102279 for review Message-ID: <200607241328.k6ODSKc9087140@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=102279 Change 102279 by piso@piso_newluxor on 2006/07/24 13:27:43 Mark with XXX_FILTER all the functions that override bus_generic_setup_intr() and keep a copy of driver_intr_t intr: if they keep a reference to *intr, maybe they want a copy of *filter too?!?!? Mark this code with a well known string, so people with better knowledge of what's going on, can easily find all these spots and fix them. Affected files ... .. //depot/projects/soc2006/intr_filter/dev/ata/ata-cbus.c#4 edit .. //depot/projects/soc2006/intr_filter/dev/ata/ata-pci.c#3 edit .. //depot/projects/soc2006/intr_filter/dev/pccard/pccard.c#3 edit .. //depot/projects/soc2006/intr_filter/dev/pccbb/pccbb.c#5 edit .. //depot/projects/soc2006/intr_filter/dev/pccbb/pccbbvar.h#4 edit .. //depot/projects/soc2006/intr_filter/dev/puc/puc.c#7 edit .. //depot/projects/soc2006/intr_filter/dev/scc/scc_core.c#8 edit .. //depot/projects/soc2006/intr_filter/dev/sound/isa/gusc.c#3 edit .. //depot/projects/soc2006/intr_filter/dev/sound/isa/sbc.c#4 edit .. //depot/projects/soc2006/intr_filter/dev/sound/pci/csa.c#3 edit .. //depot/projects/soc2006/intr_filter/sparc64/fhc/fhc.c#3 edit .. //depot/projects/soc2006/intr_filter/sparc64/pci/psycho.c#6 edit .. //depot/projects/soc2006/intr_filter/sparc64/sbus/sbus.c#6 edit Differences ... ==== //depot/projects/soc2006/intr_filter/dev/ata/ata-cbus.c#4 (text+ko) ==== @@ -194,6 +194,9 @@ struct ata_cbus_controller *controller = device_get_softc(dev); int unit = ((struct ata_channel *)device_get_softc(child))->unit; + /* + * XXX_FILTER this code doesn't take care of filters. + */ controller->interrupt[unit].function = intr; controller->interrupt[unit].argument = arg; *cookiep = controller; ==== //depot/projects/soc2006/intr_filter/dev/ata/ata-pci.c#3 (text+ko) ==== @@ -345,7 +345,10 @@ else { struct ata_pci_controller *controller = device_get_softc(dev); int unit = ((struct ata_channel *)device_get_softc(child))->unit; - + + /* + * XXX_FILTER this code doesn't take care of filters. + */ controller->interrupt[unit].function = function; controller->interrupt[unit].argument = argument; *cookiep = controller; ==== //depot/projects/soc2006/intr_filter/dev/pccard/pccard.c#3 (text+ko) ==== @@ -1224,6 +1224,9 @@ pf, cookiep); if (err != 0) return (err); + /* + * XXX_FILTER this code doesn't take care of filters. + */ pf->intr_handler = intr; pf->intr_handler_arg = arg; pf->intr_handler_cookie = *cookiep; ==== //depot/projects/soc2006/intr_filter/dev/pccbb/pccbb.c#5 (text+ko) ==== @@ -368,6 +368,9 @@ if (ih == NULL) return (ENOMEM); *cookiep = ih; + /* + * XXX_FILTER this code doesn't take care of filters. + */ ih->intr = intr; ih->arg = arg; ih->sc = sc; ==== //depot/projects/soc2006/intr_filter/dev/pccbb/pccbbvar.h#4 (text+ko) ==== @@ -31,14 +31,7 @@ * Structure definitions for the Cardbus Bridge driver */ -/* - * XXX this structure and all the code that manipulates - * it don't support interrupt filter model. - */ struct cbb_intrhand { -#if 0 - driver_filter_t *filter; -#endif driver_intr_t *intr; void *arg; struct cbb_softc *sc; ==== //depot/projects/soc2006/intr_filter/dev/puc/puc.c#7 (text+ko) ==== @@ -637,6 +637,9 @@ sc->sc_serdevs |= 1UL << (port->p_nr - 1); port->p_hasintr = 1; + /* + * XXX_FILTER this code doesn't take care of filters. + */ port->p_ih = (driver_intr_t *)filter; port->p_iharg = arg; ==== //depot/projects/soc2006/intr_filter/dev/scc/scc_core.c#8 (text) ==== @@ -533,6 +533,9 @@ m = device_get_ivars(child); m->m_hasintr = 1; + /* + * XXX_FILTER this code doesn't take care of filters. + */ m->m_fastintr = IS_FAST(filter, ihand) ? 1 : 0; m->ih = ihand; m->ih_arg = arg; ==== //depot/projects/soc2006/intr_filter/dev/sound/isa/gusc.c#3 (text+ko) ==== @@ -426,10 +426,16 @@ devclass = device_get_devclass(child); if (strcmp(devclass_get_name(devclass), "midi") == 0) { + /* + * XXX_FILTER this code doesn't take care of filters. + */ scp->midi_intr.intr = intr; scp->midi_intr.arg = arg; return 0; } else if (strcmp(devclass_get_name(devclass), "pcm") == 0) { + /* + * XXX_FILTER this code doesn't take care of filters. + */ scp->pcm_intr.intr = intr; scp->pcm_intr.arg = arg; return 0; ==== //depot/projects/soc2006/intr_filter/dev/sound/isa/sbc.c#4 (text+ko) ==== @@ -521,6 +521,9 @@ i = 0; while ((ret == 0) && (i < INTR_MAX)) { if (ihl->intr[i] == NULL) { + /* + * XXX_FILTER this code doesn't take care of filters. + */ ihl->intr[i] = intr; ihl->intr_arg[i] = arg; *cookiep = &ihl->intr[i]; ==== //depot/projects/soc2006/intr_filter/dev/sound/pci/csa.c#3 (text+ko) ==== @@ -460,11 +460,17 @@ switch (func->func) { case SCF_PCM: + /* + * XXX_FILTER this code doesn't take care of filters. + */ scp->pcmintr = intr; scp->pcmintr_arg = arg; break; case SCF_MIDI: + /* + * XXX_FILTER this code doesn't take care of filters. + */ scp->midiintr = intr; scp->midiintr_arg = arg; break; ==== //depot/projects/soc2006/intr_filter/sparc64/fhc/fhc.c#3 (text+ko) ==== @@ -238,6 +238,9 @@ fc = malloc(sizeof(*fc), M_DEVBUF, M_WAITOK | M_ZERO); if (fc == NULL) return (0); + /* + * XXX_FILTER this code doesn't take care of filters. + */ fc->fc_func = func; fc->fc_arg = arg; fc->fc_bt = bt; ==== //depot/projects/soc2006/intr_filter/sparc64/pci/psycho.c#6 (text+ko) ==== @@ -988,6 +988,9 @@ device_printf(dev, "%s: INO %d, map %#lx, clr %#lx\n", __func__, ino, (u_long)intrmapptr, (u_long)intrclrptr); #endif + /* + * XXX_FILTER this code doesn't take care of filters. + */ pc->pci_sc = sc; pc->pci_arg = arg; pc->pci_handler = intr; ==== //depot/projects/soc2006/intr_filter/sparc64/sbus/sbus.c#6 (text+ko) ==== @@ -693,6 +693,9 @@ panic("%s: IRQ not found!", __func__); } + /* + * XXX_FILTER this code doesn't take care of filters. + */ scl->scl_sc = sc; scl->scl_arg = arg; scl->scl_handler = intr;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607241328.k6ODSKc9087140>