summaryrefslogtreecommitdiff
path: root/arch/sparc/include
diff options
context:
space:
mode:
authorMikulas Patocka <mpatocka@redhat.com>2010-08-19 21:15:32 (GMT)
committerDavid S. Miller <davem@davemloft.net>2010-08-19 21:15:32 (GMT)
commit019408f9b89c68cd7b8ddb904960dc17ccf7e531 (patch)
treec5a7c4ba3531652da7299dede4eb331c5517769e /arch/sparc/include
parent0f58189d4a3ca96d7959501ecb203177efdbc5bd (diff)
downloadlinux-019408f9b89c68cd7b8ddb904960dc17ccf7e531.tar.xz
sparc64: Fill a missing delay slot.
If the code were already aligned to 64 bytes, wr instruction would be executed twice --- once in delay slot and once in the jump target. Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/include')
-rw-r--r--arch/sparc/include/asm/system_64.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/sparc/include/asm/system_64.h b/arch/sparc/include/asm/system_64.h
index d24cfe1..e3b65d8 100644
--- a/arch/sparc/include/asm/system_64.h
+++ b/arch/sparc/include/asm/system_64.h
@@ -106,6 +106,7 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \
*/
#define write_pic(__p) \
__asm__ __volatile__("ba,pt %%xcc, 99f\n\t" \
+ " nop\n\t" \
".align 64\n" \
"99:wr %0, 0x0, %%pic\n\t" \
"rd %%pic, %%g0" : : "r" (__p))