Commit 103340cc authored by Paul Mundt's avatar Paul Mundt

sh: Fix up unaligned current_text_addr().

As noted by Adrian:

	Commit 3ab83521 (kexec jump)
	causes the following build error on sh:

	<--  snip  -->

	...
	  CC      kernel/kexec.o
	{standard input}: Assembler messages:
	{standard input}:1518: Error: offset to unaligned destination
	make[2]: *** [kernel/kexec.o] Error 1

	<--  snip  -->

	If I understand the assembler correctly it fails at
	include/asm-sh/kexec.h:59

The issue here is that the mova reference lacks an explicit alignment,
and previous code paths would end up with this on a 16-bit boundary,
so we make the alignment explicit.
Reported-by: default avatarAdrian Bunk <bunk@kernel.org>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 11325f03
......@@ -19,7 +19,7 @@
* Default implementation of macro that returns current
* instruction pointer ("program counter").
*/
#define current_text_addr() ({ void *pc; __asm__("mova 1f, %0\n1:":"=z" (pc)); pc; })
#define current_text_addr() ({ void *pc; __asm__("mova 1f, %0\n.align 2\n1:":"=z" (pc)); pc; })
/* Core Processor Version Register */
#define CCN_PVR 0xff000030
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment