Skip to content

Instantly share code, notes, and snippets.

@ryo
Created April 8, 2021 15:01
Show Gist options
  • Save ryo/93734a7882a5f720c473fb1c2bc79810 to your computer and use it in GitHub Desktop.
Save ryo/93734a7882a5f720c473fb1c2bc79810 to your computer and use it in GitHub Desktop.
cvs -q diff -u -a -p .
Index: bus_space.c
===================================================================
RCS file: /src/cvs/cvsroot-netbsd/src/sys/arch/aarch64/aarch64/bus_space.c,v
retrieving revision 1.15
diff -u -a -p -r1.15 bus_space.c
--- bus_space.c 14 Dec 2020 19:32:29 -0000 1.15
+++ bus_space.c 8 Apr 2021 14:58:02 -0000
@@ -702,6 +702,7 @@ generic_bs_pe_1(void *t, bus_space_handl
if ((error = cpu_set_onfault(&fb)) == 0) {
*datap = generic_dsb_bs_r_1(t, bsh, offset);
+ dsb(ld);
cpu_unset_onfault();
}
return error;
@@ -716,6 +717,7 @@ generic_bs_pe_2(void *t, bus_space_handl
if ((error = cpu_set_onfault(&fb)) == 0) {
*datap = NSWAP(generic_dsb_bs_r_2)(t, bsh, offset);
+ dsb(ld);
cpu_unset_onfault();
}
return error;
@@ -730,6 +732,7 @@ generic_bs_pe_4(void *t, bus_space_handl
if ((error = cpu_set_onfault(&fb)) == 0) {
*datap = NSWAP(generic_dsb_bs_r_4)(t, bsh, offset);
+ dsb(ld);
cpu_unset_onfault();
}
return error;
@@ -744,6 +747,7 @@ generic_bs_pe_8(void *t, bus_space_handl
if ((error = cpu_set_onfault(&fb)) == 0) {
*datap = NSWAP(generic_dsb_bs_r_8)(t, bsh, offset);
+ dsb(ld);
cpu_unset_onfault();
}
return error;
Index: trap.c
===================================================================
RCS file: /src/cvs/cvsroot-netbsd/src/sys/arch/aarch64/aarch64/trap.c,v
retrieving revision 1.45
diff -u -a -p -r1.45 trap.c
--- trap.c 9 Mar 2021 16:44:27 -0000 1.45
+++ trap.c 8 Apr 2021 14:59:39 -0000
@@ -861,6 +861,21 @@ unknown:
}
}
+void
+trap_el1h_error(struct trapframe *tf)
+{
+ struct faultbuf *fb;
+
+ if (curcpu()->ci_intr_depth == 0) {
+ fb = cpu_disable_onfault();
+ if (fb != NULL) {
+ cpu_jump_onfault(tf, fb, EFAULT);
+ return;
+ }
+ }
+ panic("%s", __func__);
+}
+
#define bad_trap_panic(trapfunc) \
void \
trapfunc(struct trapframe *tf) \
@@ -872,7 +887,6 @@ bad_trap_panic(trap_el1t_irq)
bad_trap_panic(trap_el1t_fiq)
bad_trap_panic(trap_el1t_error)
bad_trap_panic(trap_el1h_fiq)
-bad_trap_panic(trap_el1h_error)
bad_trap_panic(trap_el0_fiq)
bad_trap_panic(trap_el0_error)
bad_trap_panic(trap_el0_32fiq)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment