]> rtime.felk.cvut.cz Git - jailhouse.git/blobdiff - hypervisor/arch/arm/traps.c
arm: replace IS_PSCI_FN macro with more explicit versions
[jailhouse.git] / hypervisor / arch / arm / traps.c
index 924aaa6520fdc2e2726b9cc119d37ff0415f5a5d..ae0990f13749cf52bb017d5cdcda86a8ae833f45 100644 (file)
@@ -209,7 +209,7 @@ static int arch_handle_smc(struct trap_context *ctx)
 {
        unsigned long *regs = ctx->regs;
 
-       if (IS_PSCI_FN(regs[0]))
+       if (IS_PSCI_32(regs[0]) || IS_PSCI_UBOOT(regs[0]))
                regs[0] = psci_dispatch(ctx);
        else
                regs[0] = smc(regs[0], regs[1], regs[2], regs[3]);
@@ -223,7 +223,7 @@ static int arch_handle_hvc(struct trap_context *ctx)
 {
        unsigned long *regs = ctx->regs;
 
-       if (IS_PSCI_FN(regs[0]))
+       if (IS_PSCI_32(regs[0]) || IS_PSCI_UBOOT(regs[0]))
                regs[0] = psci_dispatch(ctx);
        else
                regs[0] = hypercall(regs[0], regs[1], regs[2]);
@@ -273,7 +273,8 @@ static int arch_handle_cp15_64(struct trap_context *ctx)
        /* 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... */