Subject: port-alpha/33218: splraiseipl/softintr_establish problem
To: None <port-alpha-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: None <yamt@mwd.biglobe.ne.jp>
List: netbsd-bugs
Date: 04/08/2006 14:35:00
>Number:         33218
>Category:       port-alpha
>Synopsis:       splraiseipl/softintr_establish problem
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-alpha-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 08 14:35:00 +0000 2006
>Originator:     YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
>Release:        NetBSD 3.99.16
>Organization:

>Environment:
	
	
Architecture: alpha
Machine: alpha
>Description:
	after splraiseipl change, softintr_establish() expects SI_* argument,
	while it's actually IPL_*.
	it happens to work because IPL_SOFT == SI_SOFTNET.

	(it's impossible for softintr_establish to get SI_* from given IPL_*,
	because all of IPL_SOFT* are the same value.)
>How-To-Repeat:
	code inspection.
>Fix:
	one of the followings?

	- coalesce softintr queues into a single queue.
	- change one of splraiseipl or softintr_establish, so that
	  they don't share IPL_ constants.
	- make IPL_SOFT* different each other, and have a simple conversion
	  in both of splraiseipl and softintr_establish.

>Unformatted: