Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
datapath-windows: Solved BSOD when loading an activated extension
If the OVS extension was previously enabled and the driver unloaded, when the driver is loaded again a BSOD is triggered. This happens because the OVS extension registers its FilterXxx routines to NDIS, by calling NdisFRegisterFilterDriver, before performing all the necessary initialization. Because drivers that call NdisFRegisterFilterDriver must be prepared for an immediate call to any of their FilterXxx functions. The BSOD is triggered because the FilterAttach routine, OvsExtAttach, tries to acquire the control lock, when the lock is not yet initialized. This happens because the FilterAttach is called before the driver finishes initialization, in OvsInit(). The solution is to perform all necessary initialization before registering OVS FilterXxx routines. If device object creation fails, all allocated resources during init phase are released by calling OvsCleanup and NdisFDeregisterFilterDriver functions. Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-at: openvswitch/ovs-issues#67 Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
- Loading branch information