| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|---|
| 1 | 2 | #ifndef __ASM_POWERPC_FEATURE_FIXUPS_H |
|---|
| 2 | 3 | #define __ASM_POWERPC_FEATURE_FIXUPS_H |
|---|
| 3 | 4 | |
|---|
| 4 | 5 | #include <asm/asm-const.h> |
|---|
| 5 | 6 | |
|---|
| 6 | 7 | /* |
|---|
| 7 | | - * This program is free software; you can redistribute it and/or |
|---|
| 8 | | - * modify it under the terms of the GNU General Public License |
|---|
| 9 | | - * as published by the Free Software Foundation; either version |
|---|
| 10 | | - * 2 of the License, or (at your option) any later version. |
|---|
| 11 | 8 | */ |
|---|
| 12 | 9 | |
|---|
| 13 | 10 | /* |
|---|
| .. | .. |
|---|
| 99 | 96 | |
|---|
| 100 | 97 | #define END_MMU_FTR_SECTION(msk, val) \ |
|---|
| 101 | 98 | END_MMU_FTR_SECTION_NESTED(msk, val, 97) |
|---|
| 99 | + |
|---|
| 100 | +#define END_MMU_FTR_SECTION_NESTED_IFSET(msk, label) \ |
|---|
| 101 | + END_MMU_FTR_SECTION_NESTED((msk), (msk), label) |
|---|
| 102 | 102 | |
|---|
| 103 | 103 | #define END_MMU_FTR_SECTION_IFSET(msk) END_MMU_FTR_SECTION((msk), (msk)) |
|---|
| 104 | 104 | #define END_MMU_FTR_SECTION_IFCLR(msk) END_MMU_FTR_SECTION((msk), 0) |
|---|
| .. | .. |
|---|
| 221 | 221 | FTR_ENTRY_OFFSET 957b-958b; \ |
|---|
| 222 | 222 | .popsection; |
|---|
| 223 | 223 | |
|---|
| 224 | +#define SCV_ENTRY_FLUSH_FIXUP_SECTION \ |
|---|
| 225 | +957: \ |
|---|
| 226 | + .pushsection __scv_entry_flush_fixup,"a"; \ |
|---|
| 227 | + .align 2; \ |
|---|
| 228 | +958: \ |
|---|
| 229 | + FTR_ENTRY_OFFSET 957b-958b; \ |
|---|
| 230 | + .popsection; |
|---|
| 231 | + |
|---|
| 224 | 232 | #define RFI_FLUSH_FIXUP_SECTION \ |
|---|
| 225 | 233 | 951: \ |
|---|
| 226 | 234 | .pushsection __rfi_flush_fixup,"a"; \ |
|---|
| .. | .. |
|---|
| 254 | 262 | |
|---|
| 255 | 263 | extern long stf_barrier_fallback; |
|---|
| 256 | 264 | extern long entry_flush_fallback; |
|---|
| 265 | +extern long scv_entry_flush_fallback; |
|---|
| 257 | 266 | extern long __start___stf_entry_barrier_fixup, __stop___stf_entry_barrier_fixup; |
|---|
| 258 | 267 | extern long __start___stf_exit_barrier_fixup, __stop___stf_exit_barrier_fixup; |
|---|
| 259 | 268 | extern long __start___uaccess_flush_fixup, __stop___uaccess_flush_fixup; |
|---|
| 260 | 269 | extern long __start___entry_flush_fixup, __stop___entry_flush_fixup; |
|---|
| 270 | +extern long __start___scv_entry_flush_fixup, __stop___scv_entry_flush_fixup; |
|---|
| 261 | 271 | extern long __start___rfi_flush_fixup, __stop___rfi_flush_fixup; |
|---|
| 262 | 272 | extern long __start___barrier_nospec_fixup, __stop___barrier_nospec_fixup; |
|---|
| 263 | 273 | extern long __start__btb_flush_fixup, __stop__btb_flush_fixup; |
|---|