It's possible that the last received packet may suffer an allocation
failure during processing and, as the code stands, any previously
received packets may then not be indicated to the stack.
This patch makes sure that the '!More' condition always results in an
indication, regardless of whether there is an allocation failure.
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
XENVIF_VIF(ReceiverReturnPacket,
VifInterface,
Cookie);
- return;
+ goto done;
}
Queue = &Receiver->Queue[Index];
KeReleaseSpinLockFromDpcLevel(&Queue->Lock);
+done:
if (!More)
__ReceiverPushPackets(Receiver, Index);
}