Lines Matching refs:cpu_rcache

964 	struct iova_cpu_rcache *cpu_rcache;  in init_iova_rcaches()  local
973 rcache->cpu_rcaches = __alloc_percpu(sizeof(*cpu_rcache), cache_line_size()); in init_iova_rcaches()
977 cpu_rcache = per_cpu_ptr(rcache->cpu_rcaches, cpu); in init_iova_rcaches()
978 spin_lock_init(&cpu_rcache->lock); in init_iova_rcaches()
979 cpu_rcache->loaded = iova_magazine_alloc(GFP_KERNEL); in init_iova_rcaches()
980 cpu_rcache->prev = iova_magazine_alloc(GFP_KERNEL); in init_iova_rcaches()
996 struct iova_cpu_rcache *cpu_rcache; in __iova_rcache_insert() local
1000 cpu_rcache = raw_cpu_ptr(rcache->cpu_rcaches); in __iova_rcache_insert()
1001 spin_lock_irqsave(&cpu_rcache->lock, flags); in __iova_rcache_insert()
1003 if (!iova_magazine_full(cpu_rcache->loaded)) { in __iova_rcache_insert()
1005 } else if (!iova_magazine_full(cpu_rcache->prev)) { in __iova_rcache_insert()
1006 swap(cpu_rcache->prev, cpu_rcache->loaded); in __iova_rcache_insert()
1015 cpu_rcache->loaded; in __iova_rcache_insert()
1017 mag_to_free = cpu_rcache->loaded; in __iova_rcache_insert()
1021 cpu_rcache->loaded = new_mag; in __iova_rcache_insert()
1027 iova_magazine_push(cpu_rcache->loaded, iova_pfn); in __iova_rcache_insert()
1029 spin_unlock_irqrestore(&cpu_rcache->lock, flags); in __iova_rcache_insert()
1058 struct iova_cpu_rcache *cpu_rcache; in __iova_rcache_get() local
1063 cpu_rcache = raw_cpu_ptr(rcache->cpu_rcaches); in __iova_rcache_get()
1064 spin_lock_irqsave(&cpu_rcache->lock, flags); in __iova_rcache_get()
1066 if (!iova_magazine_empty(cpu_rcache->loaded)) { in __iova_rcache_get()
1068 } else if (!iova_magazine_empty(cpu_rcache->prev)) { in __iova_rcache_get()
1069 swap(cpu_rcache->prev, cpu_rcache->loaded); in __iova_rcache_get()
1074 iova_magazine_free(cpu_rcache->loaded); in __iova_rcache_get()
1075 cpu_rcache->loaded = rcache->depot[--rcache->depot_size]; in __iova_rcache_get()
1082 iova_pfn = iova_magazine_pop(cpu_rcache->loaded, limit_pfn); in __iova_rcache_get()
1084 spin_unlock_irqrestore(&cpu_rcache->lock, flags); in __iova_rcache_get()
1112 struct iova_cpu_rcache *cpu_rcache; in free_iova_rcaches() local
1119 cpu_rcache = per_cpu_ptr(rcache->cpu_rcaches, cpu); in free_iova_rcaches()
1120 iova_magazine_free(cpu_rcache->loaded); in free_iova_rcaches()
1121 iova_magazine_free(cpu_rcache->prev); in free_iova_rcaches()
1134 struct iova_cpu_rcache *cpu_rcache; in free_cpu_cached_iovas() local
1141 cpu_rcache = per_cpu_ptr(rcache->cpu_rcaches, cpu); in free_cpu_cached_iovas()
1142 spin_lock_irqsave(&cpu_rcache->lock, flags); in free_cpu_cached_iovas()
1143 iova_magazine_free_pfns(cpu_rcache->loaded, iovad); in free_cpu_cached_iovas()
1144 iova_magazine_free_pfns(cpu_rcache->prev, iovad); in free_cpu_cached_iovas()
1145 spin_unlock_irqrestore(&cpu_rcache->lock, flags); in free_cpu_cached_iovas()