PERFORCE change 112652 for review
Paolo Pisati
piso at FreeBSD.org
Sun Jan 7 07:05:09 PST 2007
http://perforce.freebsd.org/chv.cgi?CH=112652
Change 112652 by piso at 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,
More information about the p4-projects
mailing list