Commit 60afa6d1 authored by Heiko Carstens's avatar Heiko Carstens Committed by Vasily Gorbik
Browse files

s390: remove arch_early_irq_init()



Allocate early async stack like other early stacks and get rid of
arch_early_irq_init(). This way the async stack is allocated earlier,
and handled like all other stacks.

Reviewed-by: default avatarVasily Gorbik <gor@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 23be82f0
Loading
Loading
Loading
Loading
+1 −11
Original line number Diff line number Diff line
@@ -386,17 +386,6 @@ void __init arch_call_rest_init(void)
	rest_init();
}

int __init arch_early_irq_init(void)
{
	unsigned long stack;

	stack = __get_free_pages(GFP_KERNEL, THREAD_SIZE_ORDER);
	if (!stack)
		panic("Couldn't allocate async stack");
	S390_lowcore.async_stack = stack + STACK_INIT_OFFSET;
	return 0;
}

static unsigned long __init stack_alloc_early(void)
{
	unsigned long stack;
@@ -453,6 +442,7 @@ static void __init setup_lowcore(void)
	 */
	restart_stack = (void *)(stack_alloc_early() + STACK_INIT_OFFSET);
	lc->mcck_stack = stack_alloc_early() + STACK_INIT_OFFSET;
	lc->async_stack = stack_alloc_early() + STACK_INIT_OFFSET;
	lc->nodat_stack = stack_alloc_early() + STACK_INIT_OFFSET;
	lc->kernel_stack = S390_lowcore.kernel_stack;
	/*
+1 −1
Original line number Diff line number Diff line
@@ -1293,8 +1293,8 @@ int __init smp_reinit_ipl_cpu(void)
	local_mcck_enable();
	local_irq_restore(flags);

	free_pages(lc_ipl->async_stack - STACK_INIT_OFFSET, THREAD_SIZE_ORDER);
	memblock_free_late(__pa(lc_ipl->mcck_stack - STACK_INIT_OFFSET), THREAD_SIZE);
	memblock_free_late(__pa(lc_ipl->async_stack - STACK_INIT_OFFSET), THREAD_SIZE);
	memblock_free_late(__pa(lc_ipl->nodat_stack - STACK_INIT_OFFSET), THREAD_SIZE);
	memblock_free_late(__pa(lc_ipl), sizeof(*lc_ipl));
	return 0;