xref: /linux/include/linux/mmu_context.h (revision 1d6d3992235ed08929846f98fecf79682e0b422c)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
23d2d827fSMichael S. Tsirkin #ifndef _LINUX_MMU_CONTEXT_H
33d2d827fSMichael S. Tsirkin #define _LINUX_MMU_CONTEXT_H
43d2d827fSMichael S. Tsirkin 
5f98db601SAndy Lutomirski #include <asm/mmu_context.h>
6bf9282dcSPeter Zijlstra #include <asm/mmu.h>
7f98db601SAndy Lutomirski 
8f98db601SAndy Lutomirski /* Architectures that care about IRQ state in switch_mm can override this. */
9f98db601SAndy Lutomirski #ifndef switch_mm_irqs_off
10f98db601SAndy Lutomirski # define switch_mm_irqs_off switch_mm
11f98db601SAndy Lutomirski #endif
12f98db601SAndy Lutomirski 
13bf9282dcSPeter Zijlstra #ifndef leave_mm
147dbbc8f5SYosry Ahmed static inline void leave_mm(void) { }
15bf9282dcSPeter Zijlstra #endif
16bf9282dcSPeter Zijlstra 
179ae606bcSWill Deacon /*
189ae606bcSWill Deacon  * CPUs that are capable of running user task @p. Must contain at least one
199ae606bcSWill Deacon  * active CPU. It is assumed that the kernel can run on all CPUs, so calling
209ae606bcSWill Deacon  * this for a kernel thread is pointless.
219ae606bcSWill Deacon  *
229ae606bcSWill Deacon  * By default, we assume a sane, homogeneous system.
239ae606bcSWill Deacon  */
249ae606bcSWill Deacon #ifndef task_cpu_possible_mask
259ae606bcSWill Deacon # define task_cpu_possible_mask(p)	cpu_possible_mask
269ae606bcSWill Deacon # define task_cpu_possible(cpu, p)	true
27*3a544661SFrederic Weisbecker # define task_cpu_fallback_mask(p)	housekeeping_cpumask(HK_TYPE_TICK)
289ae606bcSWill Deacon #else
299ae606bcSWill Deacon # define task_cpu_possible(cpu, p)	cpumask_test_cpu((cpu), task_cpu_possible_mask(p))
309ae606bcSWill Deacon #endif
319ae606bcSWill Deacon 
32f7d30434SKirill A. Shutemov #ifndef mm_untag_mask
33f7d30434SKirill A. Shutemov static inline unsigned long mm_untag_mask(struct mm_struct *mm)
34f7d30434SKirill A. Shutemov {
35f7d30434SKirill A. Shutemov 	return -1UL;
36f7d30434SKirill A. Shutemov }
37f7d30434SKirill A. Shutemov #endif
38f7d30434SKirill A. Shutemov 
3923e5d9ecSKirill A. Shutemov #ifndef arch_pgtable_dma_compat
4023e5d9ecSKirill A. Shutemov static inline bool arch_pgtable_dma_compat(struct mm_struct *mm)
4123e5d9ecSKirill A. Shutemov {
4223e5d9ecSKirill A. Shutemov 	return true;
4323e5d9ecSKirill A. Shutemov }
4423e5d9ecSKirill A. Shutemov #endif
4523e5d9ecSKirill A. Shutemov 
463d2d827fSMichael S. Tsirkin #endif
47