mirror of
https://github.com/arehnman/yttrium-virtio-gpu.git
synced 2026-11-07 02:06:32 +00:00
NetKVM: BZ#1154419: Kick outside of critical section
Signed-off-by: Joseph Hindin <[email protected]>
This commit is contained in:
1 parent
f46214f82b
commit
be8fde1f0f
2 files changed
+10
-12
No files matched your search
@@ -462,7 +462,6 @@ BOOLEAN _Function_class_(MINIPORT_SYNCHRONIZE_INTERRUPT) CParaNdisTX::RestartQue
|
||||
//TODO: Requires review
|
||||
bool CParaNdisTX::RestartQueue(bool DoKick)
|
||||
{
|
||||
TSpinLocker LockedContext(m_Lock);
|
||||
auto res = ParaNdis_SynchronizeWithInterrupt(m_Context,
|
||||
m_messageIndex,
|
||||
CParaNdisTX::RestartQueueSynchronously,
|
||||
@@ -476,7 +475,7 @@ bool CParaNdisTX::RestartQueue(bool DoKick)
|
||||
return res;
|
||||
}
|
||||
|
||||
bool CParaNdisTX::SendMapped(bool IsInterrupt, PNET_BUFFER_LIST &NBLFailNow)
|
||||
bool CParaNdisTX::SendMapped(PNET_BUFFER_LIST &NBLFailNow)
|
||||
{
|
||||
if(!ParaNdis_IsSendPossible(m_Context))
|
||||
{
|
||||
@@ -550,14 +549,7 @@ bool CParaNdisTX::SendMapped(bool IsInterrupt, PNET_BUFFER_LIST &NBLFailNow)
|
||||
if (SentOutSomeBuffers)
|
||||
{
|
||||
DPrintf(2, ("[%s] sent down\n", __FUNCTION__, SentOutSomeBuffers));
|
||||
if (IsInterrupt)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_VirtQueue.Kick();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -574,7 +566,7 @@ bool CParaNdisTX::DoPendingTasks(bool IsInterrupt)
|
||||
DoWithTXLock([&] ()
|
||||
{
|
||||
m_VirtQueue.ProcessTXCompletions();
|
||||
bDoKick = SendMapped(IsInterrupt, pNBLFailNow);
|
||||
bDoKick = SendMapped(pNBLFailNow);
|
||||
pNBLReturnNow = ProcessWaitingList();
|
||||
|
||||
if (!m_VirtQueue.HasPacketsInHW() && m_Context->SendState == srsPausing)
|
||||
@@ -602,6 +594,12 @@ bool CParaNdisTX::DoPendingTasks(bool IsInterrupt)
|
||||
CallbackToCall(m_Context);
|
||||
}
|
||||
|
||||
if (bDoKick && !IsInterrupt)
|
||||
{
|
||||
Kick();
|
||||
bDoKick = false;
|
||||
}
|
||||
|
||||
return bDoKick;
|
||||
}
|
||||
|
||||
|
||||
@@ -255,7 +255,7 @@ public:
|
||||
private:
|
||||
|
||||
//TODO: Needs review
|
||||
bool SendMapped(bool IsInterrupt, PNET_BUFFER_LIST &NBLFailNow);
|
||||
bool SendMapped(PNET_BUFFER_LIST &NBLFailNow);
|
||||
|
||||
PNET_BUFFER_LIST ProcessWaitingList();
|
||||
PNET_BUFFER_LIST BuildCancelList(PVOID CancelId);
|
||||
|
||||
Reference in new issue
Block a user