aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/extable_64.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/mm/extable_64.c')
-rw-r--r--arch/sh/mm/extable_64.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/arch/sh/mm/extable_64.c b/arch/sh/mm/extable_64.c
index a2e6e056377..f05499688d8 100644
--- a/arch/sh/mm/extable_64.c
+++ b/arch/sh/mm/extable_64.c
@@ -1,14 +1,14 @@
1/* 1/*
2 * This file is subject to the terms and conditions of the GNU General Public 2 * arch/sh/mm/extable_64.c
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * arch/sh64/mm/extable.c
7 * 3 *
8 * Copyright (C) 2003 Richard Curnow 4 * Copyright (C) 2003 Richard Curnow
9 * Copyright (C) 2003, 2004 Paul Mundt 5 * Copyright (C) 2003, 2004 Paul Mundt
10 * 6 *
11 * Cloned from the 2.5 SH version.. 7 * Cloned from the 2.5 SH version..
8 *
9 * This file is subject to the terms and conditions of the GNU General Public
10 * License. See the file "COPYING" in the main directory of this archive
11 * for more details.
12 */ 12 */
13#include <linux/rwsem.h> 13#include <linux/rwsem.h>
14#include <linux/module.h> 14#include <linux/module.h>
@@ -21,13 +21,16 @@ static const struct exception_table_entry __copy_user_fixup_ex = {
21 .fixup = (unsigned long)&__copy_user_fixup, 21 .fixup = (unsigned long)&__copy_user_fixup,
22}; 22};
23 23
24/* Some functions that may trap due to a bad user-mode address have too many loads 24/*
25 and stores in them to make it at all practical to label each one and put them all in 25 * Some functions that may trap due to a bad user-mode address have too
26 the main exception table. 26 * many loads and stores in them to make it at all practical to label
27 27 * each one and put them all in the main exception table.
28 In particular, the fast memcpy routine is like this. It's fix-up is just to fall back 28 *
29 to a slow byte-at-a-time copy, which is handled the conventional way. So it's functionally 29 * In particular, the fast memcpy routine is like this. It's fix-up is
30 OK to just handle any trap occurring in the fast memcpy with that fixup. */ 30 * just to fall back to a slow byte-at-a-time copy, which is handled the
31 * conventional way. So it's functionally OK to just handle any trap
32 * occurring in the fast memcpy with that fixup.
33 */
31static const struct exception_table_entry *check_exception_ranges(unsigned long addr) 34static const struct exception_table_entry *check_exception_ranges(unsigned long addr)
32{ 35{
33 if ((addr >= (unsigned long)&copy_user_memcpy) && 36 if ((addr >= (unsigned long)&copy_user_memcpy) &&
@@ -77,4 +80,3 @@ int fixup_exception(struct pt_regs *regs)
77 80
78 return 0; 81 return 0;
79} 82}
80