parisc: Mark altinstructions read-only and 32-bit aligned
authorHelge Deller <deller@gmx.de>
Mon, 20 Nov 2023 22:10:20 +0000 (23:10 +0100)
committerHelge Deller <deller@gmx.de>
Sat, 25 Nov 2023 08:43:17 +0000 (09:43 +0100)
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: stable@vger.kernel.org # v6.0+
arch/parisc/include/asm/alternative.h

index 1ed45fd085d3b80ece36baf4c815fa91e709df63..1eb488f25b838074da6934e5d406e170ffdc6ed2 100644 (file)
@@ -34,7 +34,8 @@ void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
 
 /* Alternative SMP implementation. */
 #define ALTERNATIVE(cond, replacement)         "!0:"   \
-       ".section .altinstructions, \"aw\"      !"      \
+       ".section .altinstructions, \"a\"       !"      \
+       ".align 4                               !"      \
        ".word (0b-4-.)                         !"      \
        ".hword 1, " __stringify(cond) "        !"      \
        ".word " __stringify(replacement) "     !"      \
@@ -44,7 +45,8 @@ void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
 
 /* to replace one single instructions by a new instruction */
 #define ALTERNATIVE(from, to, cond, replacement)\
-       .section .altinstructions, "aw" !       \
+       .section .altinstructions, "a"  !       \
+       .align 4                        !       \
        .word (from - .)                !       \
        .hword (to - from)/4, cond      !       \
        .word replacement               !       \
@@ -52,7 +54,8 @@ void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
 
 /* to replace multiple instructions by new code */
 #define ALTERNATIVE_CODE(from, num_instructions, cond, new_instr_ptr)\
-       .section .altinstructions, "aw" !       \
+       .section .altinstructions, "a"  !       \
+       .align 4                        !       \
        .word (from - .)                !       \
        .hword -num_instructions, cond  !       \
        .word (new_instr_ptr - .)       !       \