diff options
author | Peter Zijlstra <peterz@infradead.org> | 2021-11-10 11:01:22 +0100 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2021-12-11 09:09:50 +0100 |
commit | d5d797dcbd781cb7c526ad32f31c7fd96babfdb2 (patch) | |
tree | dd64239b122e8ab932f750b121d88bdacbff9120 /arch/x86/include/asm/extable_fixup_types.h | |
parent | 13e4bf1bddcb65dd028aaa492789e8d61efaafa1 (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.h | 5 |
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 |