Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Jun 2007 22:10:18 GMT
From:      Paolo Pisati <piso@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 120736 for review
Message-ID:  <200706012210.l51MAIGW065769@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=120736

Change 120736 by piso@piso_newluxor on 2007/06/01 22:09:18

	Clear the interrupt in case a filter is run, or do that after the
	ithread ran.

Affected files ...

.. //depot/projects/soc2006/intr_filter/sparc64/fhc/fhc.c#10 edit

Differences ...

==== //depot/projects/soc2006/intr_filter/sparc64/fhc/fhc.c#10 (text+ko) ====

@@ -398,13 +398,13 @@
 	struct fhc_clr *fc = arg;
 	int res;
 
-	if (fc->fc_filter != NULL)
+	if (fc->fc_filter != NULL) {
 		res = fc->fc_filter(fc->fc_arg);
-	else 
-		res = FILTER_HANDLED | FILTER_SCHEDULE_THREAD;
+		bus_space_write_4(fc->fc_bt, fc->fc_bh, FHC_ICLR, 0x0);
+		bus_space_read_4(fc->fc_bt, fc->fc_bh, FHC_ICLR);
+	} else 
+		res = FILTER_SCHEDULE_THREAD;
 
-	bus_space_write_4(fc->fc_bt, fc->fc_bh, FHC_ICLR, 0x0);
-	bus_space_read_4(fc->fc_bt, fc->fc_bh, FHC_ICLR);
 	return (res);
 }
 
@@ -414,6 +414,10 @@
 	struct fhc_clr *fc = arg;
 
 	fc->fc_func(fc->fc_arg);
+	if (fc->fc_filter == NULL) {
+		bus_space_write_4(fc->fc_bt, fc->fc_bh, FHC_ICLR, 0x0);
+		bus_space_read_4(fc->fc_bt, fc->fc_bh, FHC_ICLR);
+	}
 }
 
 static struct resource *



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200706012210.l51MAIGW065769>