diff options
Diffstat (limited to 'arch/um')
-rw-r--r-- | arch/um/Makefile | 9 | ||||
-rw-r--r-- | arch/um/drivers/net_kern.c | 2 | ||||
-rw-r--r-- | arch/um/drivers/ubd_kern.c | 2 | ||||
-rw-r--r-- | arch/um/include/asm/hardirq.h | 26 | ||||
-rw-r--r-- | arch/um/include/asm/mmu_context.h | 4 | ||||
-rw-r--r-- | arch/um/include/shared/ptrace_user.h | 2 | ||||
-rw-r--r-- | arch/um/kernel/Makefile | 3 | ||||
-rw-r--r-- | arch/um/kernel/init_task.c | 5 | ||||
-rw-r--r-- | arch/um/kernel/mem.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/skas/mmu.c | 4 | ||||
-rw-r--r-- | arch/um/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/vmlinux.lds.S | 3 | ||||
-rw-r--r-- | arch/um/os-Linux/helper.c | 1 |
13 files changed, 22 insertions, 43 deletions
diff --git a/arch/um/Makefile b/arch/um/Makefile index 0728def32234..fc633dbacf84 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -96,11 +96,10 @@ CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) | |||
96 | $(call cc-option, -fno-stack-protector,) \ | 96 | $(call cc-option, -fno-stack-protector,) \ |
97 | $(call cc-option, -fno-stack-protector-all,) | 97 | $(call cc-option, -fno-stack-protector-all,) |
98 | 98 | ||
99 | CONFIG_KERNEL_STACK_ORDER ?= 2 | 99 | # Options used by linker script |
100 | STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] ) | 100 | export LDS_START := $(START) |
101 | 101 | export LDS_ELF_ARCH := $(ELF_ARCH) | |
102 | CPPFLAGS_vmlinux.lds = -U$(SUBARCH) -DSTART=$(START) -DELF_ARCH=$(ELF_ARCH) \ | 102 | export LDS_ELF_FORMAT := $(ELF_FORMAT) |
103 | -DELF_FORMAT="$(ELF_FORMAT)" -DKERNEL_STACK_SIZE=$(STACK_SIZE) | ||
104 | 103 | ||
105 | # The wrappers will select whether using "malloc" or the kernel allocator. | 104 | # The wrappers will select whether using "malloc" or the kernel allocator. |
106 | LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc | 105 | LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc |
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c index f114813ae258..a74245ae3a84 100644 --- a/arch/um/drivers/net_kern.c +++ b/arch/um/drivers/net_kern.c | |||
@@ -533,7 +533,7 @@ static int eth_parse(char *str, int *index_out, char **str_out, | |||
533 | char **error_out) | 533 | char **error_out) |
534 | { | 534 | { |
535 | char *end; | 535 | char *end; |
536 | int n, err = -EINVAL;; | 536 | int n, err = -EINVAL; |
537 | 537 | ||
538 | n = simple_strtoul(str, &end, 0); | 538 | n = simple_strtoul(str, &end, 0); |
539 | if (end == str) { | 539 | if (end == str) { |
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index 8f05d4d9da12..635d16d90a80 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
@@ -106,7 +106,7 @@ static int ubd_getgeo(struct block_device *bdev, struct hd_geometry *geo); | |||
106 | 106 | ||
107 | #define MAX_DEV (16) | 107 | #define MAX_DEV (16) |
108 | 108 | ||
109 | static struct block_device_operations ubd_blops = { | 109 | static const struct block_device_operations ubd_blops = { |
110 | .owner = THIS_MODULE, | 110 | .owner = THIS_MODULE, |
111 | .open = ubd_open, | 111 | .open = ubd_open, |
112 | .release = ubd_release, | 112 | .release = ubd_release, |
diff --git a/arch/um/include/asm/hardirq.h b/arch/um/include/asm/hardirq.h index 313ebb8a2566..fb3c05a0cbbf 100644 --- a/arch/um/include/asm/hardirq.h +++ b/arch/um/include/asm/hardirq.h | |||
@@ -1,25 +1 @@ | |||
1 | /* (c) 2004 cw@f00f.org, GPLv2 blah blah */ | #include <asm-generic/hardirq.h> | |
2 | |||
3 | #ifndef __ASM_UM_HARDIRQ_H | ||
4 | #define __ASM_UM_HARDIRQ_H | ||
5 | |||
6 | #include <linux/threads.h> | ||
7 | #include <linux/irq.h> | ||
8 | |||
9 | /* NOTE: When SMP works again we might want to make this | ||
10 | * ____cacheline_aligned or maybe use per_cpu state? --cw */ | ||
11 | typedef struct { | ||
12 | unsigned int __softirq_pending; | ||
13 | } irq_cpustat_t; | ||
14 | |||
15 | #include <linux/irq_cpustat.h> | ||
16 | |||
17 | /* As this would be very strange for UML to get we BUG() after the | ||
18 | * printk. */ | ||
19 | static inline void ack_bad_irq(unsigned int irq) | ||
20 | { | ||
21 | printk(KERN_ERR "unexpected IRQ %02x\n", irq); | ||
22 | BUG(); | ||
23 | } | ||
24 | |||
25 | #endif /* __ASM_UM_HARDIRQ_H */ | ||
diff --git a/arch/um/include/asm/mmu_context.h b/arch/um/include/asm/mmu_context.h index 54f42e8b0105..34d813011b7a 100644 --- a/arch/um/include/asm/mmu_context.h +++ b/arch/um/include/asm/mmu_context.h | |||
@@ -35,8 +35,8 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, | |||
35 | unsigned cpu = smp_processor_id(); | 35 | unsigned cpu = smp_processor_id(); |
36 | 36 | ||
37 | if(prev != next){ | 37 | if(prev != next){ |
38 | cpu_clear(cpu, prev->cpu_vm_mask); | 38 | cpumask_clear_cpu(cpu, mm_cpumask(prev)); |
39 | cpu_set(cpu, next->cpu_vm_mask); | 39 | cpumask_set_cpu(cpu, mm_cpumask(next)); |
40 | if(next != &init_mm) | 40 | if(next != &init_mm) |
41 | __switch_mm(&next->context.id); | 41 | __switch_mm(&next->context.id); |
42 | } | 42 | } |
diff --git a/arch/um/include/shared/ptrace_user.h b/arch/um/include/shared/ptrace_user.h index 4bce6e012889..7fd8539bc19a 100644 --- a/arch/um/include/shared/ptrace_user.h +++ b/arch/um/include/shared/ptrace_user.h | |||
@@ -29,7 +29,7 @@ extern int ptrace_setregs(long pid, unsigned long *regs_in); | |||
29 | * recompilation. So, we use PTRACE_OLDSETOPTIONS in UML. | 29 | * recompilation. So, we use PTRACE_OLDSETOPTIONS in UML. |
30 | * We also want to be able to build the kernel on 2.4, which doesn't | 30 | * We also want to be able to build the kernel on 2.4, which doesn't |
31 | * have PTRACE_OLDSETOPTIONS. So, if it is missing, we declare | 31 | * have PTRACE_OLDSETOPTIONS. So, if it is missing, we declare |
32 | * PTRACE_OLDSETOPTIONS to to be the same as PTRACE_SETOPTIONS. | 32 | * PTRACE_OLDSETOPTIONS to be the same as PTRACE_SETOPTIONS. |
33 | * | 33 | * |
34 | * On architectures, that start to support PTRACE_O_TRACESYSGOOD on | 34 | * On architectures, that start to support PTRACE_O_TRACESYSGOOD on |
35 | * linux 2.6, PTRACE_OLDSETOPTIONS never is defined, and also isn't | 35 | * linux 2.6, PTRACE_OLDSETOPTIONS never is defined, and also isn't |
diff --git a/arch/um/kernel/Makefile b/arch/um/kernel/Makefile index 388ec0a3ea9b..1119233597a1 100644 --- a/arch/um/kernel/Makefile +++ b/arch/um/kernel/Makefile | |||
@@ -3,6 +3,9 @@ | |||
3 | # Licensed under the GPL | 3 | # Licensed under the GPL |
4 | # | 4 | # |
5 | 5 | ||
6 | CPPFLAGS_vmlinux.lds := -U$(SUBARCH) -DSTART=$(LDS_START) \ | ||
7 | -DELF_ARCH=$(LDS_ELF_ARCH) \ | ||
8 | -DELF_FORMAT=$(LDS_ELF_FORMAT) | ||
6 | extra-y := vmlinux.lds | 9 | extra-y := vmlinux.lds |
7 | clean-files := | 10 | clean-files := |
8 | 11 | ||
diff --git a/arch/um/kernel/init_task.c b/arch/um/kernel/init_task.c index b25121b537d8..8aa77b61a5ff 100644 --- a/arch/um/kernel/init_task.c +++ b/arch/um/kernel/init_task.c | |||
@@ -30,9 +30,8 @@ EXPORT_SYMBOL(init_task); | |||
30 | * "init_task" linker map entry.. | 30 | * "init_task" linker map entry.. |
31 | */ | 31 | */ |
32 | 32 | ||
33 | union thread_union init_thread_union | 33 | union thread_union init_thread_union __init_task_data = |
34 | __attribute__((__section__(".data.init_task"))) = | 34 | { INIT_THREAD_INFO(init_task) }; |
35 | { INIT_THREAD_INFO(init_task) }; | ||
36 | 35 | ||
37 | union thread_union cpu0_irqstack | 36 | union thread_union cpu0_irqstack |
38 | __attribute__((__section__(".data.init_irqstack"))) = | 37 | __attribute__((__section__(".data.init_irqstack"))) = |
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c index 61d7e6138ff5..a5d5e70cf6f5 100644 --- a/arch/um/kernel/mem.c +++ b/arch/um/kernel/mem.c | |||
@@ -77,7 +77,7 @@ void __init mem_init(void) | |||
77 | num_physpages = totalram_pages; | 77 | num_physpages = totalram_pages; |
78 | max_pfn = totalram_pages; | 78 | max_pfn = totalram_pages; |
79 | printk(KERN_INFO "Memory: %luk available\n", | 79 | printk(KERN_INFO "Memory: %luk available\n", |
80 | (unsigned long) nr_free_pages() << (PAGE_SHIFT-10)); | 80 | nr_free_pages() << (PAGE_SHIFT-10)); |
81 | kmalloc_ok = 1; | 81 | kmalloc_ok = 1; |
82 | 82 | ||
83 | #ifdef CONFIG_HIGHMEM | 83 | #ifdef CONFIG_HIGHMEM |
diff --git a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c index 0cd9a7a05e77..8bfd1e905812 100644 --- a/arch/um/kernel/skas/mmu.c +++ b/arch/um/kernel/skas/mmu.c | |||
@@ -38,10 +38,10 @@ static int init_stub_pte(struct mm_struct *mm, unsigned long proc, | |||
38 | *pte = pte_mkread(*pte); | 38 | *pte = pte_mkread(*pte); |
39 | return 0; | 39 | return 0; |
40 | 40 | ||
41 | out_pmd: | ||
42 | pud_free(mm, pud); | ||
43 | out_pte: | 41 | out_pte: |
44 | pmd_free(mm, pmd); | 42 | pmd_free(mm, pmd); |
43 | out_pmd: | ||
44 | pud_free(mm, pud); | ||
45 | out: | 45 | out: |
46 | return -ENOMEM; | 46 | return -ENOMEM; |
47 | } | 47 | } |
diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c index 98351c78bc81..106bf27e2a9a 100644 --- a/arch/um/kernel/smp.c +++ b/arch/um/kernel/smp.c | |||
@@ -111,7 +111,7 @@ void smp_prepare_cpus(unsigned int maxcpus) | |||
111 | int i; | 111 | int i; |
112 | 112 | ||
113 | for (i = 0; i < ncpus; ++i) | 113 | for (i = 0; i < ncpus; ++i) |
114 | cpu_set(i, cpu_possible_map); | 114 | set_cpu_possible(i, true); |
115 | 115 | ||
116 | cpu_clear(me, cpu_online_map); | 116 | cpu_clear(me, cpu_online_map); |
117 | cpu_set(me, cpu_online_map); | 117 | cpu_set(me, cpu_online_map); |
diff --git a/arch/um/kernel/vmlinux.lds.S b/arch/um/kernel/vmlinux.lds.S index f8aeb448aab6..16e49bfa2b42 100644 --- a/arch/um/kernel/vmlinux.lds.S +++ b/arch/um/kernel/vmlinux.lds.S | |||
@@ -1,3 +1,6 @@ | |||
1 | |||
2 | KERNEL_STACK_SIZE = 4096 * (1 << CONFIG_KERNEL_STACK_ORDER); | ||
3 | |||
1 | #ifdef CONFIG_LD_SCRIPT_STATIC | 4 | #ifdef CONFIG_LD_SCRIPT_STATIC |
2 | #include "uml.lds.S" | 5 | #include "uml.lds.S" |
3 | #else | 6 | #else |
diff --git a/arch/um/os-Linux/helper.c b/arch/um/os-Linux/helper.c index 30860b89ec58..b6b1096152aa 100644 --- a/arch/um/os-Linux/helper.c +++ b/arch/um/os-Linux/helper.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include "os.h" | 15 | #include "os.h" |
16 | #include "um_malloc.h" | 16 | #include "um_malloc.h" |
17 | #include "user.h" | 17 | #include "user.h" |
18 | #include <linux/limits.h> | ||
19 | 18 | ||
20 | struct helper_data { | 19 | struct helper_data { |
21 | void (*pre_exec)(void*); | 20 | void (*pre_exec)(void*); |