[PATCH 3/6] hv_netvsc: Remove GPADL teardown special case for old Hyper-V hosts

From: Michael Kelley

Date: Thu Jul 30 2026 - 15:12:40 EST


From: Michael Kelley <mhklinux@xxxxxxxxxxx>

With the overall removal of Linux support for running on Hyper-V
hosts earlier than WS2016 and Windows 10, the special case handling of
GPADL teardown is no longer necessary. Remove it.

Signed-off-by: Michael Kelley <mhklinux@xxxxxxxxxxx>
---
drivers/net/hyperv/netvsc.c | 20 +++-----------------
1 file changed, 3 insertions(+), 17 deletions(-)

diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 4d319c50955e..4295b96b4312 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -695,17 +695,8 @@ void netvsc_device_remove(struct hv_device *device)
= rtnl_dereference(net_device_ctx->nvdev);
int i;

- /*
- * Revoke receive buffer. If host is pre-Win2016 then tear down
- * receive buffer GPADL. Do the same for send buffer.
- */
netvsc_revoke_recv_buf(device, net_device, ndev);
- if (vmbus_proto_version < VERSION_WIN10)
- netvsc_teardown_recv_gpadl(device, net_device, ndev);
-
netvsc_revoke_send_buf(device, net_device, ndev);
- if (vmbus_proto_version < VERSION_WIN10)
- netvsc_teardown_send_gpadl(device, net_device, ndev);

RCU_INIT_POINTER(net_device_ctx->nvdev, NULL);

@@ -733,14 +724,9 @@ void netvsc_device_remove(struct hv_device *device)
/* Now, we can close the channel safely */
vmbus_close(device->channel);

- /*
- * If host is Win2016 or higher then we do the GPADL tear down
- * here after VMBus is closed.
- */
- if (vmbus_proto_version >= VERSION_WIN10) {
- netvsc_teardown_recv_gpadl(device, net_device, ndev);
- netvsc_teardown_send_gpadl(device, net_device, ndev);
- }
+ /* Must do the GPADL teardown after channel is closed */
+ netvsc_teardown_recv_gpadl(device, net_device, ndev);
+ netvsc_teardown_send_gpadl(device, net_device, ndev);

/* Release all resources */
free_netvsc_device_rcu(net_device);
--
2.25.1