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) |
