diff options
author | Graf Yang <graf.yang@analog.com> | 2009-05-25 02:40:42 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-06-12 06:11:51 -0400 |
commit | 89ecd506917ba6e86ede072efbef6c69d01db4dd (patch) | |
tree | 3e98b210fde164a21cccbf27a769cf07b7f4857a /arch/blackfin/mm | |
parent | c72aa0794a0ecc0b87ba9d5546215c26c8c80668 (diff) |
Blackfin: fix handling of initial L1 reservation
This restores some L1 reservation logic that was lost during the Blackfin
SMP merge.
Signed-off-by: Graf Yang <graf.yang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mm')
-rw-r--r-- | arch/blackfin/mm/sram-alloc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/blackfin/mm/sram-alloc.c b/arch/blackfin/mm/sram-alloc.c index 36376d8418fa..fa54a4ee3d6c 100644 --- a/arch/blackfin/mm/sram-alloc.c +++ b/arch/blackfin/mm/sram-alloc.c | |||
@@ -83,6 +83,14 @@ static struct kmem_cache *sram_piece_cache; | |||
83 | static void __init l1sram_init(void) | 83 | static void __init l1sram_init(void) |
84 | { | 84 | { |
85 | unsigned int cpu; | 85 | unsigned int cpu; |
86 | unsigned long reserve; | ||
87 | |||
88 | #ifdef CONFIG_SMP | ||
89 | reserve = 0; | ||
90 | #else | ||
91 | reserve = sizeof(struct l1_scratch_task_info); | ||
92 | #endif | ||
93 | |||
86 | for (cpu = 0; cpu < num_possible_cpus(); ++cpu) { | 94 | for (cpu = 0; cpu < num_possible_cpus(); ++cpu) { |
87 | per_cpu(free_l1_ssram_head, cpu).next = | 95 | per_cpu(free_l1_ssram_head, cpu).next = |
88 | kmem_cache_alloc(sram_piece_cache, GFP_KERNEL); | 96 | kmem_cache_alloc(sram_piece_cache, GFP_KERNEL); |
@@ -91,8 +99,8 @@ static void __init l1sram_init(void) | |||
91 | return; | 99 | return; |
92 | } | 100 | } |
93 | 101 | ||
94 | per_cpu(free_l1_ssram_head, cpu).next->paddr = (void *)get_l1_scratch_start_cpu(cpu); | 102 | per_cpu(free_l1_ssram_head, cpu).next->paddr = (void *)get_l1_scratch_start_cpu(cpu) + reserve; |
95 | per_cpu(free_l1_ssram_head, cpu).next->size = L1_SCRATCH_LENGTH; | 103 | per_cpu(free_l1_ssram_head, cpu).next->size = L1_SCRATCH_LENGTH - reserve; |
96 | per_cpu(free_l1_ssram_head, cpu).next->pid = 0; | 104 | per_cpu(free_l1_ssram_head, cpu).next->pid = 0; |
97 | per_cpu(free_l1_ssram_head, cpu).next->next = NULL; | 105 | per_cpu(free_l1_ssram_head, cpu).next->next = NULL; |
98 | 106 | ||