From: Jan Kiszka <[email protected]>

All CPUs != current are supposed to be suspended when this function is
called. They will process the flush request when being resumed. So drop
the superfluous kick.

Signed-off-by: Jan Kiszka <[email protected]>
---
 hypervisor/arch/x86/control.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/hypervisor/arch/x86/control.c b/hypervisor/arch/x86/control.c
index b46347cc..9a2c6680 100644
--- a/hypervisor/arch/x86/control.c
+++ b/hypervisor/arch/x86/control.c
@@ -72,13 +72,12 @@ void arch_flush_cell_vcpu_caches(struct cell *cell)
 {
        unsigned int cpu;
 
-       for_each_cpu(cpu, cell->cpu_set)
-               if (cpu == this_cpu_id()) {
+       for_each_cpu(cpu, cell->cpu_set) {
+               if (cpu == this_cpu_id())
                        vcpu_tlb_flush();
-               } else {
+               else
                        public_per_cpu(cpu)->flush_vcpu_caches = true;
-                       apic_send_nmi_ipi(public_per_cpu(cpu));
-               }
+       }
 }
 
 void arch_cell_destroy(struct cell *cell)
-- 
2.40.1

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/20230519204033.643200-4-ralf.ramsauer%40oth-regensburg.de.

Reply via email to