Re: Patch: Generic TODR for ARM ports
Peter Postma <[email protected]> Sun, 24 Sep 2006 20:54:49 +0200
| Newsgroups | gmane.os.netbsd.ports.hpcarm |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Sep 18, 2006 at 07:58:51PM +0200, Peter Postma wrote: > On Sun, Sep 17, 2006 at 07:37:26PM -0700, Garrett D'Amore wrote: > > Peter Postma wrote: > > > On Sun, Sep 17, 2006 at 09:15:55AM -0700, Garrett D'Amore wrote: > > >> The double selection messages suggest that you need to update the kernel > > >> from CVS. A change was made to todr to prevent tc_windup() from getting > > >> called with interrupts enabled -- I think that is what has happened > > >> here. (You should not see double messages like this.) > > > > > > I believe that I'm up to date :-) which revisions should I have? > > > > 1.12 of kern_tc.c is what you need. > > > > This version calls tc_windup() inside splclock(). Earlier versions didn't. > > I'm at 1.12. I debugged a bit and it seems that when I change the splclock() > to splhigh(), the double messages are gone. So this might be a hpcarm > specific problem. > A simple work-around is to replace the following line in hpcarm/intr.c: spl_masks[_SPL_CLOCK] = imask[IPL_CLOCK]; with spl_masks[_SPL_CLOCK] = imask[IPL_HIGH]; I wonder if this would be acceptable as _temporary_ fix? A too much blocking splclock seems better to me as a not blocking clock interrupts splclock. -- Peter Postma