From: Thorsten Blum <thorsten.b...@linux.dev> 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.b...@linux.dev>
> ---
>  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 <mhkli...@outlook.com>

Reply via email to