]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
The MPT driver treats the "core" module with the same importance and
authorscottl <scottl@FreeBSD.org>
Mon, 31 Mar 2008 21:54:05 +0000 (21:54 +0000)
committerscottl <scottl@FreeBSD.org>
Mon, 31 Mar 2008 21:54:05 +0000 (21:54 +0000)
commitf69578dd1e2f1de1b7e84b05f1b918f13bc544b1
tree0f64337f74ca274135d5e2a55cad2e52459402f4
parent15067326c7ad1fbebd8a7ab45abcf83fcb64d1d9
The MPT driver treats the "core" module with the same importance and
abstraction as the RAID and CAM modules, making it nearly impossible
for enough initialization to be done in time for the RAID module to
know whether to attach.  On top of this, no reset was being done on
the controller on attach, in violation of the spec.  Additionally,
the port enable step was being deferred to the end of the attach
process, long after it should have been done to ensure reliable
operation from the controller.  Fix all of these with a few hacks
to force the "attach" and "enable" steps of the core module early
on, and ensure that a reset and port enable also happens early on.
In the future, the driver needs to be refactored to eliminate the
core module abstraction, clean up withe reset/enable steps, and
defer event messages until all of the modules are available to
recieve them.
sys/dev/mpt/mpt.c