Those services always succeed.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
sgi.aff3 = 0;
sgi.id = val & 0xf;
- return gic_handle_sgir_write(&sgi, false);
+ gic_handle_sgir_write(&sgi, false);
+ return TRAP_HANDLED;
}
/*
return 0;
}
-int gic_handle_sgir_write(struct sgi *sgi, bool virt_input)
+void gic_handle_sgir_write(struct sgi *sgi, bool virt_input)
{
struct per_cpu *cpu_data = this_cpu_data();
unsigned int cpu;
/* Let the other CPUS inject their SGIs */
sgi->id = SGI_INJECT;
irqchip_send_sgi(sgi);
-
- return TRAP_HANDLED;
}
int gic_handle_dist_access(struct mmio_access *mmio)
return 0;
}
-int gicv3_handle_sgir_write(u64 sgir)
+void gicv3_handle_sgir_write(u64 sgir)
{
struct sgi sgi;
unsigned long routing_mode = !!(sgir & ICC_SGIR_ROUTING_BIT);
sgi.aff3 = sgir >> ICC_SGIR_AFF3_SHIFT & 0xff;
sgi.id = sgir >> ICC_SGIR_IRQN_SHIFT & 0xf;
- return gic_handle_sgir_write(&sgi, true);
+ gic_handle_sgir_write(&sgi, true);
}
static void gic_eoi_irq(u32 irq_id, bool deactivate)
int gic_probe_cpu_id(unsigned int cpu);
int gic_handle_dist_access(struct mmio_access *access);
-int gic_handle_sgir_write(struct sgi *sgi, bool virt_input);
+void gic_handle_sgir_write(struct sgi *sgi, bool virt_input);
void gic_handle_irq(struct per_cpu *cpu_data);
void gic_target_spis(struct cell *config_cell, struct cell *dest_cell);
return irq_id;
}
-int gicv3_handle_sgir_write(u64 sgir);
+void gicv3_handle_sgir_write(u64 sgir);
#endif /* __ASSEMBLY__ */
#endif /* _JAILHOUSE_ASM_GIC_V3_H */
/* Trapped ICC_SGI1R write */
if (!read && opc1 == 0 && crm == 12) {
arch_skip_instruction(ctx);
- return gicv3_handle_sgir_write((u64)rt2_val << 32 | rt_val);
+ gicv3_handle_sgir_write((u64)rt2_val << 32 | rt_val);
+ return TRAP_HANDLED;
}
#else
/* Avoid `unused' warning... */