24 #include <linux/kernel.h>
29 #include <asm/pgalloc.h>
30 #include <asm/tlbflush.h>
43 pte_t *ptep,
unsigned long pte,
int huge)
46 struct ppc64_tlb_batch *batch = &
get_cpu_var(ppc64_tlb_batch);
63 #ifdef CONFIG_HUGETLB_PAGE
83 ssize = user_segment_size(addr);
84 vsid = get_vsid(mm->
context.
id, addr, ssize);
90 vpn = hpt_vpn(addr, vsid, ssize);
115 if (i != 0 && (mm != batch->mm || batch->psize != psize ||
116 batch->ssize != ssize)) {
122 batch->psize = psize;
123 batch->ssize = ssize;
125 batch->pte[
i] = rpte;
128 if (i >= PPC64_TLB_BATCH_NR)
147 if (cpumask_equal(mm_cpumask(batch->mm), tmp))
151 batch->psize, batch->ssize, local);
159 struct ppc64_tlb_batch *tlbbatch = &
get_cpu_var(ppc64_tlb_batch);
189 #ifdef CONFIG_HOTPLUG
191 void __flush_hash_table_range(
struct mm_struct *mm,
unsigned long start,
211 pte_t *ptep = find_linux_pte(mm->
pgd, start);