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>
This commit is contained in:
parent
c72aa0794a
commit
89ecd50691
|
@ -83,6 +83,14 @@ static struct kmem_cache *sram_piece_cache;
|
||||||
static void __init l1sram_init(void)
|
static void __init l1sram_init(void)
|
||||||
{
|
{
|
||||||
unsigned int cpu;
|
unsigned int cpu;
|
||||||
|
unsigned long reserve;
|
||||||
|
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
|
reserve = 0;
|
||||||
|
#else
|
||||||
|
reserve = sizeof(struct l1_scratch_task_info);
|
||||||
|
#endif
|
||||||
|
|
||||||
for (cpu = 0; cpu < num_possible_cpus(); ++cpu) {
|
for (cpu = 0; cpu < num_possible_cpus(); ++cpu) {
|
||||||
per_cpu(free_l1_ssram_head, cpu).next =
|
per_cpu(free_l1_ssram_head, cpu).next =
|
||||||
kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
|
kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
|
||||||
|
@ -91,8 +99,8 @@ static void __init l1sram_init(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
per_cpu(free_l1_ssram_head, cpu).next->paddr = (void *)get_l1_scratch_start_cpu(cpu);
|
per_cpu(free_l1_ssram_head, cpu).next->paddr = (void *)get_l1_scratch_start_cpu(cpu) + reserve;
|
||||||
per_cpu(free_l1_ssram_head, cpu).next->size = L1_SCRATCH_LENGTH;
|
per_cpu(free_l1_ssram_head, cpu).next->size = L1_SCRATCH_LENGTH - reserve;
|
||||||
per_cpu(free_l1_ssram_head, cpu).next->pid = 0;
|
per_cpu(free_l1_ssram_head, cpu).next->pid = 0;
|
||||||
per_cpu(free_l1_ssram_head, cpu).next->next = NULL;
|
per_cpu(free_l1_ssram_head, cpu).next->next = NULL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue