need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
the ioctl issued by the ICP RAID management libraries (used by the
storcon and iirconfig tools). This requires some infrastructure changes:
* Add a "service callback" mechanism that the ld driver (cache service)
and the iopsp driver (raw service) can register with the icp parent.
Right now this callback allows the children to adjust their notion of
how many command openings are available.
* Add a mutex around the icp ioctl handler, allowing only one thread
to execute an ioctl at a time.
* Add a way to freeze the controller command queue. We stop all I/O
while processing rescans (due to the semantics of icp_cmd()).
* Make icp_cmd() work when !cold.
* Add detach support to ld@icp.
taken from OpenBSD. Test hardware kindly provided by Intel. This still needs
management bits, and doesn't support older controllers, but that shouldn't
be hard to fix.