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