diff options
Diffstat (limited to 'arch/um/kernel')
30 files changed, 130 insertions, 188 deletions
diff --git a/arch/um/kernel/asm-offsets.c b/arch/um/kernel/asm-offsets.c index 91ea538e1612..1fb12235ab9c 100644 --- a/arch/um/kernel/asm-offsets.c +++ b/arch/um/kernel/asm-offsets.c @@ -1 +1 @@ -#include "sysdep/kernel-offsets.h" +#include <sysdep/kernel-offsets.h> diff --git a/arch/um/kernel/config.c.in b/arch/um/kernel/config.c.in index b7a43feafde7..972bf1659564 100644 --- a/arch/um/kernel/config.c.in +++ b/arch/um/kernel/config.c.in @@ -5,7 +5,7 @@ #include <stdio.h> #include <stdlib.h> -#include "init.h" +#include <init.h> static __initdata const char *config[] = { "CONFIG" diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S index a3cab6d3ae02..fb8fd6fb6563 100644 --- a/arch/um/kernel/dyn.lds.S +++ b/arch/um/kernel/dyn.lds.S @@ -89,7 +89,7 @@ SECTIONS .kstrtab : { *(.kstrtab) } - #include "asm/common.lds.S" + #include <asm/common.lds.S> init.data : { INIT_DATA } diff --git a/arch/um/kernel/early_printk.c b/arch/um/kernel/early_printk.c index ec649bf72f68..49480f092456 100644 --- a/arch/um/kernel/early_printk.c +++ b/arch/um/kernel/early_printk.c @@ -9,7 +9,7 @@ #include <linux/kernel.h> #include <linux/console.h> #include <linux/init.h> -#include "os.h" +#include <os.h> static void early_console_write(struct console *con, const char *s, unsigned int n) { diff --git a/arch/um/kernel/exec.c b/arch/um/kernel/exec.c index 8c82786da823..3a8ece7d09ca 100644 --- a/arch/um/kernel/exec.c +++ b/arch/um/kernel/exec.c @@ -12,11 +12,10 @@ #include <asm/current.h> #include <asm/processor.h> #include <asm/uaccess.h> -#include "as-layout.h" -#include "mem_user.h" -#include "skas.h" -#include "os.h" -#include "internal.h" +#include <as-layout.h> +#include <mem_user.h> +#include <skas.h> +#include <os.h> void flush_thread(void) { @@ -48,28 +47,3 @@ void start_thread(struct pt_regs *regs, unsigned long eip, unsigned long esp) #endif } EXPORT_SYMBOL(start_thread); - -long um_execve(const char *file, const char __user *const __user *argv, const char __user *const __user *env) -{ - long err; - - err = do_execve(file, argv, env, ¤t->thread.regs); - if (!err) - UML_LONGJMP(current->thread.exec_buf, 1); - return err; -} - -long sys_execve(const char __user *file, const char __user *const __user *argv, - const char __user *const __user *env) -{ - long error; - char *filename; - - filename = getname(file); - error = PTR_ERR(filename); - if (IS_ERR(filename)) goto out; - error = do_execve(filename, argv, env, ¤t->thread.regs); - putname(filename); - out: - return error; -} diff --git a/arch/um/kernel/gmon_syms.c b/arch/um/kernel/gmon_syms.c index e9bcf247bcee..1bf61266da8e 100644 --- a/arch/um/kernel/gmon_syms.c +++ b/arch/um/kernel/gmon_syms.c @@ -3,7 +3,7 @@ * Licensed under the GPL */ -#include "linux/module.h" +#include <linux/module.h> extern void __bb_init_func(void *) __attribute__((weak)); EXPORT_SYMBOL(__bb_init_func); diff --git a/arch/um/kernel/gprof_syms.c b/arch/um/kernel/gprof_syms.c index e2f043d0de6c..74ddb44288a3 100644 --- a/arch/um/kernel/gprof_syms.c +++ b/arch/um/kernel/gprof_syms.c @@ -3,7 +3,7 @@ * Licensed under the GPL */ -#include "linux/module.h" +#include <linux/module.h> extern void mcount(void); EXPORT_SYMBOL(mcount); diff --git a/arch/um/kernel/initrd.c b/arch/um/kernel/initrd.c index 10cc18f729fd..55cead809b18 100644 --- a/arch/um/kernel/initrd.c +++ b/arch/um/kernel/initrd.c @@ -3,12 +3,12 @@ * Licensed under the GPL */ -#include "linux/init.h" -#include "linux/bootmem.h" -#include "linux/initrd.h" -#include "asm/types.h" -#include "init.h" -#include "os.h" +#include <linux/init.h> +#include <linux/bootmem.h> +#include <linux/initrd.h> +#include <asm/types.h> +#include <init.h> +#include <os.h> /* Changed by uml_initrd_setup, which is a setup */ static char *initrd __initdata = NULL; diff --git a/arch/um/kernel/internal.h b/arch/um/kernel/internal.h deleted file mode 100644 index 5bf97db24a04..000000000000 --- a/arch/um/kernel/internal.h +++ /dev/null @@ -1 +0,0 @@ -extern long um_execve(const char *file, const char __user *const __user *argv, const char __user *const __user *env); diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c index 9883026f0730..36e12f0cefd5 100644 --- a/arch/um/kernel/irq.c +++ b/arch/um/kernel/irq.c @@ -5,17 +5,17 @@ * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar */ -#include "linux/cpumask.h" -#include "linux/hardirq.h" -#include "linux/interrupt.h" -#include "linux/kernel_stat.h" -#include "linux/module.h" -#include "linux/sched.h" -#include "linux/seq_file.h" -#include "linux/slab.h" -#include "as-layout.h" -#include "kern_util.h" -#include "os.h" +#include <linux/cpumask.h> +#include <linux/hardirq.h> +#include <linux/interrupt.h> +#include <linux/kernel_stat.h> +#include <linux/module.h> +#include <linux/sched.h> +#include <linux/seq_file.h> +#include <linux/slab.h> +#include <as-layout.h> +#include <kern_util.h> +#include <os.h> /* * This list is accessed under irq_lock, except in sigio_handler, diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c index e17bea0b22e1..543c04756939 100644 --- a/arch/um/kernel/ksyms.c +++ b/arch/um/kernel/ksyms.c @@ -4,7 +4,7 @@ */ #include <linux/module.h> -#include "os.h" +#include <os.h> EXPORT_SYMBOL(set_signals); EXPORT_SYMBOL(get_signals); diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c index ebb86b218445..5abcbfbe7e25 100644 --- a/arch/um/kernel/mem.c +++ b/arch/um/kernel/mem.c @@ -12,12 +12,12 @@ #include <linux/slab.h> #include <asm/fixmap.h> #include <asm/page.h> -#include "as-layout.h" -#include "init.h" -#include "kern.h" -#include "kern_util.h" -#include "mem_user.h" -#include "os.h" +#include <as-layout.h> +#include <init.h> +#include <kern.h> +#include <kern_util.h> +#include <mem_user.h> +#include <os.h> /* allocated in paging_init, zeroed in mem_init, and unchanged thereafter */ unsigned long *empty_zero_page = NULL; diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index c5f5afa50745..b6d699cdd557 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c @@ -23,10 +23,10 @@ #include <asm/pgtable.h> #include <asm/mmu_context.h> #include <asm/uaccess.h> -#include "as-layout.h" -#include "kern_util.h" -#include "os.h" -#include "skas.h" +#include <as-layout.h> +#include <kern_util.h> +#include <os.h> +#include <skas.h> /* * This is a per-cpu array. A processor only modifies its entry and it only @@ -69,18 +69,6 @@ unsigned long alloc_stack(int order, int atomic) return page; } -int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -{ - int pid; - - current->thread.request.u.thread.proc = fn; - current->thread.request.u.thread.arg = arg; - pid = do_fork(CLONE_VM | CLONE_UNTRACED | flags, 0, - ¤t->thread.regs, 0, NULL, NULL); - return pid; -} -EXPORT_SYMBOL(kernel_thread); - static inline void set_current(struct task_struct *task) { cpu_tasks[task_thread_info(task)->cpu] = ((struct cpu_task) @@ -147,14 +135,10 @@ void new_thread_handler(void) arg = current->thread.request.u.thread.arg; /* - * The return value is 1 if the kernel thread execs a process, - * 0 if it just exits + * callback returns only if the kernel thread execs a process */ - n = run_kernel_thread(fn, arg, ¤t->thread.exec_buf); - if (n == 1) - userspace(¤t->thread.regs.regs); - else - do_exit(0); + n = fn(arg); + userspace(¤t->thread.regs.regs); } /* Called magically, see new_thread_handler above */ @@ -177,7 +161,7 @@ void fork_handler(void) } int copy_thread(unsigned long clone_flags, unsigned long sp, - unsigned long stack_top, struct task_struct * p, + unsigned long arg, struct task_struct * p, struct pt_regs *regs) { void (*handler)(void); @@ -198,7 +182,8 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, arch_copy_thread(¤t->thread.arch, &p->thread.arch); } else { get_safe_registers(p->thread.regs.regs.gp, p->thread.regs.regs.fp); - p->thread.request.u.thread = current->thread.request.u.thread; + p->thread.request.u.thread.proc = (int (*)(void *))sp; + p->thread.request.u.thread.arg = (void *)arg; handler = new_thread_handler; } diff --git a/arch/um/kernel/reboot.c b/arch/um/kernel/reboot.c index 3d15243ce692..ced8903921ae 100644 --- a/arch/um/kernel/reboot.c +++ b/arch/um/kernel/reboot.c @@ -3,13 +3,13 @@ * Licensed under the GPL */ -#include "linux/sched.h" -#include "linux/spinlock.h" -#include "linux/slab.h" -#include "linux/oom.h" -#include "kern_util.h" -#include "os.h" -#include "skas.h" +#include <linux/sched.h> +#include <linux/spinlock.h> +#include <linux/slab.h> +#include <linux/oom.h> +#include <kern_util.h> +#include <os.h> +#include <skas.h> void (*pm_power_off)(void); diff --git a/arch/um/kernel/sigio.c b/arch/um/kernel/sigio.c index c88211139a51..b5e0cbb34382 100644 --- a/arch/um/kernel/sigio.c +++ b/arch/um/kernel/sigio.c @@ -4,9 +4,9 @@ */ #include <linux/interrupt.h> -#include "irq_kern.h" -#include "os.h" -#include "sigio.h" +#include <irq_kern.h> +#include <os.h> +#include <sigio.h> /* Protected by sigio_lock() called from write_sigio_workaround */ static int sigio_irq_fd = -1; diff --git a/arch/um/kernel/signal.c b/arch/um/kernel/signal.c index cc9c2350e417..db18eb6124e1 100644 --- a/arch/um/kernel/signal.c +++ b/arch/um/kernel/signal.c @@ -9,8 +9,8 @@ #include <asm/siginfo.h> #include <asm/signal.h> #include <asm/unistd.h> -#include "frame_kern.h" -#include "kern_util.h" +#include <frame_kern.h> +#include <kern_util.h> EXPORT_SYMBOL(block_signals); EXPORT_SYMBOL(unblock_signals); diff --git a/arch/um/kernel/skas/clone.c b/arch/um/kernel/skas/clone.c index e1fd066a3525..289771dadf81 100644 --- a/arch/um/kernel/skas/clone.c +++ b/arch/um/kernel/skas/clone.c @@ -7,10 +7,10 @@ #include <sched.h> #include <asm/unistd.h> #include <sys/time.h> -#include "as-layout.h" -#include "ptrace_user.h" -#include "stub-data.h" -#include "sysdep/stub.h" +#include <as-layout.h> +#include <ptrace_user.h> +#include <stub-data.h> +#include <sysdep/stub.h> /* * This is in a separate file because it needs to be compiled with any diff --git a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c index 0a49ef0c2bf4..ff03067a3b14 100644 --- a/arch/um/kernel/skas/mmu.c +++ b/arch/um/kernel/skas/mmu.c @@ -3,14 +3,14 @@ * Licensed under the GPL */ -#include "linux/mm.h" -#include "linux/sched.h" -#include "linux/slab.h" -#include "asm/pgalloc.h" -#include "asm/pgtable.h" -#include "as-layout.h" -#include "os.h" -#include "skas.h" +#include <linux/mm.h> +#include <linux/sched.h> +#include <linux/slab.h> +#include <asm/pgalloc.h> +#include <asm/pgtable.h> +#include <as-layout.h> +#include <os.h> +#include <skas.h> extern int __syscall_stub_start; diff --git a/arch/um/kernel/skas/process.c b/arch/um/kernel/skas/process.c index 0a9e57e7446b..4da11b3c8ddb 100644 --- a/arch/um/kernel/skas/process.c +++ b/arch/um/kernel/skas/process.c @@ -3,12 +3,12 @@ * Licensed under the GPL */ -#include "linux/init.h" -#include "linux/sched.h" -#include "as-layout.h" -#include "kern.h" -#include "os.h" -#include "skas.h" +#include <linux/init.h> +#include <linux/sched.h> +#include <as-layout.h> +#include <kern.h> +#include <os.h> +#include <skas.h> int new_mm(unsigned long stack) { diff --git a/arch/um/kernel/skas/syscall.c b/arch/um/kernel/skas/syscall.c index 86368a025a96..c0681e097432 100644 --- a/arch/um/kernel/skas/syscall.c +++ b/arch/um/kernel/skas/syscall.c @@ -3,11 +3,11 @@ * Licensed under the GPL */ -#include "linux/kernel.h" -#include "linux/ptrace.h" -#include "kern_util.h" -#include "sysdep/ptrace.h" -#include "sysdep/syscalls.h" +#include <linux/kernel.h> +#include <linux/ptrace.h> +#include <kern_util.h> +#include <sysdep/ptrace.h> +#include <sysdep/syscalls.h> extern int syscall_table_size; #define NR_SYSCALLS (syscall_table_size / sizeof(void *)) diff --git a/arch/um/kernel/skas/uaccess.c b/arch/um/kernel/skas/uaccess.c index cd7df79c6a56..1d3e0c17340b 100644 --- a/arch/um/kernel/skas/uaccess.c +++ b/arch/um/kernel/skas/uaccess.c @@ -11,8 +11,8 @@ #include <asm/current.h> #include <asm/page.h> #include <asm/pgtable.h> -#include "kern_util.h" -#include "os.h" +#include <kern_util.h> +#include <os.h> pte_t *virt_to_pte(struct mm_struct *mm, unsigned long addr) { diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c index a02b7e9e6b94..5c8c3ea7db7b 100644 --- a/arch/um/kernel/smp.c +++ b/arch/um/kernel/smp.c @@ -3,24 +3,24 @@ * Licensed under the GPL */ -#include "linux/percpu.h" -#include "asm/pgalloc.h" -#include "asm/tlb.h" +#include <linux/percpu.h> +#include <asm/pgalloc.h> +#include <asm/tlb.h> #ifdef CONFIG_SMP -#include "linux/sched.h" -#include "linux/module.h" -#include "linux/threads.h" -#include "linux/interrupt.h" -#include "linux/err.h" -#include "linux/hardirq.h" -#include "asm/smp.h" -#include "asm/processor.h" -#include "asm/spinlock.h" -#include "kern.h" -#include "irq_user.h" -#include "os.h" +#include <linux/sched.h> +#include <linux/module.h> +#include <linux/threads.h> +#include <linux/interrupt.h> +#include <linux/err.h> +#include <linux/hardirq.h> +#include <asm/smp.h> +#include <asm/processor.h> +#include <asm/spinlock.h> +#include <kern.h> +#include <irq_user.h> +#include <os.h> /* Per CPU bogomips and other parameters * The only piece used here is the ipi pipe, which is set before SMP is diff --git a/arch/um/kernel/syscall.c b/arch/um/kernel/syscall.c index a4c6d8eee74c..a81f3705e90f 100644 --- a/arch/um/kernel/syscall.c +++ b/arch/um/kernel/syscall.c @@ -3,17 +3,16 @@ * Licensed under the GPL */ -#include "linux/file.h" -#include "linux/fs.h" -#include "linux/mm.h" -#include "linux/sched.h" -#include "linux/utsname.h" -#include "linux/syscalls.h" -#include "asm/current.h" -#include "asm/mman.h" -#include "asm/uaccess.h" -#include "asm/unistd.h" -#include "internal.h" +#include <linux/file.h> +#include <linux/fs.h> +#include <linux/mm.h> +#include <linux/sched.h> +#include <linux/utsname.h> +#include <linux/syscalls.h> +#include <asm/current.h> +#include <asm/mman.h> +#include <asm/uaccess.h> +#include <asm/unistd.h> long sys_fork(void) { @@ -50,19 +49,3 @@ long old_mmap(unsigned long addr, unsigned long len, out: return err; } - -int kernel_execve(const char *filename, - const char *const argv[], - const char *const envp[]) -{ - mm_segment_t fs; - int ret; - - fs = get_fs(); - set_fs(KERNEL_DS); - ret = um_execve(filename, (const char __user *const __user *)argv, - (const char __user *const __user *) envp); - set_fs(fs); - - return ret; -} diff --git a/arch/um/kernel/sysrq.c b/arch/um/kernel/sysrq.c index 0960de54495a..e562ff80409a 100644 --- a/arch/um/kernel/sysrq.c +++ b/arch/um/kernel/sysrq.c @@ -7,7 +7,7 @@ #include <linux/kernel.h> #include <linux/module.h> #include <linux/sched.h> -#include "sysrq.h" +#include <asm/sysrq.h> /* Catch non-i386 SUBARCH's. */ #if !defined(CONFIG_UML_X86) || defined(CONFIG_64BIT) diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c index 5f76d4ba151c..117568d4f64a 100644 --- a/arch/um/kernel/time.c +++ b/arch/um/kernel/time.c @@ -10,8 +10,8 @@ #include <linux/threads.h> #include <asm/irq.h> #include <asm/param.h> -#include "kern_util.h" -#include "os.h" +#include <kern_util.h> +#include <os.h> void timer_handler(int sig, struct siginfo *unused_si, struct uml_pt_regs *regs) { diff --git a/arch/um/kernel/tlb.c b/arch/um/kernel/tlb.c index f819af951c19..9472079471bb 100644 --- a/arch/um/kernel/tlb.c +++ b/arch/um/kernel/tlb.c @@ -8,10 +8,10 @@ #include <linux/sched.h> #include <asm/pgtable.h> #include <asm/tlbflush.h> -#include "as-layout.h" -#include "mem_user.h" -#include "os.h" -#include "skas.h" +#include <as-layout.h> +#include <mem_user.h> +#include <os.h> +#include <skas.h> struct host_vm_change { struct host_vm_op { diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c index 0353b98ae35a..089f3987e273 100644 --- a/arch/um/kernel/trap.c +++ b/arch/um/kernel/trap.c @@ -10,11 +10,11 @@ #include <asm/current.h> #include <asm/pgtable.h> #include <asm/tlbflush.h> -#include "arch.h" -#include "as-layout.h" -#include "kern_util.h" -#include "os.h" -#include "skas.h" +#include <arch.h> +#include <as-layout.h> +#include <kern_util.h> +#include <os.h> +#include <skas.h> /* * Note this is constrained to return 0, -EFAULT, -EACCESS, -ENOMEM by @@ -89,6 +89,7 @@ good_area: current->min_flt++; if (fault & VM_FAULT_RETRY) { flags &= ~FAULT_FLAG_ALLOW_RETRY; + flags |= FAULT_FLAG_TRIED; goto retry; } diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c index 4db8770906ca..87df5e3acc26 100644 --- a/arch/um/kernel/um_arch.c +++ b/arch/um/kernel/um_arch.c @@ -14,13 +14,13 @@ #include <asm/pgtable.h> #include <asm/processor.h> #include <asm/setup.h> -#include "as-layout.h" -#include "arch.h" -#include "init.h" -#include "kern.h" -#include "kern_util.h" -#include "mem_user.h" -#include "os.h" +#include <as-layout.h> +#include <arch.h> +#include <init.h> +#include <kern.h> +#include <kern_util.h> +#include <mem_user.h> +#include <os.h> #define DEFAULT_COMMAND_LINE "root=98:0" diff --git a/arch/um/kernel/umid.c b/arch/um/kernel/umid.c index 81e07e2be3ae..f6cc3bd61781 100644 --- a/arch/um/kernel/umid.c +++ b/arch/um/kernel/umid.c @@ -4,9 +4,9 @@ */ #include <asm/errno.h> -#include "init.h" -#include "kern.h" -#include "os.h" +#include <init.h> +#include <kern.h> +#include <os.h> /* Changed by set_umid_arg */ static int umid_inited = 0; diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S index fbd99402d4d2..ff65fb4f1a95 100644 --- a/arch/um/kernel/uml.lds.S +++ b/arch/um/kernel/uml.lds.S @@ -60,7 +60,7 @@ SECTIONS PROVIDE_HIDDEN(__rela_iplt_end = .); } - #include "asm/common.lds.S" + #include <asm/common.lds.S> init.data : { INIT_DATA } .data : |