Lines Matching refs:pid
29 unsigned int pid, in tlbiel_radix_set_isa300() argument
36 rs = ((unsigned long)pid << PPC_BITLSHIFT(31)); in tlbiel_radix_set_isa300()
100 static __always_inline void __tlbiel_pid(unsigned long pid, int set, in __tlbiel_pid() argument
107 rs = ((unsigned long)pid) << PPC_BITLSHIFT(31); in __tlbiel_pid()
116 static __always_inline void __tlbie_pid(unsigned long pid, unsigned long ric) in __tlbie_pid() argument
121 rs = pid << PPC_BITLSHIFT(31); in __tlbie_pid()
158 static __always_inline void __tlbiel_va(unsigned long va, unsigned long pid, in __tlbiel_va() argument
165 rs = pid << PPC_BITLSHIFT(31); in __tlbiel_va()
174 static __always_inline void __tlbie_va(unsigned long va, unsigned long pid, in __tlbie_va() argument
181 rs = pid << PPC_BITLSHIFT(31); in __tlbie_va()
207 static inline void fixup_tlbie_va(unsigned long va, unsigned long pid, in fixup_tlbie_va() argument
217 __tlbie_va(va, pid, ap, RIC_FLUSH_TLB); in fixup_tlbie_va()
221 static inline void fixup_tlbie_va_range(unsigned long va, unsigned long pid, in fixup_tlbie_va_range() argument
231 __tlbie_va(va, pid, ap, RIC_FLUSH_TLB); in fixup_tlbie_va_range()
235 static inline void fixup_tlbie_pid(unsigned long pid) in fixup_tlbie_pid() argument
250 __tlbie_va(va, pid, mmu_get_ap(MMU_PAGE_64K), RIC_FLUSH_TLB); in fixup_tlbie_pid()
290 static inline void _tlbiel_pid(unsigned long pid, unsigned long ric) in _tlbiel_pid() argument
300 __tlbiel_pid(pid, 0, RIC_FLUSH_PWC); in _tlbiel_pid()
304 __tlbiel_pid(pid, 0, RIC_FLUSH_TLB); in _tlbiel_pid()
313 __tlbiel_pid(pid, 0, RIC_FLUSH_ALL); in _tlbiel_pid()
319 __tlbiel_pid(pid, set, RIC_FLUSH_TLB); in _tlbiel_pid()
326 static inline void _tlbie_pid(unsigned long pid, unsigned long ric) in _tlbie_pid() argument
337 __tlbie_pid(pid, RIC_FLUSH_TLB); in _tlbie_pid()
338 fixup_tlbie_pid(pid); in _tlbie_pid()
341 __tlbie_pid(pid, RIC_FLUSH_PWC); in _tlbie_pid()
345 __tlbie_pid(pid, RIC_FLUSH_ALL); in _tlbie_pid()
346 fixup_tlbie_pid(pid); in _tlbie_pid()
352 unsigned long pid; member
361 _tlbiel_pid(t->pid, RIC_FLUSH_TLB); in do_tlbiel_pid()
363 _tlbiel_pid(t->pid, RIC_FLUSH_PWC); in do_tlbiel_pid()
365 _tlbiel_pid(t->pid, RIC_FLUSH_ALL); in do_tlbiel_pid()
369 unsigned long pid, unsigned long ric) in _tlbiel_pid_multicast() argument
372 struct tlbiel_pid t = { .pid = pid, .ric = ric }; in _tlbiel_pid_multicast()
381 _tlbie_pid(pid, RIC_FLUSH_ALL); in _tlbiel_pid_multicast()
432 unsigned long pid, unsigned long page_size, in __tlbiel_va_range() argument
439 __tlbiel_va(addr, pid, ap, RIC_FLUSH_TLB); in __tlbiel_va_range()
442 static __always_inline void _tlbiel_va(unsigned long va, unsigned long pid, in _tlbiel_va() argument
448 __tlbiel_va(va, pid, ap, ric); in _tlbiel_va()
453 unsigned long pid, unsigned long page_size, in _tlbiel_va_range() argument
458 __tlbiel_pid(pid, 0, RIC_FLUSH_PWC); in _tlbiel_va_range()
459 __tlbiel_va_range(start, end, pid, page_size, psize); in _tlbiel_va_range()
464 unsigned long pid, unsigned long page_size, in __tlbie_va_range() argument
471 __tlbie_va(addr, pid, ap, RIC_FLUSH_TLB); in __tlbie_va_range()
473 fixup_tlbie_va_range(addr - page_size, pid, ap); in __tlbie_va_range()
476 static __always_inline void _tlbie_va(unsigned long va, unsigned long pid, in _tlbie_va() argument
482 __tlbie_va(va, pid, ap, ric); in _tlbie_va()
483 fixup_tlbie_va(va, pid, ap); in _tlbie_va()
488 unsigned long pid; member
499 _tlbiel_va(t->va, t->pid, t->psize, RIC_FLUSH_TLB); in do_tlbiel_va()
501 _tlbiel_va(t->va, t->pid, t->psize, RIC_FLUSH_PWC); in do_tlbiel_va()
503 _tlbiel_va(t->va, t->pid, t->psize, RIC_FLUSH_ALL); in do_tlbiel_va()
507 unsigned long va, unsigned long pid, in _tlbiel_va_multicast() argument
511 struct tlbiel_va t = { .va = va, .pid = pid, .psize = psize, .ric = ric }; in _tlbiel_va_multicast()
514 _tlbie_va(va, pid, psize, RIC_FLUSH_TLB); in _tlbiel_va_multicast()
518 unsigned long pid; member
530 _tlbiel_va_range(t->start, t->end, t->pid, t->page_size, in do_tlbiel_va_range()
546 unsigned long pid, unsigned long page_size, in _tlbie_va_range() argument
551 __tlbie_pid(pid, RIC_FLUSH_PWC); in _tlbie_va_range()
552 __tlbie_va_range(start, end, pid, page_size, psize); in _tlbie_va_range()
558 unsigned long pid, unsigned long page_size, in _tlbiel_va_range_multicast() argument
563 .pid = pid, .page_size = page_size, in _tlbiel_va_range_multicast()
568 _tlbie_va_range(start, end, pid, page_size, psize, also_pwc); in _tlbiel_va_range_multicast()
584 unsigned long pid = mm->context.id; in radix__local_flush_tlb_mm() local
586 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in radix__local_flush_tlb_mm()
590 _tlbiel_pid(pid, RIC_FLUSH_TLB); in radix__local_flush_tlb_mm()
598 unsigned long pid = mm->context.id; in radix__local_flush_all_mm() local
600 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in radix__local_flush_all_mm()
604 _tlbiel_pid(pid, RIC_FLUSH_ALL); in radix__local_flush_all_mm()
618 unsigned long pid = mm->context.id; in radix__local_flush_tlb_page_psize() local
620 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in radix__local_flush_tlb_page_psize()
624 _tlbiel_va(vmaddr, pid, psize, RIC_FLUSH_TLB); in radix__local_flush_tlb_page_psize()
665 unsigned long pid = mm->context.id; in exit_lazy_flush_tlb() local
711 _tlbiel_pid(pid, RIC_FLUSH_ALL); in exit_lazy_flush_tlb()
836 unsigned long pid; in radix__flush_tlb_mm() local
839 pid = mm->context.id; in radix__flush_tlb_mm()
840 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in radix__flush_tlb_mm()
852 _tlbiel_pid(pid, RIC_FLUSH_TLB); in radix__flush_tlb_mm()
859 pseries_rpt_invalidate(pid, tgt, H_RPTI_TYPE_TLB, in radix__flush_tlb_mm()
863 _tlbie_pid(pid, RIC_FLUSH_ALL); in radix__flush_tlb_mm()
865 _tlbie_pid(pid, RIC_FLUSH_TLB); in radix__flush_tlb_mm()
867 _tlbiel_pid_multicast(mm, pid, RIC_FLUSH_TLB); in radix__flush_tlb_mm()
877 unsigned long pid; in __flush_all_mm() local
880 pid = mm->context.id; in __flush_all_mm()
881 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in __flush_all_mm()
888 _tlbiel_pid(pid, RIC_FLUSH_ALL); in __flush_all_mm()
897 pseries_rpt_invalidate(pid, tgt, type, in __flush_all_mm()
900 _tlbie_pid(pid, RIC_FLUSH_ALL); in __flush_all_mm()
902 _tlbiel_pid_multicast(mm, pid, RIC_FLUSH_ALL); in __flush_all_mm()
917 unsigned long pid; in radix__flush_tlb_page_psize() local
920 pid = mm->context.id; in radix__flush_tlb_page_psize()
921 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in radix__flush_tlb_page_psize()
928 _tlbiel_va(vmaddr, pid, psize, RIC_FLUSH_TLB); in radix__flush_tlb_page_psize()
939 pseries_rpt_invalidate(pid, tgt, H_RPTI_TYPE_TLB, in radix__flush_tlb_page_psize()
943 _tlbie_va(vmaddr, pid, psize, RIC_FLUSH_TLB); in radix__flush_tlb_page_psize()
945 _tlbiel_va_multicast(mm, vmaddr, pid, psize, RIC_FLUSH_TLB); in radix__flush_tlb_page_psize()
1021 unsigned long pid; in __radix__flush_tlb_range() local
1028 pid = mm->context.id; in __radix__flush_tlb_range()
1029 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in __radix__flush_tlb_range()
1063 pseries_rpt_invalidate(pid, tgt, type, pg_sizes, start, end); in __radix__flush_tlb_range()
1069 _tlbiel_pid(pid, RIC_FLUSH_ALL); in __radix__flush_tlb_range()
1072 _tlbie_pid(pid, RIC_FLUSH_ALL); in __radix__flush_tlb_range()
1074 _tlbiel_pid_multicast(mm, pid, RIC_FLUSH_ALL); in __radix__flush_tlb_range()
1089 __tlbiel_pid(pid, 0, RIC_FLUSH_PWC); in __radix__flush_tlb_range()
1090 __tlbiel_va_range(start, end, pid, page_size, mmu_virtual_psize); in __radix__flush_tlb_range()
1092 __tlbiel_va_range(hstart, hend, pid, in __radix__flush_tlb_range()
1098 __tlbie_pid(pid, RIC_FLUSH_PWC); in __radix__flush_tlb_range()
1099 __tlbie_va_range(start, end, pid, page_size, mmu_virtual_psize); in __radix__flush_tlb_range()
1101 __tlbie_va_range(hstart, hend, pid, in __radix__flush_tlb_range()
1106 start, end, pid, page_size, mmu_virtual_psize, flush_pwc); in __radix__flush_tlb_range()
1109 hstart, hend, pid, PMD_SIZE, MMU_PAGE_2M, flush_pwc); in __radix__flush_tlb_range()
1239 unsigned long pid; in __radix__flush_tlb_range_psize() local
1246 pid = mm->context.id; in __radix__flush_tlb_range_psize()
1247 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in __radix__flush_tlb_range_psize()
1272 pseries_rpt_invalidate(pid, tgt, type, pg_sizes, start, end); in __radix__flush_tlb_range_psize()
1275 _tlbiel_pid(pid, also_pwc ? RIC_FLUSH_ALL : RIC_FLUSH_TLB); in __radix__flush_tlb_range_psize()
1281 _tlbie_pid(pid, in __radix__flush_tlb_range_psize()
1284 _tlbiel_pid_multicast(mm, pid, in __radix__flush_tlb_range_psize()
1291 _tlbiel_va_range(start, end, pid, page_size, psize, also_pwc); in __radix__flush_tlb_range_psize()
1293 _tlbie_va_range(start, end, pid, page_size, psize, also_pwc); in __radix__flush_tlb_range_psize()
1296 start, end, pid, page_size, psize, also_pwc); in __radix__flush_tlb_range_psize()
1318 unsigned long pid, end; in radix__flush_tlb_collapsed_pmd() local
1321 pid = mm->context.id; in radix__flush_tlb_collapsed_pmd()
1322 if (WARN_ON_ONCE(pid == MMU_NO_CONTEXT)) in radix__flush_tlb_collapsed_pmd()
1338 _tlbiel_va_range(addr, end, pid, PAGE_SIZE, mmu_virtual_psize, true); in radix__flush_tlb_collapsed_pmd()
1350 pseries_rpt_invalidate(pid, tgt, type, pg_sizes, in radix__flush_tlb_collapsed_pmd()
1353 _tlbie_va_range(addr, end, pid, PAGE_SIZE, mmu_virtual_psize, true); in radix__flush_tlb_collapsed_pmd()
1356 addr, end, pid, PAGE_SIZE, mmu_virtual_psize, true); in radix__flush_tlb_collapsed_pmd()
1402 static __always_inline void __tlbie_pid_lpid(unsigned long pid, in __tlbie_pid_lpid() argument
1409 rs = (pid << PPC_BITLSHIFT(31)) | (lpid & ~(PPC_BITMASK(0, 31))); in __tlbie_pid_lpid()
1418 static __always_inline void __tlbie_va_lpid(unsigned long va, unsigned long pid, in __tlbie_va_lpid() argument
1426 rs = (pid << PPC_BITLSHIFT(31)) | (lpid & ~(PPC_BITMASK(0, 31))); in __tlbie_va_lpid()
1435 static inline void fixup_tlbie_pid_lpid(unsigned long pid, unsigned long lpid) in fixup_tlbie_pid_lpid() argument
1450 __tlbie_va_lpid(va, pid, lpid, mmu_get_ap(MMU_PAGE_64K), in fixup_tlbie_pid_lpid()
1455 static inline void _tlbie_pid_lpid(unsigned long pid, unsigned long lpid, in _tlbie_pid_lpid() argument
1467 __tlbie_pid_lpid(pid, lpid, RIC_FLUSH_TLB); in _tlbie_pid_lpid()
1468 fixup_tlbie_pid_lpid(pid, lpid); in _tlbie_pid_lpid()
1471 __tlbie_pid_lpid(pid, lpid, RIC_FLUSH_PWC); in _tlbie_pid_lpid()
1475 __tlbie_pid_lpid(pid, lpid, RIC_FLUSH_ALL); in _tlbie_pid_lpid()
1476 fixup_tlbie_pid_lpid(pid, lpid); in _tlbie_pid_lpid()
1482 unsigned long pid, in fixup_tlbie_va_range_lpid() argument
1493 __tlbie_va_lpid(va, pid, lpid, ap, RIC_FLUSH_TLB); in fixup_tlbie_va_range_lpid()
1498 unsigned long pid, unsigned long lpid, in __tlbie_va_range_lpid() argument
1506 __tlbie_va_lpid(addr, pid, lpid, ap, RIC_FLUSH_TLB); in __tlbie_va_range_lpid()
1508 fixup_tlbie_va_range_lpid(addr - page_size, pid, lpid, ap); in __tlbie_va_range_lpid()
1512 unsigned long pid, unsigned long lpid, in _tlbie_va_range_lpid() argument
1518 __tlbie_pid_lpid(pid, lpid, RIC_FLUSH_PWC); in _tlbie_va_range_lpid()
1519 __tlbie_va_range_lpid(start, end, pid, lpid, page_size, psize); in _tlbie_va_range_lpid()
1527 void do_h_rpt_invalidate_prt(unsigned long pid, unsigned long lpid, in do_h_rpt_invalidate_prt() argument
1540 _tlbie_pid_lpid(pid, lpid, RIC_FLUSH_ALL); in do_h_rpt_invalidate_prt()
1545 _tlbie_pid_lpid(pid, lpid, RIC_FLUSH_PWC); in do_h_rpt_invalidate_prt()
1549 return _tlbie_pid_lpid(pid, lpid, RIC_FLUSH_TLB); in do_h_rpt_invalidate_prt()
1567 _tlbie_pid_lpid(pid, lpid, RIC_FLUSH_TLB); in do_h_rpt_invalidate_prt()
1570 _tlbie_va_range_lpid(start, end, pid, lpid, in do_h_rpt_invalidate_prt()