Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Mar 2007 16:14:00 GMT
From:      Paolo Pisati <piso@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 115279 for review
Message-ID:  <200703031614.l23GE0QR013965@repoman.freebsd.org>

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

Change 115279 by piso@piso_newluxor on 2007/03/03 16:13:42

	Restore pccard ability to support filtered drivers:
	
	o check for filter and ithread handlers
	o fix pccard_intr() return code

Affected files ...

.. //depot/projects/soc2006/intr_filter/dev/pccard/pccard.c#7 edit

Differences ...

==== //depot/projects/soc2006/intr_filter/dev/pccard/pccard.c#7 (text+ko) ====

@@ -119,7 +119,7 @@
 		    int rid, struct resource *r);
 static void	pccard_child_detached(device_t parent, device_t dev);
 static int      pccard_filter(void *arg);
-static int	pccard_intr(void *arg);
+static void	pccard_intr(void *arg);
 static int	pccard_setup_intr(device_t dev, device_t child,
 		    struct resource *irq, int flags, driver_filter_t *filt, 
 		    driver_intr_t *intr, void *arg, void **cookiep);
@@ -1235,13 +1235,13 @@
 	struct pccard_function *pf = ivar->pf;
 	int err;
 
-	if (pf->intr_handler != NULL)
+	if (pf->intr_filter != NULL || pf->intr_handler != NULL)
 		panic("Only one interrupt handler per function allowed");
 	err = bus_generic_setup_intr(dev, child, irq, flags, pccard_filter, 
 	    pccard_intr, pf, cookiep);
 	if (err != 0)
 		return (err);
-	pf->intr_filter = filter;
+	pf->intr_filter = filt;
 	pf->intr_handler = intr;
 	pf->intr_handler_arg = arg;
 	pf->intr_handler_cookie = *cookiep;



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