Subject: re: anyone booted sun2 or sun3 kernels in the last 3 months?
To: None <port-sun2@netbsd.org, port-sun3@netbsd.org, yamt@netbsd.org>
From: matthew green <mrg@eterna.com.au>
List: port-sun3
Date: 06/24/2006 12:45:54
this seems grody but seems to work.. perhaps the right fix is to just
redefine IPL_SOFT* back to the _IPL_SOFT_LEVEL_* constants?
.mrg.
Index: sun68k/isr.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sun68k/sun68k/isr.c,v
retrieving revision 1.8
diff -p -r1.8 isr.c
*** sun68k/isr.c 29 Mar 2006 08:55:40 -0000 1.8
--- sun68k/isr.c 24 Jun 2006 02:44:09 -0000
*************** softintr_init(void)
*** 303,316 ****
void *
softintr_establish(int ipl, void (*func)(void *), void *arg)
{
struct softintr_handler *sh;
struct softintr_head *shd;
! ipl &= ~PSL_S;
! if (ipl < _IPL_SOFT_LEVEL_MIN || ipl > _IPL_SOFT_LEVEL_MAX)
! panic("softintr_establish: unsupported soft IPL");
! shd = &soft_level_heads[ipl - _IPL_SOFT_LEVEL_MIN];
sh = malloc(sizeof(*sh), M_SOFTINTR, M_NOWAIT);
if (sh == NULL)
--- 303,322 ----
void *
softintr_establish(int ipl, void (*func)(void *), void *arg)
{
+ int ix;
struct softintr_handler *sh;
struct softintr_head *shd;
! if (ipl == IPL_SOFTCLOCK)
! ix = 0;
! else if (ipl == IPL_SOFTNET)
! ix = 1;
! else if (ipl == IPL_SOFTSERIAL)
! ix = 2;
! else
! panic("softintr_establish: unsupported soft IPL %d", ipl);
! shd = &soft_level_heads[ix];
sh = malloc(sizeof(*sh), M_SOFTINTR, M_NOWAIT);
if (sh == NULL)