Port-sun2 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: anyone booted sun2 or sun3 kernels in the last 3 months?



mrg%eterna.com.au@localhost 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



Home | Main Index | Thread Index | Old Index