summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/extable_fixup_types.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2021-11-10 11:01:22 +0100
committerPeter Zijlstra <peterz@infradead.org>2021-12-11 09:09:50 +0100
commitd5d797dcbd781cb7c526ad32f31c7fd96babfdb2 (patch)
treedd64239b122e8ab932f750b121d88bdacbff9120 /arch/x86/include/asm/extable_fixup_types.h
parent13e4bf1bddcb65dd028aaa492789e8d61efaafa1 (diff)
x86/usercopy: Remove .fixup usage
Typically usercopy does whole word copies followed by a number of byte copies to finish the tail. This means that on exception it needs to compute the remaining length as: words*sizeof(long) + bytes. Create a new extable handler to do just this. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com> Link: https://lore.kernel.org/r/20211110101326.081701085@infradead.org
Diffstat (limited to 'arch/x86/include/asm/extable_fixup_types.h')
-rw-r--r--arch/x86/include/asm/extable_fixup_types.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/include/asm/extable_fixup_types.h b/arch/x86/include/asm/extable_fixup_types.h
index 8278ed220c17..b5ab333e064a 100644
--- a/arch/x86/include/asm/extable_fixup_types.h
+++ b/arch/x86/include/asm/extable_fixup_types.h
@@ -50,4 +50,9 @@
#define EX_TYPE_FAULT_SGX 18
+#define EX_TYPE_UCOPY_LEN 19 /* cx := reg + imm*cx */
+#define EX_TYPE_UCOPY_LEN1 (EX_TYPE_UCOPY_LEN | EX_DATA_IMM(1))
+#define EX_TYPE_UCOPY_LEN4 (EX_TYPE_UCOPY_LEN | EX_DATA_IMM(4))
+#define EX_TYPE_UCOPY_LEN8 (EX_TYPE_UCOPY_LEN | EX_DATA_IMM(8))
+
#endif