1e61938a9SMathieu Desnoyers /* SPDX-License-Identifier: GPL-2.0 */ 2e61938a9SMathieu Desnoyers #ifndef _LINUX_SYNC_CORE_H 3e61938a9SMathieu Desnoyers #define _LINUX_SYNC_CORE_H 4e61938a9SMathieu Desnoyers 5e61938a9SMathieu Desnoyers #ifdef CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE 6e61938a9SMathieu Desnoyers #include <asm/sync_core.h> 7e61938a9SMathieu Desnoyers #else 8e61938a9SMathieu Desnoyers /* 9e61938a9SMathieu Desnoyers * This is a dummy sync_core_before_usermode() implementation that can be used 10e61938a9SMathieu Desnoyers * on all architectures which return to user-space through core serializing 11e61938a9SMathieu Desnoyers * instructions. 12e61938a9SMathieu Desnoyers * If your architecture returns to user-space through non-core-serializing 13e61938a9SMathieu Desnoyers * instructions, you need to write your own functions. 14e61938a9SMathieu Desnoyers */ sync_core_before_usermode(void)15e61938a9SMathieu Desnoyersstatic inline void sync_core_before_usermode(void) 16e61938a9SMathieu Desnoyers { 17e61938a9SMathieu Desnoyers } 18e61938a9SMathieu Desnoyers #endif 19e61938a9SMathieu Desnoyers 20*4ff4c745SAndrea Parri #ifdef CONFIG_ARCH_HAS_PREPARE_SYNC_CORE_CMD 21*4ff4c745SAndrea Parri #include <asm/sync_core.h> 22*4ff4c745SAndrea Parri #else 23*4ff4c745SAndrea Parri /* 24*4ff4c745SAndrea Parri * This is a dummy prepare_sync_core_cmd() implementation that can be used on 25*4ff4c745SAndrea Parri * all architectures which provide unconditional core serializing instructions 26*4ff4c745SAndrea Parri * in switch_mm(). 27*4ff4c745SAndrea Parri * If your architecture doesn't provide such core serializing instructions in 28*4ff4c745SAndrea Parri * switch_mm(), you may need to write your own functions. 29*4ff4c745SAndrea Parri */ prepare_sync_core_cmd(struct mm_struct * mm)30*4ff4c745SAndrea Parristatic inline void prepare_sync_core_cmd(struct mm_struct *mm) 31*4ff4c745SAndrea Parri { 32*4ff4c745SAndrea Parri } 33*4ff4c745SAndrea Parri #endif 34e61938a9SMathieu Desnoyers 35*4ff4c745SAndrea Parri #endif /* _LINUX_SYNC_CORE_H */ 36