drivers/hv/vmbus_drv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
From: Jan Kiszka <jan.kiszka@siemens.com>
Sebastian Siewior wrote:
"This is feeding entropy and would like to see interrupt registers. But
since this is invoked from a thread it won't."
So move it back to where it is always in interrupt context.
Fixes: f8e6343b7a89 ("Drivers: hv: vmbus: Simplify allocation of vmbus_evt")
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
drivers/hv/vmbus_drv.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index bc4fc1951ae1..28025a264861 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -1361,8 +1361,6 @@ static void __vmbus_isr(void)
vmbus_message_sched(hv_cpu, hv_cpu->hyp_synic_message_page);
vmbus_message_sched(hv_cpu, hv_cpu->para_synic_message_page);
-
- add_interrupt_randomness(vmbus_interrupt);
}
static DEFINE_PER_CPU(bool, vmbus_irq_pending);
@@ -1410,6 +1408,8 @@ void vmbus_isr(void)
lockdep_hardirq_threaded();
__vmbus_isr();
}
+
+ add_interrupt_randomness(vmbus_interrupt);
}
EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl");
--
2.47.3
On 2026-03-17 09:09:27 [+0100], Jan Kiszka wrote:
> From: Jan Kiszka <jan.kiszka@siemens.com>
>
> Sebastian Siewior wrote:
> "This is feeding entropy and would like to see interrupt registers. But
> since this is invoked from a thread it won't."
>
> So move it back to where it is always in interrupt context.
>
> Fixes: f8e6343b7a89 ("Drivers: hv: vmbus: Simplify allocation of vmbus_evt")
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
> drivers/hv/vmbus_drv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> index bc4fc1951ae1..28025a264861 100644
> --- a/drivers/hv/vmbus_drv.c
> +++ b/drivers/hv/vmbus_drv.c
> @@ -1361,8 +1361,6 @@ static void __vmbus_isr(void)
>
> vmbus_message_sched(hv_cpu, hv_cpu->hyp_synic_message_page);
> vmbus_message_sched(hv_cpu, hv_cpu->para_synic_message_page);
> -
> - add_interrupt_randomness(vmbus_interrupt);
> }
>
> static DEFINE_PER_CPU(bool, vmbus_irq_pending);
> @@ -1410,6 +1408,8 @@ void vmbus_isr(void)
> lockdep_hardirq_threaded();
> __vmbus_isr();
> }
> +
> + add_interrupt_randomness(vmbus_interrupt);
> }
> EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl");
Why not sysvec_hyperv_callback()?
Sebastian
On 17.03.26 12:05, Sebastian Andrzej Siewior wrote:
> On 2026-03-17 09:09:27 [+0100], Jan Kiszka wrote:
>> From: Jan Kiszka <jan.kiszka@siemens.com>
>>
>> Sebastian Siewior wrote:
>> "This is feeding entropy and would like to see interrupt registers. But
>> since this is invoked from a thread it won't."
>>
>> So move it back to where it is always in interrupt context.
>>
>> Fixes: f8e6343b7a89 ("Drivers: hv: vmbus: Simplify allocation of vmbus_evt")
>> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
>> ---
>> drivers/hv/vmbus_drv.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
>> index bc4fc1951ae1..28025a264861 100644
>> --- a/drivers/hv/vmbus_drv.c
>> +++ b/drivers/hv/vmbus_drv.c
>> @@ -1361,8 +1361,6 @@ static void __vmbus_isr(void)
>>
>> vmbus_message_sched(hv_cpu, hv_cpu->hyp_synic_message_page);
>> vmbus_message_sched(hv_cpu, hv_cpu->para_synic_message_page);
>> -
>> - add_interrupt_randomness(vmbus_interrupt);
>> }
>>
>> static DEFINE_PER_CPU(bool, vmbus_irq_pending);
>> @@ -1410,6 +1408,8 @@ void vmbus_isr(void)
>> lockdep_hardirq_threaded();
>> __vmbus_isr();
>> }
>> +
>> + add_interrupt_randomness(vmbus_interrupt);
>> }
>> EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl");
>
> Why not sysvec_hyperv_callback()?
Because we do not want to be x86-only.
Jan
--
Siemens AG, Foundational Technologies
Linux Expert Center
On 2026-03-17 12:56:02 [+0100], Jan Kiszka wrote: > >> @@ -1410,6 +1408,8 @@ void vmbus_isr(void) > >> lockdep_hardirq_threaded(); > >> __vmbus_isr(); > >> } > >> + > >> + add_interrupt_randomness(vmbus_interrupt); > >> } > >> EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl"); > > > > Why not sysvec_hyperv_callback()? > > Because we do not want to be x86-only. Who is other one and does it have its add_interrupt_randomness() there already? This is a driver, this does not belong here. > Jan Sebastian
On 17.03.26 14:22, Sebastian Andrzej Siewior wrote: > On 2026-03-17 12:56:02 [+0100], Jan Kiszka wrote: >>>> @@ -1410,6 +1408,8 @@ void vmbus_isr(void) >>>> lockdep_hardirq_threaded(); >>>> __vmbus_isr(); >>>> } >>>> + >>>> + add_interrupt_randomness(vmbus_interrupt); >>>> } >>>> EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl"); >>> >>> Why not sysvec_hyperv_callback()? >> >> Because we do not want to be x86-only. > > Who is other one and does it have its add_interrupt_randomness() there > already? It's the arm64 path of the hv support. Regarding the vmbus IRQ, it seems to be fully handled here, without an equivalent of arch/x86/kernel/cpu/mshyperv.c. > This is a driver, this does not belong here. Don't argue with me, I didn't put it here in the beginning. Maybe Michael can shed more light on this (and sorry for having forgotten to CC you on this patch). Jan -- Siemens AG, Foundational Technologies Linux Expert Center
© 2016 - 2026 Red Hat, Inc.