Skip to content

Commit

Permalink
MIPS: Changed current_thread_info() to an equivalent supported by bot…
Browse files Browse the repository at this point in the history
…h 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: Daniel 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: Behan Webster <behanw@converseincode.com>
Patchwork: https://patchwork.linux-mips.org/patch/9311/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Daniel Sanders authored and Ralf Baechle committed Apr 1, 2015
1 parent 65c6896 commit fe92da0
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions arch/mips/include/asm/thread_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ struct thread_info {
#define init_stack (init_thread_union.stack)

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

static inline struct thread_info *current_thread_info(void)
{
register struct thread_info *__current_thread_info __asm__("$28");

return __current_thread_info;
}

Expand Down

0 comments on commit fe92da0

Please sign in to comment.