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