Commit | Line | Data |
---|---|---|
bb578426 GS |
1 | /* |
2 | * Copyright (C) 2001 Chris Emerson (cemerson@chiark.greenend.org.uk) | |
c5d4bb17 | 3 | * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) |
bb578426 GS |
4 | * Licensed under the GPL |
5 | */ | |
6 | ||
c5d4bb17 JD |
7 | /* |
8 | * These are here rather than tt/uaccess.c because skas mode needs them in | |
bb578426 GS |
9 | * order to do SIGBUS recovery when a tmpfs mount runs out of room. |
10 | */ | |
11 | ||
12 | #include <linux/string.h> | |
13 | #include "os.h" | |
14 | ||
15 | void __do_copy(void *to, const void *from, int n) | |
16 | { | |
17 | memcpy(to, from, n); | |
18 | } | |
19 | ||
20 | ||
21 | int __do_copy_to_user(void *to, const void *from, int n, | |
fab95c55 | 22 | void **fault_addr, jmp_buf **fault_catcher) |
bb578426 GS |
23 | { |
24 | unsigned long fault; | |
25 | int faulted; | |
26 | ||
27 | fault = __do_user_copy(to, from, n, fault_addr, fault_catcher, | |
28 | __do_copy, &faulted); | |
c5d4bb17 JD |
29 | if (!faulted) |
30 | return 0; | |
31 | else | |
32 | return n - (fault - (unsigned long) to); | |
bb578426 | 33 | } |