diff options
Diffstat (limited to 'kernel/profile.c')
-rw-r--r-- | kernel/profile.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/kernel/profile.c b/kernel/profile.c index 7724e0409bae..69911b5745eb 100644 --- a/kernel/profile.c +++ b/kernel/profile.c | |||
@@ -111,12 +111,6 @@ int __ref profile_init(void) | |||
111 | /* only text is profiled */ | 111 | /* only text is profiled */ |
112 | prof_len = (_etext - _stext) >> prof_shift; | 112 | prof_len = (_etext - _stext) >> prof_shift; |
113 | buffer_bytes = prof_len*sizeof(atomic_t); | 113 | buffer_bytes = prof_len*sizeof(atomic_t); |
114 | if (!slab_is_available()) { | ||
115 | prof_buffer = alloc_bootmem(buffer_bytes); | ||
116 | alloc_bootmem_cpumask_var(&prof_cpu_mask); | ||
117 | cpumask_copy(prof_cpu_mask, cpu_possible_mask); | ||
118 | return 0; | ||
119 | } | ||
120 | 114 | ||
121 | if (!alloc_cpumask_var(&prof_cpu_mask, GFP_KERNEL)) | 115 | if (!alloc_cpumask_var(&prof_cpu_mask, GFP_KERNEL)) |
122 | return -ENOMEM; | 116 | return -ENOMEM; |
@@ -371,7 +365,7 @@ static int __cpuinit profile_cpu_callback(struct notifier_block *info, | |||
371 | node = cpu_to_node(cpu); | 365 | node = cpu_to_node(cpu); |
372 | per_cpu(cpu_profile_flip, cpu) = 0; | 366 | per_cpu(cpu_profile_flip, cpu) = 0; |
373 | if (!per_cpu(cpu_profile_hits, cpu)[1]) { | 367 | if (!per_cpu(cpu_profile_hits, cpu)[1]) { |
374 | page = alloc_pages_node(node, | 368 | page = alloc_pages_exact_node(node, |
375 | GFP_KERNEL | __GFP_ZERO, | 369 | GFP_KERNEL | __GFP_ZERO, |
376 | 0); | 370 | 0); |
377 | if (!page) | 371 | if (!page) |
@@ -379,7 +373,7 @@ static int __cpuinit profile_cpu_callback(struct notifier_block *info, | |||
379 | per_cpu(cpu_profile_hits, cpu)[1] = page_address(page); | 373 | per_cpu(cpu_profile_hits, cpu)[1] = page_address(page); |
380 | } | 374 | } |
381 | if (!per_cpu(cpu_profile_hits, cpu)[0]) { | 375 | if (!per_cpu(cpu_profile_hits, cpu)[0]) { |
382 | page = alloc_pages_node(node, | 376 | page = alloc_pages_exact_node(node, |
383 | GFP_KERNEL | __GFP_ZERO, | 377 | GFP_KERNEL | __GFP_ZERO, |
384 | 0); | 378 | 0); |
385 | if (!page) | 379 | if (!page) |
@@ -570,14 +564,14 @@ static int create_hash_tables(void) | |||
570 | int node = cpu_to_node(cpu); | 564 | int node = cpu_to_node(cpu); |
571 | struct page *page; | 565 | struct page *page; |
572 | 566 | ||
573 | page = alloc_pages_node(node, | 567 | page = alloc_pages_exact_node(node, |
574 | GFP_KERNEL | __GFP_ZERO | GFP_THISNODE, | 568 | GFP_KERNEL | __GFP_ZERO | GFP_THISNODE, |
575 | 0); | 569 | 0); |
576 | if (!page) | 570 | if (!page) |
577 | goto out_cleanup; | 571 | goto out_cleanup; |
578 | per_cpu(cpu_profile_hits, cpu)[1] | 572 | per_cpu(cpu_profile_hits, cpu)[1] |
579 | = (struct profile_hit *)page_address(page); | 573 | = (struct profile_hit *)page_address(page); |
580 | page = alloc_pages_node(node, | 574 | page = alloc_pages_exact_node(node, |
581 | GFP_KERNEL | __GFP_ZERO | GFP_THISNODE, | 575 | GFP_KERNEL | __GFP_ZERO | GFP_THISNODE, |
582 | 0); | 576 | 0); |
583 | if (!page) | 577 | if (!page) |