]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - arch/powerpc/lib/feature-fixups.c
powerpc/64s: Patch barrier_nospec in modules
[mirror_ubuntu-bionic-kernel.git] / arch / powerpc / lib / feature-fixups.c
index 9c132d29c17b6c90a0e413aff1f0987fa0e6242d..a6f3a134286310831587f336e5c7a9e0230ce9c4 100644 (file)
@@ -278,14 +278,14 @@ void do_rfi_flush_fixups(enum l1d_flush_type types)
                                                : "unknown");
 }
 
-void do_barrier_nospec_fixups(bool enable)
+void do_barrier_nospec_fixups_range(bool enable, void *fixup_start, void *fixup_end)
 {
        unsigned int instr, *dest;
        long *start, *end;
        int i;
 
-       start = PTRRELOC(&__start___barrier_nospec_fixup),
-       end = PTRRELOC(&__stop___barrier_nospec_fixup);
+       start = fixup_start;
+       end = fixup_end;
 
        instr = 0x60000000; /* nop */
 
@@ -304,6 +304,16 @@ void do_barrier_nospec_fixups(bool enable)
        printk(KERN_DEBUG "barrier-nospec: patched %d locations\n", i);
 }
 
+void do_barrier_nospec_fixups(bool enable)
+{
+       void *start, *end;
+
+       start = PTRRELOC(&__start___barrier_nospec_fixup),
+       end = PTRRELOC(&__stop___barrier_nospec_fixup);
+
+       do_barrier_nospec_fixups_range(enable, start, end);
+}
+
 #endif /* CONFIG_PPC_BOOK3S_64 */
 
 void do_lwsync_fixups(unsigned long value, void *fixup_start, void *fixup_end)