[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/2] Check Process and UseRequestId in CsqPeekNextIrp


  • To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
  • Date: Fri, 9 Oct 2026 13:25:20 +0200
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
  • Cc: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
  • Delivery-date: Fri, 09 Oct 2026 11:25:34 +0000
  • Feedback-id: default:8631fc262581453bbf619ec5b2062170:Sweego
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

Each Context object may be associated with a different process and a
different API (V1/V2). We must check for these settings when looking for
a matching IRP.

Assisted-by: LLM
Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/xeniface/irp_queue.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/xeniface/irp_queue.c b/src/xeniface/irp_queue.c
index 420cecf..511a36a 100644
--- a/src/xeniface/irp_queue.c
+++ b/src/xeniface/irp_queue.c
@@ -98,9 +98,12 @@ CsqPeekNextIrp(
         if (PeekContext) {
             Context = NextIrp->Tail.Overlay.DriverContext[0];
 
-            BOOL Match = TargetContext->Type == Context->Type;
+            BOOL Match = TargetContext->Type == Context->Type &&
+                         TargetContext->Process == Context->Process;
             if (TargetContext->UseRequestId)
-                Match = Match && (TargetContext->RequestId == 
Context->RequestId);
+                Match = Match &&
+                        TargetContext->UseRequestId == Context->UseRequestId &&
+                        TargetContext->RequestId == Context->RequestId;
             else
                 Match = Match && (TargetContext->UserVa == Context->UserVa);
 
-- 
2.55.0.windows.3



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.