]> git.proxmox.com Git - mirror_edk2.git/commit
OvmfPkg: QemuVideoDxe: serialize Start() against callbacks
authorLaszlo Ersek <lersek@redhat.com>
Sat, 22 Mar 2014 07:13:44 +0000 (07:13 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 22 Mar 2014 07:13:44 +0000 (07:13 +0000)
commit9c08bbe59ca1e1667ffa4d0cf4d98b2a5d3a58f8
tree648c453b1048f7f384ec7270e75a7928db63134a
parentbc4c536628c619f1625fefb974d5cf189ce3e7ba
OvmfPkg: QemuVideoDxe: serialize Start() against callbacks

If Start() succeeds, the callback is only executed when the setup is
complete (on the stack of RestoreTPL()), rather than on the stack of
InstallMultipleProtocolInterfaces(), when the driver setup may yet be
theoretically incomplete.

If Start() fails, the protocol interface will have been uninstalled
(rolled back) by the time the callback runs (again, on the stack of
RestoreTPL()). Since protocol notification callbacks begin with locating
the protocol interface in question, such attempts to locate will fail
immediately and save some work in the callback.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15371 6f19259b-4bc3-4df7-8a09-765794883524
OvmfPkg/QemuVideoDxe/Driver.c