Date: Sun, 7 Jan 2007 15:05:08 GMT From: Paolo Pisati <piso@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 112652 for review Message-ID: <200701071505.l07F58TH025751@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=112652 Change 112652 by piso@piso_newluxor on 2007/01/07 15:04:26 Do not pass down the interrupt source, use intr_event->ie_source instead. Affected files ... .. //depot/projects/soc2006/intr_filter/amd64/amd64/intr_machdep.c#17 edit .. //depot/projects/soc2006/intr_filter/arm/arm/intr.c#16 edit .. //depot/projects/soc2006/intr_filter/i386/i386/intr_machdep.c#24 edit .. //depot/projects/soc2006/intr_filter/ia64/ia64/interrupt.c#16 edit .. //depot/projects/soc2006/intr_filter/kern/kern_intr.c#28 edit .. //depot/projects/soc2006/intr_filter/powerpc/powerpc/intr_machdep.c#22 edit .. //depot/projects/soc2006/intr_filter/sparc64/sparc64/intr_machdep.c#16 edit .. //depot/projects/soc2006/intr_filter/sys/interrupt.h#13 edit Differences ... ==== //depot/projects/soc2006/intr_filter/amd64/amd64/intr_machdep.c#17 (text+ko) ==== @@ -274,7 +274,7 @@ if (vector == 0) clkintr_pending = 1; - res = intr_event_handle(ie, frame, intr_eoi_src, intr_disab_eoi_src, isrc); + res = intr_event_handle(ie, frame, intr_eoi_src, intr_disab_eoi_src); switch(res) { case 0: break; ==== //depot/projects/soc2006/intr_filter/arm/arm/intr.c#16 (text+ko) ==== @@ -142,7 +142,7 @@ intrcnt[intrcnt_tab[i]]++; event = intr_events[i]; intr_event_handle(event, frame, intr_eoi_src_stub, - intr_disab_eoi_src, (void *)i); + intr_disab_eoi_src); } } ==== //depot/projects/soc2006/intr_filter/i386/i386/intr_machdep.c#24 (text+ko) ==== @@ -262,7 +262,7 @@ if (vector == 0) clkintr_pending = 1; - res = intr_event_handle(ie, frame, intr_eoi_src, intr_disab_eoi_src, isrc); + res = intr_event_handle(ie, frame, intr_eoi_src, intr_disab_eoi_src); switch(res) { case 0: break; ==== //depot/projects/soc2006/intr_filter/ia64/ia64/interrupt.c#16 (text+ko) ==== @@ -406,7 +406,7 @@ atomic_add_long(i->cntp, 1); res = intr_event_handle(i->event, frame, intr_eoi_src, - intr_disab_eoi_src_stub, (void *)vector); + intr_disab_eoi_src_stub); switch (res) { case 0: break; ==== //depot/projects/soc2006/intr_filter/kern/kern_intr.c#28 (text+ko) ==== @@ -985,8 +985,6 @@ * handlers as their main argument. * o intr_eoi_src(): turn off an irq. * o intr_disab_eoi_src(): mask and turn off an irq. - * o arg: struct intsrc passed to the 2 previous - * intr_*_src() functions or NULL. * * NOTA BENE: i386 and amd64 handle their * interrupt controllers through the @@ -1007,8 +1005,7 @@ */ int intr_event_handle(struct intr_event *ie, struct trapframe *frame, - void (*intr_eoi_src)(void *), void (*intr_disab_eoi_src)(void *), - void *arg) + void (*intr_eoi_src)(void *), void (*intr_disab_eoi_src)(void *)) { struct intr_thread *ithd; struct thread *td; @@ -1031,9 +1028,9 @@ * it an EOI. */ if (thread & FILTER_HANDLED) - intr_eoi_src(arg); + intr_eoi_src(ie->ie_source); else - intr_disab_eoi_src(arg); + intr_disab_eoi_src(ie->ie_source); critical_exit(); /* Interrupt storm logic */ ==== //depot/projects/soc2006/intr_filter/powerpc/powerpc/intr_machdep.c#22 (text+ko) ==== @@ -290,7 +290,7 @@ KASSERT(ie != NULL, ("%s: interrupt without an event", __func__)); res = intr_event_handle(ie, NULL, intr_eoi_src, - intr_disab_eoi_src_stub, (void *)irq); + intr_disab_eoi_src_stub); switch(res) { case 0: break; ==== //depot/projects/soc2006/intr_filter/sparc64/sparc64/intr_machdep.c#16 (text+ko) ==== @@ -273,7 +273,7 @@ iv = cookie; ie = iv->iv_event; res = intr_event_handle(ie, NULL, intr_eoi_src_stub, - intr_disab_eoi_src_stub, NULL); + intr_disab_eoi_src_stub); switch (res) { case 0: break; ==== //depot/projects/soc2006/intr_filter/sys/interrupt.h#13 (text+ko) ==== @@ -120,8 +120,7 @@ void intr_eoi_src_stub(void *arg __unused); void intr_disab_eoi_src_stub(void *arg __unused); int intr_event_handle(struct intr_event *ie, struct trapframe *frame, - void (*intr_eoi_src)(void *), void (*intr_disab_eoi_src)(void *), - void *arg); + void (*intr_eoi_src)(void *), void (*intr_disab_eoi_src)(void *)); u_char intr_priority(enum intr_type flags); int intr_event_add_handler(struct intr_event *ie, const char *name, driver_filter_t filter, driver_intr_t handler, void *arg, u_char pri, enum intr_type flags,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200701071505.l07F58TH025751>