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

i915, uaccess: Fix redundant CLAC

New tooling noticed this:

drivers/gpu/drm/i915/i915_gem_execbuffer.o: warning: objtool: .altinstr_replacement+0x3c: redundant UACCESS disable
drivers/gpu/drm/i915/i915_gem_execbuffer.o: warning: objtool: .altinstr_replacement+0x66: redundant UACCESS disable

You don't need user_access_end() if user_access_begin() fails.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>

authored by

Peter Zijlstra and committed by
Ingo Molnar
8f4faed0 67a0514a

+4 -2
+4 -2
drivers/gpu/drm/i915/i915_gem_execbuffer.c
··· 1667 1667 len)) { 1668 1668 end_user: 1669 1669 user_access_end(); 1670 + end: 1670 1671 kvfree(relocs); 1671 1672 err = -EFAULT; 1672 1673 goto err; ··· 1687 1686 * relocations were valid. 1688 1687 */ 1689 1688 if (!user_access_begin(urelocs, size)) 1690 - goto end_user; 1689 + goto end; 1691 1690 1692 1691 for (copied = 0; copied < nreloc; copied++) 1693 1692 unsafe_put_user(-1, ··· 2696 2695 * when we did the "copy_from_user()" above. 2697 2696 */ 2698 2697 if (!user_access_begin(user_exec_list, count * sizeof(*user_exec_list))) 2699 - goto end_user; 2698 + goto end; 2700 2699 2701 2700 for (i = 0; i < args->buffer_count; i++) { 2702 2701 if (!(exec2_list[i].offset & UPDATE)) ··· 2710 2709 } 2711 2710 end_user: 2712 2711 user_access_end(); 2712 + end:; 2713 2713 } 2714 2714 2715 2715 args->flags &= ~__I915_EXEC_UNKNOWN_FLAGS;