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