Commit 6b1370ae authored by Sven Schnelle's avatar Sven Schnelle Committed by Helge Deller
Browse files

parisc: enable wide mode early



The idle task might have been allocated above 4GB. With the current code
we cannot access that memory because the CPU is still running in narrow
mode.
This was found on a J5000 machine and the patch is required to enable
SPARSEMEM on that machine.

Signed-off-by: default avatarSven Schnelle <svens@stackframe.org>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent 75da60ff
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -329,6 +329,19 @@ smp_slave_stext:
	mtsp	   %r0,%sr6
	mtsp	   %r0,%sr6
	mtsp	   %r0,%sr7
	mtsp	   %r0,%sr7


#ifdef CONFIG_64BIT
	/*
	 *  Enable Wide mode early, in case the task_struct for the idle
	 *  task in smp_init_current_idle_task was allocated above 4GB.
	 */
1:	mfia            %rp             /* clear upper part of pcoq */
	ldo             2f-1b(%rp),%rp
	depdi           0,31,32,%rp
	bv              (%rp)
	ssm             PSW_SM_W,%r0
2:
#endif

	/*  Initialize the SP - monarch sets up smp_init_current_idle_task */
	/*  Initialize the SP - monarch sets up smp_init_current_idle_task */
	load32		PA(smp_init_current_idle_task),%sp
	load32		PA(smp_init_current_idle_task),%sp
	LDREG		0(%sp),%sp	/* load task address */
	LDREG		0(%sp),%sp	/* load task address */