Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

x86/usercopy_32: Simplify __copy_user_intel_nocache()

Have an exception jump to a .fixup to only immediately jump out is
daft, jump to the right place in one go.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20211110101326.021517780@infradead.org

+20 -20
+20 -20
arch/x86/lib/usercopy_32.c
··· 256 256 "8:\n" 257 257 ".section .fixup,\"ax\"\n" 258 258 "9: lea 0(%%eax,%0,4),%0\n" 259 - "16: jmp 8b\n" 259 + " jmp 8b\n" 260 260 ".previous\n" 261 - _ASM_EXTABLE_UA(0b, 16b) 262 - _ASM_EXTABLE_UA(1b, 16b) 263 - _ASM_EXTABLE_UA(2b, 16b) 264 - _ASM_EXTABLE_UA(21b, 16b) 265 - _ASM_EXTABLE_UA(3b, 16b) 266 - _ASM_EXTABLE_UA(31b, 16b) 267 - _ASM_EXTABLE_UA(4b, 16b) 268 - _ASM_EXTABLE_UA(41b, 16b) 269 - _ASM_EXTABLE_UA(10b, 16b) 270 - _ASM_EXTABLE_UA(51b, 16b) 271 - _ASM_EXTABLE_UA(11b, 16b) 272 - _ASM_EXTABLE_UA(61b, 16b) 273 - _ASM_EXTABLE_UA(12b, 16b) 274 - _ASM_EXTABLE_UA(71b, 16b) 275 - _ASM_EXTABLE_UA(13b, 16b) 276 - _ASM_EXTABLE_UA(81b, 16b) 277 - _ASM_EXTABLE_UA(14b, 16b) 278 - _ASM_EXTABLE_UA(91b, 16b) 261 + _ASM_EXTABLE_UA(0b, 8b) 262 + _ASM_EXTABLE_UA(1b, 8b) 263 + _ASM_EXTABLE_UA(2b, 8b) 264 + _ASM_EXTABLE_UA(21b, 8b) 265 + _ASM_EXTABLE_UA(3b, 8b) 266 + _ASM_EXTABLE_UA(31b, 8b) 267 + _ASM_EXTABLE_UA(4b, 8b) 268 + _ASM_EXTABLE_UA(41b, 8b) 269 + _ASM_EXTABLE_UA(10b, 8b) 270 + _ASM_EXTABLE_UA(51b, 8b) 271 + _ASM_EXTABLE_UA(11b, 8b) 272 + _ASM_EXTABLE_UA(61b, 8b) 273 + _ASM_EXTABLE_UA(12b, 8b) 274 + _ASM_EXTABLE_UA(71b, 8b) 275 + _ASM_EXTABLE_UA(13b, 8b) 276 + _ASM_EXTABLE_UA(81b, 8b) 277 + _ASM_EXTABLE_UA(14b, 8b) 278 + _ASM_EXTABLE_UA(91b, 8b) 279 279 _ASM_EXTABLE_UA(6b, 9b) 280 - _ASM_EXTABLE_UA(7b, 16b) 280 + _ASM_EXTABLE_UA(7b, 8b) 281 281 : "=&c"(size), "=&D" (d0), "=&S" (d1) 282 282 : "1"(to), "2"(from), "0"(size) 283 283 : "eax", "edx", "memory");