Subject: Re: splusb()
To: SODA Noriyuki <soda@sra.co.jp>
From: Iain Hibbert <plunky@rya-online.net>
List: tech-kern
Date: 04/29/2006 11:39:23
On Sat, 29 Apr 2006, SODA Noriyuki wrote:

> >     * we have no splhard<something>() so splhardusb/splusb don't
> >     follow our naming convention. Most likely we would need to make
> >     splsoftusb == current splusb and make splhardusb == splusb.
>
> One of confusing part is that interrupt handlers which are protected
> by splhardusb() are called with IPL_USB (== IPL_BIO) level, and
> interrupt handlers which are protected by splusb() level are called
> with IPL_SOFTNET (in the __HAVE_GENERIC_SOFT_INTERRUPTS case) or
> IPL_SOFTCLOCK (in !defined(__HAVE_GENERIC_SOFT_INTERRUPTS) level ;)

I do think we should fix that, so that

	splusb()	==	splraiseipl(IPL_USB)
	splsoftusb()	==	splraiseipl(IPL_SOFTUSB)

but that is a massive cut and paste operation and ideally, it should to be
coordinated with other BSDs otherwise there will likely be silent problems
generated by porting drivers.

I dont see a problem especially with having IPL_USB and IPL_SOFTUSB
being defined in the usb code rather than system wide.

iain