This is a note to let you know that I've just added the patch titled sparc64: Delete __ret_efault. to the 4.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: sparc64-delete-__ret_efault.patch and it can be found in the queue-4.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From foo@baz Sat Nov 19 09:52:37 CET 2016 From: "David S. Miller" <davem@xxxxxxxxxxxxx> Date: Wed, 10 Aug 2016 14:41:33 -0700 Subject: sparc64: Delete __ret_efault. From: "David S. Miller" <davem@xxxxxxxxxxxxx> [ Upstream commit aa95ce361ed95c72ac42dcb315166bce5cf1a014 ] It is completely unused. Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- arch/sparc/include/asm/uaccess_64.h | 41 ------------------------------------ arch/sparc/kernel/head_64.S | 7 ------ arch/sparc/kernel/sparc_ksyms_64.c | 1 3 files changed, 1 insertion(+), 48 deletions(-) --- a/arch/sparc/include/asm/uaccess_64.h +++ b/arch/sparc/include/asm/uaccess_64.h @@ -98,7 +98,6 @@ struct exception_table_entry { unsigned int insn, fixup; }; -void __ret_efault(void); void __retl_efault(void); /* Uh, these should become the main single-value transfer routines.. @@ -179,20 +178,6 @@ int __put_user_bad(void); __gu_ret; \ }) -#define __get_user_nocheck_ret(data, addr, size, type, retval) ({ \ - register unsigned long __gu_val __asm__ ("l1"); \ - switch (size) { \ - case 1: __get_user_asm_ret(__gu_val, ub, addr, retval); break; \ - case 2: __get_user_asm_ret(__gu_val, uh, addr, retval); break; \ - case 4: __get_user_asm_ret(__gu_val, uw, addr, retval); break; \ - case 8: __get_user_asm_ret(__gu_val, x, addr, retval); break; \ - default: \ - if (__get_user_bad()) \ - return retval; \ - } \ - data = (__force type) __gu_val; \ -}) - #define __get_user_asm(x, size, addr, ret) \ __asm__ __volatile__( \ "/* Get user asm, inline. */\n" \ @@ -214,32 +199,6 @@ __asm__ __volatile__( \ : "=r" (ret), "=r" (x) : "r" (__m(addr)), \ "i" (-EFAULT)) -#define __get_user_asm_ret(x, size, addr, retval) \ -if (__builtin_constant_p(retval) && retval == -EFAULT) \ - __asm__ __volatile__( \ - "/* Get user asm ret, inline. */\n" \ - "1:\t" "ld"#size "a [%1] %%asi, %0\n\n\t" \ - ".section __ex_table,\"a\"\n\t" \ - ".align 4\n\t" \ - ".word 1b,__ret_efault\n\n\t" \ - ".previous\n\t" \ - : "=r" (x) : "r" (__m(addr))); \ -else \ - __asm__ __volatile__( \ - "/* Get user asm ret, inline. */\n" \ - "1:\t" "ld"#size "a [%1] %%asi, %0\n\n\t" \ - ".section .fixup,#alloc,#execinstr\n\t" \ - ".align 4\n" \ - "3:\n\t" \ - "ret\n\t" \ - " restore %%g0, %2, %%o0\n\n\t" \ - ".previous\n\t" \ - ".section __ex_table,\"a\"\n\t" \ - ".align 4\n\t" \ - ".word 1b, 3b\n\n\t" \ - ".previous\n\t" \ - : "=r" (x) : "r" (__m(addr)), "i" (retval)) - int __get_user_bad(void); unsigned long __must_check ___copy_from_user(void *to, --- a/arch/sparc/kernel/head_64.S +++ b/arch/sparc/kernel/head_64.S @@ -922,12 +922,7 @@ prom_tba: .xword 0 tlb_type: .word 0 /* Must NOT end up in BSS */ .section ".fixup",#alloc,#execinstr - .globl __ret_efault, __retl_efault, __ret_one, __retl_one -ENTRY(__ret_efault) - ret - restore %g0, -EFAULT, %o0 -ENDPROC(__ret_efault) - + .globl __retl_efault, __ret_one, __retl_one ENTRY(__retl_efault) retl mov -EFAULT, %o0 --- a/arch/sparc/kernel/sparc_ksyms_64.c +++ b/arch/sparc/kernel/sparc_ksyms_64.c @@ -27,7 +27,6 @@ EXPORT_SYMBOL(__flushw_user); EXPORT_SYMBOL_GPL(real_hard_smp_processor_id); /* from head_64.S */ -EXPORT_SYMBOL(__ret_efault); EXPORT_SYMBOL(tlb_type); EXPORT_SYMBOL(sun4v_chip_type); EXPORT_SYMBOL(prom_root_node); Patches currently in stable-queue which might be from davem@xxxxxxxxxxxxx are queue-4.4/sparc64-delete-now-unused-user-copy-fixup-functions.patch queue-4.4/net-__skb_flow_dissect-must-cap-its-return-value.patch queue-4.4/tcp-take-care-of-truncations-done-by-sk_filter.patch queue-4.4/net-clear-sk_err_soft-in-sk_clone_lock.patch queue-4.4/sparc64-convert-copy_in_user-to-accurate-exception-reporting.patch queue-4.4/sparc64-handle-extremely-large-kernel-tlb-range-flushes-more-gracefully.patch queue-4.4/sparc-handle-negative-offsets-in-arch_jump_label_transform.patch queue-4.4/sparc64-delete-__ret_efault.patch queue-4.4/dctcp-avoid-bogus-doubling-of-cwnd-after-loss.patch queue-4.4/sparc64-delete-now-unused-user-copy-assembler-helpers.patch queue-4.4/net-mangle-zero-checksum-in-skb_checksum_help.patch queue-4.4/sparc64-mm-fix-base-tsb-sizing-when-hugetlb-pages-are-used.patch queue-4.4/ip6_tunnel-clear-ip6cb-in-ip6tunnel_xmit.patch queue-4.4/sctp-assign-assoc_id-earlier-in-__sctp_connect.patch queue-4.4/sparc64-convert-ng4copy_-from-to-_user-to-accurate-exception-reporting.patch queue-4.4/ipv6-dccp-fix-out-of-bound-access-in-dccp_v6_err.patch queue-4.4/sparc64-convert-u3copy_-from-to-_user-to-accurate-exception-reporting.patch queue-4.4/sparc64-convert-ng2copy_-from-to-_user-to-accurate-exception-reporting.patch queue-4.4/sparc64-fix-illegal-relative-branches-in-hypervisor-patched-tlb-code.patch queue-4.4/sparc64-convert-gencopy_-from-to-_user-to-accurate-exception-reporting.patch queue-4.4/sparc64-convert-u1copy_-from-to-_user-to-accurate-exception-reporting.patch queue-4.4/sparc-don-t-leak-context-bits-into-thread-fault_address.patch queue-4.4/sparc64-prepare-to-move-to-more-saner-user-copy-exception-handling.patch queue-4.4/bgmac-stop-clearing-dma-receive-control-register-right-after-it-is-set.patch queue-4.4/ipv6-dccp-add-missing-bind_conflict-to-dccp_ipv6_mapped.patch queue-4.4/tcp-fix-potential-memory-corruption.patch queue-4.4/sparc64-convert-ngcopy_-from-to-_user-to-accurate-exception-reporting.patch queue-4.4/fib_trie-correct-proc-net-route-off-by-one-error.patch queue-4.4/sparc64-fix-illegal-relative-branches-in-hypervisor-patched-tlb-cross-call-code.patch queue-4.4/sparc64-handle-extremely-large-kernel-tsb-range-flushes-sanely.patch queue-4.4/sparc64-fix-instruction-count-in-comment-for-__hypervisor_flush_tlb_pending.patch queue-4.4/sparc-serial-sunhv-fix-a-double-lock-bug.patch queue-4.4/dccp-do-not-send-reset-to-already-closed-sockets.patch queue-4.4/ipv4-use-new_gw-for-redirect-neigh-lookup.patch queue-4.4/dccp-fix-out-of-bound-access-in-dccp_v4_err.patch queue-4.4/sock-fix-sendmmsg-for-partial-sendmsg.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html