|
@@ -24,6 +24,7 @@
|
|
|
#define __ASM_ASSEMBLER_H
|
|
|
|
|
|
#include <asm/asm-offsets.h>
|
|
|
+#include <asm/cpufeature.h>
|
|
|
#include <asm/page.h>
|
|
|
#include <asm/pgtable-hwdef.h>
|
|
|
#include <asm/ptrace.h>
|
|
@@ -261,7 +262,16 @@ lr .req x30 // link register
|
|
|
add \size, \kaddr, \size
|
|
|
sub \tmp2, \tmp1, #1
|
|
|
bic \kaddr, \kaddr, \tmp2
|
|
|
-9998: dc \op, \kaddr
|
|
|
+9998:
|
|
|
+ .if (\op == cvau || \op == cvac)
|
|
|
+alternative_if_not ARM64_WORKAROUND_CLEAN_CACHE
|
|
|
+ dc \op, \kaddr
|
|
|
+alternative_else
|
|
|
+ dc civac, \kaddr
|
|
|
+alternative_endif
|
|
|
+ .else
|
|
|
+ dc \op, \kaddr
|
|
|
+ .endif
|
|
|
add \kaddr, \kaddr, \tmp1
|
|
|
cmp \kaddr, \size
|
|
|
b.lo 9998b
|