linux/arch/arc/mm/extable.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 *
   8 * Borrowed heavily from MIPS
   9 */
  10
  11#include <linux/export.h>
  12#include <linux/extable.h>
  13#include <linux/uaccess.h>
  14
  15int fixup_exception(struct pt_regs *regs)
  16{
  17        const struct exception_table_entry *fixup;
  18
  19        fixup = search_exception_tables(instruction_pointer(regs));
  20        if (fixup) {
  21                regs->ret = fixup->fixup;
  22
  23                return 1;
  24        }
  25
  26        return 0;
  27}
  28
  29#ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
  30
  31unsigned long arc_clear_user_noinline(void __user *to,
  32                unsigned long n)
  33{
  34        return __arc_clear_user(to, n);
  35}
  36EXPORT_SYMBOL(arc_clear_user_noinline);
  37
  38long arc_strncpy_from_user_noinline(char *dst, const char __user *src,
  39                long count)
  40{
  41        return __arc_strncpy_from_user(dst, src, count);
  42}
  43EXPORT_SYMBOL(arc_strncpy_from_user_noinline);
  44
  45long arc_strnlen_user_noinline(const char __user *src, long n)
  46{
  47        return __arc_strnlen_user(src, n);
  48}
  49EXPORT_SYMBOL(arc_strnlen_user_noinline);
  50#endif
  51