]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r292739: Make virtual ports control asynchronous.
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 30 Dec 2015 11:50:52 +0000 (11:50 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 30 Dec 2015 11:50:52 +0000 (11:50 +0000)
commitfc5ead5236ca656cac4dd9ca3b4fdf291f3116a2
tree2b8fe844c062d94796c02bf3c91f051d9bc3cec9
parentaedbcff76f8c79e87b09f6ae1ae8bad004ade8a2
MFC r292739: Make virtual ports control asynchronous.

Before this change virtual ports control IOCBs were executed synchronously
via Execute IOCB mailbox command.  It required exclusive use of scratch
space of driver and mailbox registers of the hardware.  Because of that
shared resources use this code could not really sleep, having to spin for
completion, blocking any other operation.

This change introduces new asynchronous design, sending the IOCBs directly
on request queue and gracefully waiting for their return on response queue.
Returned IOCBs are identified with unified handle space from r292725.

git-svn-id: svn://svn.freebsd.org/base/stable/10@292922 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/isp/isp.c
sys/dev/isp/isp_library.c
sys/dev/isp/ispvar.h