Lines Matching refs:pid
30 unsigned int pid,
37 rs = ((unsigned long)pid << PPC_BITLSHIFT(31));
94 static __always_inline void __tlbiel_pid(unsigned long pid, int set,
101 rs = ((unsigned long)pid) << PPC_BITLSHIFT(31);
110 static __always_inline void __tlbie_pid(unsigned long pid, unsigned long ric)
115 rs = pid << PPC_BITLSHIFT(31);
152 static __always_inline void __tlbiel_va(unsigned long va, unsigned long pid,
159 rs = pid << PPC_BITLSHIFT(31);
168 static __always_inline void __tlbie_va(unsigned long va, unsigned long pid,
175 rs = pid << PPC_BITLSHIFT(31);
201 static inline void fixup_tlbie_va(unsigned long va, unsigned long pid,
211 __tlbie_va(va, pid, ap, RIC_FLUSH_TLB);
215 static inline void fixup_tlbie_va_range(unsigned long va, unsigned long pid,
225 __tlbie_va(va, pid, ap, RIC_FLUSH_TLB);
229 static inline void fixup_tlbie_pid(unsigned long pid)
244 __tlbie_va(va, pid, mmu_get_ap(MMU_PAGE_64K), RIC_FLUSH_TLB);
285 static inline void _tlbiel_pid(unsigned long pid, unsigned long ric)
295 __tlbiel_pid(pid, 0, RIC_FLUSH_PWC);
299 __tlbiel_pid(pid, 0, RIC_FLUSH_TLB);
308 __tlbiel_pid(pid, 0, RIC_FLUSH_ALL);
313 __tlbiel_pid(pid, set, RIC_FLUSH_TLB);
319 static inline void _tlbie_pid(unsigned long pid, unsigned long ric)
330 __tlbie_pid(pid, RIC_FLUSH_TLB);
331 fixup_tlbie_pid(pid);
334 __tlbie_pid(pid, RIC_FLUSH_PWC);
338 __tlbie_pid(pid, RIC_FLUSH_ALL);
339 fixup_tlbie_pid(pid);
345 unsigned long pid;
354 _tlbiel_pid(t->pid, RIC_FLUSH_TLB);
356 _tlbiel_pid(t->pid, RIC_FLUSH_PWC);
358 _tlbiel_pid(t->pid, RIC_FLUSH_ALL);
362 unsigned long pid, unsigned long ric)
365 struct tlbiel_pid t = { .pid = pid, .ric = ric };
374 _tlbie_pid(pid, RIC_FLUSH_ALL);
425 unsigned long pid, unsigned long page_size,
432 __tlbiel_va(addr, pid, ap, RIC_FLUSH_TLB);
435 static __always_inline void _tlbiel_va(unsigned long va, unsigned long pid,
441 __tlbiel_va(va, pid, ap, ric);
446 unsigned long pid, unsigned long page_size,
451 __tlbiel_pid(pid, 0, RIC_FLUSH_PWC);
452 __tlbiel_va_range(start, end, pid, page_size, psize);
457 unsigned long pid, unsigned long page_size,
464 __tlbie_va(addr, pid, ap, RIC_FLUSH_TLB);
466 fixup_tlbie_va_range(addr - page_size, pid, ap);
469 static __always_inline void _tlbie_va(unsigned long va, unsigned long pid,
475 __tlbie_va(va, pid, ap, ric);
476 fixup_tlbie_va(va, pid, ap);
481 unsigned long pid;
492 _tlbiel_va(t->va, t->pid, t->psize, RIC_FLUSH_TLB);
494 _tlbiel_va(t->va, t->pid, t->psize, RIC_FLUSH_PWC);
496 _tlbiel_va(t->va, t->pid, t->psize, RIC_FLUSH_ALL);
500 unsigned long va, unsigned long pid,
504 struct tlbiel_va t = { .va = va, .pid = pid, .psize = psize, .ric = ric };
507 _tlbie_va(va, pid, psize, RIC_FLUSH_TLB);
511 unsigned long pid;
523 _tlbiel_va_range(t->start, t->end, t->pid, t->page_size,
539 unsigned long pid, unsigned long page_size,
544 __tlbie_pid(pid, RIC_FLUSH_PWC);
545 __tlbie_va_range(start, end, pid, page_size, psize);
551 unsigned long pid, unsigned long page_size,
556 .pid = pid, .page_size = page_size,
561 _tlbie_va_range(start, end, pid, page_size, psize, also_pwc);
577 unsigned long pid;
580 pid = mm->context.id;
581 if (pid != MMU_NO_CONTEXT)
582 _tlbiel_pid(pid, RIC_FLUSH_TLB);
590 unsigned long pid;
593 pid = mm->context.id;
594 if (pid != MMU_NO_CONTEXT)
595 _tlbiel_pid(pid, RIC_FLUSH_ALL);
609 unsigned long pid;
612 pid = mm->context.id;
613 if (pid != MMU_NO_CONTEXT)
614 _tlbiel_va(vmaddr, pid, psize, RIC_FLUSH_TLB);
654 unsigned long pid = mm->context.id;
679 _tlbiel_pid(pid, RIC_FLUSH_ALL);
697 unsigned long pid;
699 pid = mm->context.id;
700 if (unlikely(pid == MMU_NO_CONTEXT))
720 pseries_rpt_invalidate(pid, tgt, H_RPTI_TYPE_TLB,
724 _tlbie_pid(pid, RIC_FLUSH_ALL);
726 _tlbie_pid(pid, RIC_FLUSH_TLB);
728 _tlbiel_pid_multicast(mm, pid, RIC_FLUSH_TLB);
732 _tlbiel_pid(pid, RIC_FLUSH_TLB);
740 unsigned long pid;
742 pid = mm->context.id;
743 if (unlikely(pid == MMU_NO_CONTEXT))
762 pseries_rpt_invalidate(pid, tgt, type,
765 _tlbie_pid(pid, RIC_FLUSH_ALL);
767 _tlbiel_pid_multicast(mm, pid, RIC_FLUSH_ALL);
770 _tlbiel_pid(pid, RIC_FLUSH_ALL);
784 unsigned long pid;
786 pid = mm->context.id;
787 if (unlikely(pid == MMU_NO_CONTEXT))
806 pseries_rpt_invalidate(pid, tgt, H_RPTI_TYPE_TLB,
810 _tlbie_va(vmaddr, pid, psize, RIC_FLUSH_TLB);
812 _tlbiel_va_multicast(mm, vmaddr, pid, psize, RIC_FLUSH_TLB);
815 _tlbiel_va(vmaddr, pid, psize, RIC_FLUSH_TLB);
882 * individual page flushes to full-pid flushes.
891 unsigned long pid;
897 pid = mm->context.id;
898 if (unlikely(pid == MMU_NO_CONTEXT))
928 pseries_rpt_invalidate(pid, tgt, H_RPTI_TYPE_TLB, pg_sizes,
932 _tlbiel_pid(pid, RIC_FLUSH_TLB);
936 _tlbie_pid(pid, RIC_FLUSH_ALL);
938 _tlbie_pid(pid, RIC_FLUSH_TLB);
940 _tlbiel_pid_multicast(mm, pid, RIC_FLUSH_TLB);
953 __tlbiel_va_range(start, end, pid, page_size, mmu_virtual_psize);
955 __tlbiel_va_range(hstart, hend, pid,
960 __tlbie_va_range(start, end, pid, page_size, mmu_virtual_psize);
962 __tlbie_va_range(hstart, hend, pid,
967 start, end, pid, page_size, mmu_virtual_psize, false);
970 hstart, hend, pid, PMD_SIZE, MMU_PAGE_2M, false);
1080 unsigned long pid;
1086 pid = mm->context.id;
1087 if (unlikely(pid == MMU_NO_CONTEXT))
1118 pseries_rpt_invalidate(pid, tgt, type, pg_sizes, start, end);
1121 _tlbiel_pid(pid, also_pwc ? RIC_FLUSH_ALL : RIC_FLUSH_TLB);
1127 _tlbie_pid(pid,
1130 _tlbiel_pid_multicast(mm, pid,
1137 _tlbiel_va_range(start, end, pid, page_size, psize, also_pwc);
1139 _tlbie_va_range(start, end, pid, page_size, psize, also_pwc);
1142 start, end, pid, page_size, psize, also_pwc);
1162 unsigned long pid, end;
1164 pid = mm->context.id;
1165 if (unlikely(pid == MMU_NO_CONTEXT))
1194 pseries_rpt_invalidate(pid, tgt, type, pg_sizes,
1197 _tlbie_va_range(addr, end, pid, PAGE_SIZE, mmu_virtual_psize, true);
1200 addr, end, pid, PAGE_SIZE, mmu_virtual_psize, true);
1203 _tlbiel_va_range(addr, end, pid, PAGE_SIZE, mmu_virtual_psize, true);
1244 unsigned long pid = mm->context.id;
1246 if (unlikely(pid == MMU_NO_CONTEXT))
1281 _tlbiel_pid(pid, RIC_FLUSH_ALL);