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