/arch/sparc/include/asm/ |
H A D | mmu_context_32.h | 8 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument 15 int init_new_context(struct task_struct *tsk, struct mm_struct *mm); 22 void destroy_context(struct mm_struct *mm); 25 void switch_mm(struct mm_struct *old_mm, struct mm_struct *mm, 28 #define deactivate_mm(tsk,mm) do { } while (0) 31 #define activate_mm(active_mm, mm) switch_mm((active_mm), (mm), NULL)
|
H A D | mmu_context_64.h | 12 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument 20 void get_new_mmu_context(struct mm_struct *mm); 27 int init_new_context(struct task_struct *tsk, struct mm_struct *mm); 28 void destroy_context(struct mm_struct *mm); 35 static inline void tsb_context_switch(struct mm_struct *mm) argument 37 __tsb_context_switch(__pa(mm->pgd), 38 &mm->context.tsb_block[0], 40 (mm->context.tsb_block[1].tsb ? 41 &mm->context.tsb_block[1] : 46 , __pa(&mm 74 switch_mm(struct mm_struct *old_mm, struct mm_struct *mm, struct task_struct *tsk) argument 136 activate_mm(struct mm_struct *active_mm, struct mm_struct *mm) argument [all...] |
H A D | tlbflush_64.h | 11 struct mm_struct *mm; member in struct:tlb_batch 19 void flush_tsb_user_page(struct mm_struct *mm, unsigned long vaddr); 23 static inline void flush_tlb_mm(struct mm_struct *mm) argument 53 static inline void global_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr) argument 55 __flush_tlb_page(CTX_HWBITS(mm->context), vaddr); 61 void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr); 63 #define global_flush_tlb_page(mm, vaddr) \ 64 smp_flush_tlb_page(mm, vaddr)
|
/arch/arm/include/asm/ |
H A D | mmu_context.h | 24 void __check_vmalloc_seq(struct mm_struct *mm); 28 void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); 29 #define init_new_context(tsk,mm) ({ atomic64_set(&mm->context.id, 0); 0; }) 32 void a15_erratum_get_cpumask(int this_cpu, struct mm_struct *mm, 35 static inline void a15_erratum_get_cpumask(int this_cpu, struct mm_struct *mm, argument 45 static inline void check_and_switch_context(struct mm_struct *mm, argument 48 if (unlikely(mm->context.vmalloc_seq != init_mm.context.vmalloc_seq)) 49 __check_vmalloc_seq(mm); 55 * running with the old mm 68 struct mm_struct *mm = current->mm; local 105 enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument [all...] |
/arch/arm64/mm/ |
H A D | context.c | 2 * Based on arch/arm/mm/context.c 22 #include <linux/mm.h> 41 void __init_new_context(struct task_struct *tsk, struct mm_struct *mm) argument 43 mm->context.id = 0; 44 raw_spin_lock_init(&mm->context.id_lock); 58 static void set_mm_context(struct mm_struct *mm, unsigned int asid) argument 64 * mm->context.id could be set from different CPUs during the 66 * mm->context.id_lock has to be IRQ-safe. 68 raw_spin_lock_irqsave(&mm->context.id_lock, flags); 69 if (likely((mm 93 struct mm_struct *mm = current->active_mm; local 107 set_mm_context(struct mm_struct *mm, unsigned int asid) argument 115 __new_context(struct mm_struct *mm) argument [all...] |
/arch/arm64/include/asm/ |
H A D | mmu_context.h | 35 void __init_new_context(struct task_struct *tsk, struct mm_struct *mm); 36 void __new_context(struct mm_struct *mm); 67 static inline void switch_new_context(struct mm_struct *mm) argument 71 __new_context(mm); 74 cpu_switch_mm(mm->pgd, mm); 78 static inline void check_and_switch_context(struct mm_struct *mm, argument 87 if (!((mm->context.id ^ cpu_last_asid) >> MAX_ASID_BITS)) 93 cpu_switch_mm(mm->pgd, mm); 117 struct mm_struct *mm = current->mm; local 138 enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument [all...] |
/arch/mn10300/include/asm/ |
H A D | mmu_context.h | 37 #define enter_lazy_tlb(mm, tsk) do {} while (0) 39 static inline void cpu_ran_vm(int cpu, struct mm_struct *mm) argument 42 cpumask_set_cpu(cpu, mm_cpumask(mm)); 46 static inline bool cpu_maybe_ran_vm(int cpu, struct mm_struct *mm) argument 49 return cpumask_test_and_set_cpu(cpu, mm_cpumask(mm)); 57 #define mm_context(mm) (mm->context.tlbpid[smp_processor_id()]) 61 * @mm: The userspace VM context being set up 63 static inline unsigned long allocate_mmu_context(struct mm_struct *mm) argument 78 mm_context(mm) 85 get_mmu_context(struct mm_struct *mm) argument 103 init_new_context(struct task_struct *tsk, struct mm_struct *mm) argument 117 activate_context(struct mm_struct *mm) argument [all...] |
/arch/s390/include/asm/ |
H A D | pgalloc.h | 16 #include <linux/mm.h> 27 int set_guest_storage_key(struct mm_struct *mm, unsigned long addr, 56 static inline unsigned long pgd_entry_type(struct mm_struct *mm) argument 61 #define pud_alloc_one(mm,address) ({ BUG(); ((pud_t *)2); }) 62 #define pud_free(mm, x) do { } while (0) 64 #define pmd_alloc_one(mm,address) ({ BUG(); ((pmd_t *)2); }) 65 #define pmd_free(mm, x) do { } while (0) 67 #define pgd_populate(mm, pgd, pud) BUG() 68 #define pud_populate(mm, pud, pmd) BUG() 72 static inline unsigned long pgd_entry_type(struct mm_struct *mm) argument 84 pud_alloc_one(struct mm_struct *mm, unsigned long address) argument 93 pmd_alloc_one(struct mm_struct *mm, unsigned long vmaddr) argument 107 pmd_free(struct mm_struct *mm, pmd_t *pmd) argument 113 pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud) argument 118 pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) argument 125 pgd_alloc(struct mm_struct *mm) argument 134 pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) argument [all...] |
H A D | mmu_context.h | 16 struct mm_struct *mm) 18 cpumask_clear(&mm->context.cpu_attach_mask); 19 atomic_set(&mm->context.attach_count, 0); 20 mm->context.flush_mm = 0; 21 mm->context.asce_bits = _ASCE_TABLE_LENGTH | _ASCE_USER_BITS; 23 mm->context.asce_bits |= _ASCE_TYPE_REGION3; 25 mm->context.has_pgste = 0; 26 mm->context.use_skey = 0; 27 mm->context.asce_limit = STACK_TOP_MAX; 28 crst_table_init((unsigned long *) mm 15 init_new_context(struct task_struct *tsk, struct mm_struct *mm) argument 34 set_user_asce(struct mm_struct *mm) argument 83 struct mm_struct *mm = tsk->mm; local 110 arch_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm) argument 119 arch_exit_mmap(struct mm_struct *mm) argument [all...] |
H A D | tlbflush.h | 4 #include <linux/mm.h> 22 /* Global TLB flush for the mm */ 33 /* Local TLB flush for the mm */ 68 * Flush TLB entries for a specific mm on all CPUs (in case gmap is used 71 static inline void __tlb_flush_full(struct mm_struct *mm) argument 74 atomic_add(0x10000, &mm->context.attach_count); 75 if (cpumask_equal(mm_cpumask(mm), cpumask_of(smp_processor_id()))) { 83 cpumask_copy(mm_cpumask(mm), 84 &mm->context.cpu_attach_mask); 86 atomic_sub(0x10000, &mm 93 __tlb_flush_asce(struct mm_struct *mm, unsigned long asce) argument 132 __tlb_flush_asce(struct mm_struct *mm, unsigned long asce) argument 150 __tlb_flush_mm(struct mm_struct * mm) argument 164 __tlb_flush_mm_lazy(struct mm_struct * mm) argument 194 flush_tlb_mm(struct mm_struct *mm) argument [all...] |
/arch/powerpc/include/asm/ |
H A D | copro.h | 18 int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea, 21 int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb); 25 void copro_flush_all_slbs(struct mm_struct *mm); 27 static inline void copro_flush_all_slbs(struct mm_struct *mm) {} argument
|
/arch/xtensa/include/asm/ |
H A D | nommu_context.h | 1 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument 5 static inline int init_new_context(struct task_struct *tsk,struct mm_struct *mm) argument 10 static inline void destroy_context(struct mm_struct *mm) argument 23 static inline void deactivate_mm(struct task_struct *tsk, struct mm_struct *mm) argument
|
/arch/cris/include/asm/ |
H A D | mmu_context.h | 6 extern int init_new_context(struct task_struct *tsk, struct mm_struct *mm); 7 extern void get_mmu_context(struct mm_struct *mm); 8 extern void destroy_context(struct mm_struct *mm); 12 #define deactivate_mm(tsk,mm) do { } while (0) 20 /* defined in arch/cris/mm/fault.c */ 23 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument
|
/arch/alpha/include/asm/ |
H A D | tlbflush.h | 4 #include <linux/mm.h> 21 ev4_flush_tlb_current(struct mm_struct *mm) argument 23 __load_new_mm_context(mm); 28 ev5_flush_tlb_current(struct mm_struct *mm) argument 30 __load_new_mm_context(mm); 38 ev4_flush_tlb_current_page(struct mm_struct * mm, argument 44 __load_new_mm_context(mm); 51 ev5_flush_tlb_current_page(struct mm_struct * mm, argument 56 __load_new_mm_context(mm); 89 flush_tlb_other(struct mm_struct *mm) argument 107 flush_tlb_mm(struct mm_struct *mm) argument 119 struct mm_struct *mm = vma->vm_mm; local [all...] |
/arch/m32r/include/asm/ |
H A D | mmu_context.h | 26 #define mm_context(mm) mm->context 30 #define mm_context(mm) mm->context[smp_processor_id()] 37 #define enter_lazy_tlb(mm, tsk) do { } while (0) 39 static inline void get_new_mmu_context(struct mm_struct *mm) argument 52 mm_context(mm) = mc; 58 static inline void get_mmu_context(struct mm_struct *mm) argument 60 if (mm) { 65 if ((mm_context(mm) 74 init_new_context(struct task_struct *tsk, struct mm_struct *mm) argument 115 activate_context(struct mm_struct *mm) argument [all...] |
H A D | pgalloc.h | 4 #include <linux/mm.h> 8 #define pmd_populate_kernel(mm, pmd, pte) \ 11 static __inline__ void pmd_populate(struct mm_struct *mm, pmd_t *pmd, argument 21 static __inline__ pgd_t *pgd_alloc(struct mm_struct *mm) argument 28 static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) argument 33 static __inline__ pte_t *pte_alloc_one_kernel(struct mm_struct *mm, argument 41 static __inline__ pgtable_t pte_alloc_one(struct mm_struct *mm, argument 55 static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) argument 60 static inline void pte_free(struct mm_struct *mm, pgtable_t pte) argument 66 #define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, (pt [all...] |
/arch/m68k/include/asm/ |
H A D | mmu_context.h | 6 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument 30 static inline void get_mmu_context(struct mm_struct *mm) argument 34 if (mm->context != NO_CONTEXT) 47 mm->context = ctx; 48 context_mm[ctx] = mm; 54 #define init_new_context(tsk, mm) (((mm)->context = NO_CONTEXT), 0) 59 static inline void destroy_context(struct mm_struct *mm) argument 61 if (mm->context != NO_CONTEXT) { 62 clear_bit(mm 84 activate_mm(struct mm_struct *active_mm, struct mm_struct *mm) argument 99 struct mm_struct *mm; local 168 init_new_context(struct task_struct *tsk, struct mm_struct *mm) argument 177 get_mmu_context(struct mm_struct *mm) argument 184 destroy_context(struct mm_struct *mm) argument 190 activate_context(struct mm_struct *mm) argument 216 init_new_context(struct task_struct *tsk, struct mm_struct *mm) argument 225 switch_mm_0230(struct mm_struct *mm) argument 258 switch_mm_0460(struct mm_struct *mm) argument 309 init_new_context(struct task_struct *tsk, struct mm_struct *mm) argument [all...] |
/arch/powerpc/mm/ |
H A D | mmu_context_hash64.c | 18 #include <linux/mm.h> 62 int init_new_context(struct task_struct *tsk, struct mm_struct *mm) argument 74 if (slice_mm_new_context(mm)) 75 slice_set_user_psize(mm, mmu_virtual_psize); 76 subpage_prot_init_new_context(mm); 77 mm->context.id = index; 79 mm->context.cop_lockp = kmalloc(sizeof(spinlock_t), GFP_KERNEL); 80 if (!mm->context.cop_lockp) { 82 subpage_prot_free(mm); 83 mm 104 destroy_pagetable_page(struct mm_struct *mm) argument 126 destroy_pagetable_page(struct mm_struct *mm) argument 133 destroy_context(struct mm_struct *mm) argument [all...] |
/arch/cris/mm/ |
H A D | tlb.c | 2 * linux/arch/cris/mm/tlb.c 16 /* The TLB can host up to 64 different mm contexts at the same time. 19 * of which mm we have assigned to which page_id, so that we know when 36 alloc_context(struct mm_struct *mm) argument 40 D(printk("tlb: alloc context %d (%p)\n", map_replace_ptr, mm)); 42 /* did we replace an mm ? */ 47 /* throw out any TLB entries belonging to the mm we replace 57 mm->context.page_id = map_replace_ptr; 58 page_id_map[map_replace_ptr] = mm; 67 * if needed, get a new MMU context for the mm 71 get_mmu_context(struct mm_struct *mm) argument 86 destroy_context(struct mm_struct *mm) argument [all...] |
/arch/um/include/asm/ |
H A D | mmu_context.h | 12 extern void uml_setup_stubs(struct mm_struct *mm); 13 extern void arch_exit_mmap(struct mm_struct *mm); 15 #define deactivate_mm(tsk,mm) do { } while (0) 23 * when the new ->mm is used for the first time. 44 static inline void arch_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm) argument 46 uml_setup_stubs(mm); 49 static inline void enter_lazy_tlb(struct mm_struct *mm, argument 54 extern int init_new_context(struct task_struct *task, struct mm_struct *mm); 56 extern void destroy_context(struct mm_struct *mm);
|
/arch/c6x/include/asm/ |
H A D | tlb.h | 4 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
|
/arch/microblaze/include/asm/ |
H A D | mmu_context_mm.h | 36 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument 79 * Get a new mmu context for the address space described by `mm'. 81 static inline void get_mmu_context(struct mm_struct *mm) argument 85 if (mm->context != NO_CONTEXT) 96 mm->context = ctx; 97 context_mm[ctx] = mm; 103 # define init_new_context(tsk, mm) (((mm)->context = NO_CONTEXT), 0) 108 static inline void destroy_context(struct mm_struct *mm) argument 110 if (mm 129 activate_mm(struct mm_struct *active_mm, struct mm_struct *mm) argument [all...] |
/arch/mn10300/mm/ |
H A D | cache-disabled.c | 11 #include <linux/mm.h>
|
/arch/openrisc/include/asm/ |
H A D | mmu_context.h | 24 extern int init_new_context(struct task_struct *tsk, struct mm_struct *mm); 25 extern void destroy_context(struct mm_struct *mm); 29 #define deactivate_mm(tsk, mm) do { } while (0) 37 extern volatile pgd_t *current_pgd; /* defined in arch/openrisc/mm/fault.c */ 39 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) argument
|
/arch/sparc/power/ |
H A D | hibernate.c | 7 #include <linux/mm.h> 36 struct mm_struct *mm = current->active_mm; local 38 load_secondary_context(mm); 39 tsb_context_switch(mm);
|