RE: [PATCH] hyperv: Remove unused union and structs
From: Michael Kelley
Date: Mon Mar 10 2025 - 16:22:00 EST
From: Thorsten Blum <thorsten.blum@xxxxxxxxx> Sent: Monday, March 10, 2025 12:26 PM
>
> The union vmpacket_largest_possible_header and several structs have not
> been used for a long time afaict - remove them.
>
> Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
> ---
> include/linux/hyperv.h | 47 ------------------------------------------
> 1 file changed, 47 deletions(-)
>
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> index 4179add2864b..bff91788c8a3 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -371,19 +371,6 @@ struct vmtransfer_page_packet_header {
> struct vmtransfer_page_range ranges[];
> } __packed;
>
> -struct vmgpadl_packet_header {
> - struct vmpacket_descriptor d;
> - u32 gpadl;
> - u32 reserved;
> -} __packed;
> -
> -struct vmadd_remove_transfer_page_set {
> - struct vmpacket_descriptor d;
> - u32 gpadl;
> - u16 xfer_pageset_id;
> - u16 reserved;
> -} __packed;
> -
> /*
> * This structure defines a range in guest physical space that can be made to
> * look virtually contiguous.
> @@ -394,30 +381,6 @@ struct gpa_range {
> u64 pfn_array[];
> };
>
> -/*
> - * This is the format for an Establish Gpadl packet, which contains a handle by
> - * which this GPADL will be known and a set of GPA ranges associated with it.
> - * This can be converted to a MDL by the guest OS. If there are multiple GPA
> - * ranges, then the resulting MDL will be "chained," representing multiple VA
> - * ranges.
> - */
> -struct vmestablish_gpadl {
> - struct vmpacket_descriptor d;
> - u32 gpadl;
> - u32 range_cnt;
> - struct gpa_range range[1];
> -} __packed;
> -
> -/*
> - * This is the format for a Teardown Gpadl packet, which indicates that the
> - * GPADL handle in the Establish Gpadl packet will never be referenced again.
> - */
> -struct vmteardown_gpadl {
> - struct vmpacket_descriptor d;
> - u32 gpadl;
> - u32 reserved; /* for alignment to a 8-byte boundary */
> -} __packed;
> -
> /*
> * This is the format for a GPA-Direct packet, which contains a set of GPA
> * ranges, in addition to commands and/or data.
> @@ -438,16 +401,6 @@ struct vmadditional_data {
> unsigned char data[1];
> } __packed;
It appears to me that struct vmdata_gpa_direct and struct
vmadditional_data are also unused. Did you keep them for
some reason? Or could they also be deleted in this patch?
>
> -union vmpacket_largest_possible_header {
> - struct vmpacket_descriptor simple_hdr;
> - struct vmtransfer_page_packet_header xfer_page_hdr;
> - struct vmgpadl_packet_header gpadl_hdr;
> - struct vmadd_remove_transfer_page_set add_rm_xfer_page_hdr;
> - struct vmestablish_gpadl establish_gpadl_hdr;
> - struct vmteardown_gpadl teardown_gpadl_hdr;
> - struct vmdata_gpa_direct data_gpa_direct_hdr;
> -};
> -
> #define VMPACKET_DATA_START_ADDRESS(__packet) \
> (void *)(((unsigned char *)__packet) + \
> ((struct vmpacket_descriptor)__packet)->offset8 * 8)
> --
> 2.48.1
>
I can see from "git blame" that these structs originated back
in 2011 when the Hyper-V drivers were still in staging. Going
back as far as the 3.4 kernel, I don't see any references to them.
I don't know anything more about the history, and lacking such
information, I'm certainly OK with deleting them as unnecessary.
Reviewed-by: Michael Kelley <mhklinux@xxxxxxxxxxx>