projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dyn_array: split dyn_array functions from init/main.c
[deliverable/linux.git]
/
init
/
main.c
diff --git
a/init/main.c
b/init/main.c
index 3820323c4c8467c07831a8844532fb85976e9a9f..e81cf427d9c7a43d42b93ca2a8aed3a1ab64f089 100644
(file)
--- a/
init/main.c
+++ b/
init/main.c
@@
-391,17
+391,23
@@
EXPORT_SYMBOL(__per_cpu_offset);
static void __init setup_per_cpu_areas(void)
{
static void __init setup_per_cpu_areas(void)
{
- unsigned long size, i;
+ unsigned long size, i
, old_size
;
char *ptr;
unsigned long nr_possible_cpus = num_possible_cpus();
char *ptr;
unsigned long nr_possible_cpus = num_possible_cpus();
+ unsigned long align = 1;
+ unsigned da_size;
/* Copy section for each CPU (we discard the original) */
/* Copy section for each CPU (we discard the original) */
- size = ALIGN(PERCPU_ENOUGH_ROOM, PAGE_SIZE);
+ old_size = PERCPU_ENOUGH_ROOM;
+ da_size = per_cpu_dyn_array_size(&align);
+ align = max_t(unsigned long, PAGE_SIZE, align);
+ size = ALIGN(old_size + da_size, align);
ptr = alloc_bootmem_pages(size * nr_possible_cpus);
for_each_possible_cpu(i) {
__per_cpu_offset[i] = ptr - __per_cpu_start;
memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start);
ptr = alloc_bootmem_pages(size * nr_possible_cpus);
for_each_possible_cpu(i) {
__per_cpu_offset[i] = ptr - __per_cpu_start;
memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start);
+ per_cpu_alloc_dyn_array(i, ptr + old_size);
ptr += size;
}
}
ptr += size;
}
}
@@
-567,6
+573,7
@@
asmlinkage void __init start_kernel(void)
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
+ pre_alloc_dyn_array();
mm_init_owner(&init_mm, &init_task);
setup_command_line(command_line);
unwind_setup();
mm_init_owner(&init_mm, &init_task);
setup_command_line(command_line);
unwind_setup();
@@
-708,7
+715,7
@@
int do_one_initcall(initcall_t fn)
int result;
if (initcall_debug) {
int result;
if (initcall_debug) {
- printk("calling %pF
\n", fn
);
+ printk("calling %pF
@ %i\n", fn, task_pid_nr(current)
);
t0 = ktime_get();
}
t0 = ktime_get();
}
This page took
0.032198 seconds
and
5
git commands to generate.