Re: anyone booted sun2 or sun3 kernels in the last 3 months?
Izumi Tsutsui <[email protected]> Sat, 24 Jun 2006 12:08:30 +0900
| Newsgroups | gmane.os.netbsd.ports.sun3,gmane.os.netbsd.ports.sun2 |
|---|---|
| Message-ID | <[email protected]> |
[email protected] wrote: > what happens is that we have: > > #define _IPL_SOFT_LEVEL_MIN 1 > #define _IPL_SOFT_LEVEL_MAX 3 > > but > > #define IPL_SOFTNET (PSL_S|PSL_IPL1) > > and > > #define PSL_IPL1 0x0100 /* interrupt priority level 1 */ > #define PSL_S 0x2000 /* supervisor enable bit */ > > and then in sun68k/isr.c we have: > > softintr_establish(int ipl, void (*func)(void *), void *arg) > ... > ipl &= ~PSL_S; > if (ipl < _IPL_SOFT_LEVEL_MIN || ipl > _IPL_SOFT_LEVEL_MAX) > panic("softintr_establish: unsupported soft IPL %d", ipl); > > ipl = PSL_IPL1 at this point. the caller is just a few lines above > this in softintr_init(): > > softnet_cookie = softintr_establish(IPL_SOFTNET, > (void (*)(void *)) netintr, NULL); > > what's the right fix here? I guess the problem is that IPL_* macros are now defined as arguments passed to splraseipl() (in <sys/spl.h>) for each spl levels but some ports already have had their own usage/meanings of IPL_* macros. As noted in PR 33218, maybe it's better to introduce new macro for splraisespl() args or MD usage of IPL_*. (Note sun3 doesn't use sun68k/isr.c and doesn't have generic software interrupts yet) --- Izumi Tsutsui