Re: powerpc/pic/intr.c IPL_HIGH vs IPL_NONE
Matt Thomas <[email protected]>
| Newsgroups | gmane.os.netbsd.ports.bebox,gmane.os.netbsd.ports.powerpc,gmane.os.netbsd.current |
|---|---|
| Message-ID | <[email protected]> |
On Jan 3, 2013, at 4:25 AM, Frank Wille wrote: > On Thu, 03 Jan 2013 19:59:34 +0900 (JST) > KIYOHARA Takashi <[email protected]> wrote: > >> I will commit this change. >> >> Index: intr.c >> =================================================================== >> RCS file: /cvsroot/src/sys/arch/powerpc/pic/intr.c,v >> retrieving revision 1.23 >> diff -u -r1.23 intr.c >> --- intr.c 31 Aug 2012 13:12:52 -0000 1.23 >> +++ intr.c 3 Jan 2013 10:57:03 -0000 >> @@ -213,7 +213,7 @@ >> ih->ih_fun = ih_fun; >> ih->ih_arg = ih_arg; >> ih->ih_next = NULL; >> - ih->ih_ipl = ipl; >> + ih->ih_ipl = maxipl; >> ih->ih_virq = virq; >> *p = ih; > > IMHO this is not correct, although it is a workaround for your actual problem. Actually I think the pic should be entered with IPL_HIGH and let the lower priority interrupts (if any) be serviced by the pending int mechanism. Note that any sources with an IPL_HIGH can be serviced directly. > You would lose the ability that a hwirq is interrupted by the same hwirq > with a higher priority (from a different device, sharing the same hwirq). The above allows higher priority interrupts to interrupt lower priority ones.