diff options
author | Sage Weil <sage@inktank.com> | 2013-08-15 14:11:45 -0400 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-08-15 14:11:45 -0400 |
commit | ee3e542fec6e69bc9fb668698889a37d93950ddf (patch) | |
tree | e74ee766a4764769ef1d3d45d266b4dea64101d3 /arch/um/kernel | |
parent | fe2a801b50c0bb8039d627e5ae1fec249d10ff39 (diff) | |
parent | f1d6e17f540af37bb1891480143669ba7636c4cf (diff) |
Merge remote-tracking branch 'linus/master' into testing
Diffstat (limited to 'arch/um/kernel')
-rw-r--r-- | arch/um/kernel/dyn.lds.S | 6 | ||||
-rw-r--r-- | arch/um/kernel/mem.c | 8 | ||||
-rw-r--r-- | arch/um/kernel/signal.c | 4 | ||||
-rw-r--r-- | arch/um/kernel/skas/mmu.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/skas/uaccess.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/sysrq.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/uml.lds.S | 7 |
7 files changed, 17 insertions, 14 deletions
diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S index fb8fd6fb6563..adde088aeeff 100644 --- a/arch/um/kernel/dyn.lds.S +++ b/arch/um/kernel/dyn.lds.S | |||
@@ -14,8 +14,6 @@ SECTIONS | |||
14 | __binary_start = .; | 14 | __binary_start = .; |
15 | . = ALIGN(4096); /* Init code and data */ | 15 | . = ALIGN(4096); /* Init code and data */ |
16 | _text = .; | 16 | _text = .; |
17 | _stext = .; | ||
18 | __init_begin = .; | ||
19 | INIT_TEXT_SECTION(PAGE_SIZE) | 17 | INIT_TEXT_SECTION(PAGE_SIZE) |
20 | 18 | ||
21 | . = ALIGN(PAGE_SIZE); | 19 | . = ALIGN(PAGE_SIZE); |
@@ -67,6 +65,7 @@ SECTIONS | |||
67 | } =0x90909090 | 65 | } =0x90909090 |
68 | .plt : { *(.plt) } | 66 | .plt : { *(.plt) } |
69 | .text : { | 67 | .text : { |
68 | _stext = .; | ||
70 | TEXT_TEXT | 69 | TEXT_TEXT |
71 | SCHED_TEXT | 70 | SCHED_TEXT |
72 | LOCK_TEXT | 71 | LOCK_TEXT |
@@ -91,7 +90,9 @@ SECTIONS | |||
91 | 90 | ||
92 | #include <asm/common.lds.S> | 91 | #include <asm/common.lds.S> |
93 | 92 | ||
93 | __init_begin = .; | ||
94 | init.data : { INIT_DATA } | 94 | init.data : { INIT_DATA } |
95 | __init_end = .; | ||
95 | 96 | ||
96 | /* Ensure the __preinit_array_start label is properly aligned. We | 97 | /* Ensure the __preinit_array_start label is properly aligned. We |
97 | could instead move the label definition inside the section, but | 98 | could instead move the label definition inside the section, but |
@@ -155,6 +156,7 @@ SECTIONS | |||
155 | . = ALIGN(32 / 8); | 156 | . = ALIGN(32 / 8); |
156 | . = ALIGN(32 / 8); | 157 | . = ALIGN(32 / 8); |
157 | } | 158 | } |
159 | __bss_stop = .; | ||
158 | _end = .; | 160 | _end = .; |
159 | PROVIDE (end = .); | 161 | PROVIDE (end = .); |
160 | 162 | ||
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c index 9df292b270a8..7ddb64baf327 100644 --- a/arch/um/kernel/mem.c +++ b/arch/um/kernel/mem.c | |||
@@ -65,15 +65,13 @@ void __init mem_init(void) | |||
65 | uml_reserved = brk_end; | 65 | uml_reserved = brk_end; |
66 | 66 | ||
67 | /* this will put all low memory onto the freelists */ | 67 | /* this will put all low memory onto the freelists */ |
68 | totalram_pages = free_all_bootmem(); | 68 | free_all_bootmem(); |
69 | max_low_pfn = totalram_pages; | 69 | max_low_pfn = totalram_pages; |
70 | #ifdef CONFIG_HIGHMEM | 70 | #ifdef CONFIG_HIGHMEM |
71 | setup_highmem(end_iomem, highmem); | 71 | setup_highmem(end_iomem, highmem); |
72 | #endif | 72 | #endif |
73 | num_physpages = totalram_pages; | ||
74 | max_pfn = totalram_pages; | 73 | max_pfn = totalram_pages; |
75 | printk(KERN_INFO "Memory: %luk available\n", | 74 | mem_init_print_info(NULL); |
76 | nr_free_pages() << (PAGE_SHIFT-10)); | ||
77 | kmalloc_ok = 1; | 75 | kmalloc_ok = 1; |
78 | } | 76 | } |
79 | 77 | ||
@@ -244,7 +242,7 @@ void free_initmem(void) | |||
244 | #ifdef CONFIG_BLK_DEV_INITRD | 242 | #ifdef CONFIG_BLK_DEV_INITRD |
245 | void free_initrd_mem(unsigned long start, unsigned long end) | 243 | void free_initrd_mem(unsigned long start, unsigned long end) |
246 | { | 244 | { |
247 | free_reserved_area(start, end, 0, "initrd"); | 245 | free_reserved_area((void *)start, (void *)end, -1, "initrd"); |
248 | } | 246 | } |
249 | #endif | 247 | #endif |
250 | 248 | ||
diff --git a/arch/um/kernel/signal.c b/arch/um/kernel/signal.c index 3e831b3fd07b..f57e02e7910f 100644 --- a/arch/um/kernel/signal.c +++ b/arch/um/kernel/signal.c | |||
@@ -19,7 +19,7 @@ EXPORT_SYMBOL(unblock_signals); | |||
19 | * OK, we're invoking a handler | 19 | * OK, we're invoking a handler |
20 | */ | 20 | */ |
21 | static void handle_signal(struct pt_regs *regs, unsigned long signr, | 21 | static void handle_signal(struct pt_regs *regs, unsigned long signr, |
22 | struct k_sigaction *ka, siginfo_t *info) | 22 | struct k_sigaction *ka, struct siginfo *info) |
23 | { | 23 | { |
24 | sigset_t *oldset = sigmask_to_save(); | 24 | sigset_t *oldset = sigmask_to_save(); |
25 | int singlestep = 0; | 25 | int singlestep = 0; |
@@ -71,7 +71,7 @@ static void handle_signal(struct pt_regs *regs, unsigned long signr, | |||
71 | static int kern_do_signal(struct pt_regs *regs) | 71 | static int kern_do_signal(struct pt_regs *regs) |
72 | { | 72 | { |
73 | struct k_sigaction ka_copy; | 73 | struct k_sigaction ka_copy; |
74 | siginfo_t info; | 74 | struct siginfo info; |
75 | int sig, handled_sig = 0; | 75 | int sig, handled_sig = 0; |
76 | 76 | ||
77 | while ((sig = get_signal_to_deliver(&info, &ka_copy, regs, NULL)) > 0) { | 77 | while ((sig = get_signal_to_deliver(&info, &ka_copy, regs, NULL)) > 0) { |
diff --git a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c index ff03067a3b14..007d5503f49b 100644 --- a/arch/um/kernel/skas/mmu.c +++ b/arch/um/kernel/skas/mmu.c | |||
@@ -123,7 +123,7 @@ void uml_setup_stubs(struct mm_struct *mm) | |||
123 | /* dup_mmap already holds mmap_sem */ | 123 | /* dup_mmap already holds mmap_sem */ |
124 | err = install_special_mapping(mm, STUB_START, STUB_END - STUB_START, | 124 | err = install_special_mapping(mm, STUB_START, STUB_END - STUB_START, |
125 | VM_READ | VM_MAYREAD | VM_EXEC | | 125 | VM_READ | VM_MAYREAD | VM_EXEC | |
126 | VM_MAYEXEC | VM_DONTCOPY, | 126 | VM_MAYEXEC | VM_DONTCOPY | VM_PFNMAP, |
127 | mm->context.stub_pages); | 127 | mm->context.stub_pages); |
128 | if (err) { | 128 | if (err) { |
129 | printk(KERN_ERR "install_special_mapping returned %d\n", err); | 129 | printk(KERN_ERR "install_special_mapping returned %d\n", err); |
diff --git a/arch/um/kernel/skas/uaccess.c b/arch/um/kernel/skas/uaccess.c index 1d3e0c17340b..4ffb644d6c07 100644 --- a/arch/um/kernel/skas/uaccess.c +++ b/arch/um/kernel/skas/uaccess.c | |||
@@ -254,6 +254,6 @@ int strnlen_user(const void __user *str, int len) | |||
254 | n = buffer_op((unsigned long) str, len, 0, strnlen_chunk, &count); | 254 | n = buffer_op((unsigned long) str, len, 0, strnlen_chunk, &count); |
255 | if (n == 0) | 255 | if (n == 0) |
256 | return count + 1; | 256 | return count + 1; |
257 | return -EFAULT; | 257 | return 0; |
258 | } | 258 | } |
259 | EXPORT_SYMBOL(strnlen_user); | 259 | EXPORT_SYMBOL(strnlen_user); |
diff --git a/arch/um/kernel/sysrq.c b/arch/um/kernel/sysrq.c index 7d101a2a1541..0dc4d1c6f98a 100644 --- a/arch/um/kernel/sysrq.c +++ b/arch/um/kernel/sysrq.c | |||
@@ -39,7 +39,7 @@ void show_trace(struct task_struct *task, unsigned long * stack) | |||
39 | static const int kstack_depth_to_print = 24; | 39 | static const int kstack_depth_to_print = 24; |
40 | 40 | ||
41 | /* This recently started being used in arch-independent code too, as in | 41 | /* This recently started being used in arch-independent code too, as in |
42 | * kernel/sched.c.*/ | 42 | * kernel/sched/core.c.*/ |
43 | void show_stack(struct task_struct *task, unsigned long *esp) | 43 | void show_stack(struct task_struct *task, unsigned long *esp) |
44 | { | 44 | { |
45 | unsigned long *stack; | 45 | unsigned long *stack; |
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S index ff65fb4f1a95..6899195602b7 100644 --- a/arch/um/kernel/uml.lds.S +++ b/arch/um/kernel/uml.lds.S | |||
@@ -20,13 +20,12 @@ SECTIONS | |||
20 | . = START + SIZEOF_HEADERS; | 20 | . = START + SIZEOF_HEADERS; |
21 | 21 | ||
22 | _text = .; | 22 | _text = .; |
23 | _stext = .; | ||
24 | __init_begin = .; | ||
25 | INIT_TEXT_SECTION(0) | 23 | INIT_TEXT_SECTION(0) |
26 | . = ALIGN(PAGE_SIZE); | 24 | . = ALIGN(PAGE_SIZE); |
27 | 25 | ||
28 | .text : | 26 | .text : |
29 | { | 27 | { |
28 | _stext = .; | ||
30 | TEXT_TEXT | 29 | TEXT_TEXT |
31 | SCHED_TEXT | 30 | SCHED_TEXT |
32 | LOCK_TEXT | 31 | LOCK_TEXT |
@@ -62,7 +61,10 @@ SECTIONS | |||
62 | 61 | ||
63 | #include <asm/common.lds.S> | 62 | #include <asm/common.lds.S> |
64 | 63 | ||
64 | __init_begin = .; | ||
65 | init.data : { INIT_DATA } | 65 | init.data : { INIT_DATA } |
66 | __init_end = .; | ||
67 | |||
66 | .data : | 68 | .data : |
67 | { | 69 | { |
68 | INIT_TASK_DATA(KERNEL_STACK_SIZE) | 70 | INIT_TASK_DATA(KERNEL_STACK_SIZE) |
@@ -97,6 +99,7 @@ SECTIONS | |||
97 | PROVIDE(_bss_start = .); | 99 | PROVIDE(_bss_start = .); |
98 | SBSS(0) | 100 | SBSS(0) |
99 | BSS(0) | 101 | BSS(0) |
102 | __bss_stop = .; | ||
100 | _end = .; | 103 | _end = .; |
101 | PROVIDE (end = .); | 104 | PROVIDE (end = .); |
102 | 105 | ||