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-sun2
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)