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

Commit fe92da0f authored by Daniel Sanders's avatar Daniel Sanders Committed by Ralf Baechle
Browse files

MIPS: Changed current_thread_info() to an equivalent supported by both clang and GCC



Without this, a 'break' instruction is executed very early in the boot and
the boot hangs.

The problem is that clang doesn't honour named registers on local variables
and silently treats them as normal uninitialized variables. However, it
does honour them on global variables.

Signed-off-by: default avatarDaniel Sanders <daniel.sanders@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: Markos Chandras <markos.chandras@imgtec.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: David Daney <ddaney.cavm@gmail.com>
Acked-by: default avatarBehan Webster <behanw@converseincode.com>
Patchwork: https://patchwork.linux-mips.org/patch/9311/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 65c6896d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -55,10 +55,10 @@ struct thread_info {
#define init_stack		(init_thread_union.stack)

/* How to get the thread information struct from C.  */
static inline struct thread_info *current_thread_info(void)
{
register struct thread_info *__current_thread_info __asm__("$28");

static inline struct thread_info *current_thread_info(void)
{
	return __current_thread_info;
}