On Mon, Jan 26, 2015 at 07:00:40PM +0000, Sorin Vinturis wrote: > 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 <svintu...@cloudbasesolutions.com> > Reported-by: Sorin Vinturis <svintu...@cloudbasesolutions.com> > Reported-at: https://github.com/openvswitch/ovs-issues/issues/67
Applied, thanks! _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev