]> Pileus Git - ~andy/linux/commitdiff
sparc64: Fill a missing delay slot.
authorMikulas Patocka <mpatocka@redhat.com>
Thu, 19 Aug 2010 21:15:32 +0000 (14:15 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Aug 2010 21:15:32 +0000 (14:15 -0700)
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>
arch/sparc/include/asm/system_64.h

index d24cfe16afc1babc4feb78f0c697555754304346..e3b65d8cf41b715bb71b9339c9184e42feea01d0 100644 (file)
@@ -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))