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

[PATCH 1/5] Check Fragment->Entry before calling RevokeForeignAccess


  • To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: "Tu Dinh" <ngoc-tu.dinh@xxxxxxxxxx>
  • Date: Thu, 16 Apr 2026 11:10:00 +0000
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="ngoc-tu.dinh@xxxxxxxxxx" header.h="From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
  • Cc: "Tu Dinh" <ngoc-tu.dinh@xxxxxxxxxx>, "Owen Smith" <owen.smith@xxxxxxxxxx>
  • Delivery-date: Thu, 16 Apr 2026 11:10:04 +0000
  • Feedback-id: 30504962:30504962.20260416:md
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

Fragments of type XENVIF_TRANSMITTER_FRAGMENT_TYPE_MULTICAST_CONTROL do
not have a gnttab entry, and so we must check for that here.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/xenvif/transmitter.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
index 75b80f3..05a2002 100644
--- a/src/xenvif/transmitter.c
+++ b/src/xenvif/transmitter.c
@@ -1553,12 +1553,14 @@ __TransmitterRingUnprepareFragments(
         Fragment->Length = 0;
         Fragment->Offset = 0;
 
-        (VOID) XENBUS_GNTTAB(RevokeForeignAccess,
-                             &Transmitter->GnttabInterface,
-                             Ring->GnttabCache,
-                             TRUE,
-                             Fragment->Entry);
-        Fragment->Entry = NULL;
+        if (Fragment->Entry != NULL) {
+            (VOID) XENBUS_GNTTAB(RevokeForeignAccess,
+                                 &Transmitter->GnttabInterface,
+                                 Ring->GnttabCache,
+                                 TRUE,
+                                 Fragment->Entry);
+            Fragment->Entry = NULL;
+        }
 
         switch (Fragment->Type) {
         case XENVIF_TRANSMITTER_FRAGMENT_TYPE_BUFFER: {
-- 
2.53.0.windows.2



--
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®.