Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 89ecd506 authored by Graf Yang's avatar Graf Yang Committed by Mike Frysinger
Browse files

Blackfin: fix handling of initial L1 reservation



This restores some L1 reservation logic that was lost during the Blackfin
SMP merge.

Signed-off-by: default avatarGraf Yang <graf.yang@analog.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent c72aa079
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -83,6 +83,14 @@ static struct kmem_cache *sram_piece_cache;
static void __init l1sram_init(void)
{
	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) {
		per_cpu(free_l1_ssram_head, cpu).next =
			kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
@@ -91,8 +99,8 @@ static void __init l1sram_init(void)
			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->size = L1_SCRATCH_LENGTH;
		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 - reserve;
		per_cpu(free_l1_ssram_head, cpu).next->pid = 0;
		per_cpu(free_l1_ssram_head, cpu).next->next = NULL;