diff options
author | Sorin Vinturis <svinturis@cloudbasesolutions.com> | 2014-10-06 15:19:23 +0000 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2014-10-06 15:35:11 -0700 |
commit | 1ce4551c8c158e465734e26589d8444477cd5218 (patch) | |
tree | 7e86952e3111ff35b5127de82ee4c4e9f01cafe8 /datapath-windows/ovsext/PacketIO.c | |
parent | 52a524eb20462dd20d2e4e38d0fe97c07de040a7 (diff) | |
download | openvswitch-1ce4551c8c158e465734e26589d8444477cd5218.tar.gz |
datapath-windows: Incorrect assumption of the IRQL
Acquiring a spin lock raises the IRQL to DISPATCH_LEVEL. But
in many places of the code, while holding a spin lock, there
are useless checks for the current IRQL against DISPATCH_LEVEL.
Also, the dispatch flag is not correctly set when calling
NdisAcquireRWLockXXX() functions, which causes an extra check
of the current IRQL.
Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Reported-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Reported-at: https://github.com/openvswitch/ovs-issues/issues/47
Acked-by: Nithin Raju <nithin@vmware.com>
Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
Acked-by: Eitan Eliahu <eliahue@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'datapath-windows/ovsext/PacketIO.c')
-rw-r--r-- | datapath-windows/ovsext/PacketIO.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/datapath-windows/ovsext/PacketIO.c b/datapath-windows/ovsext/PacketIO.c index ac7862d85..87d703786 100644 --- a/datapath-windows/ovsext/PacketIO.c +++ b/datapath-windows/ovsext/PacketIO.c @@ -268,7 +268,7 @@ OvsStartNBLIngress(POVS_SWITCH_CONTEXT switchContext, } ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL); - OvsAcquireDatapathRead(datapath, &dpLockState, dispatch); + OvsAcquireDatapathRead(datapath, &dpLockState, TRUE); flow = OvsLookupFlow(datapath, &key, &hash, FALSE); if (flow) { |