Created
April 8, 2021 15:01
-
-
Save ryo/93734a7882a5f720c473fb1c2bc79810 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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