From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, "David S. Miller" <davem@davemloft.net>
Subject: [PATCH 4.8 47/49] sparc64: Delete now unused user copy fixup functions.
Date: Sat, 19 Nov 2016 10:23:39 +0100 [thread overview]
Message-ID: <20161119092044.054732149@linuxfoundation.org> (raw)
In-Reply-To: <20161119092036.698705716@linuxfoundation.org>
4.8-stable review patch. If anyone has any objections, please let me know.
------------------
From: "David S. Miller" <davem@davemloft.net>
[ Upstream commit 0fd0ff01d4c3c01e7fe69b762ee1a13236639acc ]
Now that all of the user copy routines are converted to return
accurate residual lengths when an exception occurs, we no longer need
the broken fixup routines.
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/sparc/include/asm/uaccess_64.h | 36 +-----------------
arch/sparc/lib/Makefile | 2 -
arch/sparc/lib/user_fixup.c | 71 ------------------------------------
3 files changed, 4 insertions(+), 105 deletions(-)
delete mode 100644 arch/sparc/lib/user_fixup.c
--- a/arch/sparc/include/asm/uaccess_64.h
+++ b/arch/sparc/include/asm/uaccess_64.h
@@ -204,64 +204,34 @@ int __get_user_bad(void);
unsigned long __must_check ___copy_from_user(void *to,
const void __user *from,
unsigned long size);
-unsigned long copy_from_user_fixup(void *to, const void __user *from,
- unsigned long size);
static inline unsigned long __must_check
copy_from_user(void *to, const void __user *from, unsigned long size)
{
- unsigned long ret;
-
check_object_size(to, size, false);
- ret = ___copy_from_user(to, from, size);
- if (unlikely(ret)) {
- if ((long)ret < 0)
- ret = copy_from_user_fixup(to, from, size);
- return ret;
- }
-
- return ret;
+ return ___copy_from_user(to, from, size);
}
#define __copy_from_user copy_from_user
unsigned long __must_check ___copy_to_user(void __user *to,
const void *from,
unsigned long size);
-unsigned long copy_to_user_fixup(void __user *to, const void *from,
- unsigned long size);
static inline unsigned long __must_check
copy_to_user(void __user *to, const void *from, unsigned long size)
{
- unsigned long ret;
-
check_object_size(from, size, true);
- ret = ___copy_to_user(to, from, size);
- if (unlikely(ret)) {
- if ((long)ret < 0)
- ret = copy_to_user_fixup(to, from, size);
- return ret;
- }
- return ret;
+ return ___copy_to_user(to, from, size);
}
#define __copy_to_user copy_to_user
unsigned long __must_check ___copy_in_user(void __user *to,
const void __user *from,
unsigned long size);
-unsigned long copy_in_user_fixup(void __user *to, void __user *from,
- unsigned long size);
static inline unsigned long __must_check
copy_in_user(void __user *to, void __user *from, unsigned long size)
{
- unsigned long ret = ___copy_in_user(to, from, size);
-
- if (unlikely(ret)) {
- if ((long)ret < 0)
- ret = copy_in_user_fixup(to, from, size);
- return ret;
- }
- return ret;
+ return ___copy_in_user(to, from, size);
}
#define __copy_in_user copy_in_user
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -38,7 +38,7 @@ lib-$(CONFIG_SPARC64) += NG4patch.o NG4
lib-$(CONFIG_SPARC64) += GENmemcpy.o GENcopy_from_user.o GENcopy_to_user.o
lib-$(CONFIG_SPARC64) += GENpatch.o GENpage.o GENbzero.o
-lib-$(CONFIG_SPARC64) += copy_in_user.o user_fixup.o memmove.o
+lib-$(CONFIG_SPARC64) += copy_in_user.o memmove.o
lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o hweight.o ffs.o
obj-$(CONFIG_SPARC64) += iomap.o
--- a/arch/sparc/lib/user_fixup.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* user_fixup.c: Fix up user copy faults.
- *
- * Copyright (C) 2004 David S. Miller <davem@redhat.com>
- */
-
-#include <linux/compiler.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <linux/errno.h>
-#include <linux/module.h>
-
-#include <asm/uaccess.h>
-
-/* Calculating the exact fault address when using
- * block loads and stores can be very complicated.
- *
- * Instead of trying to be clever and handling all
- * of the cases, just fix things up simply here.
- */
-
-static unsigned long compute_size(unsigned long start, unsigned long size, unsigned long *offset)
-{
- unsigned long fault_addr = current_thread_info()->fault_address;
- unsigned long end = start + size;
-
- if (fault_addr < start || fault_addr >= end) {
- *offset = 0;
- } else {
- *offset = fault_addr - start;
- size = end - fault_addr;
- }
- return size;
-}
-
-unsigned long copy_from_user_fixup(void *to, const void __user *from, unsigned long size)
-{
- unsigned long offset;
-
- size = compute_size((unsigned long) from, size, &offset);
- if (likely(size))
- memset(to + offset, 0, size);
-
- return size;
-}
-EXPORT_SYMBOL(copy_from_user_fixup);
-
-unsigned long copy_to_user_fixup(void __user *to, const void *from, unsigned long size)
-{
- unsigned long offset;
-
- return compute_size((unsigned long) to, size, &offset);
-}
-EXPORT_SYMBOL(copy_to_user_fixup);
-
-unsigned long copy_in_user_fixup(void __user *to, void __user *from, unsigned long size)
-{
- unsigned long fault_addr = current_thread_info()->fault_address;
- unsigned long start = (unsigned long) to;
- unsigned long end = start + size;
-
- if (fault_addr >= start && fault_addr < end)
- return end - fault_addr;
-
- start = (unsigned long) from;
- end = start + size;
- if (fault_addr >= start && fault_addr < end)
- return end - fault_addr;
-
- return size;
-}
-EXPORT_SYMBOL(copy_in_user_fixup);
next prev parent reply other threads:[~2016-11-19 9:25 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20161119092339epcas3p4464a1a8a19f9171b12871d8cfef3ea16@epcas3p4.samsung.com>
2016-11-19 9:22 ` [PATCH 4.8 00/49] 4.8.10-stable review Greg Kroah-Hartman
2016-11-19 9:22 ` [PATCH 4.8 01/49] dctcp: avoid bogus doubling of cwnd after loss Greg Kroah-Hartman
2016-11-19 9:22 ` [PATCH 4.8 02/49] net: clear sk_err_soft in sk_clone_lock() Greg Kroah-Hartman
2016-11-19 9:22 ` [PATCH 4.8 04/49] bgmac: stop clearing DMA receive control register right after it is set Greg Kroah-Hartman
2016-11-19 9:22 ` [PATCH 4.8 05/49] ip6_tunnel: Clear IP6CB in ip6tunnel_xmit() Greg Kroah-Hartman
2016-11-19 9:22 ` [PATCH 4.8 07/49] ipv4: allow local fragmentation in ip_finish_output_gso() Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 08/49] tcp: fix return value for partial writes Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 09/49] dccp: do not release listeners too soon Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 10/49] dccp: do not send reset to already closed sockets Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 11/49] dccp: fix out of bound access in dccp_v4_err() Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 12/49] ipv6: dccp: fix out of bound access in dccp_v6_err() Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 13/49] ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 14/49] sctp: assign assoc_id earlier in __sctp_connect Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 15/49] bpf: fix htab map destruction when extra reserve is in use Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 16/49] net: icmp6_send should use dst dev to determine L3 domain Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 17/49] fib_trie: Correct /proc/net/route off by one error Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 19/49] net: icmp_route_lookup should use rt dev to determine L3 domain Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 20/49] net: __skb_flow_dissect() must cap its return value Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 21/49] ipv4: use new_gw for redirect neigh lookup Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 22/49] tcp: take care of truncations done by sk_filter() Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 24/49] mlxsw: spectrum: Fix refcount bug on span entries Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 25/49] mlxsw: spectrum_router: Correctly dump neighbour activity Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 26/49] Revert "bnx2: Reset device during driver initialization" Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 27/49] bnx2: Wait for in-flight DMA to complete at probe stage Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 28/49] sctp: change sk state only when it has assocs in sctp_shutdown Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 29/49] net: stmmac: Fix lack of link transition for fixed PHYs Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 31/49] sparc: Handle negative offsets in arch_jump_label_transform Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 32/49] sparc64: Handle extremely large kernel TSB range flushes sanely Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 33/49] sparc64: Fix illegal relative branches in hypervisor patched TLB code Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 34/49] sparc64: Fix instruction count in comment for __hypervisor_flush_tlb_pending Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 35/49] sparc64: Fix illegal relative branches in hypervisor patched TLB cross-call code Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 36/49] sparc64: Handle extremely large kernel TLB range flushes more gracefully Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 37/49] sparc64: Delete __ret_efault Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 38/49] sparc64: Prepare to move to more saner user copy exception handling Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 39/49] sparc64: Convert copy_in_user to accurate exception reporting Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 40/49] sparc64: Convert GENcopy_{from,to}_user " Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 41/49] sparc64: Convert U1copy_{from,to}_user " Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 42/49] sparc64: Convert NG4copy_{from,to}_user " Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 43/49] sparc64: Convert NGcopy_{from,to}_user " Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 44/49] sparc64: Convert NG2copy_{from,to}_user " Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 45/49] sparc64: Convert U3copy_{from,to}_user " Greg Kroah-Hartman
2016-11-19 9:23 ` [PATCH 4.8 46/49] sparc64: Delete now unused user copy assembler helpers Greg Kroah-Hartman
2016-11-19 9:23 ` Greg Kroah-Hartman [this message]
2016-11-19 9:23 ` [PATCH 4.8 48/49] usb: gadget: f_fs: edit epfile->ep under lock Greg Kroah-Hartman
2016-11-19 16:21 ` [PATCH 4.8 00/49] 4.8.10-stable review Guenter Roeck
2016-11-19 16:58 ` Greg Kroah-Hartman
2016-11-21 16:32 ` Shuah Khan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161119092044.054732149@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).