On 8/14/2025 2:16 PM, Wei Liu wrote: > On Thu, Aug 14, 2025 at 06:57:22PM +0000, Michael Kelley wrote: >> From: Nuno Das Neves <nunodasne...@linux.microsoft.com> Sent: Wednesday, >> August 13, 2025 11:21 AM >>> >>> This field is unused, but the correct structure size is needed >>> when computing the amount of space for the output argument to >>> reside, so that it does not cross a page boundary. >>> >>> Signed-off-by: Nuno Das Neves <nunodasne...@linux.microsoft.com> >>> --- >>> include/hyperv/hvhdk_mini.h | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/include/hyperv/hvhdk_mini.h b/include/hyperv/hvhdk_mini.h >>> index 42e7876455b5..858f6a3925b3 100644 >>> --- a/include/hyperv/hvhdk_mini.h >>> +++ b/include/hyperv/hvhdk_mini.h >>> @@ -301,6 +301,7 @@ struct hv_input_map_device_interrupt { >>> /* HV_OUTPUT_MAP_DEVICE_INTERRUPT */ >>> struct hv_output_map_device_interrupt { >>> struct hv_interrupt_entry interrupt_entry; >>> + u64 ext_status_deprecated[5]; >> >> Your email identifying the problem said that without this >> change, struct hv_output_map_device_interrupt is 0x10 >> bytes in size, which matches what I calculate from the definition. >> This change adds 0x28 bytes, making the struct size now 0x38 >> bytes. But your other email said Hyper-V expects the size to be >> 0x58 bytes. Is array size "5" correct, or is there some other >> cause of the discrepancy? >>
Ah, it looks like the *input* struct size (0x50) plus the size of 1 cpu bank is 0x58. The output struct size should indeed be 0x38. I got them mixed up somehow when writing the email. > > FWIW the array size 5 here is correct. > > Wei > >> Michael >> >>> } __packed; >>> >>> /* HV_INPUT_UNMAP_DEVICE_INTERRUPT */ >>> -- >>> 2.34.1 >> >>