diff options
Diffstat (limited to 'arch/um')
-rw-r--r-- | arch/um/include/init.h | 8 | ||||
-rw-r--r-- | arch/um/include/irq_kern.h | 2 | ||||
-rw-r--r-- | arch/um/include/irq_user.h | 2 | ||||
-rw-r--r-- | arch/um/include/skas/skas.h | 1 | ||||
-rw-r--r-- | arch/um/include/um_uaccess.h | 1 | ||||
-rw-r--r-- | arch/um/kernel/irq.c | 35 | ||||
-rw-r--r-- | arch/um/kernel/ksyms.c | 1 | ||||
-rw-r--r-- | arch/um/kernel/mem.c | 33 | ||||
-rw-r--r-- | arch/um/kernel/physmem.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/ptrace.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/time.c | 8 | ||||
-rw-r--r-- | arch/um/kernel/uaccess.c | 2 | ||||
-rw-r--r-- | arch/um/os-Linux/sigio.c | 2 | ||||
-rw-r--r-- | arch/um/os-Linux/signal.c | 2 | ||||
-rw-r--r-- | arch/um/os-Linux/skas/process.c | 2 | ||||
-rw-r--r-- | arch/um/os-Linux/umid.c | 2 | ||||
-rw-r--r-- | arch/um/sys-i386/bugs.c | 2 | ||||
-rw-r--r-- | arch/um/sys-i386/checksum.S | 5 | ||||
-rw-r--r-- | arch/um/sys-i386/ldt.c | 4 |
19 files changed, 23 insertions, 93 deletions
diff --git a/arch/um/include/init.h b/arch/um/include/init.h index b00a95741d41..37dd097c16c0 100644 --- a/arch/um/include/init.h +++ b/arch/um/include/init.h | |||
@@ -45,6 +45,8 @@ typedef void (*exitcall_t)(void); | |||
45 | # define __section(S) __attribute__ ((__section__(#S))) | 45 | # define __section(S) __attribute__ ((__section__(#S))) |
46 | #endif | 46 | #endif |
47 | 47 | ||
48 | #if __GNUC__ == 3 | ||
49 | |||
48 | #if __GNUC_MINOR__ >= 3 | 50 | #if __GNUC_MINOR__ >= 3 |
49 | # define __used __attribute__((__used__)) | 51 | # define __used __attribute__((__used__)) |
50 | #else | 52 | #else |
@@ -52,6 +54,12 @@ typedef void (*exitcall_t)(void); | |||
52 | #endif | 54 | #endif |
53 | 55 | ||
54 | #else | 56 | #else |
57 | #if __GNUC__ == 4 | ||
58 | # define __used __attribute__((__used__)) | ||
59 | #endif | ||
60 | #endif | ||
61 | |||
62 | #else | ||
55 | #include <linux/compiler.h> | 63 | #include <linux/compiler.h> |
56 | #endif | 64 | #endif |
57 | /* These are for everybody (although not all archs will actually | 65 | /* These are for everybody (although not all archs will actually |
diff --git a/arch/um/include/irq_kern.h b/arch/um/include/irq_kern.h index 4f775597fd5f..fba3895274f9 100644 --- a/arch/um/include/irq_kern.h +++ b/arch/um/include/irq_kern.h | |||
@@ -13,8 +13,6 @@ extern int um_request_irq(unsigned int irq, int fd, int type, | |||
13 | irq_handler_t handler, | 13 | irq_handler_t handler, |
14 | unsigned long irqflags, const char * devname, | 14 | unsigned long irqflags, const char * devname, |
15 | void *dev_id); | 15 | void *dev_id); |
16 | extern int init_aio_irq(int irq, char *name, | ||
17 | irq_handler_t handler); | ||
18 | 16 | ||
19 | #endif | 17 | #endif |
20 | 18 | ||
diff --git a/arch/um/include/irq_user.h b/arch/um/include/irq_user.h index e60b31873de1..c6c784df2673 100644 --- a/arch/um/include/irq_user.h +++ b/arch/um/include/irq_user.h | |||
@@ -21,8 +21,6 @@ struct irq_fd { | |||
21 | enum { IRQ_READ, IRQ_WRITE }; | 21 | enum { IRQ_READ, IRQ_WRITE }; |
22 | 22 | ||
23 | extern void sigio_handler(int sig, struct uml_pt_regs *regs); | 23 | extern void sigio_handler(int sig, struct uml_pt_regs *regs); |
24 | extern int activate_fd(int irq, int fd, int type, void *dev_id); | ||
25 | extern void free_irq_by_irq_and_dev(unsigned int irq, void *dev_id); | ||
26 | extern void free_irq_by_fd(int fd); | 24 | extern void free_irq_by_fd(int fd); |
27 | extern void reactivate_fd(int fd, int irqnum); | 25 | extern void reactivate_fd(int fd, int irqnum); |
28 | extern void deactivate_fd(int fd, int irqnum); | 26 | extern void deactivate_fd(int fd, int irqnum); |
diff --git a/arch/um/include/skas/skas.h b/arch/um/include/skas/skas.h index b073f8a86bd3..64d2c7443306 100644 --- a/arch/um/include/skas/skas.h +++ b/arch/um/include/skas/skas.h | |||
@@ -16,7 +16,6 @@ extern int user_thread(unsigned long stack, int flags); | |||
16 | extern void new_thread_handler(void); | 16 | extern void new_thread_handler(void); |
17 | extern void handle_syscall(struct uml_pt_regs *regs); | 17 | extern void handle_syscall(struct uml_pt_regs *regs); |
18 | extern int new_mm(unsigned long stack); | 18 | extern int new_mm(unsigned long stack); |
19 | extern void get_skas_faultinfo(int pid, struct faultinfo * fi); | ||
20 | extern long execute_syscall_skas(void *r); | 19 | extern long execute_syscall_skas(void *r); |
21 | extern unsigned long current_stub_stack(void); | 20 | extern unsigned long current_stub_stack(void); |
22 | 21 | ||
diff --git a/arch/um/include/um_uaccess.h b/arch/um/include/um_uaccess.h index 2b6fc8e0f071..45c04999d670 100644 --- a/arch/um/include/um_uaccess.h +++ b/arch/um/include/um_uaccess.h | |||
@@ -34,7 +34,6 @@ extern int copy_to_user(void __user *to, const void *from, int n); | |||
34 | 34 | ||
35 | extern int __do_copy_to_user(void *to, const void *from, int n, | 35 | extern int __do_copy_to_user(void *to, const void *from, int n, |
36 | void **fault_addr, jmp_buf **fault_catcher); | 36 | void **fault_addr, jmp_buf **fault_catcher); |
37 | extern void __do_copy(void *to, const void *from, int n); | ||
38 | 37 | ||
39 | /* | 38 | /* |
40 | * strncpy_from_user: - Copy a NUL terminated string from userspace. | 39 | * strncpy_from_user: - Copy a NUL terminated string from userspace. |
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c index 91587f8db340..3d7aad09b171 100644 --- a/arch/um/kernel/irq.c +++ b/arch/um/kernel/irq.c | |||
@@ -102,7 +102,7 @@ void sigio_handler(int sig, struct uml_pt_regs *regs) | |||
102 | 102 | ||
103 | static DEFINE_SPINLOCK(irq_lock); | 103 | static DEFINE_SPINLOCK(irq_lock); |
104 | 104 | ||
105 | int activate_fd(int irq, int fd, int type, void *dev_id) | 105 | static int activate_fd(int irq, int fd, int type, void *dev_id) |
106 | { | 106 | { |
107 | struct pollfd *tmp_pfd; | 107 | struct pollfd *tmp_pfd; |
108 | struct irq_fd *new_fd, *irq_fd; | 108 | struct irq_fd *new_fd, *irq_fd; |
@@ -216,7 +216,7 @@ static int same_irq_and_dev(struct irq_fd *irq, void *d) | |||
216 | return ((irq->irq == data->irq) && (irq->id == data->dev)); | 216 | return ((irq->irq == data->irq) && (irq->id == data->dev)); |
217 | } | 217 | } |
218 | 218 | ||
219 | void free_irq_by_irq_and_dev(unsigned int irq, void *dev) | 219 | static void free_irq_by_irq_and_dev(unsigned int irq, void *dev) |
220 | { | 220 | { |
221 | struct irq_and_dev data = ((struct irq_and_dev) { .irq = irq, | 221 | struct irq_and_dev data = ((struct irq_and_dev) { .irq = irq, |
222 | .dev = dev }); | 222 | .dev = dev }); |
@@ -403,37 +403,6 @@ void __init init_IRQ(void) | |||
403 | } | 403 | } |
404 | } | 404 | } |
405 | 405 | ||
406 | int init_aio_irq(int irq, char *name, irq_handler_t handler) | ||
407 | { | ||
408 | int fds[2], err; | ||
409 | |||
410 | err = os_pipe(fds, 1, 1); | ||
411 | if (err) { | ||
412 | printk(KERN_ERR "init_aio_irq - os_pipe failed, err = %d\n", | ||
413 | -err); | ||
414 | goto out; | ||
415 | } | ||
416 | |||
417 | err = um_request_irq(irq, fds[0], IRQ_READ, handler, | ||
418 | IRQF_DISABLED | IRQF_SAMPLE_RANDOM, name, | ||
419 | (void *) (long) fds[0]); | ||
420 | if (err) { | ||
421 | printk(KERN_ERR "init_aio_irq - : um_request_irq failed, " | ||
422 | "err = %d\n", | ||
423 | err); | ||
424 | goto out_close; | ||
425 | } | ||
426 | |||
427 | err = fds[1]; | ||
428 | goto out; | ||
429 | |||
430 | out_close: | ||
431 | os_close_file(fds[0]); | ||
432 | os_close_file(fds[1]); | ||
433 | out: | ||
434 | return err; | ||
435 | } | ||
436 | |||
437 | /* | 406 | /* |
438 | * IRQ stack entry and exit: | 407 | * IRQ stack entry and exit: |
439 | * | 408 | * |
diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c index ccc02a616c22..836fc9b94707 100644 --- a/arch/um/kernel/ksyms.c +++ b/arch/um/kernel/ksyms.c | |||
@@ -18,7 +18,6 @@ EXPORT_SYMBOL(get_signals); | |||
18 | EXPORT_SYMBOL(kernel_thread); | 18 | EXPORT_SYMBOL(kernel_thread); |
19 | EXPORT_SYMBOL(sys_waitpid); | 19 | EXPORT_SYMBOL(sys_waitpid); |
20 | EXPORT_SYMBOL(flush_tlb_range); | 20 | EXPORT_SYMBOL(flush_tlb_range); |
21 | EXPORT_SYMBOL(arch_validate); | ||
22 | 21 | ||
23 | EXPORT_SYMBOL(high_physmem); | 22 | EXPORT_SYMBOL(high_physmem); |
24 | EXPORT_SYMBOL(empty_zero_page); | 23 | EXPORT_SYMBOL(empty_zero_page); |
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c index b0ee64622ff7..e2274ef3155d 100644 --- a/arch/um/kernel/mem.c +++ b/arch/um/kernel/mem.c | |||
@@ -21,7 +21,7 @@ | |||
21 | /* allocated in paging_init, zeroed in mem_init, and unchanged thereafter */ | 21 | /* allocated in paging_init, zeroed in mem_init, and unchanged thereafter */ |
22 | unsigned long *empty_zero_page = NULL; | 22 | unsigned long *empty_zero_page = NULL; |
23 | /* allocated in paging_init and unchanged thereafter */ | 23 | /* allocated in paging_init and unchanged thereafter */ |
24 | unsigned long *empty_bad_page = NULL; | 24 | static unsigned long *empty_bad_page = NULL; |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * Initialized during boot, and readonly for initializing page tables | 27 | * Initialized during boot, and readonly for initializing page tables |
@@ -240,37 +240,6 @@ void __init paging_init(void) | |||
240 | #endif | 240 | #endif |
241 | } | 241 | } |
242 | 242 | ||
243 | struct page *arch_validate(struct page *page, gfp_t mask, int order) | ||
244 | { | ||
245 | unsigned long addr, zero = 0; | ||
246 | int i; | ||
247 | |||
248 | again: | ||
249 | if (page == NULL) | ||
250 | return page; | ||
251 | if (PageHighMem(page)) | ||
252 | return page; | ||
253 | |||
254 | addr = (unsigned long) page_address(page); | ||
255 | for (i = 0; i < (1 << order); i++) { | ||
256 | current->thread.fault_addr = (void *) addr; | ||
257 | if (__do_copy_to_user((void __user *) addr, &zero, | ||
258 | sizeof(zero), | ||
259 | ¤t->thread.fault_addr, | ||
260 | ¤t->thread.fault_catcher)) { | ||
261 | if (!(mask & __GFP_WAIT)) | ||
262 | return NULL; | ||
263 | else break; | ||
264 | } | ||
265 | addr += PAGE_SIZE; | ||
266 | } | ||
267 | |||
268 | if (i == (1 << order)) | ||
269 | return page; | ||
270 | page = alloc_pages(mask, order); | ||
271 | goto again; | ||
272 | } | ||
273 | |||
274 | /* | 243 | /* |
275 | * This can't do anything because nothing in the kernel image can be freed | 244 | * This can't do anything because nothing in the kernel image can be freed |
276 | * since it's not in kernel physical memory. | 245 | * since it's not in kernel physical memory. |
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c index 9757085a0220..a1a9090254c2 100644 --- a/arch/um/kernel/physmem.c +++ b/arch/um/kernel/physmem.c | |||
@@ -185,7 +185,7 @@ unsigned long find_iomem(char *driver, unsigned long *len_out) | |||
185 | return 0; | 185 | return 0; |
186 | } | 186 | } |
187 | 187 | ||
188 | int setup_iomem(void) | 188 | static int setup_iomem(void) |
189 | { | 189 | { |
190 | struct iomem_region *region = iomem_regions; | 190 | struct iomem_region *region = iomem_regions; |
191 | unsigned long iomem_start = high_physmem + PAGE_SIZE; | 191 | unsigned long iomem_start = high_physmem + PAGE_SIZE; |
diff --git a/arch/um/kernel/ptrace.c b/arch/um/kernel/ptrace.c index 47b57b497d55..15e8b7c4de13 100644 --- a/arch/um/kernel/ptrace.c +++ b/arch/um/kernel/ptrace.c | |||
@@ -225,7 +225,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
225 | return ret; | 225 | return ret; |
226 | } | 226 | } |
227 | 227 | ||
228 | void send_sigtrap(struct task_struct *tsk, struct uml_pt_regs *regs, | 228 | static void send_sigtrap(struct task_struct *tsk, struct uml_pt_regs *regs, |
229 | int error_code) | 229 | int error_code) |
230 | { | 230 | { |
231 | struct siginfo info; | 231 | struct siginfo info; |
diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c index c3e2f369c33c..47f04f4a3464 100644 --- a/arch/um/kernel/time.c +++ b/arch/um/kernel/time.c | |||
@@ -13,14 +13,6 @@ | |||
13 | #include "kern_util.h" | 13 | #include "kern_util.h" |
14 | #include "os.h" | 14 | #include "os.h" |
15 | 15 | ||
16 | /* | ||
17 | * Scheduler clock - returns current time in nanosec units. | ||
18 | */ | ||
19 | unsigned long long sched_clock(void) | ||
20 | { | ||
21 | return (unsigned long long)jiffies_64 * (NSEC_PER_SEC / HZ); | ||
22 | } | ||
23 | |||
24 | void timer_handler(int sig, struct uml_pt_regs *regs) | 16 | void timer_handler(int sig, struct uml_pt_regs *regs) |
25 | { | 17 | { |
26 | unsigned long flags; | 18 | unsigned long flags; |
diff --git a/arch/um/kernel/uaccess.c b/arch/um/kernel/uaccess.c index f0f4b040d7c5..dd33f040c526 100644 --- a/arch/um/kernel/uaccess.c +++ b/arch/um/kernel/uaccess.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/string.h> | 12 | #include <linux/string.h> |
13 | #include "os.h" | 13 | #include "os.h" |
14 | 14 | ||
15 | void __do_copy(void *to, const void *from, int n) | 15 | static void __do_copy(void *to, const void *from, int n) |
16 | { | 16 | { |
17 | memcpy(to, from, n); | 17 | memcpy(to, from, n); |
18 | } | 18 | } |
diff --git a/arch/um/os-Linux/sigio.c b/arch/um/os-Linux/sigio.c index eb8f2e4be192..63d299df152b 100644 --- a/arch/um/os-Linux/sigio.c +++ b/arch/um/os-Linux/sigio.c | |||
@@ -530,7 +530,7 @@ static void tty_close(int master, int slave) | |||
530 | printk(UM_KERN_CONT "No, enabling workaround\n"); | 530 | printk(UM_KERN_CONT "No, enabling workaround\n"); |
531 | } | 531 | } |
532 | 532 | ||
533 | void __init check_sigio(void) | 533 | static void __init check_sigio(void) |
534 | { | 534 | { |
535 | if ((access("/dev/ptmx", R_OK) < 0) && | 535 | if ((access("/dev/ptmx", R_OK) < 0) && |
536 | (access("/dev/ptyp0", R_OK) < 0)) { | 536 | (access("/dev/ptyp0", R_OK) < 0)) { |
diff --git a/arch/um/os-Linux/signal.c b/arch/um/os-Linux/signal.c index 5aade6027e40..6ae180703a63 100644 --- a/arch/um/os-Linux/signal.c +++ b/arch/um/os-Linux/signal.c | |||
@@ -126,7 +126,7 @@ void set_sigstack(void *sig_stack, int size) | |||
126 | panic("enabling signal stack failed, errno = %d\n", errno); | 126 | panic("enabling signal stack failed, errno = %d\n", errno); |
127 | } | 127 | } |
128 | 128 | ||
129 | void (*handlers[_NSIG])(int sig, struct sigcontext *sc); | 129 | static void (*handlers[_NSIG])(int sig, struct sigcontext *sc); |
130 | 130 | ||
131 | void handle_signal(int sig, struct sigcontext *sc) | 131 | void handle_signal(int sig, struct sigcontext *sc) |
132 | { | 132 | { |
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c index 172ad8f72e12..d6e0a2234b86 100644 --- a/arch/um/os-Linux/skas/process.c +++ b/arch/um/os-Linux/skas/process.c | |||
@@ -96,7 +96,7 @@ bad_wait: | |||
96 | 96 | ||
97 | extern unsigned long current_stub_stack(void); | 97 | extern unsigned long current_stub_stack(void); |
98 | 98 | ||
99 | void get_skas_faultinfo(int pid, struct faultinfo * fi) | 99 | static void get_skas_faultinfo(int pid, struct faultinfo *fi) |
100 | { | 100 | { |
101 | int err; | 101 | int err; |
102 | 102 | ||
diff --git a/arch/um/os-Linux/umid.c b/arch/um/os-Linux/umid.c index 106fa8641553..a27defb81884 100644 --- a/arch/um/os-Linux/umid.c +++ b/arch/um/os-Linux/umid.c | |||
@@ -245,7 +245,7 @@ int __init set_umid(char *name) | |||
245 | /* Changed in make_umid, which is called during early boot */ | 245 | /* Changed in make_umid, which is called during early boot */ |
246 | static int umid_setup = 0; | 246 | static int umid_setup = 0; |
247 | 247 | ||
248 | int __init make_umid(void) | 248 | static int __init make_umid(void) |
249 | { | 249 | { |
250 | int fd, err; | 250 | int fd, err; |
251 | char tmp[256]; | 251 | char tmp[256]; |
diff --git a/arch/um/sys-i386/bugs.c b/arch/um/sys-i386/bugs.c index a74442d13762..2c6d0d731c12 100644 --- a/arch/um/sys-i386/bugs.c +++ b/arch/um/sys-i386/bugs.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include "sysdep/ptrace.h" | 12 | #include "sysdep/ptrace.h" |
13 | 13 | ||
14 | /* Set during early boot */ | 14 | /* Set during early boot */ |
15 | int host_has_cmov = 1; | 15 | static int host_has_cmov = 1; |
16 | static jmp_buf cmov_test_return; | 16 | static jmp_buf cmov_test_return; |
17 | 17 | ||
18 | static void cmov_sigill_test_handler(int sig) | 18 | static void cmov_sigill_test_handler(int sig) |
diff --git a/arch/um/sys-i386/checksum.S b/arch/um/sys-i386/checksum.S index 62c7e564f22e..f058d2f82e18 100644 --- a/arch/um/sys-i386/checksum.S +++ b/arch/um/sys-i386/checksum.S | |||
@@ -243,13 +243,12 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst, | |||
243 | .previous | 243 | .previous |
244 | 244 | ||
245 | .align 4 | 245 | .align 4 |
246 | .globl csum_partial_copy_generic_i386 | 246 | |
247 | |||
248 | #ifndef CONFIG_X86_USE_PPRO_CHECKSUM | 247 | #ifndef CONFIG_X86_USE_PPRO_CHECKSUM |
249 | 248 | ||
250 | #define ARGBASE 16 | 249 | #define ARGBASE 16 |
251 | #define FP 12 | 250 | #define FP 12 |
252 | 251 | ||
253 | csum_partial_copy_generic_i386: | 252 | csum_partial_copy_generic_i386: |
254 | subl $4,%esp | 253 | subl $4,%esp |
255 | pushl %edi | 254 | pushl %edi |
diff --git a/arch/um/sys-i386/ldt.c b/arch/um/sys-i386/ldt.c index a34263e6b08d..a4846a84a7be 100644 --- a/arch/um/sys-i386/ldt.c +++ b/arch/um/sys-i386/ldt.c | |||
@@ -14,8 +14,8 @@ | |||
14 | 14 | ||
15 | extern int modify_ldt(int func, void *ptr, unsigned long bytecount); | 15 | extern int modify_ldt(int func, void *ptr, unsigned long bytecount); |
16 | 16 | ||
17 | long write_ldt_entry(struct mm_id * mm_idp, int func, struct user_desc * desc, | 17 | static long write_ldt_entry(struct mm_id *mm_idp, int func, |
18 | void **addr, int done) | 18 | struct user_desc *desc, void **addr, int done) |
19 | { | 19 | { |
20 | long res; | 20 | long res; |
21 | 21 | ||