This is a note to let you know that I've just added the patch titled sparc64: Fix exception handling in UltraSPARC-III memcpy. to the 4.9-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-fix-exception-handling-in-ultrasparc-iii-memcpy.patch and it can be found in the queue-4.9 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 Tue Aug 8 16:28:41 PDT 2017 From: "David S. Miller" <davem@xxxxxxxxxxxxx> Date: Fri, 4 Aug 2017 09:47:52 -0700 Subject: sparc64: Fix exception handling in UltraSPARC-III memcpy. From: "David S. Miller" <davem@xxxxxxxxxxxxx> [ Upstream commit 0ede1c401332173ab0693121dc6cde04a4dbf131 ] Mikael Pettersson reported that some test programs in the strace-4.18 testsuite cause an OOPS. After some debugging it turns out that garbage values are returned when an exception occurs, causing the fixup memset() to be run with bogus arguments. The problem is that two of the exception handler stubs write the successfully copied length into the wrong register. Fixes: ee841d0aff64 ("sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.") Reported-by: Mikael Pettersson <mikpelinux@xxxxxxxxx> Tested-by: Mikael Pettersson <mikpelinux@xxxxxxxxx> Reviewed-by: Sam Ravnborg <sam@xxxxxxxxxxxx> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- arch/sparc/lib/U3memcpy.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/arch/sparc/lib/U3memcpy.S +++ b/arch/sparc/lib/U3memcpy.S @@ -145,13 +145,13 @@ ENDPROC(U3_retl_o2_plus_GS_plus_0x08) ENTRY(U3_retl_o2_and_7_plus_GS) and %o2, 7, %o2 retl - add %o2, GLOBAL_SPARE, %o2 + add %o2, GLOBAL_SPARE, %o0 ENDPROC(U3_retl_o2_and_7_plus_GS) ENTRY(U3_retl_o2_and_7_plus_GS_plus_8) add GLOBAL_SPARE, 8, GLOBAL_SPARE and %o2, 7, %o2 retl - add %o2, GLOBAL_SPARE, %o2 + add %o2, GLOBAL_SPARE, %o0 ENDPROC(U3_retl_o2_and_7_plus_GS_plus_8) #endif Patches currently in stable-queue which might be from davem@xxxxxxxxxxxxx are queue-4.9/ipv4-ipv6-initialize-treq-txhash-in-cookie_v_check.patch queue-4.9/openvswitch-fix-potential-out-of-bound-access-in-parse_ct.patch queue-4.9/ipv6-don-t-increase-ipstats_mib_fragfails-twice-in-ip6_fragment.patch queue-4.9/sctp-don-t-dereference-ptr-before-leaving-_sctp_walk_-params-errors.patch queue-4.9/net-ethernet-nb8800-handle-all-4-rgmii-modes-identically.patch queue-4.9/sctp-fix-the-check-for-_sctp_walk_params-and-_sctp_walk_errors.patch queue-4.9/packet-fix-use-after-free-in-prb_retire_rx_blk_timer_expired.patch queue-4.9/rtnetlink-allocate-more-memory-for-dev_set_mac_address.patch queue-4.9/tcp_bbr-remove-sk_pacing_rate-0-transient-during-init.patch queue-4.9/tcp_bbr-introduce-bbr_bw_to_pacing_rate-helper.patch queue-4.9/sparc64-measure-receiver-forward-progress-to-avoid-send-mondo-timeout.patch queue-4.9/sparc64-fix-exception-handling-in-ultrasparc-iii-memcpy.patch queue-4.9/dccp-fix-a-memleak-that-dccp_ipv6-doesn-t-put-reqsk-properly.patch queue-4.9/tcp_bbr-introduce-bbr_init_pacing_rate_from_rtt-helper.patch queue-4.9/sparc64-prevent-perf-from-running-during-super-critical-sections.patch queue-4.9/net-dsa-b53-add-missing-arl-entries-for-bcm53125.patch queue-4.9/dccp-fix-a-memleak-that-dccp_ipv4-doesn-t-put-reqsk-properly.patch queue-4.9/mcs7780-fix-initialization-when-config_vmap_stack-is-enabled.patch queue-4.9/net-zero-terminate-ifr_name-in-dev_ifname.patch queue-4.9/tcp_bbr-init-pacing-rate-on-first-rtt-sample.patch queue-4.9/net-phy-correctly-process-phy_halted-in-phy_stop_machine.patch queue-4.9/ipv6-avoid-overflow-of-offset-in-ip6_find_1stfragopt.patch queue-4.9/xen-netback-correctly-schedule-rate-limited-queues.patch queue-4.9/dccp-fix-a-memleak-for-dccp_feat_init-err-process.patch queue-4.9/ipv4-initialize-fib_trie-prior-to-register_netdev_notifier-call.patch queue-4.9/tcp_bbr-cut-pacing-rate-only-if-filled-pipe.patch