Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Jan 2007 14:12:34 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Paolo Pisati <piso@freebsd.org>
Cc:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   Re: PERFORCE change 112554 for review
Message-ID:  <200701051412.35212.jhb@freebsd.org>
In-Reply-To: <200701051901.l05J17RW001347@repoman.freebsd.org>
References:  <200701051901.l05J17RW001347@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 05 January 2007 14:01, Paolo Pisati wrote:
> http://perforce.freebsd.org/chv.cgi?CH=112554
> 
> Change 112554 by piso@piso_newluxor on 2007/01/05 19:00:07
> 
> 	Enable the irq line just after the filter claimed the interrupt.

More likely is that it shouldnt' disable the IRQ line except in the 
disable_eoi_source callback.

> Affected files ...
> 
> .. //depot/projects/soc2006/intr_filter/powerpc/powerpc/intr_machdep.c#19 
edit
> 
> Differences ...
> 
> ==== //depot/projects/soc2006/intr_filter/powerpc/powerpc/intr_machdep.c#19 
(text+ko) ====
> 
> @@ -262,6 +262,15 @@
>  	}
>  }
>  
> +static void
> +intr_eoi_src(void *arg)
> +{
> +	uintptr_t nb;
> +
> +	nb = (uintptr_t)arg;
> +	irq_enable(nb);
> +}
> +
>  void
>  intr_handle(u_int irq)
>  {
> @@ -280,13 +289,12 @@
>  	ie = i->event;
>  	KASSERT(ie != NULL, ("%s: interrupt without an event", __func__));
>  
> -	res = handle_intr(ie, NULL, intr_eoi_src_stub, 
> -	    intr_disab_eoi_src_stub, NULL);
> +	res = handle_intr(ie, NULL, intr_eoi_src, 
> +	    intr_disab_eoi_src_stub, (void *)irq);
>  	switch(res) {
>  	case 0:
> -		break;
> +		/* FALLTHROUGH */
>  	case ECHILD:
> -		irq_enable(irq);
>  		break;
>  	case EINVAL:
>  		stray_int(irq);
> 

-- 
John Baldwin



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