Re: [RFC PATCH 03/17] arm, arm64: use proper return types for traps

2018-11-13 Thread Jan Kiszka

On 06.11.18 00:01, Ralf Ramsauer wrote:

There is a enum type for the return value of traps: enum trap_return. Use the
proper return type, wherever it is used.

Signed-off-by: Ralf Ramsauer 
---
  hypervisor/arch/arm-common/include/asm/smccc.h |  2 +-
  hypervisor/arch/arm-common/include/asm/traps.h |  4 ++--
  hypervisor/arch/arm-common/smccc.c |  2 +-
  hypervisor/arch/arm/mmio.c |  2 +-
  hypervisor/arch/arm/traps.c| 10 +-
  hypervisor/arch/arm64/mmio.c   |  2 +-
  hypervisor/arch/arm64/traps.c  |  6 +++---
  7 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/hypervisor/arch/arm-common/include/asm/smccc.h 
b/hypervisor/arch/arm-common/include/asm/smccc.h
index 24bda10e..563ab9ef 100644
--- a/hypervisor/arch/arm-common/include/asm/smccc.h
+++ b/hypervisor/arch/arm-common/include/asm/smccc.h
@@ -33,4 +33,4 @@
  
  #define SMCCC_IS_CONV_64(function_id)	!!(function_id & (1 << 30))
  
-int handle_smc(struct trap_context *ctx);

+enum trap_return handle_smc(struct trap_context *ctx);
diff --git a/hypervisor/arch/arm-common/include/asm/traps.h 
b/hypervisor/arch/arm-common/include/asm/traps.h
index e72d9fb9..ce3907d0 100644
--- a/hypervisor/arch/arm-common/include/asm/traps.h
+++ b/hypervisor/arch/arm-common/include/asm/traps.h
@@ -22,10 +22,10 @@ enum trap_return {
TRAP_FORBIDDEN  = -1,
  };
  
-typedef int (*trap_handler)(struct trap_context *ctx);

+typedef enum trap_return (*trap_handler)(struct trap_context *ctx);
  
  void arch_skip_instruction(struct trap_context *ctx);
  
-int arch_handle_dabt(struct trap_context *ctx);

+enum trap_return arch_handle_dabt(struct trap_context *ctx);
  
  #endif /* !_JAILHOUSE_ASM_TRAPS_H */

diff --git a/hypervisor/arch/arm-common/smccc.c 
b/hypervisor/arch/arm-common/smccc.c
index 463a0133..211d6cd7 100644
--- a/hypervisor/arch/arm-common/smccc.c
+++ b/hypervisor/arch/arm-common/smccc.c
@@ -30,7 +30,7 @@ static long handle_arch(struct trap_context *ctx)
}
  }
  
-int handle_smc(struct trap_context *ctx)

+enum trap_return handle_smc(struct trap_context *ctx)
  {
unsigned long *regs = ctx->regs;
u32 *stats = this_cpu_public()->stats;
diff --git a/hypervisor/arch/arm/mmio.c b/hypervisor/arch/arm/mmio.c
index 19c03a0f..726ea751 100644
--- a/hypervisor/arch/arm/mmio.c
+++ b/hypervisor/arch/arm/mmio.c
@@ -62,7 +62,7 @@ static void arch_inject_dabt(struct trap_context *ctx, 
unsigned long addr)
arm_write_sysreg(DFAR, addr);
  }
  
-int arch_handle_dabt(struct trap_context *ctx)

+enum trap_return arch_handle_dabt(struct trap_context *ctx)
  {
enum mmio_result mmio_result;
struct mmio_access mmio;
diff --git a/hypervisor/arch/arm/traps.c b/hypervisor/arch/arm/traps.c
index 0589a335..10b3fdbf 100644
--- a/hypervisor/arch/arm/traps.c
+++ b/hypervisor/arch/arm/traps.c
@@ -245,7 +245,7 @@ static void dump_guest_regs(struct trap_context *ctx)
panic_printk("\n");
  }
  
-static int arch_handle_smc(struct trap_context *ctx)

+static enum trap_return arch_handle_smc(struct trap_context *ctx)
  {
unsigned long *regs = ctx->regs;
  
@@ -261,7 +261,7 @@ static int arch_handle_smc(struct trap_context *ctx)

return handle_smc(ctx);
  }
  
-static int arch_handle_hvc(struct trap_context *ctx)

+static enum trap_return arch_handle_hvc(struct trap_context *ctx)
  {
unsigned long *regs = ctx->regs;
unsigned long code = regs[0];
@@ -277,7 +277,7 @@ static int arch_handle_hvc(struct trap_context *ctx)
return TRAP_HANDLED;
  }
  
-static int arch_handle_cp15_32(struct trap_context *ctx)

+static enum trap_return arch_handle_cp15_32(struct trap_context *ctx)
  {
u32 hsr = ctx->hsr;
u32 rt = (hsr >> 5) & 0xf;
@@ -360,7 +360,7 @@ static int arch_handle_cp15_32(struct trap_context *ctx)
return TRAP_HANDLED;
  }
  
-static int arch_handle_cp15_64(struct trap_context *ctx)

+static enum trap_return arch_handle_cp15_64(struct trap_context *ctx)
  {
u32 hsr  = ctx->hsr;
u32 rt2  = (hsr >> 10) & 0xf;
@@ -402,7 +402,7 @@ static int arch_handle_cp15_64(struct trap_context *ctx)
return TRAP_HANDLED;
  }
  
-static int handle_iabt(struct trap_context *ctx)

+static enum trap_return handle_iabt(struct trap_context *ctx)
  {
unsigned long hpfar, hdfar;
  
diff --git a/hypervisor/arch/arm64/mmio.c b/hypervisor/arch/arm64/mmio.c

index 772eb5f6..4961b030 100644
--- a/hypervisor/arch/arm64/mmio.c
+++ b/hypervisor/arch/arm64/mmio.c
@@ -30,7 +30,7 @@ static void arch_inject_dabt(struct trap_context *ctx, 
unsigned long addr)
while (1);
  }
  
-int arch_handle_dabt(struct trap_context *ctx)

+enum trap_return arch_handle_dabt(struct trap_context *ctx)
  {
enum mmio_result mmio_result;
struct mmio_access mmio;
diff --git a/hypervisor/arch/arm64/traps.c b/hypervisor/arch/arm64/traps.c
index 734602ca..e2397b11 100644
--- 

[RFC PATCH 03/17] arm, arm64: use proper return types for traps

2018-11-05 Thread Ralf Ramsauer
There is a enum type for the return value of traps: enum trap_return. Use the
proper return type, wherever it is used.

Signed-off-by: Ralf Ramsauer 
---
 hypervisor/arch/arm-common/include/asm/smccc.h |  2 +-
 hypervisor/arch/arm-common/include/asm/traps.h |  4 ++--
 hypervisor/arch/arm-common/smccc.c |  2 +-
 hypervisor/arch/arm/mmio.c |  2 +-
 hypervisor/arch/arm/traps.c| 10 +-
 hypervisor/arch/arm64/mmio.c   |  2 +-
 hypervisor/arch/arm64/traps.c  |  6 +++---
 7 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/hypervisor/arch/arm-common/include/asm/smccc.h 
b/hypervisor/arch/arm-common/include/asm/smccc.h
index 24bda10e..563ab9ef 100644
--- a/hypervisor/arch/arm-common/include/asm/smccc.h
+++ b/hypervisor/arch/arm-common/include/asm/smccc.h
@@ -33,4 +33,4 @@
 
 #define SMCCC_IS_CONV_64(function_id)  !!(function_id & (1 << 30))
 
-int handle_smc(struct trap_context *ctx);
+enum trap_return handle_smc(struct trap_context *ctx);
diff --git a/hypervisor/arch/arm-common/include/asm/traps.h 
b/hypervisor/arch/arm-common/include/asm/traps.h
index e72d9fb9..ce3907d0 100644
--- a/hypervisor/arch/arm-common/include/asm/traps.h
+++ b/hypervisor/arch/arm-common/include/asm/traps.h
@@ -22,10 +22,10 @@ enum trap_return {
TRAP_FORBIDDEN  = -1,
 };
 
-typedef int (*trap_handler)(struct trap_context *ctx);
+typedef enum trap_return (*trap_handler)(struct trap_context *ctx);
 
 void arch_skip_instruction(struct trap_context *ctx);
 
-int arch_handle_dabt(struct trap_context *ctx);
+enum trap_return arch_handle_dabt(struct trap_context *ctx);
 
 #endif /* !_JAILHOUSE_ASM_TRAPS_H */
diff --git a/hypervisor/arch/arm-common/smccc.c 
b/hypervisor/arch/arm-common/smccc.c
index 463a0133..211d6cd7 100644
--- a/hypervisor/arch/arm-common/smccc.c
+++ b/hypervisor/arch/arm-common/smccc.c
@@ -30,7 +30,7 @@ static long handle_arch(struct trap_context *ctx)
}
 }
 
-int handle_smc(struct trap_context *ctx)
+enum trap_return handle_smc(struct trap_context *ctx)
 {
unsigned long *regs = ctx->regs;
u32 *stats = this_cpu_public()->stats;
diff --git a/hypervisor/arch/arm/mmio.c b/hypervisor/arch/arm/mmio.c
index 19c03a0f..726ea751 100644
--- a/hypervisor/arch/arm/mmio.c
+++ b/hypervisor/arch/arm/mmio.c
@@ -62,7 +62,7 @@ static void arch_inject_dabt(struct trap_context *ctx, 
unsigned long addr)
arm_write_sysreg(DFAR, addr);
 }
 
-int arch_handle_dabt(struct trap_context *ctx)
+enum trap_return arch_handle_dabt(struct trap_context *ctx)
 {
enum mmio_result mmio_result;
struct mmio_access mmio;
diff --git a/hypervisor/arch/arm/traps.c b/hypervisor/arch/arm/traps.c
index 0589a335..10b3fdbf 100644
--- a/hypervisor/arch/arm/traps.c
+++ b/hypervisor/arch/arm/traps.c
@@ -245,7 +245,7 @@ static void dump_guest_regs(struct trap_context *ctx)
panic_printk("\n");
 }
 
-static int arch_handle_smc(struct trap_context *ctx)
+static enum trap_return arch_handle_smc(struct trap_context *ctx)
 {
unsigned long *regs = ctx->regs;
 
@@ -261,7 +261,7 @@ static int arch_handle_smc(struct trap_context *ctx)
return handle_smc(ctx);
 }
 
-static int arch_handle_hvc(struct trap_context *ctx)
+static enum trap_return arch_handle_hvc(struct trap_context *ctx)
 {
unsigned long *regs = ctx->regs;
unsigned long code = regs[0];
@@ -277,7 +277,7 @@ static int arch_handle_hvc(struct trap_context *ctx)
return TRAP_HANDLED;
 }
 
-static int arch_handle_cp15_32(struct trap_context *ctx)
+static enum trap_return arch_handle_cp15_32(struct trap_context *ctx)
 {
u32 hsr = ctx->hsr;
u32 rt = (hsr >> 5) & 0xf;
@@ -360,7 +360,7 @@ static int arch_handle_cp15_32(struct trap_context *ctx)
return TRAP_HANDLED;
 }
 
-static int arch_handle_cp15_64(struct trap_context *ctx)
+static enum trap_return arch_handle_cp15_64(struct trap_context *ctx)
 {
u32 hsr  = ctx->hsr;
u32 rt2  = (hsr >> 10) & 0xf;
@@ -402,7 +402,7 @@ static int arch_handle_cp15_64(struct trap_context *ctx)
return TRAP_HANDLED;
 }
 
-static int handle_iabt(struct trap_context *ctx)
+static enum trap_return handle_iabt(struct trap_context *ctx)
 {
unsigned long hpfar, hdfar;
 
diff --git a/hypervisor/arch/arm64/mmio.c b/hypervisor/arch/arm64/mmio.c
index 772eb5f6..4961b030 100644
--- a/hypervisor/arch/arm64/mmio.c
+++ b/hypervisor/arch/arm64/mmio.c
@@ -30,7 +30,7 @@ static void arch_inject_dabt(struct trap_context *ctx, 
unsigned long addr)
while (1);
 }
 
-int arch_handle_dabt(struct trap_context *ctx)
+enum trap_return arch_handle_dabt(struct trap_context *ctx)
 {
enum mmio_result mmio_result;
struct mmio_access mmio;
diff --git a/hypervisor/arch/arm64/traps.c b/hypervisor/arch/arm64/traps.c
index 734602ca..e2397b11 100644
--- a/hypervisor/arch/arm64/traps.c
+++ b/hypervisor/arch/arm64/traps.c
@@ -33,7 +33,7 @@ void