Temporary workaround to make CBMC run on handle___pkvm_init without crashing
diff --git a/arch/arm64/kvm/hyp/include/nvhe/trap_handler.h b/arch/arm64/kvm/hyp/include/nvhe/trap_handler.h
index 1e6d995..bd1cc9e 100644
--- a/arch/arm64/kvm/hyp/include/nvhe/trap_handler.h
+++ b/arch/arm64/kvm/hyp/include/nvhe/trap_handler.h
@@ -13,6 +13,6 @@
 
 #define cpu_reg(ctxt, r)	(ctxt)->regs.regs[r]
 #define DECLARE_REG(type, name, ctxt, reg)	\
-				type name = (type)cpu_reg(ctxt, (reg))
+				type name; //= (type)cpu_reg(ctxt, (reg))
 
 #endif /* __ARM64_KVM_NVHE_TRAP_HANDLER_H__ */
diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
index 1086ff2..504a857 100644
--- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c
+++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
@@ -896,7 +896,7 @@
 	__vgic_v3_restore_vmcr_aprs(shadow_cpu_if);
 }
 
-static void handle___pkvm_init(struct kvm_cpu_context *host_ctxt)
+static void handle___pkvm_init(int host_ctxt)
 {
 	DECLARE_REG(phys_addr_t, phys, host_ctxt, 1);
 	DECLARE_REG(unsigned long, size, host_ctxt, 2);
@@ -910,7 +910,7 @@
 	 * will tail-call in __pkvm_init_finalise() which will have to deal
 	 * with the host context directly.
 	 */
-	cpu_reg(host_ctxt, 1) = __pkvm_init(phys, size, nr_cpus, per_cpu_base,
+	__pkvm_init(phys, size, nr_cpus, per_cpu_base,
 					    hyp_va_bits, iommu_driver);
 }
 
diff --git a/cbmc.sh b/cbmc.sh
new file mode 100755
index 0000000..be29f7a
--- /dev/null
+++ b/cbmc.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+CBMC=cbmc
+TARGET_FILE=arch/arm64/kvm/hyp/nvhe/kvm_nvhe.gb
+
+CHECKS="--bounds-check \
+  --pointer-check \
+  --div-by-zero-check \
+  --signed-overflow-check \
+  --unsigned-overflow-check \
+  --pointer-overflow-check \
+  --conversion-check \
+  --undefined-shift-check \
+  --float-overflow-check \
+  --nan-check \
+  --enum-range-check"
+
+$CBMC \
+  $CHECKS \
+  --nondet-static \
+  --trace \
+  --trace-show-code \
+  --trace-show-function-calls \
+  $@ \
+  $TARGET_FILE