* [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt
@ 2025-08-13 18:20 Nuno Das Neves
2025-08-14 18:57 ` Michael Kelley
2025-08-14 21:28 ` Wei Liu
0 siblings, 2 replies; 6+ messages in thread
From: Nuno Das Neves @ 2025-08-13 18:20 UTC (permalink / raw)
To: linux-hyperv, linux-kernel
Cc: kys, haiyangz, wei.liu, mhklinux, decui, Nuno Das Neves
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 <nunodasneves@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];
} __packed;
/* HV_INPUT_UNMAP_DEVICE_INTERRUPT */
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* RE: [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt
2025-08-13 18:20 [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt Nuno Das Neves
@ 2025-08-14 18:57 ` Michael Kelley
2025-08-14 21:16 ` Wei Liu
2025-08-14 21:28 ` Wei Liu
1 sibling, 1 reply; 6+ messages in thread
From: Michael Kelley @ 2025-08-14 18:57 UTC (permalink / raw)
To: Nuno Das Neves, linux-hyperv@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org,
decui@microsoft.com
From: Nuno Das Neves <nunodasneves@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 <nunodasneves@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?
Michael
> } __packed;
>
> /* HV_INPUT_UNMAP_DEVICE_INTERRUPT */
> --
> 2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt
2025-08-14 18:57 ` Michael Kelley
@ 2025-08-14 21:16 ` Wei Liu
2025-08-15 17:11 ` Nuno Das Neves
0 siblings, 1 reply; 6+ messages in thread
From: Wei Liu @ 2025-08-14 21:16 UTC (permalink / raw)
To: Michael Kelley
Cc: Nuno Das Neves, linux-hyperv@vger.kernel.org,
linux-kernel@vger.kernel.org, kys@microsoft.com,
haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com
On Thu, Aug 14, 2025 at 06:57:22PM +0000, Michael Kelley wrote:
> From: Nuno Das Neves <nunodasneves@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 <nunodasneves@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?
>
FWIW the array size 5 here is correct.
Wei
> Michael
>
> > } __packed;
> >
> > /* HV_INPUT_UNMAP_DEVICE_INTERRUPT */
> > --
> > 2.34.1
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt
2025-08-13 18:20 [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt Nuno Das Neves
2025-08-14 18:57 ` Michael Kelley
@ 2025-08-14 21:28 ` Wei Liu
1 sibling, 0 replies; 6+ messages in thread
From: Wei Liu @ 2025-08-14 21:28 UTC (permalink / raw)
To: Nuno Das Neves
Cc: linux-hyperv, linux-kernel, kys, haiyangz, wei.liu, mhklinux,
decui
On Wed, Aug 13, 2025 at 11:20:57AM -0700, Nuno Das Neves wrote:
> 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 <nunodasneves@linux.microsoft.com>
There doesn't seem to be a need to rush this through hyperv-fixes.
Queued into hyperv-next before Michael's patches.
> ---
> 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];
> } __packed;
>
> /* HV_INPUT_UNMAP_DEVICE_INTERRUPT */
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt
2025-08-14 21:16 ` Wei Liu
@ 2025-08-15 17:11 ` Nuno Das Neves
2025-08-15 20:46 ` Michael Kelley
0 siblings, 1 reply; 6+ messages in thread
From: Nuno Das Neves @ 2025-08-15 17:11 UTC (permalink / raw)
To: Wei Liu, Michael Kelley
Cc: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
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 <nunodasneves@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 <nunodasneves@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
>>
>>
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt
2025-08-15 17:11 ` Nuno Das Neves
@ 2025-08-15 20:46 ` Michael Kelley
0 siblings, 0 replies; 6+ messages in thread
From: Michael Kelley @ 2025-08-15 20:46 UTC (permalink / raw)
To: Nuno Das Neves, Wei Liu
Cc: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
From: Nuno Das Neves <nunodasneves@linux.microsoft.com> Sent: Friday, August 15, 2025 10:11 AM
>
> 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 <nunodasneves@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 <nunodasneves@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.
> >
OK -- thanks. Just wanted to be sure everything was right.
FWIW,
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-08-15 20:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-13 18:20 [PATCH] hyperv: Add missing field to hv_output_map_device_interrupt Nuno Das Neves
2025-08-14 18:57 ` Michael Kelley
2025-08-14 21:16 ` Wei Liu
2025-08-15 17:11 ` Nuno Das Neves
2025-08-15 20:46 ` Michael Kelley
2025-08-14 21:28 ` Wei Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox