Symbol: cache
arch/arm/include/asm/procinfo.h
39
struct cpu_cache_fns *cache;
arch/arm/kernel/setup.c
716
cpu_cache = *list->cache;
arch/arm/mach-omap2/omap-iommu.c
107
list_add(&entry->node, &cache);
arch/arm/mach-omap2/omap-iommu.c
61
static LIST_HEAD(cache);
arch/arm/mach-omap2/omap-iommu.c
65
list_for_each_entry(entry, &cache, node) {
arch/arm64/kvm/mmu.c
108
struct kvm_mmu_memory_cache *cache;
arch/arm64/kvm/mmu.c
116
cache = &kvm->arch.mmu.split_page_cache;
arch/arm64/kvm/mmu.c
117
return kvm_mmu_memory_cache_nr_free_objects(cache) < min;
arch/arm64/kvm/mmu.c
1182
struct kvm_mmu_memory_cache cache = { .gfp_zero = __GFP_ZERO };
arch/arm64/kvm/mmu.c
1196
ret = kvm_mmu_topup_memory_cache(&cache,
arch/arm64/kvm/mmu.c
1203
pa, prot, &cache, 0);
arch/arm64/kvm/mmu.c
1211
kvm_mmu_free_memory_cache(&cache);
arch/arm64/kvm/mmu.c
123
struct kvm_mmu_memory_cache *cache;
arch/arm64/kvm/mmu.c
136
cache = &kvm->arch.mmu.split_page_cache;
arch/arm64/kvm/mmu.c
143
ret = __kvm_mmu_topup_memory_cache(cache,
arch/arm64/kvm/mmu.c
156
ret = KVM_PGT_FN(kvm_pgtable_stage2_split)(pgt, addr, next - addr, cache);
arch/arm64/kvm/pkvm.c
365
struct kvm_hyp_memcache *cache = mc;
arch/arm64/kvm/pkvm.c
396
swap(mapping, cache->mapping);
arch/arm64/kvm/trace_arm.h
165
TP_PROTO(unsigned long vcpu_pc, bool cache),
arch/arm64/kvm/trace_arm.h
166
TP_ARGS(vcpu_pc, cache),
arch/arm64/kvm/trace_arm.h
170
__field( bool, cache )
arch/arm64/kvm/trace_arm.h
175
__entry->cache = cache;
arch/arm64/kvm/trace_arm.h
179
__entry->vcpu_pc, str_on_off(__entry->cache))
arch/csky/mm/syscache.c
12
int, cache)
arch/csky/mm/syscache.c
14
switch (cache) {
arch/csky/mm/syscache.c
19
if (cache != BCACHE)
arch/loongarch/include/asm/kvm_host.h
257
struct gfn_to_hva_cache cache;
arch/loongarch/kvm/mmu.c
150
struct kvm_mmu_memory_cache *cache,
arch/loongarch/kvm/mmu.c
161
if (!cache)
arch/loongarch/kvm/mmu.c
164
child = kvm_mmu_memory_cache_alloc(cache);
arch/loongarch/kvm/vcpu.c
169
ghc = &vcpu->arch.st.cache;
arch/loongarch/kvm/vcpu.c
1826
ghc = &vcpu->arch.st.cache;
arch/m68k/include/asm/syscalls.h
8
asmlinkage int sys_cacheflush(unsigned long addr, int scope, int cache,
arch/m68k/kernel/sys_m68k.c
128
switch (cache)
arch/m68k/kernel/sys_m68k.c
185
switch (cache)
arch/m68k/kernel/sys_m68k.c
228
cache_flush_060 (unsigned long addr, int scope, int cache, unsigned long len)
arch/m68k/kernel/sys_m68k.c
241
switch (cache)
arch/m68k/kernel/sys_m68k.c
289
switch (cache)
arch/m68k/kernel/sys_m68k.c
348
switch (cache)
arch/m68k/kernel/sys_m68k.c
378
sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len)
arch/m68k/kernel/sys_m68k.c
383
cache & ~FLUSH_CACHE_BOTH)
arch/m68k/kernel/sys_m68k.c
414
if (cache & FLUSH_CACHE_INSN)
arch/m68k/kernel/sys_m68k.c
416
if (cache & FLUSH_CACHE_DATA)
arch/m68k/kernel/sys_m68k.c
430
if (cache & FLUSH_CACHE_INSN)
arch/m68k/kernel/sys_m68k.c
432
if (cache & FLUSH_CACHE_DATA)
arch/m68k/kernel/sys_m68k.c
449
ret = cache_flush_040 (addr, scope, cache, len);
arch/m68k/kernel/sys_m68k.c
451
ret = cache_flush_060 (addr, scope, cache, len);
arch/m68k/kernel/sys_m68k.c
537
sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len)
arch/m68k/kernel/sys_m68k.c
68
cache_flush_040 (unsigned long addr, int scope, int cache, unsigned long len)
arch/m68k/kernel/sys_m68k.c
75
switch (cache)
arch/m68k/mm/sun3kmap.c
109
void __iomem *__ioremap(unsigned long phys, unsigned long size, int cache)
arch/mips/include/asm/asm-eva.h
104
#define kernel_cache(op, base) cache op, base
arch/mips/include/asm/asm.h
351
#define R10KCBARRIER(addr) cache Cache_Barrier, addr;
arch/mips/include/asm/fw/arc/hinv.h
111
} cache;
arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h
71
cache 9, 0($0)
arch/mips/include/asm/r4kcache.h
202
static inline void extra##blast_##pfx##cache##lsize(void) \
arch/mips/include/asm/r4kcache.h
217
static inline void extra##blast_##pfx##cache##lsize##_page(unsigned long page) \
arch/mips/include/asm/r4kcache.h
228
static inline void extra##blast_##pfx##cache##lsize##_page_indexed(unsigned long page) \
arch/mips/include/asm/r4kcache.h
266
static inline void blast_##pfx##cache##lsize##_user_page(unsigned long page) \
arch/mips/include/asm/r4kcache.h
289
static inline void prot##extra##blast_##pfx##cache##_range(unsigned long start, \
arch/mips/include/asm/r4kcache.h
318
static inline void blast_##pfx##cache##lsize##_node(long node) \
arch/mips/include/uapi/asm/inst.h
673
__BITFIELD_FIELD(unsigned int cache : 2,
arch/mips/kernel/cacheinfo.c
12
leaf->coherency_line_size = c->cache.linesz; \
arch/mips/kernel/cacheinfo.c
13
leaf->number_of_sets = c->cache.sets; \
arch/mips/kernel/cacheinfo.c
14
leaf->ways_of_associativity = c->cache.ways; \
arch/mips/kernel/cacheinfo.c
15
leaf->size = c->cache.linesz * c->cache.sets * \
arch/mips/kernel/cacheinfo.c
16
c->cache.ways; \
arch/mips/kernel/cacheinfo.c
8
#define populate_cache(cache, leaf, c_level, c_type) \
arch/mips/kernel/pm-cps.c
190
const struct cache_desc *cache,
arch/mips/kernel/pm-cps.c
193
unsigned cache_size = cache->ways << cache->waybit;
arch/mips/kernel/pm-cps.c
198
if (cache->flags & MIPS_CACHE_NOT_PRESENT)
arch/mips/kernel/pm-cps.c
217
uasm_i_addiu(pp, GPR_T0, GPR_T0, cache->linesz);
arch/mips/kernel/pm-cps.c
219
uasm_i_cache(pp, op, i * cache->linesz, GPR_T0);
arch/mips/kernel/pm-cps.c
225
uasm_i_addiu(pp, GPR_T0, GPR_T0, unroll_lines * cache->linesz);
arch/mips/kvm/mmu.c
104
static pte_t *kvm_mips_walk_pgd(pgd_t *pgd, struct kvm_mmu_memory_cache *cache,
arch/mips/kvm/mmu.c
122
if (!cache)
arch/mips/kvm/mmu.c
124
new_pmd = kvm_mmu_memory_cache_alloc(cache);
arch/mips/kvm/mmu.c
132
if (!cache)
arch/mips/kvm/mmu.c
134
new_pte = kvm_mmu_memory_cache_alloc(cache);
arch/mips/kvm/mmu.c
143
struct kvm_mmu_memory_cache *cache,
arch/mips/kvm/mmu.c
146
return kvm_mips_walk_pgd(kvm->arch.gpa_mm.pgd, cache, addr);
arch/mips/kvm/vz.c
1079
u32 cache, op_inst, op, base;
arch/mips/kvm/vz.c
1099
cache = op_inst & CacheOp_Cache;
arch/mips/kvm/vz.c
1105
cache, op, base, arch->gprs[base], offset);
arch/mips/kvm/vz.c
1108
if (cache != Cache_I && cache != Cache_D)
arch/mips/kvm/vz.c
1134
curr_pc, vcpu->arch.gprs[31], cache, op, base, arch->gprs[base],
arch/mips/mm/cache.c
90
unsigned int, cache)
arch/openrisc/kernel/cacheinfo.c
18
unsigned int level, struct cache_desc *cache, int cpu)
arch/openrisc/kernel/cacheinfo.c
22
this_leaf->coherency_line_size = cache->block_size;
arch/openrisc/kernel/cacheinfo.c
23
this_leaf->number_of_sets = cache->sets;
arch/openrisc/kernel/cacheinfo.c
24
this_leaf->ways_of_associativity = cache->ways;
arch/openrisc/kernel/cacheinfo.c
25
this_leaf->size = cache->size;
arch/parisc/include/asm/pdc.h
45
int pdc_cache_info(struct pdc_cache_info *cache);
arch/parisc/kernel/cache.c
936
unsigned int, cache)
arch/parisc/kernel/cache.c
948
if (cache & DCACHE) {
arch/parisc/kernel/cache.c
963
if (cache & ICACHE && error == 0) {
arch/powerpc/kernel/cacheinfo.c
124
struct cache *next_local; /* next cache of >= level */
arch/powerpc/kernel/cacheinfo.c
139
static const char *cache_type_string(const struct cache *cache)
arch/powerpc/kernel/cacheinfo.c
141
return cache_type_info[cache->type].name;
arch/powerpc/kernel/cacheinfo.c
144
static void cache_init(struct cache *cache, int type, int level,
arch/powerpc/kernel/cacheinfo.c
147
cache->type = type;
arch/powerpc/kernel/cacheinfo.c
148
cache->level = level;
arch/powerpc/kernel/cacheinfo.c
149
cache->ofnode = of_node_get(ofnode);
arch/powerpc/kernel/cacheinfo.c
150
cache->group_id = group_id;
arch/powerpc/kernel/cacheinfo.c
151
INIT_LIST_HEAD(&cache->list);
arch/powerpc/kernel/cacheinfo.c
152
list_add(&cache->list, &cache_list);
arch/powerpc/kernel/cacheinfo.c
155
static struct cache *new_cache(int type, int level,
arch/powerpc/kernel/cacheinfo.c
158
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
160
cache = kzalloc_obj(*cache);
arch/powerpc/kernel/cacheinfo.c
161
if (cache)
arch/powerpc/kernel/cacheinfo.c
162
cache_init(cache, type, level, ofnode, group_id);
arch/powerpc/kernel/cacheinfo.c
164
return cache;
arch/powerpc/kernel/cacheinfo.c
167
static void release_cache_debugcheck(struct cache *cache)
arch/powerpc/kernel/cacheinfo.c
169
struct cache *iter;
arch/powerpc/kernel/cacheinfo.c
172
WARN_ONCE(iter->next_local == cache,
arch/powerpc/kernel/cacheinfo.c
176
cache->ofnode,
arch/powerpc/kernel/cacheinfo.c
177
cache_type_string(cache));
arch/powerpc/kernel/cacheinfo.c
180
static void release_cache(struct cache *cache)
arch/powerpc/kernel/cacheinfo.c
182
if (!cache)
arch/powerpc/kernel/cacheinfo.c
185
pr_debug("freeing L%d %s cache for %pOFP\n", cache->level,
arch/powerpc/kernel/cacheinfo.c
186
cache_type_string(cache), cache->ofnode);
arch/powerpc/kernel/cacheinfo.c
188
release_cache_debugcheck(cache);
arch/powerpc/kernel/cacheinfo.c
189
list_del(&cache->list);
arch/powerpc/kernel/cacheinfo.c
190
of_node_put(cache->ofnode);
arch/powerpc/kernel/cacheinfo.c
191
kfree(cache);
arch/powerpc/kernel/cacheinfo.c
194
static void cache_cpu_set(struct cache *cache, int cpu)
arch/powerpc/kernel/cacheinfo.c
196
struct cache *next = cache;
arch/powerpc/kernel/cacheinfo.c
208
static int cache_size(const struct cache *cache, unsigned int *ret)
arch/powerpc/kernel/cacheinfo.c
213
propname = cache_type_info[cache->type].size_prop;
arch/powerpc/kernel/cacheinfo.c
215
cache_size = of_get_property(cache->ofnode, propname, NULL);
arch/powerpc/kernel/cacheinfo.c
223
static int cache_size_kb(const struct cache *cache, unsigned int *ret)
arch/powerpc/kernel/cacheinfo.c
227
if (cache_size(cache, &size))
arch/powerpc/kernel/cacheinfo.c
235
static int cache_get_line_size(const struct cache *cache, unsigned int *ret)
arch/powerpc/kernel/cacheinfo.c
240
lim = ARRAY_SIZE(cache_type_info[cache->type].line_size_props);
arch/powerpc/kernel/cacheinfo.c
245
propname = cache_type_info[cache->type].line_size_props[i];
arch/powerpc/kernel/cacheinfo.c
246
line_size = of_get_property(cache->ofnode, propname, NULL);
arch/powerpc/kernel/cacheinfo.c
258
static int cache_nr_sets(const struct cache *cache, unsigned int *ret)
arch/powerpc/kernel/cacheinfo.c
263
propname = cache_type_info[cache->type].nr_sets_prop;
arch/powerpc/kernel/cacheinfo.c
265
nr_sets = of_get_property(cache->ofnode, propname, NULL);
arch/powerpc/kernel/cacheinfo.c
273
static int cache_associativity(const struct cache *cache, unsigned int *ret)
arch/powerpc/kernel/cacheinfo.c
279
if (cache_nr_sets(cache, &nr_sets))
arch/powerpc/kernel/cacheinfo.c
290
if (cache_get_line_size(cache, &line_size))
arch/powerpc/kernel/cacheinfo.c
292
if (cache_size(cache, &size))
arch/powerpc/kernel/cacheinfo.c
305
static struct cache *cache_find_first_sibling(struct cache *cache)
arch/powerpc/kernel/cacheinfo.c
307
struct cache *iter;
arch/powerpc/kernel/cacheinfo.c
309
if (cache->type == CACHE_TYPE_UNIFIED ||
arch/powerpc/kernel/cacheinfo.c
310
cache->type == CACHE_TYPE_UNIFIED_D)
arch/powerpc/kernel/cacheinfo.c
311
return cache;
arch/powerpc/kernel/cacheinfo.c
314
if (iter->ofnode == cache->ofnode &&
arch/powerpc/kernel/cacheinfo.c
315
iter->group_id == cache->group_id &&
arch/powerpc/kernel/cacheinfo.c
316
iter->next_local == cache)
arch/powerpc/kernel/cacheinfo.c
319
return cache;
arch/powerpc/kernel/cacheinfo.c
323
static struct cache *cache_lookup_by_node_group(const struct device_node *node,
arch/powerpc/kernel/cacheinfo.c
326
struct cache *cache = NULL;
arch/powerpc/kernel/cacheinfo.c
327
struct cache *iter;
arch/powerpc/kernel/cacheinfo.c
333
cache = cache_find_first_sibling(iter);
arch/powerpc/kernel/cacheinfo.c
337
return cache;
arch/powerpc/kernel/cacheinfo.c
361
static struct cache *cache_do_one_devnode_unified(struct device_node *node, int group_id,
arch/powerpc/kernel/cacheinfo.c
369
static struct cache *cache_do_one_devnode_split(struct device_node *node, int group_id,
arch/powerpc/kernel/cacheinfo.c
372
struct cache *dcache, *icache;
arch/powerpc/kernel/cacheinfo.c
392
static struct cache *cache_do_one_devnode(struct device_node *node, int group_id, int level)
arch/powerpc/kernel/cacheinfo.c
394
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
397
cache = cache_do_one_devnode_unified(node, group_id, level);
arch/powerpc/kernel/cacheinfo.c
399
cache = cache_do_one_devnode_split(node, group_id, level);
arch/powerpc/kernel/cacheinfo.c
401
return cache;
arch/powerpc/kernel/cacheinfo.c
404
static struct cache *cache_lookup_or_instantiate(struct device_node *node,
arch/powerpc/kernel/cacheinfo.c
408
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
410
cache = cache_lookup_by_node_group(node, group_id);
arch/powerpc/kernel/cacheinfo.c
412
WARN_ONCE(cache && cache->level != level,
arch/powerpc/kernel/cacheinfo.c
414
cache->level, level);
arch/powerpc/kernel/cacheinfo.c
416
if (!cache)
arch/powerpc/kernel/cacheinfo.c
417
cache = cache_do_one_devnode(node, group_id, level);
arch/powerpc/kernel/cacheinfo.c
419
return cache;
arch/powerpc/kernel/cacheinfo.c
422
static void link_cache_lists(struct cache *smaller, struct cache *bigger)
arch/powerpc/kernel/cacheinfo.c
43
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
442
static void do_subsidiary_caches_debugcheck(struct cache *cache)
arch/powerpc/kernel/cacheinfo.c
444
WARN_ONCE(cache->level != 1,
arch/powerpc/kernel/cacheinfo.c
446
"%pOFP instead of an L1\n", cache->level,
arch/powerpc/kernel/cacheinfo.c
447
cache_type_string(cache), cache->ofnode);
arch/powerpc/kernel/cacheinfo.c
448
WARN_ONCE(!of_node_is_type(cache->ofnode, "cpu"),
arch/powerpc/kernel/cacheinfo.c
450
"instead of a cpu node\n", cache->ofnode,
arch/powerpc/kernel/cacheinfo.c
451
of_node_get_device_type(cache->ofnode));
arch/powerpc/kernel/cacheinfo.c
477
static void do_subsidiary_caches(struct cache *cache, unsigned int cpu_id)
arch/powerpc/kernel/cacheinfo.c
480
int level = cache->level;
arch/powerpc/kernel/cacheinfo.c
482
do_subsidiary_caches_debugcheck(cache);
arch/powerpc/kernel/cacheinfo.c
484
while ((subcache_node = of_find_next_cache_node(cache->ofnode))) {
arch/powerpc/kernel/cacheinfo.c
485
struct cache *subcache;
arch/powerpc/kernel/cacheinfo.c
495
link_cache_lists(cache, subcache);
arch/powerpc/kernel/cacheinfo.c
496
cache = subcache;
arch/powerpc/kernel/cacheinfo.c
500
static struct cache *cache_chain_instantiate(unsigned int cpu_id)
arch/powerpc/kernel/cacheinfo.c
503
struct cache *cpu_cache = NULL;
arch/powerpc/kernel/cacheinfo.c
566
index->cache->level, cache_type_string(index->cache));
arch/powerpc/kernel/cacheinfo.c
580
static struct cache *index_kobj_to_cache(struct kobject *k)
arch/powerpc/kernel/cacheinfo.c
586
return index->cache;
arch/powerpc/kernel/cacheinfo.c
592
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
594
cache = index_kobj_to_cache(k);
arch/powerpc/kernel/cacheinfo.c
596
if (cache_size_kb(cache, &size_kb))
arch/powerpc/kernel/cacheinfo.c
609
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
611
cache = index_kobj_to_cache(k);
arch/powerpc/kernel/cacheinfo.c
613
if (cache_get_line_size(cache, &line_size))
arch/powerpc/kernel/cacheinfo.c
625
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
627
cache = index_kobj_to_cache(k);
arch/powerpc/kernel/cacheinfo.c
629
if (cache_nr_sets(cache, &nr_sets))
arch/powerpc/kernel/cacheinfo.c
641
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
643
cache = index_kobj_to_cache(k);
arch/powerpc/kernel/cacheinfo.c
645
if (cache_associativity(cache, &associativity))
arch/powerpc/kernel/cacheinfo.c
656
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
658
cache = index_kobj_to_cache(k);
arch/powerpc/kernel/cacheinfo.c
660
return sprintf(buf, "%s\n", cache_type_string(cache));
arch/powerpc/kernel/cacheinfo.c
669
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
672
cache = index->cache;
arch/powerpc/kernel/cacheinfo.c
674
return sprintf(buf, "%d\n", cache->level);
arch/powerpc/kernel/cacheinfo.c
684
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
688
cache = index->cache;
arch/powerpc/kernel/cacheinfo.c
690
mask = &cache->shared_cpu_map;
arch/powerpc/kernel/cacheinfo.c
747
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
755
cache = dir->cache;
arch/powerpc/kernel/cacheinfo.c
756
cache_type = cache_type_string(cache);
arch/powerpc/kernel/cacheinfo.c
773
attr->attr.name, cache->ofnode,
arch/powerpc/kernel/cacheinfo.c
779
attr->attr.name, cache->ofnode, cache_type);
arch/powerpc/kernel/cacheinfo.c
785
static void cacheinfo_create_index_dir(struct cache *cache, int index,
arch/powerpc/kernel/cacheinfo.c
795
index_dir->cache = cache;
arch/powerpc/kernel/cacheinfo.c
811
struct cache *cache_list)
arch/powerpc/kernel/cacheinfo.c
814
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
821
cache = cache_list;
arch/powerpc/kernel/cacheinfo.c
822
while (cache) {
arch/powerpc/kernel/cacheinfo.c
823
cacheinfo_create_index_dir(cache, index, cache_dir);
arch/powerpc/kernel/cacheinfo.c
825
cache = cache->next_local;
arch/powerpc/kernel/cacheinfo.c
831
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
833
cache = cache_chain_instantiate(cpu_id);
arch/powerpc/kernel/cacheinfo.c
834
if (!cache)
arch/powerpc/kernel/cacheinfo.c
837
cacheinfo_sysfs_populate(cpu_id, cache);
arch/powerpc/kernel/cacheinfo.c
845
static struct cache *cache_lookup_by_cpu(unsigned int cpu_id)
arch/powerpc/kernel/cacheinfo.c
848
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
857
cache = cache_lookup_by_node_group(cpu_node, group_id);
arch/powerpc/kernel/cacheinfo.c
860
return cache;
arch/powerpc/kernel/cacheinfo.c
890
static void cache_cpu_clear(struct cache *cache, int cpu)
arch/powerpc/kernel/cacheinfo.c
892
while (cache) {
arch/powerpc/kernel/cacheinfo.c
893
struct cache *next = cache->next_local;
arch/powerpc/kernel/cacheinfo.c
895
WARN_ONCE(!cpumask_test_cpu(cpu, &cache->shared_cpu_map),
arch/powerpc/kernel/cacheinfo.c
897
cpu, cache->ofnode,
arch/powerpc/kernel/cacheinfo.c
898
cache_type_string(cache));
arch/powerpc/kernel/cacheinfo.c
900
cpumask_clear_cpu(cpu, &cache->shared_cpu_map);
arch/powerpc/kernel/cacheinfo.c
904
if (cpumask_empty(&cache->shared_cpu_map))
arch/powerpc/kernel/cacheinfo.c
905
release_cache(cache);
arch/powerpc/kernel/cacheinfo.c
907
cache = next;
arch/powerpc/kernel/cacheinfo.c
914
struct cache *cache;
arch/powerpc/kernel/cacheinfo.c
928
cache = cache_lookup_by_cpu(cpu_id);
arch/powerpc/kernel/cacheinfo.c
929
if (cache)
arch/powerpc/kernel/cacheinfo.c
930
cache_cpu_clear(cache, cpu_id);
arch/powerpc/kernel/eeh_cache.c
103
n = rb_first(&cache->rb_root);
arch/powerpc/kernel/eeh_cache.c
98
static void eeh_addr_cache_print(struct pci_io_addr_cache *cache)
arch/powerpc/kernel/smp.c
1415
struct device_node *cache;
arch/powerpc/kernel/smp.c
1424
cache = of_find_next_cache_node(np);
arch/powerpc/kernel/smp.c
1428
return cache;
arch/powerpc/perf/generic-compat-pmu.c
107
GENERIC_EVENT_ATTR(cache-misses, PM_LD_MISS_L1);
arch/powerpc/perf/isa207-common.c
208
unsigned int cache;
arch/powerpc/perf/isa207-common.c
210
cache = (event >> EVENT_CACHE_SEL_SHIFT) & MMCR1_DC_IC_QUAL_MASK;
arch/powerpc/perf/isa207-common.c
211
return cache;
arch/powerpc/perf/isa207-common.c
415
unsigned int unit, pmc, cache, ebb;
arch/powerpc/perf/isa207-common.c
426
cache = (event >> EVENT_CACHE_SEL_SHIFT) &
arch/powerpc/perf/isa207-common.c
429
cache = (event >> EVENT_CACHE_SEL_SHIFT) &
arch/powerpc/perf/isa207-common.c
483
} else if (cache & 0x7) {
arch/powerpc/perf/isa207-common.c
498
value |= CNST_L1_QUAL_VAL(cache);
arch/powerpc/perf/isa207-common.c
574
unsigned long mmcra, mmcr1, mmcr2, unit, combine, psel, cache, val;
arch/powerpc/perf/isa207-common.c
623
cache = dc_ic_rld_quad_l1_sel(event[i]);
arch/powerpc/perf/isa207-common.c
624
mmcr1 |= (cache) << MMCR1_DC_IC_QUAL_SHIFT;
arch/powerpc/perf/isa207-common.c
627
cache = dc_ic_rld_quad_l1_sel(event[i]);
arch/powerpc/perf/isa207-common.c
628
mmcr1 |= (cache) << MMCR1_DC_IC_QUAL_SHIFT;
arch/powerpc/perf/power10-pmu.c
125
GENERIC_EVENT_ATTR(cache-references, PM_LD_REF_L1);
arch/powerpc/perf/power10-pmu.c
126
GENERIC_EVENT_ATTR(cache-misses, PM_LD_MISS_L1);
arch/powerpc/perf/power10-pmu.c
131
GENERIC_EVENT_ATTR(cache-misses, PM_LD_DEMAND_MISS_L1_FIN);
arch/powerpc/perf/power7-pmu.c
382
GENERIC_EVENT_ATTR(cache-references, PM_LD_REF_L1);
arch/powerpc/perf/power7-pmu.c
383
GENERIC_EVENT_ATTR(cache-misses, PM_LD_MISS_L1);
arch/powerpc/perf/power8-pmu.c
129
GENERIC_EVENT_ATTR(cache-references, PM_LD_REF_L1);
arch/powerpc/perf/power8-pmu.c
130
GENERIC_EVENT_ATTR(cache-misses, PM_LD_MISS_L1);
arch/powerpc/perf/power9-pmu.c
172
GENERIC_EVENT_ATTR(cache-references, PM_LD_REF_L1);
arch/powerpc/perf/power9-pmu.c
173
GENERIC_EVENT_ATTR(cache-misses, PM_LD_MISS_L1_FIN);
arch/powerpc/platforms/ps3/spu.c
113
struct priv1_cache cache;
arch/powerpc/platforms/ps3/spu.c
352
spu_pdata(spu)->cache.sr1 = 0x33;
arch/powerpc/platforms/ps3/spu.c
482
spu_pdata(spu)->cache.masks[class] = mask;
arch/powerpc/platforms/ps3/spu.c
484
spu_pdata(spu)->cache.masks[class]);
arch/powerpc/platforms/ps3/spu.c
489
return spu_pdata(spu)->cache.masks[class];
arch/powerpc/platforms/ps3/spu.c
540
BUG_ON((sr1 & allowed) != (spu_pdata(spu)->cache.sr1 & allowed));
arch/powerpc/platforms/ps3/spu.c
542
spu_pdata(spu)->cache.sr1 = sr1;
arch/powerpc/platforms/ps3/spu.c
546
spu_pdata(spu)->cache.sr1);
arch/powerpc/platforms/ps3/spu.c
551
return spu_pdata(spu)->cache.sr1;
arch/powerpc/platforms/ps3/spu.c
556
spu_pdata(spu)->cache.tclass_id = tclass_id;
arch/powerpc/platforms/ps3/spu.c
560
spu_pdata(spu)->cache.tclass_id);
arch/powerpc/platforms/ps3/spu.c
565
return spu_pdata(spu)->cache.tclass_id;
arch/riscv/kernel/vector.c
114
static int riscv_v_thread_ctx_alloc(struct kmem_cache *cache,
arch/riscv/kernel/vector.c
119
datap = kmem_cache_zalloc(cache, GFP_KERNEL);
arch/s390/kernel/cache.c
70
struct cacheinfo *cache;
arch/s390/kernel/cache.c
75
cache = this_cpu_ci->info_list + idx;
arch/s390/kernel/cache.c
77
seq_printf(m, "level=%d ", cache->level);
arch/s390/kernel/cache.c
78
seq_printf(m, "type=%s ", cache_type_string[cache->type]);
arch/s390/kernel/cache.c
80
cache->disable_sysfs ? "Shared" : "Private");
arch/s390/kernel/cache.c
81
seq_printf(m, "size=%dK ", cache->size >> 10);
arch/s390/kernel/cache.c
82
seq_printf(m, "line_size=%u ", cache->coherency_line_size);
arch/s390/kernel/cache.c
83
seq_printf(m, "associativity=%d", cache->ways_of_associativity);
arch/sh/mm/cache-debugfs.c
28
struct cache_info *cache;
arch/sh/mm/cache-debugfs.c
49
cache = &current_cpu_data.dcache;
arch/sh/mm/cache-debugfs.c
52
cache = &current_cpu_data.icache;
arch/sh/mm/cache-debugfs.c
55
waysize = cache->sets;
arch/sh/mm/cache-debugfs.c
64
waysize <<= cache->entry_shift;
arch/sh/mm/cache-debugfs.c
66
for (way = 0; way < cache->ways; way++) {
arch/sh/mm/cache-debugfs.c
76
addr += cache->linesz, line++) {
arch/sh/mm/cache-debugfs.c
89
addrstart += cache->way_incr;
arch/x86/events/core.c
1980
EVENT_ATTR(cache-references, CACHE_REFERENCES );
arch/x86/events/core.c
1981
EVENT_ATTR(cache-misses, CACHE_MISSES );
arch/x86/include/asm/kvm_host.h
961
struct gfn_to_hva_cache cache;
arch/x86/kernel/cpu/resctrl/core.c
1031
r->cache.arch_has_per_cpu_cfg = false;
arch/x86/kernel/cpu/resctrl/core.c
1032
r->cache.min_cbm_bits = 1;
arch/x86/kernel/cpu/resctrl/core.c
1050
r->cache.arch_has_sparse_bitmasks = true;
arch/x86/kernel/cpu/resctrl/core.c
1051
r->cache.arch_has_per_cpu_cfg = true;
arch/x86/kernel/cpu/resctrl/core.c
1052
r->cache.min_cbm_bits = 0;
arch/x86/kernel/cpu/resctrl/core.c
174
r->cache.cbm_len = 20;
arch/x86/kernel/cpu/resctrl/core.c
175
r->cache.shareable_bits = 0xc0000;
arch/x86/kernel/cpu/resctrl/core.c
176
r->cache.min_cbm_bits = 2;
arch/x86/kernel/cpu/resctrl/core.c
177
r->cache.arch_has_sparse_bitmasks = false;
arch/x86/kernel/cpu/resctrl/core.c
278
r->cache.cbm_len = eax.split.cbm_len + 1;
arch/x86/kernel/cpu/resctrl/core.c
280
r->cache.shareable_bits = ebx & default_ctrl;
arch/x86/kernel/cpu/resctrl/core.c
282
r->cache.arch_has_sparse_bitmasks = ecx.split.noncont;
arch/x86/kernel/cpu/resctrl/core.c
298
r->cache.io_alloc_capable = true;
arch/x86/kernel/cpu/resctrl/core.c
495
if (r->cache.arch_has_per_cpu_cfg)
arch/x86/kernel/cpu/resctrl/ctrlmondata.c
126
if (hw_res->r_resctrl.cache.io_alloc_capable &&
arch/x86/kernel/cpu/resctrl/rdtgroup.c
155
if (r_l->cache.arch_has_per_cpu_cfg)
arch/x86/kvm/mmu/mmu.c
1007
static int pte_list_add(struct kvm *kvm, struct kvm_mmu_memory_cache *cache,
arch/x86/kvm/mmu/mmu.c
1019
desc = kvm_mmu_memory_cache_alloc(cache);
arch/x86/kvm/mmu/mmu.c
1035
desc = kvm_mmu_memory_cache_alloc(cache);
arch/x86/kvm/mmu/mmu.c
1680
struct kvm_mmu_memory_cache *cache,
arch/x86/kvm/mmu/mmu.c
1693
rmap_count = pte_list_add(kvm, cache, spte, rmap_head);
arch/x86/kvm/mmu/mmu.c
1706
struct kvm_mmu_memory_cache *cache = &vcpu->arch.mmu_pte_list_desc_cache;
arch/x86/kvm/mmu/mmu.c
1708
__rmap_add(vcpu->kvm, cache, slot, spte, gfn, access);
arch/x86/kvm/mmu/mmu.c
1836
struct kvm_mmu_memory_cache *cache,
arch/x86/kvm/mmu/mmu.c
1842
pte_list_add(kvm, cache, parent_pte, &sp->parent_ptes);
arch/x86/kvm/mmu/mmu.c
2540
struct kvm_mmu_memory_cache *cache, u64 *sptep,
arch/x86/kvm/mmu/mmu.c
2559
mmu_page_add_parent_pte(kvm, cache, sp, sptep);
arch/x86/kvm/mmu/mmu.c
6974
static inline bool need_topup(struct kvm_mmu_memory_cache *cache, int min)
arch/x86/kvm/mmu/mmu.c
6976
return kvm_mmu_memory_cache_nr_free_objects(cache) < min;
arch/x86/kvm/mmu/mmu.c
7059
struct kvm_mmu_memory_cache *cache = &kvm->arch.split_desc_cache;
arch/x86/kvm/mmu/mmu.c
7094
__rmap_add(kvm, cache, slot, sptep, gfn, sp->role.access);
arch/x86/kvm/mmu/mmu.c
7097
__link_shadow_page(kvm, cache, huge_sptep, sp, flush);
arch/x86/kvm/vmx/vmx.c
1462
static u64 vmx_read_guest_host_msr(struct vcpu_vmx *vmx, u32 msr, u64 *cache)
arch/x86/kvm/vmx/vmx.c
1466
*cache = read_msr(msr);
arch/x86/kvm/vmx/vmx.c
1468
return *cache;
arch/x86/kvm/vmx/vmx.c
1472
u64 *cache)
arch/x86/kvm/vmx/vmx.c
1478
*cache = data;
arch/x86/kvm/x86.c
3748
struct gfn_to_hva_cache *ghc = &vcpu->arch.st.cache;
arch/x86/kvm/x86.c
5240
struct gfn_to_hva_cache *ghc = &vcpu->arch.st.cache;
arch/x86/mm/init.c
1024
void update_cache_mode_entry(unsigned entry, enum page_cache_mode cache)
arch/x86/mm/init.c
1027
BUG_ON(!entry && cache != _PAGE_CACHE_MODE_WB);
arch/x86/mm/init.c
1029
__cachemode2pte_tbl[cache] = __cm_idx2pte(entry);
arch/x86/mm/init.c
1030
__pte2cachemode_tbl[entry] = cache;
arch/x86/mm/init_64.c
385
enum page_cache_mode cache)
arch/x86/mm/init_64.c
394
protval_4k_2_large(cachemode2protval(cache));
arch/x86/mm/mm_internal.h
23
void update_cache_mode_entry(unsigned entry, enum page_cache_mode cache);
arch/x86/mm/pat/memtype.c
186
enum page_cache_mode cache;
arch/x86/mm/pat/memtype.c
190
case X86_MEMTYPE_UC: cache = CM(UC); cache_mode = "UC "; break;
arch/x86/mm/pat/memtype.c
191
case X86_MEMTYPE_WC: cache = CM(WC); cache_mode = "WC "; break;
arch/x86/mm/pat/memtype.c
192
case X86_MEMTYPE_WT: cache = CM(WT); cache_mode = "WT "; break;
arch/x86/mm/pat/memtype.c
193
case X86_MEMTYPE_WP: cache = CM(WP); cache_mode = "WP "; break;
arch/x86/mm/pat/memtype.c
194
case X86_MEMTYPE_WB: cache = CM(WB); cache_mode = "WB "; break;
arch/x86/mm/pat/memtype.c
195
case X86_MEMTYPE_UC_MINUS: cache = CM(UC_MINUS); cache_mode = "UC- "; break;
arch/x86/mm/pat/memtype.c
196
default: cache = CM(WB); cache_mode = "WB "; break;
arch/x86/mm/pat/memtype.c
201
return cache;
arch/x86/mm/pat/memtype.c
213
enum page_cache_mode cache;
arch/x86/mm/pat/memtype.c
219
cache = pat_get_cache_mode((pat >> (i * 8)) & 7,
arch/x86/mm/pat/memtype.c
221
update_cache_mode_entry(i, cache);
arch/x86/mm/pat/set_memory.c
2056
int ret, cache;
arch/x86/mm/pat/set_memory.c
2118
cache = !!pgprot2cachemode(mask_set);
arch/x86/mm/pat/set_memory.c
2124
cpa_flush_all(cache);
arch/x86/mm/pat/set_memory.c
2128
cpa_flush(&cpa, cache);
arch/x86/mm/pat/set_memory.c
383
unsigned long cache = (unsigned long)arg;
arch/x86/mm/pat/set_memory.c
391
if (cache && boot_cpu_data.x86 >= 4)
arch/x86/mm/pat/set_memory.c
395
static void cpa_flush_all(unsigned long cache)
arch/x86/mm/pat/set_memory.c
399
on_each_cpu(__cpa_flush_all, (void *) cache, 1);
arch/x86/mm/pat/set_memory.c
436
static void cpa_flush(struct cpa_data *cpa, int cache)
arch/x86/mm/pat/set_memory.c
443
if (cache && !static_cpu_has(X86_FEATURE_CLFLUSH)) {
arch/x86/mm/pat/set_memory.c
444
cpa_flush_all(cache);
arch/x86/mm/pat/set_memory.c
455
if (!cache)
block/bio.c
1966
bs->cache = alloc_percpu(struct bio_alloc_cache);
block/bio.c
1967
if (!bs->cache)
block/bio.c
460
static void bio_alloc_irq_cache_splice(struct bio_alloc_cache *cache)
block/bio.c
465
if (WARN_ON_ONCE(cache->free_list))
block/bio.c
469
cache->free_list = cache->free_list_irq;
block/bio.c
470
cache->free_list_irq = NULL;
block/bio.c
471
cache->nr += cache->nr_irq;
block/bio.c
472
cache->nr_irq = 0;
block/bio.c
478
struct bio_alloc_cache *cache;
block/bio.c
481
cache = per_cpu_ptr(bs->cache, get_cpu());
block/bio.c
482
if (!cache->free_list) {
block/bio.c
483
if (READ_ONCE(cache->nr_irq) >= ALLOC_CACHE_THRESHOLD)
block/bio.c
484
bio_alloc_irq_cache_splice(cache);
block/bio.c
485
if (!cache->free_list) {
block/bio.c
490
bio = cache->free_list;
block/bio.c
491
cache->free_list = bio->bi_next;
block/bio.c
492
cache->nr--;
block/bio.c
548
if (bs->cache && nr_vecs <= BIO_INLINE_VECS) {
block/bio.c
731
static int __bio_alloc_cache_prune(struct bio_alloc_cache *cache,
block/bio.c
737
while ((bio = cache->free_list) != NULL) {
block/bio.c
738
cache->free_list = bio->bi_next;
block/bio.c
739
cache->nr--;
block/bio.c
750
static void bio_alloc_cache_prune(struct bio_alloc_cache *cache,
block/bio.c
753
nr -= __bio_alloc_cache_prune(cache, nr);
block/bio.c
754
if (!READ_ONCE(cache->free_list)) {
block/bio.c
755
bio_alloc_irq_cache_splice(cache);
block/bio.c
756
__bio_alloc_cache_prune(cache, nr);
block/bio.c
765
if (bs->cache) {
block/bio.c
766
struct bio_alloc_cache *cache = per_cpu_ptr(bs->cache, cpu);
block/bio.c
768
bio_alloc_cache_prune(cache, -1U);
block/bio.c
777
if (!bs->cache)
block/bio.c
782
struct bio_alloc_cache *cache;
block/bio.c
784
cache = per_cpu_ptr(bs->cache, cpu);
block/bio.c
785
bio_alloc_cache_prune(cache, -1U);
block/bio.c
787
free_percpu(bs->cache);
block/bio.c
788
bs->cache = NULL;
block/bio.c
793
struct bio_alloc_cache *cache;
block/bio.c
795
cache = per_cpu_ptr(bio->bi_pool->cache, get_cpu());
block/bio.c
796
if (READ_ONCE(cache->nr_irq) + cache->nr > ALLOC_CACHE_MAX)
block/bio.c
801
bio->bi_next = cache->free_list;
block/bio.c
804
cache->free_list = bio;
block/bio.c
805
cache->nr++;
block/bio.c
811
bio->bi_next = cache->free_list_irq;
block/bio.c
812
cache->free_list_irq = bio;
block/bio.c
813
cache->nr_irq++;
drivers/acpi/acpica/acdebug.h
209
u32 acpi_db_get_cache_info(struct acpi_memory_list *cache);
drivers/acpi/acpica/acobject.h
429
struct acpi_object_cache_list cache;
drivers/acpi/acpica/dbexec.c
241
u32 acpi_db_get_cache_info(struct acpi_memory_list *cache)
drivers/acpi/acpica/dbexec.c
244
return (cache->total_allocated - cache->total_freed -
drivers/acpi/acpica/dbexec.c
245
cache->current_depth);
drivers/acpi/acpica/utcache.c
100
cache->current_depth--;
drivers/acpi/acpica/utcache.c
120
acpi_status acpi_os_delete_cache(struct acpi_memory_list *cache)
drivers/acpi/acpica/utcache.c
128
status = acpi_os_purge_cache(cache);
drivers/acpi/acpica/utcache.c
135
acpi_os_free(cache);
drivers/acpi/acpica/utcache.c
153
acpi_status acpi_os_release_object(struct acpi_memory_list *cache, void *object)
drivers/acpi/acpica/utcache.c
159
if (!cache || !object) {
drivers/acpi/acpica/utcache.c
165
if (cache->current_depth >= cache->max_depth) {
drivers/acpi/acpica/utcache.c
167
ACPI_MEM_TRACKING(cache->total_freed++);
drivers/acpi/acpica/utcache.c
180
memset(object, 0xCA, cache->object_size);
drivers/acpi/acpica/utcache.c
185
ACPI_SET_DESCRIPTOR_PTR(object, cache->list_head);
drivers/acpi/acpica/utcache.c
186
cache->list_head = object;
drivers/acpi/acpica/utcache.c
187
cache->current_depth++;
drivers/acpi/acpica/utcache.c
208
void *acpi_os_acquire_object(struct acpi_memory_list *cache)
drivers/acpi/acpica/utcache.c
215
if (!cache) {
drivers/acpi/acpica/utcache.c
224
ACPI_MEM_TRACKING(cache->requests++);
drivers/acpi/acpica/utcache.c
228
if (cache->list_head) {
drivers/acpi/acpica/utcache.c
232
object = cache->list_head;
drivers/acpi/acpica/utcache.c
233
cache->list_head = ACPI_GET_DESCRIPTOR_PTR(object);
drivers/acpi/acpica/utcache.c
235
cache->current_depth--;
drivers/acpi/acpica/utcache.c
237
ACPI_MEM_TRACKING(cache->hits++);
drivers/acpi/acpica/utcache.c
241
cache->list_name));
drivers/acpi/acpica/utcache.c
250
memset(object, 0, cache->object_size);
drivers/acpi/acpica/utcache.c
255
ACPI_MEM_TRACKING(cache->total_allocated++);
drivers/acpi/acpica/utcache.c
257
if ((cache->total_allocated - cache->total_freed) >
drivers/acpi/acpica/utcache.c
258
cache->max_occupied) {
drivers/acpi/acpica/utcache.c
259
cache->max_occupied =
drivers/acpi/acpica/utcache.c
260
cache->total_allocated - cache->total_freed;
drivers/acpi/acpica/utcache.c
271
object = ACPI_ALLOCATE_ZEROED(cache->object_size);
drivers/acpi/acpica/utcache.c
36
struct acpi_memory_list *cache;
drivers/acpi/acpica/utcache.c
46
cache = acpi_os_allocate(sizeof(struct acpi_memory_list));
drivers/acpi/acpica/utcache.c
47
if (!cache) {
drivers/acpi/acpica/utcache.c
53
memset(cache, 0, sizeof(struct acpi_memory_list));
drivers/acpi/acpica/utcache.c
54
cache->list_name = cache_name;
drivers/acpi/acpica/utcache.c
55
cache->object_size = object_size;
drivers/acpi/acpica/utcache.c
56
cache->max_depth = max_depth;
drivers/acpi/acpica/utcache.c
58
*return_cache = cache;
drivers/acpi/acpica/utcache.c
74
acpi_status acpi_os_purge_cache(struct acpi_memory_list *cache)
drivers/acpi/acpica/utcache.c
81
if (!cache) {
drivers/acpi/acpica/utcache.c
92
while (cache->list_head) {
drivers/acpi/acpica/utcache.c
96
next = ACPI_GET_DESCRIPTOR_PTR(cache->list_head);
drivers/acpi/acpica/utcache.c
97
ACPI_FREE(cache->list_head);
drivers/acpi/acpica/utcache.c
99
cache->list_head = next;
drivers/acpi/acpica/uttrack.c
62
struct acpi_memory_list *cache;
drivers/acpi/acpica/uttrack.c
64
cache = acpi_os_allocate_zeroed(sizeof(struct acpi_memory_list));
drivers/acpi/acpica/uttrack.c
65
if (!cache) {
drivers/acpi/acpica/uttrack.c
69
cache->list_name = list_name;
drivers/acpi/acpica/uttrack.c
70
cache->object_size = object_size;
drivers/acpi/acpica/uttrack.c
72
*return_cache = cache;
drivers/acpi/apei/ghes.c
1034
struct ghes_estatus_cache *cache;
drivers/acpi/apei/ghes.c
1040
cache = rcu_dereference(ghes_estatus_caches[i]);
drivers/acpi/apei/ghes.c
1041
if (cache == NULL)
drivers/acpi/apei/ghes.c
1043
if (len != cache->estatus_len)
drivers/acpi/apei/ghes.c
1045
cache_estatus = GHES_ESTATUS_FROM_CACHE(cache);
drivers/acpi/apei/ghes.c
1048
atomic_inc(&cache->count);
drivers/acpi/apei/ghes.c
1050
if (now - cache->time_in < GHES_ESTATUS_IN_CACHE_MAX_NSEC)
drivers/acpi/apei/ghes.c
1064
struct ghes_estatus_cache *cache;
drivers/acpi/apei/ghes.c
1074
cache = (void *)gen_pool_alloc(ghes_estatus_pool, cache_len);
drivers/acpi/apei/ghes.c
1075
if (!cache) {
drivers/acpi/apei/ghes.c
1079
cache_estatus = GHES_ESTATUS_FROM_CACHE(cache);
drivers/acpi/apei/ghes.c
1081
cache->estatus_len = len;
drivers/acpi/apei/ghes.c
1082
atomic_set(&cache->count, 0);
drivers/acpi/apei/ghes.c
1083
cache->generic = generic;
drivers/acpi/apei/ghes.c
1084
cache->time_in = sched_clock();
drivers/acpi/apei/ghes.c
1085
return cache;
drivers/acpi/apei/ghes.c
1090
struct ghes_estatus_cache *cache;
drivers/acpi/apei/ghes.c
1093
cache = container_of(head, struct ghes_estatus_cache, rcu);
drivers/acpi/apei/ghes.c
1094
len = cper_estatus_len(GHES_ESTATUS_FROM_CACHE(cache));
drivers/acpi/apei/ghes.c
1096
gen_pool_free(ghes_estatus_pool, (unsigned long)cache, len);
drivers/acpi/apei/ghes.c
1105
struct ghes_estatus_cache *cache, *new_cache;
drivers/acpi/apei/ghes.c
1116
cache = rcu_dereference(ghes_estatus_caches[i]);
drivers/acpi/apei/ghes.c
1117
if (cache == NULL) {
drivers/acpi/apei/ghes.c
1121
duration = now - cache->time_in;
drivers/acpi/apei/ghes.c
1126
count = atomic_read(&cache->count);
drivers/acpi/numa/hmat.c
485
struct acpi_hmat_cache *cache = (void *)header;
drivers/acpi/numa/hmat.c
490
if (cache->header.length < sizeof(*cache)) {
drivers/acpi/numa/hmat.c
492
cache->header.length);
drivers/acpi/numa/hmat.c
496
attrs = cache->cache_attributes;
drivers/acpi/numa/hmat.c
498
cache->memory_PD, cache->cache_size, attrs,
drivers/acpi/numa/hmat.c
499
cache->number_of_SMBIOShandles);
drivers/acpi/numa/hmat.c
501
target = find_mem_target(cache->memory_PD);
drivers/acpi/numa/hmat.c
511
tcache->cache_attrs.size = cache->cache_size;
drivers/acpi/numa/hmat.c
519
if (cache->address_mode == ACPI_HMAT_CACHE_MODE_EXTENDED_LINEAR) {
drivers/acpi/osl.c
1599
acpi_os_create_cache(char *name, u16 size, u16 depth, acpi_cache_t **cache)
drivers/acpi/osl.c
1601
*cache = kmem_cache_create(name, size, 0, 0, NULL);
drivers/acpi/osl.c
1602
if (*cache == NULL)
drivers/acpi/osl.c
1620
acpi_status acpi_os_purge_cache(acpi_cache_t *cache)
drivers/acpi/osl.c
1622
kmem_cache_shrink(cache);
drivers/acpi/osl.c
1639
acpi_status acpi_os_delete_cache(acpi_cache_t *cache)
drivers/acpi/osl.c
1641
kmem_cache_destroy(cache);
drivers/acpi/osl.c
1659
acpi_status acpi_os_release_object(acpi_cache_t *cache, void *object)
drivers/acpi/osl.c
1661
kmem_cache_free(cache, object);
drivers/acpi/pptt.c
1036
struct acpi_pptt_cache *cache;
drivers/acpi/pptt.c
1053
cache = acpi_find_cache_node(table, acpi_cpu_id, cache_type[i],
drivers/acpi/pptt.c
1056
if (!cache)
drivers/acpi/pptt.c
1061
cache_v1 = upgrade_pptt_cache(cache);
drivers/acpi/pptt.c
121
struct acpi_pptt_cache *cache;
drivers/acpi/pptt.c
126
cache = (struct acpi_pptt_cache *) res;
drivers/acpi/pptt.c
127
while (cache) {
drivers/acpi/pptt.c
130
if (!(cache->flags & ACPI_PPTT_CACHE_TYPE_VALID)) {
drivers/acpi/pptt.c
131
cache = fetch_pptt_cache(table_hdr, cache->next_level_of_cache);
drivers/acpi/pptt.c
136
(acpi_pptt_match_type(cache->attributes, ACPI_PPTT_CACHE_TYPE_DATA) ||
drivers/acpi/pptt.c
137
acpi_pptt_match_type(cache->attributes, ACPI_PPTT_CACHE_TYPE_INSTR)))
drivers/acpi/pptt.c
141
acpi_pptt_match_type(cache->attributes, type)) {
drivers/acpi/pptt.c
142
if (*found != NULL && cache != *found)
drivers/acpi/pptt.c
146
*found = cache;
drivers/acpi/pptt.c
153
cache = fetch_pptt_cache(table_hdr, cache->next_level_of_cache);
drivers/acpi/pptt.c
59
static struct acpi_pptt_cache_v1 *upgrade_pptt_cache(struct acpi_pptt_cache *cache)
drivers/acpi/pptt.c
61
if (cache->header.length < sizeof(struct acpi_pptt_cache_v1))
drivers/acpi/pptt.c
65
if (!(cache->flags & ACPI_PPTT_CACHE_ID_VALID))
drivers/acpi/pptt.c
68
return (struct acpi_pptt_cache_v1 *)cache;
drivers/acpi/pptt.c
969
struct acpi_pptt_cache *cache;
drivers/acpi/pptt.c
986
cache = acpi_find_cache_node(table, acpi_cpu_id, cache_type[i],
drivers/acpi/pptt.c
988
if (!cache)
drivers/acpi/pptt.c
993
cache_v1 = upgrade_pptt_cache(cache);
drivers/auxdisplay/ht16k33.c
227
p1 = fbdev->cache;
drivers/auxdisplay/ht16k33.c
242
p1 = fbdev->cache + HT16K33_FB_SIZE - 1;
drivers/auxdisplay/ht16k33.c
252
p1 = fbdev->cache + first;
drivers/auxdisplay/ht16k33.c
598
fbdev->cache = devm_kmalloc(dev, HT16K33_FB_SIZE, GFP_KERNEL);
drivers/auxdisplay/ht16k33.c
599
if (!fbdev->cache) {
drivers/auxdisplay/ht16k33.c
86
uint8_t *cache;
drivers/base/cacheinfo.c
190
struct device_node *prev, *cache = of_find_next_cache_node(cpu);
drivers/base/cacheinfo.c
192
while (cache) {
drivers/base/cacheinfo.c
193
if (cache == cache_node) {
drivers/base/cacheinfo.c
194
of_node_put(cache);
drivers/base/cacheinfo.c
198
prev = cache;
drivers/base/cacheinfo.c
199
cache = of_find_next_cache_node(cache);
drivers/base/node.c
326
ATTRIBUTE_GROUPS(cache);
drivers/base/regmap/internal.h
158
void *cache;
drivers/base/regmap/regcache-flat.c
107
struct regcache_flat_data *cache = map->cache;
drivers/base/regmap/regcache-flat.c
111
if (unlikely(!test_bit(index, cache->valid)))
drivers/base/regmap/regcache-flat.c
115
*value = cache->data[index];
drivers/base/regmap/regcache-flat.c
123
struct regcache_flat_data *cache = map->cache;
drivers/base/regmap/regcache-flat.c
126
if (unlikely(!test_bit(index, cache->valid)))
drivers/base/regmap/regcache-flat.c
129
*value = cache->data[index];
drivers/base/regmap/regcache-flat.c
137
struct regcache_flat_data *cache = map->cache;
drivers/base/regmap/regcache-flat.c
140
cache->data[index] = value;
drivers/base/regmap/regcache-flat.c
141
__set_bit(index, cache->valid);
drivers/base/regmap/regcache-flat.c
149
struct regcache_flat_data *cache = map->cache;
drivers/base/regmap/regcache-flat.c
153
bitmap_clear(cache->valid, bitmap_min, bitmap_max + 1 - bitmap_min);
drivers/base/regmap/regcache-flat.c
33
struct regcache_flat_data *cache;
drivers/base/regmap/regcache-flat.c
39
cache = kzalloc_flex(*cache, data, cache_size, map->alloc_flags);
drivers/base/regmap/regcache-flat.c
40
if (!cache)
drivers/base/regmap/regcache-flat.c
43
cache->valid = bitmap_zalloc(cache_size, map->alloc_flags);
drivers/base/regmap/regcache-flat.c
44
if (!cache->valid)
drivers/base/regmap/regcache-flat.c
47
map->cache = cache;
drivers/base/regmap/regcache-flat.c
52
kfree(cache);
drivers/base/regmap/regcache-flat.c
58
struct regcache_flat_data *cache = map->cache;
drivers/base/regmap/regcache-flat.c
60
if (cache)
drivers/base/regmap/regcache-flat.c
61
bitmap_free(cache->valid);
drivers/base/regmap/regcache-flat.c
63
kfree(cache);
drivers/base/regmap/regcache-flat.c
64
map->cache = NULL;
drivers/base/regmap/regcache-flat.c
71
struct regcache_flat_data *cache = map->cache;
drivers/base/regmap/regcache-flat.c
78
cache->data[index] = map->reg_defaults[i].def;
drivers/base/regmap/regcache-flat.c
79
__set_bit(index, cache->valid);
drivers/base/regmap/regcache-flat.c
90
if (test_bit(index, cache->valid))
drivers/base/regmap/regcache-flat.c
96
cache->data[index] = value;
drivers/base/regmap/regcache-flat.c
97
__set_bit(index, cache->valid);
drivers/base/regmap/regcache-maple.c
110
struct maple_tree *mt = map->cache;
drivers/base/regmap/regcache-maple.c
19
struct maple_tree *mt = map->cache;
drivers/base/regmap/regcache-maple.c
241
struct maple_tree *mt = map->cache;
drivers/base/regmap/regcache-maple.c
300
map->cache = mt;
drivers/base/regmap/regcache-maple.c
312
struct maple_tree *mt = map->cache;
drivers/base/regmap/regcache-maple.c
327
map->cache = NULL;
drivers/base/regmap/regcache-maple.c
335
struct maple_tree *mt = map->cache;
drivers/base/regmap/regcache-maple.c
41
struct maple_tree *mt = map->cache;
drivers/base/regmap/regcache-rbtree.c
135
struct regcache_rbtree_ctx *rbtree_ctx = map->cache;
drivers/base/regmap/regcache-rbtree.c
188
map->cache = kmalloc_obj(*rbtree_ctx, map->alloc_flags);
drivers/base/regmap/regcache-rbtree.c
189
if (!map->cache)
drivers/base/regmap/regcache-rbtree.c
192
rbtree_ctx = map->cache;
drivers/base/regmap/regcache-rbtree.c
206
rbtree_ctx = map->cache;
drivers/base/regmap/regcache-rbtree.c
222
kfree(map->cache);
drivers/base/regmap/regcache-rbtree.c
223
map->cache = NULL;
drivers/base/regmap/regcache-rbtree.c
377
rbtree_ctx = map->cache;
drivers/base/regmap/regcache-rbtree.c
477
rbtree_ctx = map->cache;
drivers/base/regmap/regcache-rbtree.c
519
rbtree_ctx = map->cache;
drivers/base/regmap/regcache-rbtree.c
65
struct regcache_rbtree_ctx *rbtree_ctx = map->cache;
drivers/base/regmap/regcache.c
180
map->cache = NULL;
drivers/base/regmap/regcache.c
668
u8 *cache = base;
drivers/base/regmap/regcache.c
670
cache[idx] = val;
drivers/base/regmap/regcache.c
674
u16 *cache = base;
drivers/base/regmap/regcache.c
676
cache[idx] = val;
drivers/base/regmap/regcache.c
680
u32 *cache = base;
drivers/base/regmap/regcache.c
682
cache[idx] = val;
drivers/base/regmap/regcache.c
703
const u8 *cache = base;
drivers/base/regmap/regcache.c
705
return cache[idx];
drivers/base/regmap/regcache.c
708
const u16 *cache = base;
drivers/base/regmap/regcache.c
710
return cache[idx];
drivers/base/regmap/regcache.c
713
const u32 *cache = base;
drivers/base/regmap/regcache.c
715
return cache[idx];
drivers/base/regmap/regmap-kunit.c
100
{ .cache = REGCACHE_FLAT_S },
drivers/base/regmap/regmap-kunit.c
101
{ .cache = REGCACHE_FLAT_S, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
102
{ .cache = REGCACHE_RBTREE },
drivers/base/regmap/regmap-kunit.c
103
{ .cache = REGCACHE_RBTREE, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
104
{ .cache = REGCACHE_MAPLE },
drivers/base/regmap/regmap-kunit.c
105
{ .cache = REGCACHE_MAPLE, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
111
{ .cache = REGCACHE_FLAT },
drivers/base/regmap/regmap-kunit.c
112
{ .cache = REGCACHE_FLAT, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
113
{ .cache = REGCACHE_FLAT_S },
drivers/base/regmap/regmap-kunit.c
114
{ .cache = REGCACHE_FLAT_S, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
115
{ .cache = REGCACHE_RBTREE },
drivers/base/regmap/regmap-kunit.c
116
{ .cache = REGCACHE_RBTREE, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
117
{ .cache = REGCACHE_MAPLE },
drivers/base/regmap/regmap-kunit.c
118
{ .cache = REGCACHE_MAPLE, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
124
{ .cache = REGCACHE_FLAT, .from_reg = 0 },
drivers/base/regmap/regmap-kunit.c
125
{ .cache = REGCACHE_FLAT, .from_reg = 0, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
126
{ .cache = REGCACHE_FLAT, .from_reg = 0x2001 },
drivers/base/regmap/regmap-kunit.c
132
{ .cache = REGCACHE_FLAT, .from_reg = 0 },
drivers/base/regmap/regmap-kunit.c
133
{ .cache = REGCACHE_FLAT, .from_reg = 0, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
134
{ .cache = REGCACHE_FLAT, .from_reg = 0x2001 },
drivers/base/regmap/regmap-kunit.c
135
{ .cache = REGCACHE_FLAT, .from_reg = 0x2002 },
drivers/base/regmap/regmap-kunit.c
136
{ .cache = REGCACHE_FLAT, .from_reg = 0x2003 },
drivers/base/regmap/regmap-kunit.c
137
{ .cache = REGCACHE_FLAT, .from_reg = 0x2004 },
drivers/base/regmap/regmap-kunit.c
138
{ .cache = REGCACHE_FLAT_S, .from_reg = 0 },
drivers/base/regmap/regmap-kunit.c
139
{ .cache = REGCACHE_FLAT_S, .from_reg = 0, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
140
{ .cache = REGCACHE_FLAT_S, .from_reg = 0x2001 },
drivers/base/regmap/regmap-kunit.c
141
{ .cache = REGCACHE_FLAT_S, .from_reg = 0x2002 },
drivers/base/regmap/regmap-kunit.c
142
{ .cache = REGCACHE_FLAT_S, .from_reg = 0x2003 },
drivers/base/regmap/regmap-kunit.c
143
{ .cache = REGCACHE_FLAT_S, .from_reg = 0x2004 },
drivers/base/regmap/regmap-kunit.c
144
{ .cache = REGCACHE_RBTREE, .from_reg = 0 },
drivers/base/regmap/regmap-kunit.c
145
{ .cache = REGCACHE_RBTREE, .from_reg = 0, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
146
{ .cache = REGCACHE_RBTREE, .from_reg = 0x2001 },
drivers/base/regmap/regmap-kunit.c
147
{ .cache = REGCACHE_RBTREE, .from_reg = 0x2002 },
drivers/base/regmap/regmap-kunit.c
148
{ .cache = REGCACHE_RBTREE, .from_reg = 0x2003 },
drivers/base/regmap/regmap-kunit.c
149
{ .cache = REGCACHE_RBTREE, .from_reg = 0x2004 },
drivers/base/regmap/regmap-kunit.c
150
{ .cache = REGCACHE_MAPLE, .from_reg = 0 },
drivers/base/regmap/regmap-kunit.c
151
{ .cache = REGCACHE_MAPLE, .from_reg = 0, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
152
{ .cache = REGCACHE_MAPLE, .from_reg = 0x2001 },
drivers/base/regmap/regmap-kunit.c
153
{ .cache = REGCACHE_MAPLE, .from_reg = 0x2002 },
drivers/base/regmap/regmap-kunit.c
154
{ .cache = REGCACHE_MAPLE, .from_reg = 0x2003 },
drivers/base/regmap/regmap-kunit.c
155
{ .cache = REGCACHE_MAPLE, .from_reg = 0x2004 },
drivers/base/regmap/regmap-kunit.c
161
{ .cache = REGCACHE_FLAT_S, .from_reg = 0 },
drivers/base/regmap/regmap-kunit.c
162
{ .cache = REGCACHE_FLAT_S, .from_reg = 0, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
163
{ .cache = REGCACHE_FLAT_S, .from_reg = 0x2001 },
drivers/base/regmap/regmap-kunit.c
164
{ .cache = REGCACHE_FLAT_S, .from_reg = 0x2002 },
drivers/base/regmap/regmap-kunit.c
165
{ .cache = REGCACHE_FLAT_S, .from_reg = 0x2003 },
drivers/base/regmap/regmap-kunit.c
166
{ .cache = REGCACHE_FLAT_S, .from_reg = 0x2004 },
drivers/base/regmap/regmap-kunit.c
167
{ .cache = REGCACHE_RBTREE, .from_reg = 0 },
drivers/base/regmap/regmap-kunit.c
168
{ .cache = REGCACHE_RBTREE, .from_reg = 0, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
169
{ .cache = REGCACHE_RBTREE, .from_reg = 0x2001 },
drivers/base/regmap/regmap-kunit.c
170
{ .cache = REGCACHE_RBTREE, .from_reg = 0x2002 },
drivers/base/regmap/regmap-kunit.c
1703
{ .cache = REGCACHE_NONE, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
1704
{ .cache = REGCACHE_NONE, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
1705
{ .cache = REGCACHE_FLAT, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
1706
{ .cache = REGCACHE_FLAT, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
1707
{ .cache = REGCACHE_FLAT_S, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
1708
{ .cache = REGCACHE_FLAT_S, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
1709
{ .cache = REGCACHE_RBTREE, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
171
{ .cache = REGCACHE_RBTREE, .from_reg = 0x2003 },
drivers/base/regmap/regmap-kunit.c
1710
{ .cache = REGCACHE_RBTREE, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
1711
{ .cache = REGCACHE_MAPLE, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
1712
{ .cache = REGCACHE_MAPLE, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
1718
{ .cache = REGCACHE_FLAT, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
1719
{ .cache = REGCACHE_FLAT, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
172
{ .cache = REGCACHE_RBTREE, .from_reg = 0x2004 },
drivers/base/regmap/regmap-kunit.c
1720
{ .cache = REGCACHE_FLAT_S, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
1721
{ .cache = REGCACHE_FLAT_S, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
1722
{ .cache = REGCACHE_RBTREE, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
1723
{ .cache = REGCACHE_RBTREE, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
1724
{ .cache = REGCACHE_MAPLE, .val_endian = REGMAP_ENDIAN_LITTLE },
drivers/base/regmap/regmap-kunit.c
1725
{ .cache = REGCACHE_MAPLE, .val_endian = REGMAP_ENDIAN_BIG },
drivers/base/regmap/regmap-kunit.c
173
{ .cache = REGCACHE_MAPLE, .from_reg = 0 },
drivers/base/regmap/regmap-kunit.c
174
{ .cache = REGCACHE_MAPLE, .from_reg = 0, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
175
{ .cache = REGCACHE_MAPLE, .from_reg = 0x2001 },
drivers/base/regmap/regmap-kunit.c
1750
config->cache_type = param->cache;
drivers/base/regmap/regmap-kunit.c
176
{ .cache = REGCACHE_MAPLE, .from_reg = 0x2002 },
drivers/base/regmap/regmap-kunit.c
177
{ .cache = REGCACHE_MAPLE, .from_reg = 0x2003 },
drivers/base/regmap/regmap-kunit.c
178
{ .cache = REGCACHE_MAPLE, .from_reg = 0x2004 },
drivers/base/regmap/regmap-kunit.c
195
config->cache_type = param->cache;
drivers/base/regmap/regmap-kunit.c
23
enum regcache_type cache;
drivers/base/regmap/regmap-kunit.c
89
regcache_type_name(param->cache),
drivers/base/regmap/regmap-kunit.c
96
{ .cache = REGCACHE_NONE },
drivers/base/regmap/regmap-kunit.c
97
{ .cache = REGCACHE_NONE, .fast_io = true },
drivers/base/regmap/regmap-kunit.c
98
{ .cache = REGCACHE_FLAT },
drivers/base/regmap/regmap-kunit.c
99
{ .cache = REGCACHE_FLAT, .fast_io = true },
drivers/block/null_blk/main.c
1082
ret = radix_tree_delete_item(&nullb->dev->cache, idx, c_page);
drivers/block/null_blk/main.c
1100
nr_pages = radix_tree_gang_lookup(&nullb->dev->cache,
drivers/block/null_blk/main.c
1237
WARN_ON(!radix_tree_empty(&nullb->dev->cache));
drivers/block/null_blk/main.c
792
INIT_RADIX_TREE(&dev->cache, GFP_ATOMIC);
drivers/block/null_blk/main.c
908
root = is_cache ? &nullb->dev->cache : &nullb->dev->data;
drivers/block/null_blk/main.c
931
root = is_cache ? &nullb->dev->cache : &nullb->dev->data;
drivers/block/null_blk/main.c
950
root = is_cache ? &dev->cache : &dev->data;
drivers/block/null_blk/main.c
983
root = is_cache ? &nullb->dev->cache : &nullb->dev->data;
drivers/block/null_blk/null_blk.h
62
struct radix_tree_root cache; /* disk cache data */
drivers/block/ps3vram.c
311
struct ps3vram_cache *cache = &priv->cache;
drivers/block/ps3vram.c
313
if (!(cache->tags[entry].flags & CACHE_PAGE_DIRTY))
drivers/block/ps3vram.c
317
cache->tags[entry].address);
drivers/block/ps3vram.c
318
if (ps3vram_upload(dev, CACHE_OFFSET + entry * cache->page_size,
drivers/block/ps3vram.c
319
cache->tags[entry].address, DMA_PAGE_SIZE,
drivers/block/ps3vram.c
320
cache->page_size / DMA_PAGE_SIZE) < 0) {
drivers/block/ps3vram.c
323
entry * cache->page_size, cache->tags[entry].address,
drivers/block/ps3vram.c
324
cache->page_size);
drivers/block/ps3vram.c
326
cache->tags[entry].flags &= ~CACHE_PAGE_DIRTY;
drivers/block/ps3vram.c
333
struct ps3vram_cache *cache = &priv->cache;
drivers/block/ps3vram.c
337
CACHE_OFFSET + entry * cache->page_size,
drivers/block/ps3vram.c
339
cache->page_size / DMA_PAGE_SIZE) < 0) {
drivers/block/ps3vram.c
342
address, entry * cache->page_size, cache->page_size);
drivers/block/ps3vram.c
345
cache->tags[entry].address = address;
drivers/block/ps3vram.c
346
cache->tags[entry].flags |= CACHE_PAGE_PRESENT;
drivers/block/ps3vram.c
353
struct ps3vram_cache *cache = &priv->cache;
drivers/block/ps3vram.c
357
for (i = 0; i < cache->page_count; i++) {
drivers/block/ps3vram.c
359
cache->tags[i].flags = 0;
drivers/block/ps3vram.c
367
struct ps3vram_cache *cache = &priv->cache;
drivers/block/ps3vram.c
373
offset = (unsigned int) (address & (cache->page_size - 1));
drivers/block/ps3vram.c
377
for (i = 0; i < cache->page_count; i++) {
drivers/block/ps3vram.c
378
if ((cache->tags[i].flags & CACHE_PAGE_PRESENT) &&
drivers/block/ps3vram.c
379
cache->tags[i].address == base) {
drivers/block/ps3vram.c
380
cache->hit++;
drivers/block/ps3vram.c
382
cache->tags[i].address);
drivers/block/ps3vram.c
388
i = (jiffies + (counter++)) % cache->page_count;
drivers/block/ps3vram.c
394
cache->miss++;
drivers/block/ps3vram.c
402
priv->cache.page_count = CACHE_PAGE_COUNT;
drivers/block/ps3vram.c
403
priv->cache.page_size = CACHE_PAGE_SIZE;
drivers/block/ps3vram.c
404
priv->cache.tags = kzalloc_objs(struct ps3vram_tag, CACHE_PAGE_COUNT);
drivers/block/ps3vram.c
405
if (!priv->cache.tags)
drivers/block/ps3vram.c
419
kfree(priv->cache.tags);
drivers/block/ps3vram.c
443
offset = (unsigned int) (from & (priv->cache.page_size - 1));
drivers/block/ps3vram.c
444
avail = priv->cache.page_size - offset;
drivers/block/ps3vram.c
447
cached = CACHE_OFFSET + entry * priv->cache.page_size + offset;
drivers/block/ps3vram.c
484
offset = (unsigned int) (to & (priv->cache.page_size - 1));
drivers/block/ps3vram.c
485
avail = priv->cache.page_size - offset;
drivers/block/ps3vram.c
488
cached = CACHE_OFFSET + entry * priv->cache.page_size + offset;
drivers/block/ps3vram.c
498
priv->cache.tags[entry].flags |= CACHE_PAGE_DIRTY;
drivers/block/ps3vram.c
513
seq_printf(m, "hit:%u\nmiss:%u\n", priv->cache.hit, priv->cache.miss);
drivers/block/ps3vram.c
83
struct ps3vram_cache cache;
drivers/crypto/hifn_795x.c
1324
t = &rctx->walk.cache[0];
drivers/crypto/hifn_795x.c
1358
sg_init_table(w->cache, num);
drivers/crypto/hifn_795x.c
1368
s = &w->cache[i];
drivers/crypto/hifn_795x.c
1382
struct scatterlist *s = &w->cache[i];
drivers/crypto/hifn_795x.c
1445
t = &w->cache[idx];
drivers/crypto/hifn_795x.c
1659
t = &rctx->walk.cache[idx];
drivers/crypto/hifn_795x.c
592
struct scatterlist cache[ASYNC_SCATTERLIST_CACHE];
drivers/crypto/inside-secure/safexcel.h
868
u8 cache[HASH_CACHE_SIZE];
drivers/crypto/inside-secure/safexcel_hash.c
275
memcpy(sreq->cache, sreq->state,
drivers/crypto/inside-secure/safexcel_hash.c
300
memcpy(sreq->cache, sreq->cache_next, cache_len);
drivers/crypto/inside-secure/safexcel_hash.c
367
req->cache + cache_len,
drivers/crypto/inside-secure/safexcel_hash.c
371
memset(req->cache + cache_len + skip, 0, extra);
drivers/crypto/inside-secure/safexcel_hash.c
374
req->cache[cache_len + skip] = 0x80;
drivers/crypto/inside-secure/safexcel_hash.c
377
u32 *cache = (void *)req->cache;
drivers/crypto/inside-secure/safexcel_hash.c
382
cache[i] ^= swab32(x);
drivers/crypto/inside-secure/safexcel_hash.c
390
crypto_xor(req->cache, (const u8 *)req->state, AES_BLOCK_SIZE);
drivers/crypto/inside-secure/safexcel_hash.c
396
req->cache_dma = dma_map_single(priv->dev, req->cache,
drivers/crypto/inside-secure/safexcel_hash.c
63
u8 cache[HASH_CACHE_SIZE] __aligned(sizeof(u32));
drivers/crypto/inside-secure/safexcel_hash.c
678
req->cache + cache_len,
drivers/crypto/inside-secure/safexcel_hash.c
838
memset(req->cache, 0, req->block_sz);
drivers/crypto/inside-secure/safexcel_hash.c
840
req->cache[0] = 0x80;
drivers/crypto/inside-secure/safexcel_hash.c
844
req->cache[req->block_sz-8] = (req->block_sz << 3) &
drivers/crypto/inside-secure/safexcel_hash.c
846
req->cache[req->block_sz-7] = (req->block_sz >> 5);
drivers/crypto/inside-secure/safexcel_hash.c
849
req->cache[req->block_sz-2] = (req->block_sz >> 5);
drivers/crypto/inside-secure/safexcel_hash.c
850
req->cache[req->block_sz-1] = (req->block_sz << 3) &
drivers/crypto/inside-secure/safexcel_hash.c
890
memcpy(export->cache, req->cache, HASH_CACHE_SIZE);
drivers/crypto/inside-secure/safexcel_hash.c
910
memcpy(req->cache, export->cache, HASH_CACHE_SIZE);
drivers/crypto/marvell/cesa/cesa.h
597
u8 *cache;
drivers/crypto/marvell/cesa/cesa.h
619
u8 cache[CESA_MAX_HASH_BLOCK_SIZE];
drivers/crypto/marvell/cesa/hash.c
191
creq->cache, creq->cache_ptr);
drivers/crypto/marvell/cesa/hash.c
194
creq->cache, creq->cache_ptr);
drivers/crypto/marvell/cesa/hash.c
235
memcpy(creq->cache,
drivers/crypto/marvell/cesa/hash.c
240
memcpy_fromio(creq->cache,
drivers/crypto/marvell/cesa/hash.c
246
i = mv_cesa_ahash_pad_req(creq, creq->cache);
drivers/crypto/marvell/cesa/hash.c
251
creq->cache, i);
drivers/crypto/marvell/cesa/hash.c
255
creq->cache, i);
drivers/crypto/marvell/cesa/hash.c
426
creq->cache,
drivers/crypto/marvell/cesa/hash.c
480
creq->cache + creq->cache_ptr,
drivers/crypto/marvell/cesa/hash.c
52
req->cache = dma_pool_alloc(cesa_dev->dma->cache_pool, flags,
drivers/crypto/marvell/cesa/hash.c
532
memcpy(ahashdreq->cache, creq->cache, creq->cache_ptr);
drivers/crypto/marvell/cesa/hash.c
54
if (!req->cache)
drivers/crypto/marvell/cesa/hash.c
63
if (!req->cache)
drivers/crypto/marvell/cesa/hash.c
66
dma_pool_free(cesa_dev->dma->cache_pool, req->cache,
drivers/crypto/marvell/cesa/hash.c
839
u64 *len, void *cache)
drivers/crypto/marvell/cesa/hash.c
850
memset(cache, 0, blocksize);
drivers/crypto/marvell/cesa/hash.c
851
memcpy(cache, creq->cache, creq->cache_ptr);
drivers/crypto/marvell/cesa/hash.c
857
u64 len, const void *cache)
drivers/crypto/marvell/cesa/hash.c
884
memcpy(creq->cache, cache, cache_ptr);
drivers/dma/dmaengine.c
1345
struct kmem_cache *cache;
drivers/dma/dmaengine.c
1423
kmem_cache_destroy(p->cache);
drivers/dma/dmaengine.c
1424
p->cache = NULL;
drivers/dma/dmaengine.c
1439
p->cache = kmem_cache_create(p->name, size, 0,
drivers/dma/dmaengine.c
1441
if (!p->cache)
drivers/dma/dmaengine.c
1443
p->pool = mempool_create_slab_pool(1, p->cache);
drivers/firewire/net.c
270
.cache = fwnet_header_cache,
drivers/firmware/cirrus/cs_dsp.c
1001
ret = cs_dsp_coeff_write_ctrl_raw(ctl, 0, ctl->cache,
drivers/firmware/cirrus/cs_dsp.c
1034
kvfree(ctl->cache);
drivers/firmware/cirrus/cs_dsp.c
1084
ctl->cache = kvzalloc(ctl->len, GFP_KERNEL);
drivers/firmware/cirrus/cs_dsp.c
1085
if (!ctl->cache) {
drivers/firmware/cirrus/cs_dsp.c
1102
kvfree(ctl->cache);
drivers/firmware/cirrus/cs_dsp.c
3433
ch->cache <<= nwrite;
drivers/firmware/cirrus/cs_dsp.c
3434
ch->cache |= val >> (nbits - nwrite);
drivers/firmware/cirrus/cs_dsp.c
3442
ch->cache &= 0xFFFFFF;
drivers/firmware/cirrus/cs_dsp.c
3443
for (i = 0; i < sizeof(ch->cache); i++, ch->cache <<= BITS_PER_BYTE)
drivers/firmware/cirrus/cs_dsp.c
3444
*ch->data++ = (ch->cache & 0xFF000000) >> CS_DSP_DATA_WORD_BITS;
drivers/firmware/cirrus/cs_dsp.c
3446
ch->bytes += sizeof(ch->cache);
drivers/firmware/cirrus/cs_dsp.c
3495
ch->cache = 0;
drivers/firmware/cirrus/cs_dsp.c
3498
for (i = 0; i < sizeof(ch->cache); i++, ch->cache <<= BITS_PER_BYTE)
drivers/firmware/cirrus/cs_dsp.c
3499
ch->cache |= *ch->data++;
drivers/firmware/cirrus/cs_dsp.c
3501
ch->bytes += sizeof(ch->cache);
drivers/firmware/cirrus/cs_dsp.c
3507
result = ch->cache >> ((sizeof(ch->cache) * BITS_PER_BYTE) - nread);
drivers/firmware/cirrus/cs_dsp.c
3508
ch->cache <<= nread;
drivers/firmware/cirrus/cs_dsp.c
822
} else if (buf != ctl->cache) {
drivers/firmware/cirrus/cs_dsp.c
823
if (memcmp(ctl->cache + off * sizeof(u32), buf, len))
drivers/firmware/cirrus/cs_dsp.c
824
memcpy(ctl->cache + off * sizeof(u32), buf, len);
drivers/firmware/cirrus/cs_dsp.c
929
ret = cs_dsp_coeff_read_ctrl_raw(ctl, 0, ctl->cache, ctl->len);
drivers/firmware/cirrus/cs_dsp.c
931
if (buf != ctl->cache)
drivers/firmware/cirrus/cs_dsp.c
932
memcpy(buf, ctl->cache + off * sizeof(u32), len);
drivers/firmware/cirrus/cs_dsp.c
983
ret = cs_dsp_coeff_read_ctrl_raw(ctl, 0, ctl->cache, ctl->len);
drivers/firmware/cirrus/test/cs_dsp_test_control_cache.c
191
KUNIT_EXPECT_GE(test, ksize(ctl->cache), ctl->len);
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1161
static int kfd_parse_subtype_cache(struct crat_subtype_cache *cache,
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1169
id = cache->processor_id_low;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1195
props->cache_level = cache->cache_level;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1196
props->cache_size = cache->cache_size;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1197
props->cacheline_size = cache->cache_line_size;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1198
props->cachelines_per_tag = cache->lines_per_tag;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1199
props->cache_assoc = cache->associativity;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1200
props->cache_latency = cache->cache_latency;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1202
memcpy(props->sibling_map, cache->sibling_map,
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1208
if (cache->flags & CRAT_CACHE_FLAGS_DATA_CACHE)
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1210
if (cache->flags & CRAT_CACHE_FLAGS_INST_CACHE)
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1212
if (cache->flags & CRAT_CACHE_FLAGS_CPU_CACHE)
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1214
if (cache->flags & CRAT_CACHE_FLAGS_SIMD_CACHE)
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1312
struct crat_subtype_cache *cache;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1326
cache = (struct crat_subtype_cache *)sub_type_hdr;
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
1327
ret = kfd_parse_subtype_cache(cache, device_list);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1149
struct kfd_cache_properties *cache;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
115
struct kfd_cache_properties *cache;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1166
list_for_each_entry(cache, &dev->cache_props, list)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1167
cache->gpu = dev->gpu;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
130
cache = container_of(dev->cache_props.next,
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
132
list_del(&cache->list);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
133
kfree(cache);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
330
struct kfd_cache_properties *cache;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
334
cache = container_of(attr, struct kfd_cache_properties, attr);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
335
if (cache->gpu && kfd_devcgroup_check_permission(cache->gpu))
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
338
cache->processor_id_low);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
339
sysfs_show_32bit_prop(buffer, offs, "level", cache->cache_level);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
340
sysfs_show_32bit_prop(buffer, offs, "size", cache->cache_size);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
342
cache->cacheline_size);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
344
cache->cachelines_per_tag);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
345
sysfs_show_32bit_prop(buffer, offs, "association", cache->cache_assoc);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
346
sysfs_show_32bit_prop(buffer, offs, "latency", cache->cache_latency);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
347
sysfs_show_32bit_prop(buffer, offs, "type", cache->cache_type);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
350
for (i = 0; i < cache->sibling_map_size; i++)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
351
for (j = 0; j < sizeof(cache->sibling_map[0])*8; j++)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
354
(cache->sibling_map[i] >> j) & 1);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
570
struct kfd_cache_properties *cache;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
599
list_for_each_entry(cache, &dev->cache_props, list)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
600
if (cache->kobj) {
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
601
kfd_remove_sysfs_file(cache->kobj,
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
602
&cache->attr);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
603
cache->kobj = NULL;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
646
struct kfd_cache_properties *cache;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
734
list_for_each_entry(cache, &dev->cache_props, list) {
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
735
cache->kobj = kzalloc_obj(struct kobject);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
736
if (!cache->kobj)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
738
ret = kobject_init_and_add(cache->kobj, &cache_type,
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
741
kobject_put(cache->kobj);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
745
cache->attr.name = "properties";
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
746
cache->attr.mode = KFD_SYSFS_FILE_MODE;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
747
sysfs_attr_init(&cache->attr);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
748
ret = sysfs_create_file(cache->kobj, &cache->attr);
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
405
u32 cache = 0;
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
412
cache |= ((config_regs->value << config_regs->shift) & config_regs->mask);
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
428
data |= cache;
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
429
cache = 0;
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_powertune.c
901
uint32_t cache = 0;
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_powertune.c
908
cache |= ((config_regs->value << config_regs->shift) & config_regs->mask);
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_powertune.c
930
data |= cache;
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_powertune.c
949
cache = 0;
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
3680
*table = gpu_metrics_table->cache.buffer;
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
3681
return gpu_metrics_table->cache.size;
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
3889
if (!table && temp_table->cache.size)
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
3890
return temp_table->cache.size;
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
3893
memcpy(table, temp_table->cache.buffer, temp_table->cache.size);
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
3894
return temp_table->cache.size;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1817
table->cache.last_cache_time = time;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1822
if (!table->cache.buffer || !table->cache.last_cache_time ||
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1823
!table->cache.interval || !table->cache.size ||
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1825
table->cache.last_cache_time +
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1826
msecs_to_jiffies(table->cache.interval)))
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1839
tables[table_id].cache.buffer = kzalloc(size, GFP_KERNEL);
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1840
if (!tables[table_id].cache.buffer)
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1843
tables[table_id].cache.last_cache_time = 0;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1844
tables[table_id].cache.interval = cache_interval;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1845
tables[table_id].cache.size = size;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1856
if (tables[table_id].cache.buffer) {
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1857
kfree(tables[table_id].cache.buffer);
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1858
tables[table_id].cache.buffer = NULL;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1859
tables[table_id].cache.last_cache_time = 0;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1860
tables[table_id].cache.interval = 0;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1875
driver_tables[table_id].cache.buffer = kzalloc(size, GFP_KERNEL);
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1876
if (!driver_tables[table_id].cache.buffer)
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1879
driver_tables[table_id].cache.last_cache_time = 0;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1880
driver_tables[table_id].cache.interval = cache_interval;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1881
driver_tables[table_id].cache.size = size;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1895
if (driver_tables[table_id].cache.buffer) {
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1896
kfree(driver_tables[table_id].cache.buffer);
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1897
driver_tables[table_id].cache.buffer = NULL;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1898
driver_tables[table_id].cache.last_cache_time = 0;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1899
driver_tables[table_id].cache.interval = 0;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1905
if (!table->cache.buffer || !table->cache.last_cache_time ||
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1906
!table->cache.interval || !table->cache.size ||
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1908
table->cache.last_cache_time +
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1909
msecs_to_jiffies(table->cache.interval)))
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1924
return driver_tables[table_id].cache.buffer;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
1937
driver_tables[table_id].cache.last_cache_time = jiffies;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
271
struct smu_table_cache cache;
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
283
struct smu_table_cache cache;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
475
memcpy(sys_table->cache.buffer, table->cpu_addr,
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
626
metrics = (SystemMetricsTable_t *)sys_table->cache.buffer;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
667
metrics = (SystemMetricsTable_t *)sys_table->cache.buffer;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
705
metrics = (SystemMetricsTable_t *)sys_table->cache.buffer;
drivers/gpu/drm/drm_pagemap.c
911
dpagemap->cache = NULL;
drivers/gpu/drm/drm_pagemap_util.c
100
spin_lock_init(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
101
cache->shrinker = shrinker;
drivers/gpu/drm/drm_pagemap_util.c
102
init_completion(&cache->queued);
drivers/gpu/drm/drm_pagemap_util.c
103
err = devm_add_action_or_reset(shrinker->drm->dev, drm_pagemap_cache_fini, cache);
drivers/gpu/drm/drm_pagemap_util.c
107
return cache;
drivers/gpu/drm/drm_pagemap_util.c
144
int drm_pagemap_cache_lock_lookup(struct drm_pagemap_cache *cache)
drivers/gpu/drm/drm_pagemap_util.c
146
return mutex_lock_interruptible(&cache->lookup_mutex);
drivers/gpu/drm/drm_pagemap_util.c
154
void drm_pagemap_cache_unlock_lookup(struct drm_pagemap_cache *cache)
drivers/gpu/drm/drm_pagemap_util.c
156
mutex_unlock(&cache->lookup_mutex);
drivers/gpu/drm/drm_pagemap_util.c
175
struct drm_pagemap *drm_pagemap_get_from_cache(struct drm_pagemap_cache *cache)
drivers/gpu/drm/drm_pagemap_util.c
180
lockdep_assert_held(&cache->lookup_mutex);
drivers/gpu/drm/drm_pagemap_util.c
182
spin_lock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
183
dpagemap = cache->dpagemap;
drivers/gpu/drm/drm_pagemap_util.c
185
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
190
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
194
if (!try_wait_for_completion(&cache->queued)) {
drivers/gpu/drm/drm_pagemap_util.c
195
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
196
err = wait_for_completion_interruptible(&cache->queued);
drivers/gpu/drm/drm_pagemap_util.c
203
cache->dpagemap = NULL;
drivers/gpu/drm/drm_pagemap_util.c
204
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
210
drm_pagemap_cache_set_pagemap(cache, dpagemap);
drivers/gpu/drm/drm_pagemap_util.c
212
cache->dpagemap = NULL;
drivers/gpu/drm/drm_pagemap_util.c
213
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
229
void drm_pagemap_cache_set_pagemap(struct drm_pagemap_cache *cache, struct drm_pagemap *dpagemap)
drivers/gpu/drm/drm_pagemap_util.c
233
lockdep_assert_held(&cache->lookup_mutex);
drivers/gpu/drm/drm_pagemap_util.c
234
spin_lock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
235
dpagemap->cache = cache;
drivers/gpu/drm/drm_pagemap_util.c
236
swap(cache->dpagemap, dpagemap);
drivers/gpu/drm/drm_pagemap_util.c
237
reinit_completion(&cache->queued);
drivers/gpu/drm/drm_pagemap_util.c
238
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
252
struct drm_pagemap *drm_pagemap_get_from_cache_if_active(struct drm_pagemap_cache *cache)
drivers/gpu/drm/drm_pagemap_util.c
256
spin_lock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
257
dpagemap = drm_pagemap_get_unless_zero(cache->dpagemap);
drivers/gpu/drm/drm_pagemap_util.c
258
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
266
struct drm_pagemap_cache *cache = dpagemap->cache;
drivers/gpu/drm/drm_pagemap_util.c
267
struct drm_pagemap_shrinker *shrinker = cache->shrinker;
drivers/gpu/drm/drm_pagemap_util.c
295
struct drm_pagemap_cache *cache = dpagemap->cache;
drivers/gpu/drm/drm_pagemap_util.c
297
if (cache)
drivers/gpu/drm/drm_pagemap_util.c
298
might_lock(&cache->shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
319
struct drm_pagemap_cache *cache;
drivers/gpu/drm/drm_pagemap_util.c
331
cache = dpagemap->cache;
drivers/gpu/drm/drm_pagemap_util.c
332
if (!cache) {
drivers/gpu/drm/drm_pagemap_util.c
337
shrinker = cache->shrinker;
drivers/gpu/drm/drm_pagemap_util.c
342
complete_all(&cache->queued);
drivers/gpu/drm/drm_pagemap_util.c
364
struct drm_pagemap_cache *cache;
drivers/gpu/drm/drm_pagemap_util.c
382
cache = dpagemap->cache;
drivers/gpu/drm/drm_pagemap_util.c
383
spin_lock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
384
cache->dpagemap = NULL;
drivers/gpu/drm/drm_pagemap_util.c
385
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
62
struct drm_pagemap_cache *cache = arg;
drivers/gpu/drm/drm_pagemap_util.c
65
drm_dbg(cache->shrinker->drm, "Destroying dpagemap cache.\n");
drivers/gpu/drm/drm_pagemap_util.c
66
spin_lock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
67
dpagemap = cache->dpagemap;
drivers/gpu/drm/drm_pagemap_util.c
68
cache->dpagemap = NULL;
drivers/gpu/drm/drm_pagemap_util.c
71
spin_unlock(&cache->lock);
drivers/gpu/drm/drm_pagemap_util.c
76
mutex_destroy(&cache->lookup_mutex);
drivers/gpu/drm/drm_pagemap_util.c
77
kfree(cache);
drivers/gpu/drm/drm_pagemap_util.c
93
struct drm_pagemap_cache *cache = kzalloc_obj(*cache);
drivers/gpu/drm/drm_pagemap_util.c
96
if (!cache)
drivers/gpu/drm/drm_pagemap_util.c
99
mutex_init(&cache->lookup_mutex);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1105
static void reloc_cache_init(struct reloc_cache *cache,
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1108
cache->page = -1;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1109
cache->vaddr = 0;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1111
cache->graphics_ver = GRAPHICS_VER(i915);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1112
cache->has_llc = HAS_LLC(i915);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1113
cache->use_64bit_reloc = HAS_64BIT_RELOC(i915);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1114
cache->has_fence = cache->graphics_ver < 4;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1115
cache->needs_unfenced = INTEL_INFO(i915)->unfenced_needs_alignment;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1116
cache->node.flags = 0;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1131
static struct i915_ggtt *cache_to_ggtt(struct reloc_cache *cache)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1134
container_of(cache, struct i915_execbuffer, reloc_cache)->i915;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1138
static void reloc_cache_unmap(struct reloc_cache *cache)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1142
if (!cache->vaddr)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1145
vaddr = unmask_page(cache->vaddr);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1146
if (cache->vaddr & KMAP)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1152
static void reloc_cache_remap(struct reloc_cache *cache,
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1157
if (!cache->vaddr)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1160
if (cache->vaddr & KMAP) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1161
struct page *page = i915_gem_object_get_page(obj, cache->page);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1164
cache->vaddr = unmask_flags(cache->vaddr) |
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1167
struct i915_ggtt *ggtt = cache_to_ggtt(cache);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1170
offset = cache->node.start;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1171
if (!drm_mm_node_allocated(&cache->node))
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1172
offset += cache->page << PAGE_SHIFT;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1174
cache->vaddr = (unsigned long)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1179
static void reloc_cache_reset(struct reloc_cache *cache, struct i915_execbuffer *eb)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1183
if (!cache->vaddr)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1186
vaddr = unmask_page(cache->vaddr);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1187
if (cache->vaddr & KMAP) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1189
(struct drm_i915_gem_object *)cache->node.mm;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1190
if (cache->vaddr & CLFLUSH_AFTER)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1196
struct i915_ggtt *ggtt = cache_to_ggtt(cache);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1201
if (drm_mm_node_allocated(&cache->node)) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1203
cache->node.start,
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1204
cache->node.size);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1206
drm_mm_remove_node(&cache->node);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1209
i915_vma_unpin((struct i915_vma *)cache->node.mm);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1213
cache->vaddr = 0;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1214
cache->page = -1;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1218
struct reloc_cache *cache,
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1224
if (cache->vaddr) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1225
kunmap_local(unmask_page(cache->vaddr));
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1237
cache->vaddr = flushes | KMAP;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1238
cache->node.mm = (void *)obj;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1248
cache->vaddr = unmask_flags(cache->vaddr) | (unsigned long)vaddr;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1249
cache->page = pageno;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1259
struct reloc_cache *cache = &eb->reloc_cache;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1260
struct i915_ggtt *ggtt = cache_to_ggtt(cache);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1264
if (cache->vaddr) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1266
io_mapping_unmap_atomic((void __force __iomem *) unmask_page(cache->vaddr));
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1274
if (use_cpu_reloc(cache, obj))
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1300
memset(&cache->node, 0, sizeof(cache->node));
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1303
(&ggtt->vm.mm, &cache->node,
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1311
cache->node.start = i915_ggtt_offset(vma);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1312
cache->node.mm = (void *)vma;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1316
offset = cache->node.start;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1317
if (drm_mm_node_allocated(&cache->node)) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1330
cache->page = page;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1331
cache->vaddr = (unsigned long)vaddr;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1340
struct reloc_cache *cache = &eb->reloc_cache;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1343
if (cache->page == page) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1344
vaddr = unmask_page(cache->vaddr);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1347
if ((cache->vaddr & KMAP) == 0)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
1350
vaddr = reloc_kmap(vma->obj, cache, page);
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
632
static int use_cpu_reloc(const struct reloc_cache *cache,
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
650
return (cache->has_llc ||
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
1610
struct __guc_capture_ads_cache *cache;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
1615
cache = &gc->ads_cache[i][j][k];
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
1616
if (cache->is_valid)
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
1617
kfree(cache->ptr);
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
477
struct __guc_capture_ads_cache *cache = &gc->ads_cache[owner][type][classid];
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
485
if (cache->is_valid) {
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
486
*size = cache->size;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
487
return cache->status;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
527
struct __guc_capture_ads_cache *cache = &gc->ads_cache[owner][type][classid];
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
536
if (cache->is_valid) {
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
537
*outptr = cache->ptr;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
538
return cache->status;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
549
cache->is_valid = true;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
550
cache->ptr = NULL;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
551
cache->size = 0;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
552
cache->status = ret;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
573
cache->is_valid = true;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
574
cache->ptr = caplist;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
575
cache->size = size;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
576
cache->status = 0;
drivers/gpu/drm/i915/i915_active.c
142
if (!ref->cache)
drivers/gpu/drm/i915/i915_active.c
143
ref->cache = fetch_node(ref->tree.rb_node);
drivers/gpu/drm/i915/i915_active.c
146
if (ref->cache) {
drivers/gpu/drm/i915/i915_active.c
148
rb_erase(&ref->cache->node, &ref->tree);
drivers/gpu/drm/i915/i915_active.c
152
rb_link_node(&ref->cache->node, NULL, &ref->tree.rb_node);
drivers/gpu/drm/i915/i915_active.c
153
rb_insert_color(&ref->cache->node, &ref->tree);
drivers/gpu/drm/i915/i915_active.c
154
GEM_BUG_ON(ref->tree.rb_node != &ref->cache->node);
drivers/gpu/drm/i915/i915_active.c
157
ref->cache->timeline = 0; /* needs cmpxchg(u64) */
drivers/gpu/drm/i915/i915_active.c
245
it = READ_ONCE(ref->cache);
drivers/gpu/drm/i915/i915_active.c
278
WRITE_ONCE(ref->cache, it);
drivers/gpu/drm/i915/i915_active.c
331
WRITE_ONCE(ref->cache, node);
drivers/gpu/drm/i915/i915_active.c
352
ref->cache = NULL;
drivers/gpu/drm/i915/i915_active.c
746
if (ref->cache)
drivers/gpu/drm/i915/i915_active.c
747
kmem_cache_free(slab_cache, ref->cache);
drivers/gpu/drm/i915/i915_active.c
771
if (ref->cache && is_idle_barrier(ref->cache, idx)) {
drivers/gpu/drm/i915/i915_active.c
772
p = &ref->cache->node;
drivers/gpu/drm/i915/i915_active.c
831
if (p == &ref->cache->node)
drivers/gpu/drm/i915/i915_active.c
832
WRITE_ONCE(ref->cache, NULL);
drivers/gpu/drm/i915/i915_active_types.h
30
struct active_node *cache;
drivers/gpu/drm/i915/i915_scheduler.c
131
struct sched_cache *cache)
drivers/gpu/drm/i915/i915_scheduler.c
146
memset(cache, 0, sizeof(*cache));
drivers/gpu/drm/i915/i915_scheduler.c
162
struct sched_cache cache;
drivers/gpu/drm/i915/i915_scheduler.c
233
memset(&cache, 0, sizeof(cache));
drivers/gpu/drm/i915/i915_scheduler.c
238
sched_engine = lock_sched_engine(node, sched_engine, &cache);
drivers/gpu/drm/i915/i915_scheduler.c
246
sched_engine = lock_sched_engine(node, sched_engine, &cache);
drivers/gpu/drm/i915/i915_scheduler.c
274
if (!cache.priolist)
drivers/gpu/drm/i915/i915_scheduler.c
275
cache.priolist =
drivers/gpu/drm/i915/i915_scheduler.c
278
list_move_tail(&node->link, cache.priolist);
drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h
30
struct nvkm_gpuobj *cache;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
274
nvkm_gpuobj_del(&chan->cache);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
57
ret = nvkm_gpuobj_new(device, 0x1000, 0x400, true, chan->inst, &chan->cache);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
81
nvkm_wo32(chan->ramfc, 0x88, chan->cache->addr >> 10);
drivers/gpu/drm/radeon/ci_dpm.c
543
u32 cache = 0;
drivers/gpu/drm/radeon/ci_dpm.c
550
cache |= ((config_regs->value << config_regs->shift) & config_regs->mask);
drivers/gpu/drm/radeon/ci_dpm.c
566
data |= cache;
drivers/gpu/drm/radeon/ci_dpm.c
579
cache = 0;
drivers/gpu/drm/radeon/kv_dpm.c
162
u32 cache = 0;
drivers/gpu/drm/radeon/kv_dpm.c
169
cache |= ((config_regs->value << config_regs->shift) & config_regs->mask);
drivers/gpu/drm/radeon/kv_dpm.c
185
data |= cache;
drivers/gpu/drm/radeon/kv_dpm.c
186
cache = 0;
drivers/gpu/drm/tegra/gem.c
517
if (mapping->cache)
drivers/gpu/drm/tegra/plane.c
149
map = host1x_bo_pin(dc->dev, &bo->base, DMA_TO_DEVICE, &dc->client.cache);
drivers/gpu/drm/ttm/ttm_resource.c
729
while (i >= iter_io->cache.end) {
drivers/gpu/drm/ttm/ttm_resource.c
730
iter_io->cache.sg = iter_io->cache.sg ?
drivers/gpu/drm/ttm/ttm_resource.c
731
sg_next(iter_io->cache.sg) : iter_io->st->sgl;
drivers/gpu/drm/ttm/ttm_resource.c
732
iter_io->cache.i = iter_io->cache.end;
drivers/gpu/drm/ttm/ttm_resource.c
733
iter_io->cache.end += sg_dma_len(iter_io->cache.sg) >>
drivers/gpu/drm/ttm/ttm_resource.c
735
iter_io->cache.offs = sg_dma_address(iter_io->cache.sg) -
drivers/gpu/drm/ttm/ttm_resource.c
739
if (i < iter_io->cache.i) {
drivers/gpu/drm/ttm/ttm_resource.c
740
iter_io->cache.end = 0;
drivers/gpu/drm/ttm/ttm_resource.c
741
iter_io->cache.sg = NULL;
drivers/gpu/drm/ttm/ttm_resource.c
745
addr = io_mapping_map_local_wc(iter_io->iomap, iter_io->cache.offs +
drivers/gpu/drm/ttm/ttm_resource.c
746
(((resource_size_t)i - iter_io->cache.i)
drivers/gpu/drm/ttm/ttm_resource.c
784
memset(&iter_io->cache, 0, sizeof(iter_io->cache));
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
368
static inline u32 vmw_surface_subres(const struct vmw_surface_cache *cache,
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
371
return cache->num_mip_levels * layer + mip_level;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
389
struct vmw_surface_cache *cache)
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
394
memset(cache, 0, sizeof(*cache));
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
395
cache->desc = desc = vmw_surface_get_desc(format);
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
396
cache->num_mip_levels = num_mip_levels;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
397
cache->num_layers = num_layers;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
398
for (i = 0; i < cache->num_mip_levels; i++) {
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
399
struct vmw_surface_mip *mip = &cache->mip[i];
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
418
cache->mip_chain_bytes += mip->bytes;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
420
cache->sheet_bytes = cache->mip_chain_bytes * num_layers;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
421
if (!cache->sheet_bytes)
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
439
vmw_surface_get_loc(const struct vmw_surface_cache *cache,
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
443
const struct vmw_surface_mip *mip = &cache->mip[0];
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
444
const SVGA3dSurfaceDesc *desc = cache->desc;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
448
loc->sheet = offset / cache->sheet_bytes;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
449
offset -= loc->sheet * cache->sheet_bytes;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
451
layer = offset / cache->mip_chain_bytes;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
452
offset -= layer * cache->mip_chain_bytes;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
453
for (i = 0; i < cache->num_mip_levels; ++i, ++mip) {
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
459
loc->sub_resource = vmw_surface_subres(cache, i, layer);
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
483
vmw_surface_inc_loc(const struct vmw_surface_cache *cache,
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
486
const SVGA3dSurfaceDesc *desc = cache->desc;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
487
u32 mip = loc->sub_resource % cache->num_mip_levels;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
488
const struct drm_vmw_size *size = &cache->mip[mip].size;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
509
vmw_surface_min_loc(const struct vmw_surface_cache *cache,
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
528
vmw_surface_max_loc(const struct vmw_surface_cache *cache,
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
537
mip = sub_resource % cache->num_mip_levels;
drivers/gpu/drm/vmwgfx/vmw_surface_cache.h
538
size = &cache->mip[mip].size;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1770
const struct vmw_surface_cache *cache = &dirty->cache;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1772
u32 mip = loc_start->sub_resource % cache->num_mip_levels;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1773
const struct drm_vmw_size *size = &cache->mip[mip].size;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1816
const struct vmw_surface_cache *cache = &dirty->cache;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1817
u32 mip = subres % cache->num_mip_levels;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1818
const struct drm_vmw_size *size = &cache->mip[mip].size;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1840
const struct vmw_surface_cache *cache;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1844
cache = &dirty->cache;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1845
vmw_surface_get_loc(cache, &loc1, start);
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1846
vmw_surface_get_loc(cache, &loc2, end - 1);
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1847
vmw_surface_inc_loc(cache, &loc2);
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1870
vmw_surface_max_loc(cache, loc1.sub_resource, &loc_max);
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1872
vmw_surface_min_loc(cache, loc2.sub_resource - 1, &loc_min);
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1889
const struct vmw_surface_cache *cache = &dirty->cache;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1890
size_t backup_end = res->guest_memory_offset + cache->mip_chain_bytes;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1932
const struct vmw_surface_cache *cache = &dirty->cache;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1983
cmd2->body.image.face = i / cache->num_mip_levels;
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
1985
(cache->num_mip_levels * cmd2->body.image.face);
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
2035
&dirty->cache);
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
57
struct vmw_surface_cache cache;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
100
buf = xe_guc_buf_reserve(cache, xe_guc_buf_cache_dwords(cache));
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
111
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
115
dwords = xe_guc_buf_cache_dwords(cache);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
120
bufs[n] = xe_guc_buf_reserve(cache, 1);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
131
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
135
dwords = xe_guc_buf_cache_dwords(cache);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
140
bufs[n] = xe_guc_buf_reserve(cache, 1);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
157
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
159
u32 dwords = xe_guc_buf_cache_dwords(cache) / 2;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
164
b1 = xe_guc_buf_reserve(cache, dwords);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
165
b2 = xe_guc_buf_reserve(cache, dwords);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
191
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
196
b1 = xe_guc_buf_reserve(cache, xe_guc_buf_cache_dwords(cache));
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
202
b2 = xe_guc_buf_reserve(cache, xe_guc_buf_cache_dwords(cache));
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
210
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
213
buf = xe_guc_buf_reserve(cache, xe_guc_buf_cache_dwords(cache) + 1);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
220
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
222
const u32 dwords = xe_guc_buf_cache_dwords(cache);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
233
buf = xe_guc_buf_reserve(cache, dwords);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
242
iosys_map_memcpy_from(d, &cache->sam->bo->vmap, 0, bytes);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
250
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
257
dwords = xe_guc_buf_cache_dwords(cache);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
258
buf = xe_guc_buf_reserve(cache, dwords);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
263
KUNIT_EXPECT_EQ(test, 0, xe_guc_cache_gpu_addr_from_ptr(cache, p - 1, sizeof(u32)));
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
264
KUNIT_EXPECT_EQ(test, 0, xe_guc_cache_gpu_addr_from_ptr(cache, p + dwords, sizeof(u32)));
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
267
KUNIT_EXPECT_EQ_MSG(test, xe_guc_cache_gpu_addr_from_ptr(cache, p + n, sizeof(u32)),
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
276
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
280
buf = xe_guc_buf_from_data(cache, data, sizeof(data));
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
290
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
291
u32 dwords = xe_guc_buf_cache_dwords(cache);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
294
CLASS(xe_guc_buf, buf)(cache, dwords);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
303
CLASS(xe_guc_buf, buf)(cache, dwords);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
83
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
86
buf = xe_guc_buf_reserve(cache, 1);
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c
97
struct xe_guc_buf_cache *cache = test->priv;
drivers/gpu/drm/xe/xe_guc_buf.c
115
struct xe_guc_buf xe_guc_buf_from_data(struct xe_guc_buf_cache *cache,
drivers/gpu/drm/xe/xe_guc_buf.c
120
sa = __xe_sa_bo_new(cache->sam, size, GFP_ATOMIC);
drivers/gpu/drm/xe/xe_guc_buf.c
17
static struct xe_guc *cache_to_guc(struct xe_guc_buf_cache *cache)
drivers/gpu/drm/xe/xe_guc_buf.c
19
return container_of(cache, struct xe_guc, buf);
drivers/gpu/drm/xe/xe_guc_buf.c
194
u64 xe_guc_cache_gpu_addr_from_ptr(struct xe_guc_buf_cache *cache, const void *ptr, u32 size)
drivers/gpu/drm/xe/xe_guc_buf.c
196
ptrdiff_t offset = ptr - cache->sam->cpu_ptr;
drivers/gpu/drm/xe/xe_guc_buf.c
198
if (offset < 0 || offset + size > cache->sam->base.size)
drivers/gpu/drm/xe/xe_guc_buf.c
201
return xe_sa_manager_gpu_addr(cache->sam) + offset;
drivers/gpu/drm/xe/xe_guc_buf.c
22
static struct xe_gt *cache_to_gt(struct xe_guc_buf_cache *cache)
drivers/gpu/drm/xe/xe_guc_buf.c
24
return guc_to_gt(cache_to_guc(cache));
drivers/gpu/drm/xe/xe_guc_buf.c
27
static int guc_buf_cache_init(struct xe_guc_buf_cache *cache, u32 size)
drivers/gpu/drm/xe/xe_guc_buf.c
29
struct xe_gt *gt = cache_to_gt(cache);
drivers/gpu/drm/xe/xe_guc_buf.c
35
cache->sam = sam;
drivers/gpu/drm/xe/xe_guc_buf.c
38
xe_guc_buf_cache_dwords(cache), xe_bo_ggtt_addr(sam->bo),
drivers/gpu/drm/xe/xe_guc_buf.c
52
int xe_guc_buf_cache_init(struct xe_guc_buf_cache *cache)
drivers/gpu/drm/xe/xe_guc_buf.c
54
return guc_buf_cache_init(cache, XE_GUC_BUF_CACHE_DEFAULT_SIZE);
drivers/gpu/drm/xe/xe_guc_buf.c
67
int xe_guc_buf_cache_init_with_size(struct xe_guc_buf_cache *cache, u32 size)
drivers/gpu/drm/xe/xe_guc_buf.c
69
return guc_buf_cache_init(cache, max(XE_GUC_BUF_CACHE_DEFAULT_SIZE, size));
drivers/gpu/drm/xe/xe_guc_buf.c
78
u32 xe_guc_buf_cache_dwords(struct xe_guc_buf_cache *cache)
drivers/gpu/drm/xe/xe_guc_buf.c
80
return cache->sam ? cache->sam->base.size / sizeof(u32) : 0;
drivers/gpu/drm/xe/xe_guc_buf.c
93
struct xe_guc_buf xe_guc_buf_reserve(struct xe_guc_buf_cache *cache, u32 dwords)
drivers/gpu/drm/xe/xe_guc_buf.c
97
if (cache->sam)
drivers/gpu/drm/xe/xe_guc_buf.c
98
sa = __xe_sa_bo_new(cache->sam, dwords * sizeof(u32), GFP_ATOMIC);
drivers/gpu/drm/xe/xe_guc_buf.h
14
int xe_guc_buf_cache_init(struct xe_guc_buf_cache *cache);
drivers/gpu/drm/xe/xe_guc_buf.h
15
int xe_guc_buf_cache_init_with_size(struct xe_guc_buf_cache *cache, u32 size);
drivers/gpu/drm/xe/xe_guc_buf.h
16
u32 xe_guc_buf_cache_dwords(struct xe_guc_buf_cache *cache);
drivers/gpu/drm/xe/xe_guc_buf.h
17
struct xe_guc_buf xe_guc_buf_reserve(struct xe_guc_buf_cache *cache, u32 dwords);
drivers/gpu/drm/xe/xe_guc_buf.h
18
struct xe_guc_buf xe_guc_buf_from_data(struct xe_guc_buf_cache *cache,
drivers/gpu/drm/xe/xe_guc_buf.h
37
u64 xe_guc_cache_gpu_addr_from_ptr(struct xe_guc_buf_cache *cache, const void *ptr, u32 size);
drivers/gpu/drm/xe/xe_guc_buf.h
41
xe_guc_buf_reserve(cache, num),
drivers/gpu/drm/xe/xe_guc_buf.h
42
struct xe_guc_buf_cache *cache, u32 num);
drivers/gpu/drm/xe/xe_guc_buf.h
46
xe_guc_buf_from_data(cache, data, size),
drivers/gpu/drm/xe/xe_guc_buf.h
47
struct xe_guc_buf_cache *cache, const void *data, size_t size);
drivers/gpu/drm/xe/xe_guc_capture.c
584
struct __guc_capture_ads_cache *cache;
drivers/gpu/drm/xe/xe_guc_capture.c
590
cache = &gc->ads_cache[owner][type][capture_class];
drivers/gpu/drm/xe/xe_guc_capture.c
596
if (cache->is_valid) {
drivers/gpu/drm/xe/xe_guc_capture.c
597
*size = cache->size;
drivers/gpu/drm/xe/xe_guc_capture.c
598
return cache->status;
drivers/gpu/drm/xe/xe_guc_capture.c
663
struct __guc_capture_ads_cache *cache = &gc->ads_cache[owner][type][capture_class];
drivers/gpu/drm/xe/xe_guc_capture.c
672
if (cache->is_valid) {
drivers/gpu/drm/xe/xe_guc_capture.c
673
*outptr = cache->ptr;
drivers/gpu/drm/xe/xe_guc_capture.c
674
return cache->status;
drivers/gpu/drm/xe/xe_guc_capture.c
679
cache->is_valid = true;
drivers/gpu/drm/xe/xe_guc_capture.c
680
cache->ptr = NULL;
drivers/gpu/drm/xe/xe_guc_capture.c
681
cache->size = 0;
drivers/gpu/drm/xe/xe_guc_capture.c
682
cache->status = ret;
drivers/gpu/drm/xe/xe_guc_capture.c
702
cache->is_valid = true;
drivers/gpu/drm/xe/xe_guc_capture.c
703
cache->ptr = caplist;
drivers/gpu/drm/xe/xe_guc_capture.c
704
cache->size = size;
drivers/gpu/drm/xe/xe_guc_capture.c
705
cache->status = 0;
drivers/gpu/drm/xe/xe_svm.c
1823
xe_pagemap_find_or_create(struct xe_device *xe, struct drm_pagemap_cache *cache,
drivers/gpu/drm/xe/xe_svm.c
1830
err = drm_pagemap_cache_lock_lookup(cache);
drivers/gpu/drm/xe/xe_svm.c
1834
dpagemap = drm_pagemap_get_from_cache(cache);
drivers/gpu/drm/xe/xe_svm.c
1841
drm_pagemap_cache_set_pagemap(cache, &xpagemap->dpagemap);
drivers/gpu/drm/xe/xe_svm.c
1847
drm_pagemap_cache_unlock_lookup(cache);
drivers/gpu/drm/xe/xe_svm.c
1906
struct drm_pagemap_cache *cache =
drivers/gpu/drm/xe/xe_svm.c
1909
if (IS_ERR(cache))
drivers/gpu/drm/xe/xe_svm.c
1910
return PTR_ERR(cache);
drivers/gpu/drm/xe/xe_svm.c
1912
tile->mem.vram->dpagemap_cache = cache;
drivers/gpu/host1x/bus.c
727
host1x_bo_cache_init(&client->cache);
drivers/gpu/host1x/bus.c
815
host1x_bo_cache_destroy(&client->cache);
drivers/gpu/host1x/bus.c
892
struct host1x_bo_cache *cache)
drivers/gpu/host1x/bus.c
896
if (cache) {
drivers/gpu/host1x/bus.c
897
mutex_lock(&cache->lock);
drivers/gpu/host1x/bus.c
899
list_for_each_entry(mapping, &cache->mappings, entry) {
drivers/gpu/host1x/bus.c
915
if (cache) {
drivers/gpu/host1x/bus.c
917
mapping->cache = cache;
drivers/gpu/host1x/bus.c
919
list_add_tail(&mapping->entry, &cache->mappings);
drivers/gpu/host1x/bus.c
926
if (cache)
drivers/gpu/host1x/bus.c
927
mutex_unlock(&cache->lock);
drivers/gpu/host1x/bus.c
941
if (mapping->cache)
drivers/gpu/host1x/bus.c
953
struct host1x_bo_cache *cache = mapping->cache;
drivers/gpu/host1x/bus.c
955
if (cache)
drivers/gpu/host1x/bus.c
956
mutex_lock(&cache->lock);
drivers/gpu/host1x/bus.c
960
if (cache)
drivers/gpu/host1x/bus.c
961
mutex_unlock(&cache->lock);
drivers/gpu/host1x/dev.c
604
host1x_bo_cache_init(&host->cache);
drivers/gpu/host1x/dev.c
679
host1x_bo_cache_destroy(&host->cache);
drivers/gpu/host1x/dev.c
698
host1x_bo_cache_destroy(&host->cache);
drivers/gpu/host1x/dev.h
174
struct host1x_bo_cache cache;
drivers/hwmon/applesmc.c
134
struct applesmc_entry *cache; /* cached key entries */
drivers/hwmon/applesmc.c
370
struct applesmc_entry *cache = &smcreg.cache[index];
drivers/hwmon/applesmc.c
375
if (cache->valid)
drivers/hwmon/applesmc.c
376
return cache;
drivers/hwmon/applesmc.c
380
if (cache->valid)
drivers/hwmon/applesmc.c
390
memcpy(cache->key, key, 4);
drivers/hwmon/applesmc.c
391
cache->len = info[0];
drivers/hwmon/applesmc.c
392
memcpy(cache->type, &info[1], 4);
drivers/hwmon/applesmc.c
393
cache->flags = info[5];
drivers/hwmon/applesmc.c
394
cache->valid = true;
drivers/hwmon/applesmc.c
400
return cache;
drivers/hwmon/applesmc.c
580
if (s->cache && s->key_count != count) {
drivers/hwmon/applesmc.c
583
kfree(s->cache);
drivers/hwmon/applesmc.c
584
s->cache = NULL;
drivers/hwmon/applesmc.c
588
if (!s->cache)
drivers/hwmon/applesmc.c
589
s->cache = kzalloc_objs(*s->cache, s->key_count);
drivers/hwmon/applesmc.c
590
if (!s->cache)
drivers/hwmon/applesmc.c
641
kfree(smcreg.cache);
drivers/hwmon/applesmc.c
642
smcreg.cache = NULL;
drivers/hwmon/bt1-pvt.c
208
struct pvt_cache *cache;
drivers/hwmon/bt1-pvt.c
223
cache = &pvt->cache[pvt->sensor];
drivers/hwmon/bt1-pvt.c
255
write_seqlock(&cache->data_seqlock);
drivers/hwmon/bt1-pvt.c
257
cache->data = FIELD_GET(PVT_DATA_DATA_MASK, val);
drivers/hwmon/bt1-pvt.c
259
write_sequnlock(&cache->data_seqlock);
drivers/hwmon/bt1-pvt.c
267
if ((thres_sts & info->thres_sts_lo) ^ cache->thres_sts_lo) {
drivers/hwmon/bt1-pvt.c
268
WRITE_ONCE(cache->thres_sts_lo, thres_sts & info->thres_sts_lo);
drivers/hwmon/bt1-pvt.c
271
} else if ((thres_sts & info->thres_sts_hi) ^ cache->thres_sts_hi) {
drivers/hwmon/bt1-pvt.c
272
WRITE_ONCE(cache->thres_sts_hi, thres_sts & info->thres_sts_hi);
drivers/hwmon/bt1-pvt.c
293
struct pvt_cache *cache = &pvt->cache[type];
drivers/hwmon/bt1-pvt.c
298
seq = read_seqbegin(&cache->data_seqlock);
drivers/hwmon/bt1-pvt.c
299
data = cache->data;
drivers/hwmon/bt1-pvt.c
300
} while (read_seqretry(&cache->data_seqlock, seq));
drivers/hwmon/bt1-pvt.c
375
*val = !!READ_ONCE(pvt->cache[type].thres_sts_lo);
drivers/hwmon/bt1-pvt.c
377
*val = !!READ_ONCE(pvt->cache[type].thres_sts_hi);
drivers/hwmon/bt1-pvt.c
411
struct pvt_cache *cache;
drivers/hwmon/bt1-pvt.c
431
cache = &pvt->cache[pvt->sensor];
drivers/hwmon/bt1-pvt.c
433
WRITE_ONCE(cache->data, FIELD_GET(PVT_DATA_DATA_MASK, val));
drivers/hwmon/bt1-pvt.c
435
complete(&cache->conversion);
drivers/hwmon/bt1-pvt.c
455
struct pvt_cache *cache = &pvt->cache[type];
drivers/hwmon/bt1-pvt.c
487
ret = wait_for_completion_timeout(&cache->conversion, timeout);
drivers/hwmon/bt1-pvt.c
493
data = READ_ONCE(cache->data);
drivers/hwmon/bt1-pvt.c
662
ktime_t kt, cache;
drivers/hwmon/bt1-pvt.c
675
cache = kt = ms_to_ktime(val);
drivers/hwmon/bt1-pvt.c
704
pvt->timeout = cache;
drivers/hwmon/bt1-pvt.c
854
complete_all(&pvt->cache[idx].conversion);
drivers/hwmon/bt1-pvt.c
882
seqlock_init(&pvt->cache[idx].data_seqlock);
drivers/hwmon/bt1-pvt.c
885
init_completion(&pvt->cache[idx].conversion);
drivers/hwmon/bt1-pvt.h
218
struct pvt_cache cache[PVT_SENSORS_NUM];
drivers/hwmon/ltc4282.c
785
int channel, u32 *cache, long val)
drivers/hwmon/ltc4282.c
793
val, cache);
drivers/iio/dac/ti-dac7612.c
109
if (val == priv->cache[chan->channel])
drivers/iio/dac/ti-dac7612.c
153
iio_dev->num_channels = ARRAY_SIZE(priv->cache);
drivers/iio/dac/ti-dac7612.c
158
for (i = 0; i < ARRAY_SIZE(priv->cache); i++) {
drivers/iio/dac/ti-dac7612.c
23
uint16_t cache[2];
drivers/iio/dac/ti-dac7612.c
48
priv->cache[channel] = val;
drivers/iio/dac/ti-dac7612.c
84
*val = priv->cache[chan->channel];
drivers/iio/multiplexer/iio-mux.c
60
struct mux_ext_info_cache *cache;
drivers/iio/multiplexer/iio-mux.c
62
cache = &child->ext_info_cache[i];
drivers/iio/multiplexer/iio-mux.c
64
if (cache->size < 0)
drivers/iio/multiplexer/iio-mux.c
68
cache->data,
drivers/iio/multiplexer/iio-mux.c
69
cache->size);
drivers/infiniband/core/cache.c
1035
table = device->port_data[p].cache.gid;
drivers/infiniband/core/cache.c
1058
struct ib_pkey_cache *cache;
drivers/infiniband/core/cache.c
1067
cache = device->port_data[port_num].cache.pkey;
drivers/infiniband/core/cache.c
1069
if (!cache || index < 0 || index >= cache->table_len)
drivers/infiniband/core/cache.c
1072
*pkey = cache->table[index];
drivers/infiniband/core/cache.c
1086
*sn_pfx = device->port_data[port_num].cache.subnet_prefix;
drivers/infiniband/core/cache.c
1094
struct ib_pkey_cache *cache;
drivers/infiniband/core/cache.c
1105
cache = device->port_data[port_num].cache.pkey;
drivers/infiniband/core/cache.c
1106
if (!cache) {
drivers/infiniband/core/cache.c
1113
for (i = 0; i < cache->table_len; ++i)
drivers/infiniband/core/cache.c
1114
if ((cache->table[i] & 0x7fff) == (pkey & 0x7fff)) {
drivers/infiniband/core/cache.c
1115
if (cache->table[i] & 0x8000) {
drivers/infiniband/core/cache.c
1145
*lmc = device->port_data[port_num].cache.lmc;
drivers/infiniband/core/cache.c
1162
*port_state = device->port_data[port_num].cache.port_state;
drivers/infiniband/core/cache.c
1505
old_pkey_cache = device->port_data[port].cache.pkey;
drivers/infiniband/core/cache.c
1506
device->port_data[port].cache.pkey = pkey_cache;
drivers/infiniband/core/cache.c
1508
device->port_data[port].cache.lmc = tprops->lmc;
drivers/infiniband/core/cache.c
1510
if (device->port_data[port].cache.port_state != IB_PORT_NOP &&
drivers/infiniband/core/cache.c
1511
device->port_data[port].cache.port_state != tprops->state)
drivers/infiniband/core/cache.c
1515
device->port_data[port].cache.port_state = tprops->state;
drivers/infiniband/core/cache.c
1517
device->port_data[port].cache.subnet_prefix = tprops->subnet_prefix;
drivers/infiniband/core/cache.c
1640
kfree(device->port_data[p].cache.pkey);
drivers/infiniband/core/cache.c
202
return device->port_data[port].cache.gid;
drivers/infiniband/core/cache.c
885
release_gid_table(ib_dev, ib_dev->port_data[p].cache.gid);
drivers/infiniband/core/cache.c
886
ib_dev->port_data[p].cache.gid = NULL;
drivers/infiniband/core/cache.c
902
ib_dev->port_data[rdma_port].cache.gid = table;
drivers/infiniband/core/cache.c
917
ib_dev->port_data[p].cache.gid);
drivers/infiniband/core/device.c
2948
if (ibdev->port_data[port].cache.last_port_state == curr_state) {
drivers/infiniband/core/device.c
2952
ibdev->port_data[port].cache.last_port_state = curr_state;
drivers/infiniband/hw/hfi1/chip.c
11096
static void vl_arb_get_cache(struct vl_arb_cache *cache,
drivers/infiniband/hw/hfi1/chip.c
11099
memcpy(vl, cache->table, VL_ARB_TABLE_SIZE * sizeof(*vl));
drivers/infiniband/hw/hfi1/chip.c
11102
static void vl_arb_set_cache(struct vl_arb_cache *cache,
drivers/infiniband/hw/hfi1/chip.c
11105
memcpy(cache->table, vl, VL_ARB_TABLE_SIZE * sizeof(*vl));
drivers/infiniband/hw/hfi1/chip.c
11108
static int vl_arb_match_cache(struct vl_arb_cache *cache,
drivers/infiniband/hw/hfi1/chip.c
11111
return !memcmp(cache->table, vl, VL_ARB_TABLE_SIZE * sizeof(*vl));
drivers/infiniband/hw/hfi1/firmware.c
1902
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/firmware.c
1941
if (cache[QSFP_EQ_INFO_OFFS] & 0x4)
drivers/infiniband/hw/hfi1/platform.c
196
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
205
cable_power_class = get_qsfp_power_class(cache[QSFP_MOD_PWR_OFFS]);
drivers/infiniband/hw/hfi1/platform.c
225
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
228
cache[QSFP_NOM_BIT_RATE_250_OFFS] < 0x64)
drivers/infiniband/hw/hfi1/platform.c
233
cache[QSFP_NOM_BIT_RATE_100_OFFS] < 0x7D)
drivers/infiniband/hw/hfi1/platform.c
251
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
254
cable_power_class = get_qsfp_power_class(cache[QSFP_MOD_PWR_OFFS]);
drivers/infiniband/hw/hfi1/platform.c
257
power_ctrl_byte = cache[QSFP_PWR_CTRL_BYTE_OFFS];
drivers/infiniband/hw/hfi1/platform.c
288
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
291
if (!((cache[QSFP_MOD_PWR_OFFS] & 0x4) &&
drivers/infiniband/hw/hfi1/platform.c
292
(cache[QSFP_CDR_INFO_OFFS] & 0x40)))
drivers/infiniband/hw/hfi1/platform.c
296
cable_power_class = get_qsfp_power_class(cache[QSFP_MOD_PWR_OFFS]);
drivers/infiniband/hw/hfi1/platform.c
330
*cdr_ctrl_byte |= (cache[QSFP_CDR_CTRL_BYTE_OFFS] & 0xF0);
drivers/infiniband/hw/hfi1/platform.c
339
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
342
if (!((cache[QSFP_MOD_PWR_OFFS] & 0x8) &&
drivers/infiniband/hw/hfi1/platform.c
343
(cache[QSFP_CDR_INFO_OFFS] & 0x80)))
drivers/infiniband/hw/hfi1/platform.c
347
cable_power_class = get_qsfp_power_class(cache[QSFP_MOD_PWR_OFFS]);
drivers/infiniband/hw/hfi1/platform.c
388
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
389
u8 cdr_ctrl_byte = cache[QSFP_CDR_CTRL_BYTE_OFFS];
drivers/infiniband/hw/hfi1/platform.c
401
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
404
if (!(cache[QSFP_EQ_INFO_OFFS] & 0x8))
drivers/infiniband/hw/hfi1/platform.c
407
tx_eq = cache[(128 * 3) + 241];
drivers/infiniband/hw/hfi1/platform.c
414
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
418
if (!(cache[QSFP_EQ_INFO_OFFS] & 0x4))
drivers/infiniband/hw/hfi1/platform.c
437
if (((cache[(128 * 3) + 224] & 0xF0) >> 4) < tx_preset) {
drivers/infiniband/hw/hfi1/platform.c
446
__func__, cache[608] & 0xF0);
drivers/infiniband/hw/hfi1/platform.c
448
tx_preset = (cache[608] & 0xF0) >> 4;
drivers/infiniband/hw/hfi1/platform.c
459
u8 rx_eq, *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
461
if (!(cache[QSFP_EQ_INFO_OFFS] & 0x2))
drivers/infiniband/hw/hfi1/platform.c
480
if ((cache[(128 * 3) + 224] & 0xF) < rx_preset) {
drivers/infiniband/hw/hfi1/platform.c
489
__func__, cache[608] & 0xF);
drivers/infiniband/hw/hfi1/platform.c
491
rx_preset = cache[608] & 0xF;
drivers/infiniband/hw/hfi1/platform.c
503
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
506
if (cache[2] & 4) {
drivers/infiniband/hw/hfi1/platform.c
525
u8 rx_amp = 0, i = 0, preferred = 0, *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
528
if (cache[2] & 4) {
drivers/infiniband/hw/hfi1/platform.c
534
if (!(cache[QSFP_EQ_INFO_OFFS] & 0x1)) {
drivers/infiniband/hw/hfi1/platform.c
565
if (cache[(128 * 3) + 225] & (1 << i)) {
drivers/infiniband/hw/hfi1/platform.c
576
if (!preferred && !(cache[(128 * 3) + 225] & 0x1)) {
drivers/infiniband/hw/hfi1/platform.c
620
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
628
switch ((cache[QSFP_MOD_TECH_OFFS] & 0xF0) >> 4) {
drivers/infiniband/hw/hfi1/platform.c
633
power_class = get_qsfp_power_class(cache[QSFP_MOD_PWR_OFFS]);
drivers/infiniband/hw/hfi1/platform.c
647
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
668
((cache[QSFP_MOD_PWR_OFFS] & 0x4) << 3) |
drivers/infiniband/hw/hfi1/platform.c
669
((cache[QSFP_MOD_PWR_OFFS] & 0x8) << 2) |
drivers/infiniband/hw/hfi1/platform.c
670
((cache[QSFP_EQ_INFO_OFFS] & 0x2) << 1) |
drivers/infiniband/hw/hfi1/platform.c
671
(cache[QSFP_EQ_INFO_OFFS] & 0x4);
drivers/infiniband/hw/hfi1/platform.c
730
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
764
if (cache[QSFP_EQ_INFO_OFFS] & 0x4) {
drivers/infiniband/hw/hfi1/platform.c
821
u8 *cache = ppd->qsfp_info.cache;
drivers/infiniband/hw/hfi1/platform.c
823
switch ((cache[QSFP_MOD_TECH_OFFS] & 0xF0) >> 4) {
drivers/infiniband/hw/hfi1/platform.c
834
cable_atten = cache[QSFP_CU_ATTEN_12G_OFFS];
drivers/infiniband/hw/hfi1/platform.c
837
cable_atten = cache[QSFP_CU_ATTEN_7G_OFFS];
drivers/infiniband/hw/hfi1/qsfp.c
501
u8 *cache = &cp->cache[0];
drivers/infiniband/hw/hfi1/qsfp.c
504
memset(cache, 0, (QSFP_MAX_NUM_PAGES * 128));
drivers/infiniband/hw/hfi1/qsfp.c
514
ret = qsfp_read(ppd, target, 0, cache, QSFP_PAGESIZE);
drivers/infiniband/hw/hfi1/qsfp.c
523
if (!(cache[2] & 4)) {
drivers/infiniband/hw/hfi1/qsfp.c
525
if ((cache[195] & 0xC0) == 0xC0) {
drivers/infiniband/hw/hfi1/qsfp.c
527
ret = qsfp_read(ppd, target, 384, cache + 256, 128);
drivers/infiniband/hw/hfi1/qsfp.c
532
ret = qsfp_read(ppd, target, 640, cache + 384, 128);
drivers/infiniband/hw/hfi1/qsfp.c
537
ret = qsfp_read(ppd, target, 896, cache + 512, 128);
drivers/infiniband/hw/hfi1/qsfp.c
542
} else if ((cache[195] & 0x80) == 0x80) {
drivers/infiniband/hw/hfi1/qsfp.c
544
ret = qsfp_read(ppd, target, 640, cache + 384, 128);
drivers/infiniband/hw/hfi1/qsfp.c
549
ret = qsfp_read(ppd, target, 896, cache + 512, 128);
drivers/infiniband/hw/hfi1/qsfp.c
554
} else if ((cache[195] & 0x40) == 0x40) {
drivers/infiniband/hw/hfi1/qsfp.c
556
ret = qsfp_read(ppd, target, 384, cache + 256, 128);
drivers/infiniband/hw/hfi1/qsfp.c
561
ret = qsfp_read(ppd, target, 896, cache + 512, 128);
drivers/infiniband/hw/hfi1/qsfp.c
568
ret = qsfp_read(ppd, target, 896, cache + 512, 128);
drivers/infiniband/hw/hfi1/qsfp.c
584
memset(cache, 0, (QSFP_MAX_NUM_PAGES * 128));
drivers/infiniband/hw/hfi1/qsfp.c
677
memcpy(data, &ppd->qsfp_info.cache[addr], (len - excess_len));
drivers/infiniband/hw/hfi1/qsfp.c
682
memcpy(data, &ppd->qsfp_info.cache[addr], len);
drivers/infiniband/hw/hfi1/qsfp.c
730
u8 *cache = &ppd->qsfp_info.cache[0];
drivers/infiniband/hw/hfi1/qsfp.c
735
u8 *atten = &cache[QSFP_ATTEN_OFFS];
drivers/infiniband/hw/hfi1/qsfp.c
736
u8 *vendor_oui = &cache[QSFP_VOUI_OFFS];
drivers/infiniband/hw/hfi1/qsfp.c
744
if (QSFP_IS_CU(cache[QSFP_MOD_TECH_OFFS]))
drivers/infiniband/hw/hfi1/qsfp.c
746
cache[QSFP_MOD_LEN_OFFS]);
drivers/infiniband/hw/hfi1/qsfp.c
748
power_byte = cache[QSFP_MOD_PWR_OFFS];
drivers/infiniband/hw/hfi1/qsfp.c
754
hfi1_qsfp_devtech[(cache[QSFP_MOD_TECH_OFFS]) >> 4]);
drivers/infiniband/hw/hfi1/qsfp.c
757
QSFP_VEND_LEN, &cache[QSFP_VEND_OFFS]);
drivers/infiniband/hw/hfi1/qsfp.c
763
QSFP_PN_LEN, &cache[QSFP_PN_OFFS]);
drivers/infiniband/hw/hfi1/qsfp.c
766
QSFP_REV_LEN, &cache[QSFP_REV_OFFS]);
drivers/infiniband/hw/hfi1/qsfp.c
768
if (QSFP_IS_CU(cache[QSFP_MOD_TECH_OFFS]))
drivers/infiniband/hw/hfi1/qsfp.c
775
QSFP_SN_LEN, &cache[QSFP_SN_OFFS]);
drivers/infiniband/hw/hfi1/qsfp.c
778
QSFP_DATE_LEN, &cache[QSFP_DATE_OFFS]);
drivers/infiniband/hw/hfi1/qsfp.c
781
QSFP_LOT_LEN, &cache[QSFP_LOT_OFFS]);
drivers/infiniband/hw/hfi1/qsfp.c
786
memcpy(bin_buff, &cache[bidx], QSFP_DUMP_CHUNK);
drivers/infiniband/hw/hfi1/qsfp.h
173
u8 cache[QSFP_MAX_NUM_PAGES * 128];
drivers/infiniband/hw/hns/hns_roce_main.c
149
if (ibdev->port_data[port].cache.last_port_state == curr_state) {
drivers/infiniband/hw/hns/hns_roce_main.c
153
ibdev->port_data[port].cache.last_port_state = curr_state;
drivers/infiniband/hw/mlx5/mlx5_ib.h
1185
struct mlx5_mkey_cache cache;
drivers/infiniband/hw/mlx5/mr.c
1009
mutex_unlock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
1012
destroy_workqueue(cache->wq);
drivers/infiniband/hw/mlx5/mr.c
1019
struct rb_root *root = &dev->cache.rb_root;
drivers/infiniband/hw/mlx5/mr.c
1023
if (!dev->cache.wq)
drivers/infiniband/hw/mlx5/mr.c
1026
mutex_lock(&dev->cache.rb_lock);
drivers/infiniband/hw/mlx5/mr.c
1034
mutex_unlock(&dev->cache.rb_lock);
drivers/infiniband/hw/mlx5/mr.c
1040
flush_workqueue(dev->cache.wq);
drivers/infiniband/hw/mlx5/mr.c
1048
destroy_workqueue(dev->cache.wq);
drivers/infiniband/hw/mlx5/mr.c
2031
struct mlx5_mkey_cache *cache = &dev->cache;
drivers/infiniband/hw/mlx5/mr.c
2040
mutex_lock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
2045
mutex_unlock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
2050
mutex_unlock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
2056
mutex_unlock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
2147
mod_delayed_work(ent->dev->cache.wq, &ent->dwork,
drivers/infiniband/hw/mlx5/mr.c
215
WRITE_ONCE(dev->cache.last_add, jiffies);
drivers/infiniband/hw/mlx5/mr.c
331
WRITE_ONCE(ent->dev->cache.last_add, jiffies);
drivers/infiniband/hw/mlx5/mr.c
487
static bool someone_adding(struct mlx5_mkey_cache *cache)
drivers/infiniband/hw/mlx5/mr.c
493
mutex_lock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
494
for (node = rb_first(&cache->rb_root); node; node = rb_next(node)) {
drivers/infiniband/hw/mlx5/mr.c
500
mutex_unlock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
504
mutex_unlock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
521
mod_delayed_work(ent->dev->cache.wq, &ent->dwork, 0);
drivers/infiniband/hw/mlx5/mr.c
528
mod_delayed_work(ent->dev->cache.wq, &ent->dwork, 0);
drivers/infiniband/hw/mlx5/mr.c
535
queue_delayed_work(ent->dev->cache.wq, &ent->dwork,
drivers/infiniband/hw/mlx5/mr.c
538
mod_delayed_work(ent->dev->cache.wq, &ent->dwork, 0);
drivers/infiniband/hw/mlx5/mr.c
560
struct mlx5_mkey_cache *cache = &dev->cache;
drivers/infiniband/hw/mlx5/mr.c
586
queue_delayed_work(cache->wq, &ent->dwork,
drivers/infiniband/hw/mlx5/mr.c
606
need_delay = need_resched() || someone_adding(cache) ||
drivers/infiniband/hw/mlx5/mr.c
608
READ_ONCE(cache->last_add) + 300 * HZ);
drivers/infiniband/hw/mlx5/mr.c
613
queue_delayed_work(cache->wq, &ent->dwork, 300 * HZ);
drivers/infiniband/hw/mlx5/mr.c
668
static int mlx5_cache_ent_insert(struct mlx5_mkey_cache *cache,
drivers/infiniband/hw/mlx5/mr.c
671
struct rb_node **new = &cache->rb_root.rb_node, *parent = NULL;
drivers/infiniband/hw/mlx5/mr.c
690
rb_insert_color(&ent->node, &cache->rb_root);
drivers/infiniband/hw/mlx5/mr.c
699
struct rb_node *node = dev->cache.rb_root.rb_node;
drivers/infiniband/hw/mlx5/mr.c
823
debugfs_remove_recursive(dev->cache.fs_root);
drivers/infiniband/hw/mlx5/mr.c
824
dev->cache.fs_root = NULL;
drivers/infiniband/hw/mlx5/mr.c
840
dir = debugfs_create_dir(ent->name, dev->cache.fs_root);
drivers/infiniband/hw/mlx5/mr.c
850
struct mlx5_mkey_cache *cache = &dev->cache;
drivers/infiniband/hw/mlx5/mr.c
855
cache->fs_root = debugfs_create_dir("mr_cache", dbg_root);
drivers/infiniband/hw/mlx5/mr.c
912
ret = mlx5_cache_ent_insert(&dev->cache, ent);
drivers/infiniband/hw/mlx5/mr.c
942
struct rb_root *root = &dev->cache.rb_root;
drivers/infiniband/hw/mlx5/mr.c
946
mutex_lock(&dev->cache.rb_lock);
drivers/infiniband/hw/mlx5/mr.c
956
mutex_unlock(&dev->cache.rb_lock);
drivers/infiniband/hw/mlx5/mr.c
961
struct mlx5_mkey_cache *cache = &dev->cache;
drivers/infiniband/hw/mlx5/mr.c
962
struct rb_root *root = &dev->cache.rb_root;
drivers/infiniband/hw/mlx5/mr.c
973
mutex_init(&dev->cache.rb_lock);
drivers/infiniband/hw/mlx5/mr.c
974
dev->cache.rb_root = RB_ROOT;
drivers/infiniband/hw/mlx5/mr.c
975
cache->wq = alloc_ordered_workqueue("mkey_cache", WQ_MEM_RECLAIM);
drivers/infiniband/hw/mlx5/mr.c
976
if (!cache->wq) {
drivers/infiniband/hw/mlx5/mr.c
984
mutex_lock(&cache->rb_lock);
drivers/infiniband/hw/mlx5/mr.c
998
mutex_unlock(&cache->rb_lock);
drivers/iommu/iommufd/iommufd_test.h
165
__u32 cache;
drivers/iommu/iommufd/main.c
422
struct iommu_hwpt_invalidate cache;
drivers/iommu/iommufd/selftest.c
1036
mdev->cache[i] = IOMMU_TEST_DEV_CACHE_DEFAULT;
drivers/iommu/iommufd/selftest.c
1320
unsigned int cache_id, u32 cache)
drivers/iommu/iommufd/selftest.c
1331
if (cache_id > MOCK_DEV_CACHE_ID_MAX || mdev->cache[cache_id] != cache)
drivers/iommu/iommufd/selftest.c
183
u32 cache[MOCK_DEV_CACHE_NUM];
drivers/iommu/iommufd/selftest.c
2123
cmd->check_dev_cache.cache);
drivers/iommu/iommufd/selftest.c
718
mdev->cache[i] = 0;
drivers/iommu/iommufd/selftest.c
720
mdev->cache[cur->cache_id] = 0;
drivers/irqchip/irq-gic-v3-its.c
2382
u64 cache, u64 shr, u32 order, bool indirect)
drivers/irqchip/irq-gic-v3-its.c
2428
cache |
drivers/irqchip/irq-gic-v3-its.c
2462
cache = GITS_BASER_nC;
drivers/irqchip/irq-gic-v3-its.c
2667
u64 cache = GITS_BASER_RaWaWb;
drivers/irqchip/irq-gic-v3-its.c
2672
cache = GITS_BASER_nCnB;
drivers/irqchip/irq-gic-v3-its.c
2675
cache = GITS_BASER_nC;
drivers/irqchip/irq-gic-v3-its.c
2719
err = its_setup_baser(its, baser, cache, shr, order, indirect);
drivers/irqchip/irq-gic-v3-its.c
2726
cache = baser->val & GITS_BASER_CACHEABILITY_MASK;
drivers/irqchip/irq-renesas-rzg2l.c
119
struct rzg2l_irqc_reg_cache cache;
drivers/irqchip/irq-renesas-rzg2l.c
542
struct rzg2l_irqc_reg_cache *cache = &rzg2l_irqc_data->cache;
drivers/irqchip/irq-renesas-rzg2l.c
545
cache->nitsr = readl_relaxed(base + NITSR);
drivers/irqchip/irq-renesas-rzg2l.c
546
cache->iitsr = readl_relaxed(base + IITSR);
drivers/irqchip/irq-renesas-rzg2l.c
548
cache->inttsel = readl_relaxed(base + INTTSEL);
drivers/irqchip/irq-renesas-rzg2l.c
550
cache->titsr[i] = readl_relaxed(base + TITSR(i));
drivers/irqchip/irq-renesas-rzg2l.c
557
struct rzg2l_irqc_reg_cache *cache = &rzg2l_irqc_data->cache;
drivers/irqchip/irq-renesas-rzg2l.c
566
writel_relaxed(cache->titsr[i], base + TITSR(i));
drivers/irqchip/irq-renesas-rzg2l.c
568
writel_relaxed(cache->inttsel, base + INTTSEL);
drivers/irqchip/irq-renesas-rzg2l.c
569
writel_relaxed(cache->iitsr, base + IITSR);
drivers/irqchip/irq-renesas-rzg2l.c
570
writel_relaxed(cache->nitsr, base + NITSR);
drivers/irqchip/irq-renesas-rzv2h.c
167
struct rzv2h_irqc_reg_cache cache;
drivers/irqchip/irq-renesas-rzv2h.c
511
struct rzv2h_irqc_reg_cache *cache = &rzv2h_icu_data->cache;
drivers/irqchip/irq-renesas-rzv2h.c
514
cache->nitsr = readl_relaxed(base + ICU_NITSR);
drivers/irqchip/irq-renesas-rzv2h.c
515
cache->iitsr = readl_relaxed(base + ICU_IITSR);
drivers/irqchip/irq-renesas-rzv2h.c
517
cache->titsr[i] = readl_relaxed(base + rzv2h_icu_data->info->t_offs + ICU_TITSR(i));
drivers/irqchip/irq-renesas-rzv2h.c
524
struct rzv2h_irqc_reg_cache *cache = &rzv2h_icu_data->cache;
drivers/irqchip/irq-renesas-rzv2h.c
533
writel_relaxed(cache->titsr[i], base + rzv2h_icu_data->info->t_offs + ICU_TITSR(i));
drivers/irqchip/irq-renesas-rzv2h.c
534
writel_relaxed(cache->iitsr, base + ICU_IITSR);
drivers/irqchip/irq-renesas-rzv2h.c
535
writel_relaxed(cache->nitsr, base + ICU_NITSR);
drivers/macintosh/windfarm_smu_sat.c
119
err = i2c_smbus_read_i2c_block_data(sat->i2c, 0x3f, 16, sat->cache);
drivers/macintosh/windfarm_smu_sat.c
129
16, 1, sat->cache, 16, false);
drivers/macintosh/windfarm_smu_sat.c
153
val = ((sat->cache[i] << 8) + sat->cache[i+1]) << sens->shift;
drivers/macintosh/windfarm_smu_sat.c
157
val = (val * ((sat->cache[i] << 8) + sat->cache[i+1])) >> 4;
drivers/macintosh/windfarm_smu_sat.c
32
u8 cache[16];
drivers/md/bcache/alloc.c
103
ca = c->cache;
drivers/md/bcache/alloc.c
126
bool bch_can_invalidate_bucket(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
133
void __bch_invalidate_one_bucket(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
147
static void bch_invalidate_one_bucket(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
173
static void invalidate_buckets_lru(struct cache *ca)
drivers/md/bcache/alloc.c
210
static void invalidate_buckets_fifo(struct cache *ca)
drivers/md/bcache/alloc.c
233
static void invalidate_buckets_random(struct cache *ca)
drivers/md/bcache/alloc.c
259
static void invalidate_buckets(struct cache *ca)
drivers/md/bcache/alloc.c
296
static int bch_allocator_push(struct cache *ca, long bucket)
drivers/md/bcache/alloc.c
313
struct cache *ca = arg;
drivers/md/bcache/alloc.c
376
long bch_bucket_alloc(struct cache *ca, unsigned int reserve, bool wait)
drivers/md/bcache/alloc.c
457
void __bch_bucket_free(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
473
__bch_bucket_free(c->cache, PTR_BUCKET(c, k, i));
drivers/md/bcache/alloc.c
479
struct cache *ca;
drivers/md/bcache/alloc.c
490
ca = c->cache;
drivers/md/bcache/alloc.c
569
ret->sectors_free = c->cache->sb.bucket_size;
drivers/md/bcache/alloc.c
660
&c->cache->sectors_written);
drivers/md/bcache/alloc.c
663
if (b->sectors_free < c->cache->sb.block_size)
drivers/md/bcache/alloc.c
711
int bch_cache_allocator_start(struct cache *ca)
drivers/md/bcache/alloc.c
73
uint8_t bch_inc_gen(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
85
struct cache *ca;
drivers/md/bcache/alloc.c
87
unsigned long next = c->nbuckets * c->cache->sb.bucket_size / 1024;
drivers/md/bcache/bcache.h
1009
int bch_prio_write(struct cache *ca, bool wait);
drivers/md/bcache/bcache.h
1050
int bch_cache_allocator_start(struct cache *ca);
drivers/md/bcache/bcache.h
529
struct cache *cache;
drivers/md/bcache/bcache.h
817
return s & (c->cache->sb.bucket_size - 1);
drivers/md/bcache/bcache.h
831
return c->cache->buckets + PTR_BUCKET_NR(c, k, ptr);
drivers/md/bcache/bcache.h
850
return (PTR_DEV(k, i) < MAX_CACHES_PER_SET) && c->cache;
drivers/md/bcache/bcache.h
939
struct cache *ca = c->cache;
drivers/md/bcache/bcache.h
974
void bch_count_io_errors(struct cache *ca, blk_status_t error,
drivers/md/bcache/bcache.h
987
uint8_t bch_inc_gen(struct cache *ca, struct bucket *b);
drivers/md/bcache/bcache.h
990
bool bch_can_invalidate_bucket(struct cache *ca, struct bucket *b);
drivers/md/bcache/bcache.h
991
void __bch_invalidate_one_bucket(struct cache *ca, struct bucket *b);
drivers/md/bcache/bcache.h
993
void __bch_bucket_free(struct cache *ca, struct bucket *b);
drivers/md/bcache/bcache.h
996
long bch_bucket_alloc(struct cache *ca, unsigned int reserve, bool wait);
drivers/md/bcache/btree.c
109
return ((void *) btree_bset_first(b)) + b->written * block_bytes(b->c->cache);
drivers/md/bcache/btree.c
1147
bch_bset_init_next(&b->keys, b->keys.set->data, bset_magic(&b->c->cache->sb));
drivers/md/bcache/btree.c
1197
bch_inc_gen(b->c->cache,
drivers/md/bcache/btree.c
1206
struct cache *ca = c->cache;
drivers/md/bcache/btree.c
122
bset_magic(&b->c->cache->sb));
drivers/md/bcache/btree.c
1383
block_bytes(b->c->cache)) > blocks * (nodes - 1))
drivers/md/bcache/btree.c
1417
block_bytes(b->c->cache)) > blocks)
drivers/md/bcache/btree.c
1433
block_bytes(b->c->cache)) >
drivers/md/bcache/btree.c
1442
BUG_ON(__set_blocks(n1, n1->keys + keys, block_bytes(b->c->cache)) >
drivers/md/bcache/btree.c
160
iter->size = b->c->cache->sb.bucket_size / b->c->cache->sb.block_size;
drivers/md/bcache/btree.c
1733
struct cache *ca;
drivers/md/bcache/btree.c
1743
ca = c->cache;
drivers/md/bcache/btree.c
1761
struct cache *ca;
drivers/md/bcache/btree.c
178
if (b->written + set_blocks(i, block_bytes(b->c->cache)) >
drivers/md/bcache/btree.c
1798
ca = c->cache;
drivers/md/bcache/btree.c
183
if (i->magic != bset_magic(&b->c->cache->sb))
drivers/md/bcache/btree.c
1872
struct cache *ca = c->cache;
drivers/md/bcache/btree.c
204
b->written += set_blocks(i, block_bytes(b->c->cache));
drivers/md/bcache/btree.c
210
i = ((void *) i) + block_bytes(b->c->cache))
drivers/md/bcache/btree.c
2127
struct cache *ca = c->cache;
drivers/md/bcache/btree.c
224
bset_magic(&b->c->cache->sb));
drivers/md/bcache/btree.c
2262
block_bytes(n1->c->cache)) > (btree_blocks(b) * 4) / 5;
drivers/md/bcache/btree.c
352
b->bio->bi_iter.bi_size = roundup(set_bytes(i), block_bytes(b->c->cache));
drivers/md/bcache/btree.c
428
atomic_long_add(set_blocks(i, block_bytes(b->c->cache)) * b->c->cache->sb.block_size,
drivers/md/bcache/btree.c
429
&b->c->cache->btree_sectors_written);
drivers/md/bcache/btree.c
431
b->written += set_blocks(i, block_bytes(b->c->cache));
drivers/md/bcache/btree.c
762
free_pages((unsigned long) c->verify_ondisk, ilog2(meta_bucket_pages(&c->cache->sb)));
drivers/md/bcache/btree.c
810
ilog2(meta_bucket_pages(&c->cache->sb)));
drivers/md/bcache/btree.h
197
atomic_set(&c->sectors_to_gc, c->cache->sb.bucket_size * c->nbuckets / 16);
drivers/md/bcache/debug.c
28
i = (void *) i + set_blocks(i, block_bytes(b->c->cache)) * \
drivers/md/bcache/debug.c
29
block_bytes(b->c->cache))
drivers/md/bcache/debug.c
53
bio_set_dev(bio, b->c->cache->bdev);
drivers/md/bcache/debug.c
85
block_bytes(b->c->cache);
drivers/md/bcache/debug.c
92
((void *) i - (void *) ondisk) / block_bytes(b->c->cache));
drivers/md/bcache/extents.c
139
if (n >= b->c->cache->sb.first_bucket && n < b->c->cache->sb.nbuckets)
drivers/md/bcache/extents.c
53
struct cache *ca = c->cache;
drivers/md/bcache/extents.c
57
if (KEY_SIZE(k) + r > c->cache->sb.bucket_size ||
drivers/md/bcache/extents.c
74
struct cache *ca = c->cache;
drivers/md/bcache/extents.c
78
if (KEY_SIZE(k) + r > c->cache->sb.bucket_size)
drivers/md/bcache/features.c
33
if (BCH_HAS_ ## type ## _FEATURE(&c->cache->sb, f->mask)) { \
drivers/md/bcache/features.c
47
if (BCH_HAS_ ## type ## _FEATURE(&c->cache->sb, f->mask)) \
drivers/md/bcache/io.c
140
struct cache *ca = c->cache;
drivers/md/bcache/io.c
29
bio_init_inline(bio, NULL, meta_bucket_pages(&c->cache->sb), 0);
drivers/md/bcache/io.c
39
bio_set_dev(bio, c->cache->bdev);
drivers/md/bcache/io.c
81
void bch_count_io_errors(struct cache *ca,
drivers/md/bcache/journal.c
181
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
35
static int journal_read_bucket(struct cache *ca, struct list_head *list,
drivers/md/bcache/journal.c
558
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
559
struct journal_device *ja = &c->cache->journal;
drivers/md/bcache/journal.c
577
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
675
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
712
ca = c->cache;
drivers/md/bcache/journal.c
780
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
858
if (!CACHE_SYNC(&c->cache->sb))
drivers/md/bcache/movinggc.c
190
static unsigned int bucket_heap_top(struct cache *ca)
drivers/md/bcache/movinggc.c
199
struct cache *ca = c->cache;
drivers/md/bcache/request.c
102
if (newsize * sizeof(uint64_t) > block_bytes(c->cache) - sizeof(struct jset))
drivers/md/bcache/request.c
411
if (bio->bi_iter.bi_sector & (c->cache->sb.block_size - 1) ||
drivers/md/bcache/request.c
412
bio_sectors(bio) & (c->cache->sb.block_size - 1)) {
drivers/md/bcache/super.c
1218
if (dc->sb.block_size < c->cache->sb.block_size) {
drivers/md/bcache/super.c
1328
if (bch_has_feature_obso_large_bucket(&(c->cache->sb))) {
drivers/md/bcache/super.c
1547
if (bcache_device_init(d, block_bytes(c->cache), u->sectors,
drivers/md/bcache/super.c
1564
if (bch_has_feature_obso_large_bucket(&c->cache->sb)) {
drivers/md/bcache/super.c
1684
struct cache *ca;
drivers/md/bcache/super.c
1694
free_pages((unsigned long) c->uuids, ilog2(meta_bucket_pages(&c->cache->sb)));
drivers/md/bcache/super.c
1696
ca = c->cache;
drivers/md/bcache/super.c
1699
c->cache = NULL;
drivers/md/bcache/super.c
1725
struct cache *ca = c->cache;
drivers/md/bcache/super.c
1873
struct cache *ca = container_of(sb, struct cache, sb);
drivers/md/bcache/super.c
1897
c->cache = ca;
drivers/md/bcache/super.c
1898
c->cache->set = c;
drivers/md/bcache/super.c
1990
struct cache *ca = c->cache;
drivers/md/bcache/super.c
2000
if (CACHE_SYNC(&c->cache->sb)) {
drivers/md/bcache/super.c
2123
SET_CACHE_SYNC(&c->cache->sb, true);
drivers/md/bcache/super.c
2134
c->cache->sb.last_mount = (u32)ktime_get_real_seconds();
drivers/md/bcache/super.c
2137
if (bch_has_feature_obso_large_bucket(&c->cache->sb))
drivers/md/bcache/super.c
2162
static const char *register_cache_set(struct cache *ca)
drivers/md/bcache/super.c
2170
if (c->cache)
drivers/md/bcache/super.c
2199
ca->set->cache = ca;
drivers/md/bcache/super.c
2216
struct cache *ca = container_of(kobj, struct cache, kobj);
drivers/md/bcache/super.c
2220
BUG_ON(ca->set->cache != ca);
drivers/md/bcache/super.c
2221
ca->set->cache = NULL;
drivers/md/bcache/super.c
2244
static int cache_alloc(struct cache *ca)
drivers/md/bcache/super.c
2391
struct cache *ca)
drivers/md/bcache/super.c
2475
struct cache *ca = c->cache;
drivers/md/bcache/super.c
2554
return kzalloc_obj(struct cache);
drivers/md/bcache/super.c
357
struct cache *ca = bio->bi_private;
drivers/md/bcache/super.c
375
struct cache *ca = c->cache;
drivers/md/bcache/super.c
502
struct cache *ca = c->cache;
drivers/md/bcache/super.c
583
struct cache *ca = bio->bi_private;
drivers/md/bcache/super.c
590
static void prio_io(struct cache *ca, uint64_t bucket, blk_opf_t opf)
drivers/md/bcache/super.c
610
int bch_prio_write(struct cache *ca, bool wait)
drivers/md/bcache/super.c
691
static int prio_read(struct cache *ca, uint64_t bucket)
drivers/md/bcache/super.c
793
struct cache *ca = d->c->cache;
drivers/md/bcache/super.c
805
struct cache *ca = c->cache;
drivers/md/bcache/sysfs.c
1033
struct cache *ca = container_of(kobj, struct cache, kobj);
drivers/md/bcache/sysfs.c
1136
struct cache *ca = container_of(kobj, struct cache, kobj);
drivers/md/bcache/sysfs.c
728
sysfs_print(synchronous, CACHE_SYNC(&c->cache->sb));
drivers/md/bcache/sysfs.c
730
sysfs_hprint(bucket_size, bucket_bytes(c->cache));
drivers/md/bcache/sysfs.c
731
sysfs_hprint(block_size, block_bytes(c->cache));
drivers/md/bcache/sysfs.c
829
if (sync != CACHE_SYNC(&c->cache->sb)) {
drivers/md/bcache/sysfs.c
830
SET_CACHE_SYNC(&c->cache->sb, sync);
drivers/md/bcache/writeback.c
108
div_s64((dirty_buckets * c->cache->sb.bucket_size), dirty);
drivers/md/bcache/writeback.c
38
uint64_t cache_sectors = c->nbuckets * c->cache->sb.bucket_size -
drivers/md/bcache/writeback.c
458
bch_count_io_errors(io->dc->disk.c->cache,
drivers/md/bcache/writeback.c
552
bio_set_dev(&io->bio, dc->disk.c->cache->bdev);
drivers/md/dm-bufio.c
1012
struct dm_buffer_cache cache; /* must be last member */
drivers/md/dm-bufio.c
1543
b = cache_evict(&c->cache, LIST_CLEAN, is_clean, c);
drivers/md/dm-bufio.c
1553
b = cache_evict(&c->cache, LIST_DIRTY, is_dirty, NULL);
drivers/md/dm-bufio.c
1704
cache_mark_many(&c->cache, LIST_DIRTY, LIST_CLEAN, cleaned, NULL);
drivers/md/dm-bufio.c
1729
cache_iterate(&c->cache, LIST_DIRTY, write_one, &wc);
drivers/md/dm-bufio.c
1740
if (cache_count(&c->cache, LIST_DIRTY) >
drivers/md/dm-bufio.c
1741
cache_count(&c->cache, LIST_CLEAN) * DM_BUFIO_WRITEBACK_RATIO)
drivers/md/dm-bufio.c
1757
cache_read_lock(&c->cache, tree);
drivers/md/dm-bufio.c
1760
cache_read_unlock(&c->cache, tree);
drivers/md/dm-bufio.c
1795
b = cache_get(&c->cache, tree, block);
drivers/md/dm-bufio.c
1823
cache_insert(&c->cache, tree, b);
drivers/md/dm-bufio.c
1887
tree = cache_get_tree(&c->cache, block);
drivers/md/dm-bufio.c
1888
b = cache_get(&c->cache, tree, block);
drivers/md/dm-bufio.c
2004
tree = cache_get_tree(&c->cache, block);
drivers/md/dm-bufio.c
2005
b = cache_get(&c->cache, tree, block);
drivers/md/dm-bufio.c
2058
struct buffer_tree *tree = cache_get_tree(&c->cache, b->block);
drivers/md/dm-bufio.c
2072
if (cache_remove(&c->cache, tree, b)) {
drivers/md/dm-bufio.c
2100
cache_mark(&c->cache, cache_get_tree(&c->cache, b->block), b,
drivers/md/dm-bufio.c
2162
nr_buffers = cache_count(&c->cache, LIST_DIRTY);
drivers/md/dm-bufio.c
2163
lru_iter_begin(&c->cache.lru[LIST_DIRTY], &it);
drivers/md/dm-bufio.c
2180
tree = cache_get_tree(&c->cache, b->block);
drivers/md/dm-bufio.c
2183
cache_mark(&c->cache, tree, b, LIST_CLEAN);
drivers/md/dm-bufio.c
2253
struct buffer_tree *tree = cache_get_tree(&c->cache, block);
drivers/md/dm-bufio.c
2256
b = cache_get(&c->cache, tree, block);
drivers/md/dm-bufio.c
2259
if (cache_remove(&c->cache, tree, b))
drivers/md/dm-bufio.c
2291
cache_remove_range(&c->cache, block, block + n_blocks, idle, __free_buffer_wake);
drivers/md/dm-bufio.c
2391
cache_iterate(&c->cache, i, warn_leak, &warned);
drivers/md/dm-bufio.c
2400
WARN_ON(cache_count(&c->cache, i));
drivers/md/dm-bufio.c
2423
unsigned long count = cache_total(&c->cache);
drivers/md/dm-bufio.c
2432
b = cache_evict(&c->cache, l,
drivers/md/dm-bufio.c
2475
unsigned long count = cache_total(&c->cache);
drivers/md/dm-bufio.c
2519
cache_init(&c->cache, num_locks, (flags & DM_BUFIO_CLIENT_NO_SLEEP) != 0);
drivers/md/dm-bufio.c
2664
if (cache_count(&c->cache, i))
drivers/md/dm-bufio.c
2665
DMERR("leaked buffer count %d: %lu", i, cache_count(&c->cache, i));
drivers/md/dm-bufio.c
2668
WARN_ON(cache_count(&c->cache, i));
drivers/md/dm-bufio.c
2670
cache_destroy(&c->cache);
drivers/md/dm-bufio.c
2760
b = cache_evict(&c->cache, LIST_CLEAN, select_for_evict, NULL);
drivers/md/dm-bufio.c
464
lh->cache = cache;
drivers/md/dm-bufio.c
466
lh->no_previous = cache->num_locks;
drivers/md/dm-bufio.c
473
if (static_branch_unlikely(&no_sleep_enabled) && lh->cache->no_sleep)
drivers/md/dm-bufio.c
474
write_lock_bh(&lh->cache->trees[index].u.spinlock);
drivers/md/dm-bufio.c
476
down_write(&lh->cache->trees[index].u.lock);
drivers/md/dm-bufio.c
478
if (static_branch_unlikely(&no_sleep_enabled) && lh->cache->no_sleep)
drivers/md/dm-bufio.c
479
read_lock_bh(&lh->cache->trees[index].u.spinlock);
drivers/md/dm-bufio.c
481
down_read(&lh->cache->trees[index].u.lock);
drivers/md/dm-bufio.c
488
if (static_branch_unlikely(&no_sleep_enabled) && lh->cache->no_sleep)
drivers/md/dm-bufio.c
489
write_unlock_bh(&lh->cache->trees[index].u.spinlock);
drivers/md/dm-bufio.c
491
up_write(&lh->cache->trees[index].u.lock);
drivers/md/dm-bufio.c
493
if (static_branch_unlikely(&no_sleep_enabled) && lh->cache->no_sleep)
drivers/md/dm-bufio.c
494
read_unlock_bh(&lh->cache->trees[index].u.spinlock);
drivers/md/dm-bufio.c
496
up_read(&lh->cache->trees[index].u.lock);
drivers/md/dm-cache-target.c
1001
atomic_inc(&cache->nr_io_migrations);
drivers/md/dm-cache-target.c
1004
static void dec_io_migrations(struct cache *cache)
drivers/md/dm-cache-target.c
1006
atomic_dec(&cache->nr_io_migrations);
drivers/md/dm-cache-target.c
1014
static void calc_discard_block_range(struct cache *cache, struct bio *bio,
drivers/md/dm-cache-target.c
1020
*b = to_dblock(dm_sector_div_up(sb, cache->discard_block_size));
drivers/md/dm-cache-target.c
1022
if (se - sb < cache->discard_block_size)
drivers/md/dm-cache-target.c
1025
*e = to_dblock(block_div(se, cache->discard_block_size));
drivers/md/dm-cache-target.c
1030
static void prevent_background_work(struct cache *cache)
drivers/md/dm-cache-target.c
1033
down_write(&cache->background_work_lock);
drivers/md/dm-cache-target.c
1037
static void allow_background_work(struct cache *cache)
drivers/md/dm-cache-target.c
1040
up_write(&cache->background_work_lock);
drivers/md/dm-cache-target.c
1044
static bool background_work_begin(struct cache *cache)
drivers/md/dm-cache-target.c
1049
r = down_read_trylock(&cache->background_work_lock);
drivers/md/dm-cache-target.c
1055
static void background_work_end(struct cache *cache)
drivers/md/dm-cache-target.c
1058
up_read(&cache->background_work_lock);
drivers/md/dm-cache-target.c
1064
static bool bio_writes_complete_block(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
1067
(bio->bi_iter.bi_size == (cache->sectors_per_block << SECTOR_SHIFT));
drivers/md/dm-cache-target.c
1070
static bool optimisable_bio(struct cache *cache, struct bio *bio, dm_oblock_t block)
drivers/md/dm-cache-target.c
1072
return writeback_mode(cache) &&
drivers/md/dm-cache-target.c
1073
(is_discarded_oblock(cache, block) || bio_writes_complete_block(cache, bio));
drivers/md/dm-cache-target.c
1080
dm_cell_quiesce_v2(mg->cache->prison, mg->cell, &mg->k.ws);
drivers/md/dm-cache-target.c
1097
queue_continuation(mg->cache->wq, &mg->k);
drivers/md/dm-cache-target.c
1103
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1105
o_region.bdev = cache->origin_dev->bdev;
drivers/md/dm-cache-target.c
1106
o_region.sector = from_oblock(mg->op->oblock) * cache->sectors_per_block;
drivers/md/dm-cache-target.c
1107
o_region.count = cache->sectors_per_block;
drivers/md/dm-cache-target.c
1109
c_region.bdev = cache->cache_dev->bdev;
drivers/md/dm-cache-target.c
1110
c_region.sector = from_cblock(mg->op->cblock) * cache->sectors_per_block;
drivers/md/dm-cache-target.c
1111
c_region.count = cache->sectors_per_block;
drivers/md/dm-cache-target.c
1114
dm_kcopyd_copy(cache->copier, &o_region, 1, &c_region, 0, copy_complete, &mg->k);
drivers/md/dm-cache-target.c
1116
dm_kcopyd_copy(cache->copier, &c_region, 1, &o_region, 0, copy_complete, &mg->k);
drivers/md/dm-cache-target.c
1119
static void bio_drop_shared_lock(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
1123
if (pb->cell && dm_cell_put_v2(cache->prison, pb->cell))
drivers/md/dm-cache-target.c
1124
free_prison_cell(cache, pb->cell);
drivers/md/dm-cache-target.c
1131
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1139
queue_continuation(cache->wq, &mg->k);
drivers/md/dm-cache-target.c
1155
remap_to_cache(mg->cache, bio, mg->op->cblock);
drivers/md/dm-cache-target.c
1157
remap_to_origin(mg->cache, bio);
drivers/md/dm-cache-target.c
1160
accounted_request(mg->cache, bio);
drivers/md/dm-cache-target.c
1177
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1182
update_stats(&cache->stats, op->op);
drivers/md/dm-cache-target.c
1186
clear_discard(cache, oblock_to_dblock(cache, op->oblock));
drivers/md/dm-cache-target.c
1187
policy_complete_background_work(cache->policy, op, success);
drivers/md/dm-cache-target.c
1191
force_set_dirty(cache, cblock);
drivers/md/dm-cache-target.c
1199
force_clear_dirty(cache, cblock);
drivers/md/dm-cache-target.c
1200
dec_io_migrations(cache);
drivers/md/dm-cache-target.c
1209
force_clear_dirty(cache, cblock);
drivers/md/dm-cache-target.c
1210
policy_complete_background_work(cache->policy, op, success);
drivers/md/dm-cache-target.c
1211
dec_io_migrations(cache);
drivers/md/dm-cache-target.c
1216
force_clear_dirty(cache, cblock);
drivers/md/dm-cache-target.c
1217
policy_complete_background_work(cache->policy, op, success);
drivers/md/dm-cache-target.c
1218
dec_io_migrations(cache);
drivers/md/dm-cache-target.c
1224
if (dm_cell_unlock_v2(cache->prison, mg->cell, &bios))
drivers/md/dm-cache-target.c
1225
free_prison_cell(cache, mg->cell);
drivers/md/dm-cache-target.c
1229
defer_bios(cache, &bios);
drivers/md/dm-cache-target.c
1230
wake_migration_worker(cache);
drivers/md/dm-cache-target.c
1232
background_work_end(cache);
drivers/md/dm-cache-target.c
1246
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1251
r = dm_cache_insert_mapping(cache->cmd, op->cblock, op->oblock);
drivers/md/dm-cache-target.c
1254
cache_device_name(cache));
drivers/md/dm-cache-target.c
1255
metadata_operation_failed(cache, "dm_cache_insert_mapping", r);
drivers/md/dm-cache-target.c
1264
r = dm_cache_remove_mapping(cache->cmd, op->cblock);
drivers/md/dm-cache-target.c
1267
cache_device_name(cache));
drivers/md/dm-cache-target.c
1268
metadata_operation_failed(cache, "dm_cache_remove_mapping", r);
drivers/md/dm-cache-target.c
1294
continue_after_commit(&cache->committer, &mg->k);
drivers/md/dm-cache-target.c
1295
schedule_commit(&cache->committer);
drivers/md/dm-cache-target.c
1332
r = dm_cell_lock_promote_v2(mg->cache->prison, mg->cell,
drivers/md/dm-cache-target.c
1348
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1352
if ((!is_policy_promote && !is_dirty(cache, op->cblock)) ||
drivers/md/dm-cache-target.c
1353
is_discarded_oblock(cache, op->oblock)) {
drivers/md/dm-cache-target.c
1372
if (!optimisable_bio(mg->cache, mg->overwrite_bio, mg->op->oblock)) {
drivers/md/dm-cache-target.c
1376
bool rb = bio_detain_shared(mg->cache, mg->op->oblock, mg->overwrite_bio);
drivers/md/dm-cache-target.c
1380
inc_io_migrations(mg->cache);
drivers/md/dm-cache-target.c
1402
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1405
prealloc = alloc_prison_cell(cache);
drivers/md/dm-cache-target.c
1413
r = dm_cell_lock_v2(cache->prison, &key,
drivers/md/dm-cache-target.c
1417
free_prison_cell(cache, prealloc);
drivers/md/dm-cache-target.c
1423
free_prison_cell(cache, prealloc);
drivers/md/dm-cache-target.c
1433
static int mg_start(struct cache *cache, struct policy_work *op, struct bio *bio)
drivers/md/dm-cache-target.c
1437
if (!background_work_begin(cache)) {
drivers/md/dm-cache-target.c
1438
policy_complete_background_work(cache->policy, op, false);
drivers/md/dm-cache-target.c
1442
mg = alloc_migration(cache);
drivers/md/dm-cache-target.c
1448
inc_io_migrations(cache);
drivers/md/dm-cache-target.c
1462
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1465
if (dm_cell_unlock_v2(cache->prison, mg->cell, &bios))
drivers/md/dm-cache-target.c
1466
free_prison_cell(cache, mg->cell);
drivers/md/dm-cache-target.c
1472
defer_bios(cache, &bios);
drivers/md/dm-cache-target.c
1474
background_work_end(cache);
drivers/md/dm-cache-target.c
1484
static int invalidate_cblock(struct cache *cache, dm_cblock_t cblock)
drivers/md/dm-cache-target.c
1488
r = policy_invalidate_mapping(cache->policy, cblock);
drivers/md/dm-cache-target.c
1490
r = dm_cache_remove_mapping(cache->cmd, cblock);
drivers/md/dm-cache-target.c
1493
cache_device_name(cache));
drivers/md/dm-cache-target.c
1494
metadata_operation_failed(cache, "dm_cache_remove_mapping", r);
drivers/md/dm-cache-target.c
1504
DMERR("%s: policy_invalidate_mapping failed", cache_device_name(cache));
drivers/md/dm-cache-target.c
1513
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1515
r = invalidate_cblock(cache, mg->invalidate_cblock);
drivers/md/dm-cache-target.c
1522
continue_after_commit(&cache->committer, &mg->k);
drivers/md/dm-cache-target.c
1523
remap_to_origin_clear_discard(cache, mg->overwrite_bio, mg->invalidate_oblock);
drivers/md/dm-cache-target.c
1525
schedule_commit(&cache->committer);
drivers/md/dm-cache-target.c
1532
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
1535
prealloc = alloc_prison_cell(cache);
drivers/md/dm-cache-target.c
1538
r = dm_cell_lock_v2(cache->prison, &key,
drivers/md/dm-cache-target.c
1541
free_prison_cell(cache, prealloc);
drivers/md/dm-cache-target.c
1547
free_prison_cell(cache, prealloc);
drivers/md/dm-cache-target.c
1558
queue_work(cache->wq, &mg->k.ws);
drivers/md/dm-cache-target.c
1564
static int invalidate_start(struct cache *cache, dm_cblock_t cblock,
drivers/md/dm-cache-target.c
1569
if (!background_work_begin(cache))
drivers/md/dm-cache-target.c
1572
mg = alloc_migration(cache);
drivers/md/dm-cache-target.c
1592
static enum busy spare_migration_bandwidth(struct cache *cache)
drivers/md/dm-cache-target.c
1594
bool idle = dm_iot_idle_for(&cache->tracker, HZ);
drivers/md/dm-cache-target.c
1595
sector_t current_volume = (atomic_read(&cache->nr_io_migrations) + 1) *
drivers/md/dm-cache-target.c
1596
cache->sectors_per_block;
drivers/md/dm-cache-target.c
1598
if (idle && current_volume <= cache->migration_threshold)
drivers/md/dm-cache-target.c
1604
static void inc_hit_counter(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
1607
&cache->stats.read_hit : &cache->stats.write_hit);
drivers/md/dm-cache-target.c
1610
static void inc_miss_counter(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
1613
&cache->stats.read_miss : &cache->stats.write_miss);
drivers/md/dm-cache-target.c
1618
static int map_bio(struct cache *cache, struct bio *bio, dm_oblock_t block,
drivers/md/dm-cache-target.c
1627
rb = bio_detain_shared(cache, block, bio);
drivers/md/dm-cache-target.c
1641
if (optimisable_bio(cache, bio, block)) {
drivers/md/dm-cache-target.c
1644
r = policy_lookup_with_work(cache->policy, block, &cblock, data_dir, true, &op);
drivers/md/dm-cache-target.c
1647
cache_device_name(cache), r);
drivers/md/dm-cache-target.c
1653
bio_drop_shared_lock(cache, bio);
drivers/md/dm-cache-target.c
1655
mg_start(cache, op, bio);
drivers/md/dm-cache-target.c
1659
r = policy_lookup(cache->policy, block, &cblock, data_dir, false, &background_queued);
drivers/md/dm-cache-target.c
1662
cache_device_name(cache), r);
drivers/md/dm-cache-target.c
1668
wake_migration_worker(cache);
drivers/md/dm-cache-target.c
1677
inc_miss_counter(cache, bio);
drivers/md/dm-cache-target.c
1679
accounted_begin(cache, bio);
drivers/md/dm-cache-target.c
1680
remap_to_origin_clear_discard(cache, bio, block);
drivers/md/dm-cache-target.c
1693
inc_hit_counter(cache, bio);
drivers/md/dm-cache-target.c
1699
if (passthrough_mode(cache)) {
drivers/md/dm-cache-target.c
1701
bio_drop_shared_lock(cache, bio);
drivers/md/dm-cache-target.c
1702
atomic_inc(&cache->stats.demotion);
drivers/md/dm-cache-target.c
1703
invalidate_start(cache, cblock, block, bio);
drivers/md/dm-cache-target.c
1705
remap_to_origin_clear_discard(cache, bio, block);
drivers/md/dm-cache-target.c
1707
if (bio_data_dir(bio) == WRITE && writethrough_mode(cache) &&
drivers/md/dm-cache-target.c
1708
!is_dirty(cache, cblock)) {
drivers/md/dm-cache-target.c
1709
remap_to_origin_and_cache(cache, bio, block, cblock);
drivers/md/dm-cache-target.c
1710
accounted_begin(cache, bio);
drivers/md/dm-cache-target.c
1712
remap_to_cache_dirty(cache, bio, block, cblock);
drivers/md/dm-cache-target.c
1724
accounted_complete(cache, bio);
drivers/md/dm-cache-target.c
1725
issue_after_commit(&cache->committer, bio);
drivers/md/dm-cache-target.c
1733
static bool process_bio(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
1737
if (map_bio(cache, bio, get_bio_block(cache, bio), &commit_needed) == DM_MAPIO_REMAPPED)
drivers/md/dm-cache-target.c
1746
static int commit(struct cache *cache, bool clean_shutdown)
drivers/md/dm-cache-target.c
1750
if (get_cache_mode(cache) >= CM_READ_ONLY)
drivers/md/dm-cache-target.c
1753
atomic_inc(&cache->stats.commit_count);
drivers/md/dm-cache-target.c
1754
r = dm_cache_commit(cache->cmd, clean_shutdown);
drivers/md/dm-cache-target.c
1756
metadata_operation_failed(cache, "dm_cache_commit", r);
drivers/md/dm-cache-target.c
1766
struct cache *cache = context;
drivers/md/dm-cache-target.c
1768
if (dm_cache_changed_this_transaction(cache->cmd))
drivers/md/dm-cache-target.c
1769
return errno_to_blk_status(commit(cache, false));
drivers/md/dm-cache-target.c
1776
static bool process_flush_bio(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
1781
remap_to_origin(cache, bio);
drivers/md/dm-cache-target.c
1783
remap_to_cache(cache, bio, 0);
drivers/md/dm-cache-target.c
1785
issue_after_commit(&cache->committer, bio);
drivers/md/dm-cache-target.c
1789
static bool process_discard_bio(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
1798
calc_discard_block_range(cache, bio, &b, &e);
drivers/md/dm-cache-target.c
1800
set_discard(cache, b);
drivers/md/dm-cache-target.c
1804
if (cache->features.discard_passdown) {
drivers/md/dm-cache-target.c
1805
remap_to_origin(cache, bio);
drivers/md/dm-cache-target.c
1815
struct cache *cache = container_of(ws, struct cache, deferred_bio_worker);
drivers/md/dm-cache-target.c
1823
spin_lock_irq(&cache->lock);
drivers/md/dm-cache-target.c
1824
bio_list_merge_init(&bios, &cache->deferred_bios);
drivers/md/dm-cache-target.c
1825
spin_unlock_irq(&cache->lock);
drivers/md/dm-cache-target.c
1829
commit_needed = process_flush_bio(cache, bio) || commit_needed;
drivers/md/dm-cache-target.c
1832
commit_needed = process_discard_bio(cache, bio) || commit_needed;
drivers/md/dm-cache-target.c
1835
commit_needed = process_bio(cache, bio) || commit_needed;
drivers/md/dm-cache-target.c
1840
schedule_commit(&cache->committer);
drivers/md/dm-cache-target.c
1848
static void requeue_deferred_bios(struct cache *cache)
drivers/md/dm-cache-target.c
1854
bio_list_merge_init(&bios, &cache->deferred_bios);
drivers/md/dm-cache-target.c
1869
struct cache *cache = container_of(to_delayed_work(ws), struct cache, waker);
drivers/md/dm-cache-target.c
1871
policy_tick(cache->policy, true);
drivers/md/dm-cache-target.c
1872
wake_migration_worker(cache);
drivers/md/dm-cache-target.c
1873
schedule_commit(&cache->committer);
drivers/md/dm-cache-target.c
1874
queue_delayed_work(cache->wq, &cache->waker, COMMIT_PERIOD);
drivers/md/dm-cache-target.c
1881
struct cache *cache = container_of(ws, struct cache, migration_worker);
drivers/md/dm-cache-target.c
1885
b = spare_migration_bandwidth(cache);
drivers/md/dm-cache-target.c
1887
r = policy_get_background_work(cache->policy, b == IDLE, &op);
drivers/md/dm-cache-target.c
1893
cache_device_name(cache));
drivers/md/dm-cache-target.c
1897
r = mg_start(cache, op, NULL);
drivers/md/dm-cache-target.c
1915
static void __destroy(struct cache *cache)
drivers/md/dm-cache-target.c
1917
mempool_exit(&cache->migration_pool);
drivers/md/dm-cache-target.c
1919
if (cache->prison)
drivers/md/dm-cache-target.c
1920
dm_bio_prison_destroy_v2(cache->prison);
drivers/md/dm-cache-target.c
1922
if (cache->wq)
drivers/md/dm-cache-target.c
1923
destroy_workqueue(cache->wq);
drivers/md/dm-cache-target.c
1925
if (cache->dirty_bitset)
drivers/md/dm-cache-target.c
1926
free_bitset(cache->dirty_bitset);
drivers/md/dm-cache-target.c
1928
if (cache->discard_bitset)
drivers/md/dm-cache-target.c
1929
free_bitset(cache->discard_bitset);
drivers/md/dm-cache-target.c
1931
if (cache->invalid_bitset)
drivers/md/dm-cache-target.c
1932
free_bitset(cache->invalid_bitset);
drivers/md/dm-cache-target.c
1934
if (cache->copier)
drivers/md/dm-cache-target.c
1935
dm_kcopyd_client_destroy(cache->copier);
drivers/md/dm-cache-target.c
1937
if (cache->cmd)
drivers/md/dm-cache-target.c
1938
dm_cache_metadata_close(cache->cmd);
drivers/md/dm-cache-target.c
1940
if (cache->metadata_dev)
drivers/md/dm-cache-target.c
1941
dm_put_device(cache->ti, cache->metadata_dev);
drivers/md/dm-cache-target.c
1943
if (cache->origin_dev)
drivers/md/dm-cache-target.c
1944
dm_put_device(cache->ti, cache->origin_dev);
drivers/md/dm-cache-target.c
1946
if (cache->cache_dev)
drivers/md/dm-cache-target.c
1947
dm_put_device(cache->ti, cache->cache_dev);
drivers/md/dm-cache-target.c
1949
if (cache->policy)
drivers/md/dm-cache-target.c
1950
dm_cache_policy_destroy(cache->policy);
drivers/md/dm-cache-target.c
1952
bioset_exit(&cache->bs);
drivers/md/dm-cache-target.c
1954
kfree(cache);
drivers/md/dm-cache-target.c
1957
static void destroy(struct cache *cache)
drivers/md/dm-cache-target.c
1961
cancel_delayed_work_sync(&cache->waker);
drivers/md/dm-cache-target.c
1963
for (i = 0; i < cache->nr_ctr_args ; i++)
drivers/md/dm-cache-target.c
1964
kfree(cache->ctr_args[i]);
drivers/md/dm-cache-target.c
1965
kfree(cache->ctr_args);
drivers/md/dm-cache-target.c
1967
__destroy(cache);
drivers/md/dm-cache-target.c
1972
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
1974
destroy(cache);
drivers/md/dm-cache-target.c
2273
static int process_config_option(struct cache *cache, const char *key, const char *value)
drivers/md/dm-cache-target.c
2281
cache->migration_threshold = tmp;
drivers/md/dm-cache-target.c
2288
static int set_config_value(struct cache *cache, const char *key, const char *value)
drivers/md/dm-cache-target.c
2290
int r = process_config_option(cache, key, value);
drivers/md/dm-cache-target.c
2293
r = policy_set_config_value(cache->policy, key, value);
drivers/md/dm-cache-target.c
2301
static int set_config_values(struct cache *cache, int argc, const char **argv)
drivers/md/dm-cache-target.c
2311
r = set_config_value(cache, argv[0], argv[1]);
drivers/md/dm-cache-target.c
2322
static int create_cache_policy(struct cache *cache, struct cache_args *ca,
drivers/md/dm-cache-target.c
2326
cache->cache_size,
drivers/md/dm-cache-target.c
2327
cache->origin_sectors,
drivers/md/dm-cache-target.c
2328
cache->sectors_per_block);
drivers/md/dm-cache-target.c
2333
cache->policy = p;
drivers/md/dm-cache-target.c
2334
BUG_ON(!cache->policy);
drivers/md/dm-cache-target.c
2365
static void set_cache_size(struct cache *cache, dm_cblock_t size)
drivers/md/dm-cache-target.c
2369
if (nr_blocks > (1 << 20) && cache->cache_size != size)
drivers/md/dm-cache-target.c
2375
cache->cache_size = size;
drivers/md/dm-cache-target.c
2380
static int cache_create(struct cache_args *ca, struct cache **result)
drivers/md/dm-cache-target.c
2384
struct cache *cache;
drivers/md/dm-cache-target.c
2390
cache = kzalloc_obj(*cache);
drivers/md/dm-cache-target.c
2391
if (!cache)
drivers/md/dm-cache-target.c
2394
cache->ti = ca->ti;
drivers/md/dm-cache-target.c
2395
ti->private = cache;
drivers/md/dm-cache-target.c
2405
cache->features = ca->features;
drivers/md/dm-cache-target.c
2406
if (writethrough_mode(cache)) {
drivers/md/dm-cache-target.c
2408
r = bioset_init(&cache->bs, BIO_POOL_SIZE, 0, 0);
drivers/md/dm-cache-target.c
2413
cache->metadata_dev = ca->metadata_dev;
drivers/md/dm-cache-target.c
2414
cache->origin_dev = ca->origin_dev;
drivers/md/dm-cache-target.c
2415
cache->cache_dev = ca->cache_dev;
drivers/md/dm-cache-target.c
2419
origin_blocks = cache->origin_sectors = ti->len;
drivers/md/dm-cache-target.c
2421
cache->origin_blocks = to_oblock(origin_blocks);
drivers/md/dm-cache-target.c
2423
cache->sectors_per_block = ca->block_size;
drivers/md/dm-cache-target.c
2424
if (dm_set_target_max_io_len(ti, cache->sectors_per_block)) {
drivers/md/dm-cache-target.c
2432
cache->sectors_per_block_shift = -1;
drivers/md/dm-cache-target.c
2434
set_cache_size(cache, to_cblock(cache_size));
drivers/md/dm-cache-target.c
2436
cache->sectors_per_block_shift = __ffs(ca->block_size);
drivers/md/dm-cache-target.c
2437
set_cache_size(cache, to_cblock(ca->cache_sectors >> cache->sectors_per_block_shift));
drivers/md/dm-cache-target.c
2440
r = create_cache_policy(cache, ca, error);
drivers/md/dm-cache-target.c
2444
cache->policy_nr_args = ca->policy_argc;
drivers/md/dm-cache-target.c
2445
cache->migration_threshold = DEFAULT_MIGRATION_THRESHOLD;
drivers/md/dm-cache-target.c
2447
r = set_config_values(cache, ca->policy_argc, ca->policy_argv);
drivers/md/dm-cache-target.c
2453
cmd = dm_cache_metadata_open(cache->metadata_dev->bdev,
drivers/md/dm-cache-target.c
2455
dm_cache_policy_get_hint_size(cache->policy),
drivers/md/dm-cache-target.c
2462
cache->cmd = cmd;
drivers/md/dm-cache-target.c
2463
set_cache_mode(cache, CM_WRITE);
drivers/md/dm-cache-target.c
2464
if (get_cache_mode(cache) != CM_WRITE) {
drivers/md/dm-cache-target.c
2470
if (passthrough_mode(cache)) {
drivers/md/dm-cache-target.c
2473
r = dm_cache_metadata_all_clean(cache->cmd, &all_clean);
drivers/md/dm-cache-target.c
2485
policy_allow_migrations(cache->policy, false);
drivers/md/dm-cache-target.c
2488
spin_lock_init(&cache->lock);
drivers/md/dm-cache-target.c
2489
bio_list_init(&cache->deferred_bios);
drivers/md/dm-cache-target.c
2490
atomic_set(&cache->nr_allocated_migrations, 0);
drivers/md/dm-cache-target.c
2491
atomic_set(&cache->nr_io_migrations, 0);
drivers/md/dm-cache-target.c
2492
init_waitqueue_head(&cache->migration_wait);
drivers/md/dm-cache-target.c
2495
atomic_set(&cache->nr_dirty, 0);
drivers/md/dm-cache-target.c
2496
cache->dirty_bitset = alloc_bitset(from_cblock(cache->cache_size));
drivers/md/dm-cache-target.c
2497
if (!cache->dirty_bitset) {
drivers/md/dm-cache-target.c
2501
clear_bitset(cache->dirty_bitset, from_cblock(cache->cache_size));
drivers/md/dm-cache-target.c
2503
cache->discard_block_size =
drivers/md/dm-cache-target.c
2504
calculate_discard_block_size(cache->sectors_per_block,
drivers/md/dm-cache-target.c
2505
cache->origin_sectors);
drivers/md/dm-cache-target.c
2506
cache->discard_nr_blocks = to_dblock(dm_sector_div_up(cache->origin_sectors,
drivers/md/dm-cache-target.c
2507
cache->discard_block_size));
drivers/md/dm-cache-target.c
2508
cache->discard_bitset = alloc_bitset(from_dblock(cache->discard_nr_blocks));
drivers/md/dm-cache-target.c
2509
if (!cache->discard_bitset) {
drivers/md/dm-cache-target.c
2513
clear_bitset(cache->discard_bitset, from_dblock(cache->discard_nr_blocks));
drivers/md/dm-cache-target.c
2515
cache->invalid_bitset = alloc_bitset(from_cblock(cache->cache_size));
drivers/md/dm-cache-target.c
2516
if (!cache->invalid_bitset) {
drivers/md/dm-cache-target.c
2520
clear_bitset(cache->invalid_bitset, from_cblock(cache->cache_size));
drivers/md/dm-cache-target.c
2522
cache->copier = dm_kcopyd_client_create(&dm_kcopyd_throttle);
drivers/md/dm-cache-target.c
2523
if (IS_ERR(cache->copier)) {
drivers/md/dm-cache-target.c
2525
r = PTR_ERR(cache->copier);
drivers/md/dm-cache-target.c
2529
cache->wq = alloc_workqueue("dm-" DM_MSG_PREFIX,
drivers/md/dm-cache-target.c
2531
if (!cache->wq) {
drivers/md/dm-cache-target.c
2535
INIT_WORK(&cache->deferred_bio_worker, process_deferred_bios);
drivers/md/dm-cache-target.c
2536
INIT_WORK(&cache->migration_worker, check_migrations);
drivers/md/dm-cache-target.c
2537
INIT_DELAYED_WORK(&cache->waker, do_waker);
drivers/md/dm-cache-target.c
2539
cache->prison = dm_bio_prison_create_v2(cache->wq);
drivers/md/dm-cache-target.c
2540
if (!cache->prison) {
drivers/md/dm-cache-target.c
2545
r = mempool_init_slab_pool(&cache->migration_pool, MIGRATION_POOL_SIZE,
drivers/md/dm-cache-target.c
2552
cache->need_tick_bio = true;
drivers/md/dm-cache-target.c
2553
cache->sized = false;
drivers/md/dm-cache-target.c
2554
cache->invalidate = false;
drivers/md/dm-cache-target.c
2555
cache->commit_requested = false;
drivers/md/dm-cache-target.c
2556
cache->loaded_mappings = false;
drivers/md/dm-cache-target.c
2557
cache->loaded_discards = false;
drivers/md/dm-cache-target.c
2559
load_stats(cache);
drivers/md/dm-cache-target.c
2561
atomic_set(&cache->stats.demotion, 0);
drivers/md/dm-cache-target.c
2562
atomic_set(&cache->stats.promotion, 0);
drivers/md/dm-cache-target.c
2563
atomic_set(&cache->stats.copies_avoided, 0);
drivers/md/dm-cache-target.c
2564
atomic_set(&cache->stats.cache_cell_clash, 0);
drivers/md/dm-cache-target.c
2565
atomic_set(&cache->stats.commit_count, 0);
drivers/md/dm-cache-target.c
2566
atomic_set(&cache->stats.discard_count, 0);
drivers/md/dm-cache-target.c
2568
spin_lock_init(&cache->invalidation_lock);
drivers/md/dm-cache-target.c
2569
INIT_LIST_HEAD(&cache->invalidation_requests);
drivers/md/dm-cache-target.c
2571
batcher_init(&cache->committer, commit_op, cache,
drivers/md/dm-cache-target.c
2572
issue_op, cache, cache->wq);
drivers/md/dm-cache-target.c
2573
dm_iot_init(&cache->tracker);
drivers/md/dm-cache-target.c
2575
init_rwsem(&cache->background_work_lock);
drivers/md/dm-cache-target.c
2576
prevent_background_work(cache);
drivers/md/dm-cache-target.c
2578
*result = cache;
drivers/md/dm-cache-target.c
2581
__destroy(cache);
drivers/md/dm-cache-target.c
2585
static int copy_ctr_args(struct cache *cache, int argc, const char **argv)
drivers/md/dm-cache-target.c
2603
cache->nr_ctr_args = argc;
drivers/md/dm-cache-target.c
2604
cache->ctr_args = copy;
drivers/md/dm-cache-target.c
2613
struct cache *cache = NULL;
drivers/md/dm-cache-target.c
2626
r = cache_create(ca, &cache);
drivers/md/dm-cache-target.c
2630
r = copy_ctr_args(cache, argc - 3, (const char **)argv + 3);
drivers/md/dm-cache-target.c
2632
__destroy(cache);
drivers/md/dm-cache-target.c
2636
ti->private = cache;
drivers/md/dm-cache-target.c
2646
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
2650
dm_oblock_t block = get_bio_block(cache, bio);
drivers/md/dm-cache-target.c
2653
if (unlikely(from_oblock(block) >= from_oblock(cache->origin_blocks))) {
drivers/md/dm-cache-target.c
2659
remap_to_origin(cache, bio);
drivers/md/dm-cache-target.c
2660
accounted_begin(cache, bio);
drivers/md/dm-cache-target.c
2665
defer_bio(cache, bio);
drivers/md/dm-cache-target.c
2669
r = map_bio(cache, bio, block, &commit_needed);
drivers/md/dm-cache-target.c
2671
schedule_commit(&cache->committer);
drivers/md/dm-cache-target.c
2678
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
2683
policy_tick(cache->policy, false);
drivers/md/dm-cache-target.c
2685
spin_lock_irqsave(&cache->lock, flags);
drivers/md/dm-cache-target.c
2686
cache->need_tick_bio = true;
drivers/md/dm-cache-target.c
2687
spin_unlock_irqrestore(&cache->lock, flags);
drivers/md/dm-cache-target.c
2690
bio_drop_shared_lock(cache, bio);
drivers/md/dm-cache-target.c
2691
accounted_complete(cache, bio);
drivers/md/dm-cache-target.c
2696
static int write_dirty_bitset(struct cache *cache)
drivers/md/dm-cache-target.c
2700
if (get_cache_mode(cache) >= CM_READ_ONLY)
drivers/md/dm-cache-target.c
2703
r = dm_cache_set_dirty_bits(cache->cmd, from_cblock(cache->cache_size), cache->dirty_bitset);
drivers/md/dm-cache-target.c
2705
metadata_operation_failed(cache, "dm_cache_set_dirty_bits", r);
drivers/md/dm-cache-target.c
2710
static int write_discard_bitset(struct cache *cache)
drivers/md/dm-cache-target.c
2714
if (get_cache_mode(cache) >= CM_READ_ONLY)
drivers/md/dm-cache-target.c
2717
r = dm_cache_discard_bitset_resize(cache->cmd, cache->discard_block_size,
drivers/md/dm-cache-target.c
2718
cache->discard_nr_blocks);
drivers/md/dm-cache-target.c
2720
DMERR("%s: could not resize on-disk discard bitset", cache_device_name(cache));
drivers/md/dm-cache-target.c
2721
metadata_operation_failed(cache, "dm_cache_discard_bitset_resize", r);
drivers/md/dm-cache-target.c
2725
for (i = 0; i < from_dblock(cache->discard_nr_blocks); i++) {
drivers/md/dm-cache-target.c
2726
r = dm_cache_set_discard(cache->cmd, to_dblock(i),
drivers/md/dm-cache-target.c
2727
is_discarded(cache, to_dblock(i)));
drivers/md/dm-cache-target.c
2729
metadata_operation_failed(cache, "dm_cache_set_discard", r);
drivers/md/dm-cache-target.c
2737
static int write_hints(struct cache *cache)
drivers/md/dm-cache-target.c
2741
if (get_cache_mode(cache) >= CM_READ_ONLY)
drivers/md/dm-cache-target.c
2744
r = dm_cache_write_hints(cache->cmd, cache->policy);
drivers/md/dm-cache-target.c
2746
metadata_operation_failed(cache, "dm_cache_write_hints", r);
drivers/md/dm-cache-target.c
2756
static bool sync_metadata(struct cache *cache)
drivers/md/dm-cache-target.c
2760
r1 = write_dirty_bitset(cache);
drivers/md/dm-cache-target.c
2762
DMERR("%s: could not write dirty bitset", cache_device_name(cache));
drivers/md/dm-cache-target.c
2764
r2 = write_discard_bitset(cache);
drivers/md/dm-cache-target.c
2766
DMERR("%s: could not write discard bitset", cache_device_name(cache));
drivers/md/dm-cache-target.c
2768
save_stats(cache);
drivers/md/dm-cache-target.c
2770
r3 = write_hints(cache);
drivers/md/dm-cache-target.c
2772
DMERR("%s: could not write hints", cache_device_name(cache));
drivers/md/dm-cache-target.c
2779
r4 = commit(cache, !r1 && !r2 && !r3);
drivers/md/dm-cache-target.c
2781
DMERR("%s: could not write cache metadata", cache_device_name(cache));
drivers/md/dm-cache-target.c
2788
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
2790
prevent_background_work(cache);
drivers/md/dm-cache-target.c
2791
BUG_ON(atomic_read(&cache->nr_io_migrations));
drivers/md/dm-cache-target.c
2793
cancel_delayed_work_sync(&cache->waker);
drivers/md/dm-cache-target.c
2794
drain_workqueue(cache->wq);
drivers/md/dm-cache-target.c
2795
WARN_ON(cache->tracker.in_flight);
drivers/md/dm-cache-target.c
2801
requeue_deferred_bios(cache);
drivers/md/dm-cache-target.c
2803
if (get_cache_mode(cache) == CM_WRITE)
drivers/md/dm-cache-target.c
2804
(void) sync_metadata(cache);
drivers/md/dm-cache-target.c
2810
struct cache *cache = context;
drivers/md/dm-cache-target.c
2813
set_bit(from_cblock(cblock), cache->dirty_bitset);
drivers/md/dm-cache-target.c
2814
atomic_inc(&cache->nr_dirty);
drivers/md/dm-cache-target.c
2816
clear_bit(from_cblock(cblock), cache->dirty_bitset);
drivers/md/dm-cache-target.c
2818
return policy_load_mapping(cache->policy, oblock, cblock, dirty, hint, hint_valid);
drivers/md/dm-cache-target.c
2824
struct cache *cache = context;
drivers/md/dm-cache-target.c
2826
if (from_oblock(oblock) >= from_oblock(cache->origin_blocks)) {
drivers/md/dm-cache-target.c
2829
cache_device_name(cache), from_cblock(cblock));
drivers/md/dm-cache-target.c
2832
set_bit(from_cblock(cblock), cache->invalid_bitset);
drivers/md/dm-cache-target.c
2846
struct cache *cache;
drivers/md/dm-cache-target.c
2856
static void discard_load_info_init(struct cache *cache,
drivers/md/dm-cache-target.c
2859
li->cache = cache;
drivers/md/dm-cache-target.c
2879
b = dm_sector_div_up(b, li->cache->discard_block_size);
drivers/md/dm-cache-target.c
2880
sector_div(e, li->cache->discard_block_size);
drivers/md/dm-cache-target.c
2886
if (e > from_dblock(li->cache->discard_nr_blocks))
drivers/md/dm-cache-target.c
2887
e = from_dblock(li->cache->discard_nr_blocks);
drivers/md/dm-cache-target.c
2890
set_discard(li->cache, to_dblock(b));
drivers/md/dm-cache-target.c
2923
static dm_cblock_t get_cache_dev_size(struct cache *cache)
drivers/md/dm-cache-target.c
2925
sector_t size = get_dev_size(cache->cache_dev);
drivers/md/dm-cache-target.c
2926
(void) sector_div(size, cache->sectors_per_block);
drivers/md/dm-cache-target.c
2930
static bool can_resume(struct cache *cache)
drivers/md/dm-cache-target.c
2938
if (cache->sized && !cache->loaded_mappings) {
drivers/md/dm-cache-target.c
2939
if (get_cache_mode(cache) != CM_WRITE)
drivers/md/dm-cache-target.c
2941
cache_device_name(cache));
drivers/md/dm-cache-target.c
2944
cache_device_name(cache));
drivers/md/dm-cache-target.c
2951
static bool can_resize(struct cache *cache, dm_cblock_t new_size)
drivers/md/dm-cache-target.c
2953
if (from_cblock(new_size) > from_cblock(cache->cache_size)) {
drivers/md/dm-cache-target.c
2955
cache_device_name(cache));
drivers/md/dm-cache-target.c
2962
if (cache->loaded_mappings) {
drivers/md/dm-cache-target.c
2963
new_size = to_cblock(find_next_bit(cache->dirty_bitset,
drivers/md/dm-cache-target.c
2964
from_cblock(cache->cache_size),
drivers/md/dm-cache-target.c
2966
if (new_size != cache->cache_size) {
drivers/md/dm-cache-target.c
2968
cache_device_name(cache),
drivers/md/dm-cache-target.c
2977
static int resize_cache_dev(struct cache *cache, dm_cblock_t new_size)
drivers/md/dm-cache-target.c
2981
r = dm_cache_resize(cache->cmd, new_size);
drivers/md/dm-cache-target.c
2983
DMERR("%s: could not resize cache metadata", cache_device_name(cache));
drivers/md/dm-cache-target.c
2984
metadata_operation_failed(cache, "dm_cache_resize", r);
drivers/md/dm-cache-target.c
2988
set_cache_size(cache, new_size);
drivers/md/dm-cache-target.c
2993
static int truncate_oblocks(struct cache *cache)
drivers/md/dm-cache-target.c
2995
uint32_t nr_blocks = from_cblock(cache->cache_size);
drivers/md/dm-cache-target.c
2999
for_each_set_bit(i, cache->invalid_bitset, nr_blocks) {
drivers/md/dm-cache-target.c
3000
r = dm_cache_remove_mapping(cache->cmd, to_cblock(i));
drivers/md/dm-cache-target.c
3003
cache_device_name(cache));
drivers/md/dm-cache-target.c
3014
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
3015
dm_cblock_t csize = get_cache_dev_size(cache);
drivers/md/dm-cache-target.c
3017
if (!can_resume(cache))
drivers/md/dm-cache-target.c
3023
if (!cache->sized || csize != cache->cache_size) {
drivers/md/dm-cache-target.c
3024
if (!can_resize(cache, csize))
drivers/md/dm-cache-target.c
3027
r = resize_cache_dev(cache, csize);
drivers/md/dm-cache-target.c
3031
cache->sized = true;
drivers/md/dm-cache-target.c
3034
if (!cache->loaded_mappings) {
drivers/md/dm-cache-target.c
3040
clear_bitset(cache->invalid_bitset, from_cblock(cache->cache_size));
drivers/md/dm-cache-target.c
3042
r = dm_cache_load_mappings(cache->cmd, cache->policy,
drivers/md/dm-cache-target.c
3043
load_filtered_mapping, cache);
drivers/md/dm-cache-target.c
3045
DMERR("%s: could not load cache mappings", cache_device_name(cache));
drivers/md/dm-cache-target.c
3047
metadata_operation_failed(cache, "dm_cache_load_mappings", r);
drivers/md/dm-cache-target.c
3051
r = truncate_oblocks(cache);
drivers/md/dm-cache-target.c
3053
metadata_operation_failed(cache, "dm_cache_remove_mapping", r);
drivers/md/dm-cache-target.c
3057
cache->loaded_mappings = true;
drivers/md/dm-cache-target.c
3060
if (!cache->loaded_discards) {
drivers/md/dm-cache-target.c
3068
clear_bitset(cache->discard_bitset, from_dblock(cache->discard_nr_blocks));
drivers/md/dm-cache-target.c
3070
discard_load_info_init(cache, &li);
drivers/md/dm-cache-target.c
3071
r = dm_cache_load_discards(cache->cmd, load_discard, &li);
drivers/md/dm-cache-target.c
3073
DMERR("%s: could not load origin discards", cache_device_name(cache));
drivers/md/dm-cache-target.c
3074
metadata_operation_failed(cache, "dm_cache_load_discards", r);
drivers/md/dm-cache-target.c
3079
cache->loaded_discards = true;
drivers/md/dm-cache-target.c
3087
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
3089
cache->need_tick_bio = true;
drivers/md/dm-cache-target.c
3090
allow_background_work(cache);
drivers/md/dm-cache-target.c
3091
do_waker(&cache->waker.work);
drivers/md/dm-cache-target.c
3094
static void emit_flags(struct cache *cache, char *result,
drivers/md/dm-cache-target.c
3098
struct cache_features *cf = &cache->features;
drivers/md/dm-cache-target.c
3106
if (writethrough_mode(cache))
drivers/md/dm-cache-target.c
3109
else if (passthrough_mode(cache))
drivers/md/dm-cache-target.c
3112
else if (writeback_mode(cache))
drivers/md/dm-cache-target.c
3118
cache_device_name(cache), (int) cf->io_mode);
drivers/md/dm-cache-target.c
3147
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
3153
if (get_cache_mode(cache) == CM_FAIL) {
drivers/md/dm-cache-target.c
3160
(void) commit(cache, false);
drivers/md/dm-cache-target.c
3162
r = dm_cache_get_free_metadata_block_count(cache->cmd, &nr_free_blocks_metadata);
drivers/md/dm-cache-target.c
3165
cache_device_name(cache), r);
drivers/md/dm-cache-target.c
3169
r = dm_cache_get_metadata_dev_size(cache->cmd, &nr_blocks_metadata);
drivers/md/dm-cache-target.c
3172
cache_device_name(cache), r);
drivers/md/dm-cache-target.c
3176
residency = policy_residency(cache->policy);
drivers/md/dm-cache-target.c
3182
(unsigned long long)cache->sectors_per_block,
drivers/md/dm-cache-target.c
3184
(unsigned long long) from_cblock(cache->cache_size),
drivers/md/dm-cache-target.c
3185
(unsigned int) atomic_read(&cache->stats.read_hit),
drivers/md/dm-cache-target.c
3186
(unsigned int) atomic_read(&cache->stats.read_miss),
drivers/md/dm-cache-target.c
3187
(unsigned int) atomic_read(&cache->stats.write_hit),
drivers/md/dm-cache-target.c
3188
(unsigned int) atomic_read(&cache->stats.write_miss),
drivers/md/dm-cache-target.c
3189
(unsigned int) atomic_read(&cache->stats.demotion),
drivers/md/dm-cache-target.c
3190
(unsigned int) atomic_read(&cache->stats.promotion),
drivers/md/dm-cache-target.c
3191
(unsigned long) atomic_read(&cache->nr_dirty));
drivers/md/dm-cache-target.c
3193
emit_flags(cache, result, maxlen, &sz);
drivers/md/dm-cache-target.c
3195
DMEMIT("2 migration_threshold %llu ", (unsigned long long) cache->migration_threshold);
drivers/md/dm-cache-target.c
3197
DMEMIT("%s ", dm_cache_policy_get_name(cache->policy));
drivers/md/dm-cache-target.c
3199
r = policy_emit_config_values(cache->policy, result, maxlen, &sz);
drivers/md/dm-cache-target.c
3202
cache_device_name(cache), r);
drivers/md/dm-cache-target.c
3205
if (get_cache_mode(cache) == CM_READ_ONLY)
drivers/md/dm-cache-target.c
3210
r = dm_cache_metadata_needs_check(cache->cmd, &needs_check);
drivers/md/dm-cache-target.c
3220
format_dev_t(buf, cache->metadata_dev->bdev->bd_dev);
drivers/md/dm-cache-target.c
3222
format_dev_t(buf, cache->cache_dev->bdev->bd_dev);
drivers/md/dm-cache-target.c
3224
format_dev_t(buf, cache->origin_dev->bdev->bd_dev);
drivers/md/dm-cache-target.c
3227
for (i = 0; i < cache->nr_ctr_args - 1; i++)
drivers/md/dm-cache-target.c
3228
DMEMIT(" %s", cache->ctr_args[i]);
drivers/md/dm-cache-target.c
3229
if (cache->nr_ctr_args)
drivers/md/dm-cache-target.c
3230
DMEMIT(" %s", cache->ctr_args[cache->nr_ctr_args - 1]);
drivers/md/dm-cache-target.c
3235
if (get_cache_mode(cache) == CM_FAIL)
drivers/md/dm-cache-target.c
3237
else if (get_cache_mode(cache) == CM_READ_ONLY)
drivers/md/dm-cache-target.c
3242
format_dev_t(buf, cache->metadata_dev->bdev->bd_dev);
drivers/md/dm-cache-target.c
3244
format_dev_t(buf, cache->cache_dev->bdev->bd_dev);
drivers/md/dm-cache-target.c
3246
format_dev_t(buf, cache->origin_dev->bdev->bd_dev);
drivers/md/dm-cache-target.c
3248
DMEMIT(",writethrough=%c", writethrough_mode(cache) ? 'y' : 'n');
drivers/md/dm-cache-target.c
3249
DMEMIT(",writeback=%c", writeback_mode(cache) ? 'y' : 'n');
drivers/md/dm-cache-target.c
3250
DMEMIT(",passthrough=%c", passthrough_mode(cache) ? 'y' : 'n');
drivers/md/dm-cache-target.c
3251
DMEMIT(",metadata2=%c", cache->features.metadata_version == 2 ? 'y' : 'n');
drivers/md/dm-cache-target.c
3252
DMEMIT(",no_discard_passdown=%c", cache->features.discard_passdown ? 'n' : 'y');
drivers/md/dm-cache-target.c
3278
static int parse_cblock_range(struct cache *cache, const char *str,
drivers/md/dm-cache-target.c
3307
DMERR("%s: invalid cblock range '%s'", cache_device_name(cache), str);
drivers/md/dm-cache-target.c
3311
static int validate_cblock_range(struct cache *cache, struct cblock_range *range)
drivers/md/dm-cache-target.c
3315
uint64_t n = from_cblock(cache->cache_size);
drivers/md/dm-cache-target.c
3319
cache_device_name(cache), b, n);
drivers/md/dm-cache-target.c
3325
cache_device_name(cache), e, n);
drivers/md/dm-cache-target.c
3331
cache_device_name(cache), b, e);
drivers/md/dm-cache-target.c
3343
static int request_invalidation(struct cache *cache, struct cblock_range *range)
drivers/md/dm-cache-target.c
3354
r = invalidate_cblock(cache, range->begin);
drivers/md/dm-cache-target.c
3361
cache->commit_requested = true;
drivers/md/dm-cache-target.c
3365
static int process_invalidate_cblocks_message(struct cache *cache, unsigned int count,
drivers/md/dm-cache-target.c
3372
if (!passthrough_mode(cache)) {
drivers/md/dm-cache-target.c
3374
cache_device_name(cache));
drivers/md/dm-cache-target.c
3379
r = parse_cblock_range(cache, cblock_ranges[i], &range);
drivers/md/dm-cache-target.c
3383
r = validate_cblock_range(cache, &range);
drivers/md/dm-cache-target.c
3390
r = request_invalidation(cache, &range);
drivers/md/dm-cache-target.c
3409
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
3414
if (get_cache_mode(cache) >= CM_READ_ONLY) {
drivers/md/dm-cache-target.c
3416
cache_device_name(cache));
drivers/md/dm-cache-target.c
3421
return process_invalidate_cblocks_message(cache, argc - 1, (const char **) argv + 1);
drivers/md/dm-cache-target.c
3426
return set_config_value(cache, argv[0], argv[1]);
drivers/md/dm-cache-target.c
3433
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
3435
r = fn(ti, cache->cache_dev, 0, get_dev_size(cache->cache_dev), data);
drivers/md/dm-cache-target.c
3437
r = fn(ti, cache->origin_dev, 0, ti->len, data);
drivers/md/dm-cache-target.c
3446
static void disable_passdown_if_not_supported(struct cache *cache)
drivers/md/dm-cache-target.c
3448
struct block_device *origin_bdev = cache->origin_dev->bdev;
drivers/md/dm-cache-target.c
3452
if (!cache->features.discard_passdown)
drivers/md/dm-cache-target.c
3458
else if (origin_limits->max_discard_sectors < cache->sectors_per_block)
drivers/md/dm-cache-target.c
3464
cache->features.discard_passdown = false;
drivers/md/dm-cache-target.c
3468
static void set_discard_limits(struct cache *cache, struct queue_limits *limits)
drivers/md/dm-cache-target.c
3470
struct block_device *origin_bdev = cache->origin_dev->bdev;
drivers/md/dm-cache-target.c
3473
if (!cache->features.discard_passdown) {
drivers/md/dm-cache-target.c
3475
limits->max_hw_discard_sectors = min_t(sector_t, cache->discard_block_size * 1024,
drivers/md/dm-cache-target.c
3476
cache->origin_sectors);
drivers/md/dm-cache-target.c
3477
limits->discard_granularity = cache->discard_block_size << SECTOR_SHIFT;
drivers/md/dm-cache-target.c
3492
struct cache *cache = ti->private;
drivers/md/dm-cache-target.c
3499
if (io_opt_sectors < cache->sectors_per_block ||
drivers/md/dm-cache-target.c
3500
do_div(io_opt_sectors, cache->sectors_per_block)) {
drivers/md/dm-cache-target.c
3501
limits->io_min = cache->sectors_per_block << SECTOR_SHIFT;
drivers/md/dm-cache-target.c
3502
limits->io_opt = cache->sectors_per_block << SECTOR_SHIFT;
drivers/md/dm-cache-target.c
3505
disable_passdown_if_not_supported(cache);
drivers/md/dm-cache-target.c
3506
set_discard_limits(cache, limits);
drivers/md/dm-cache-target.c
427
struct cache *cache;
drivers/md/dm-cache-target.c
439
static bool writethrough_mode(struct cache *cache)
drivers/md/dm-cache-target.c
441
return cache->features.io_mode == CM_IO_WRITETHROUGH;
drivers/md/dm-cache-target.c
444
static bool writeback_mode(struct cache *cache)
drivers/md/dm-cache-target.c
446
return cache->features.io_mode == CM_IO_WRITEBACK;
drivers/md/dm-cache-target.c
449
static inline bool passthrough_mode(struct cache *cache)
drivers/md/dm-cache-target.c
451
return unlikely(cache->features.io_mode == CM_IO_PASSTHROUGH);
drivers/md/dm-cache-target.c
456
static void wake_deferred_bio_worker(struct cache *cache)
drivers/md/dm-cache-target.c
458
queue_work(cache->wq, &cache->deferred_bio_worker);
drivers/md/dm-cache-target.c
461
static void wake_migration_worker(struct cache *cache)
drivers/md/dm-cache-target.c
463
if (passthrough_mode(cache))
drivers/md/dm-cache-target.c
466
queue_work(cache->wq, &cache->migration_worker);
drivers/md/dm-cache-target.c
471
static struct dm_bio_prison_cell_v2 *alloc_prison_cell(struct cache *cache)
drivers/md/dm-cache-target.c
473
return dm_bio_prison_alloc_cell_v2(cache->prison, GFP_NOIO);
drivers/md/dm-cache-target.c
476
static void free_prison_cell(struct cache *cache, struct dm_bio_prison_cell_v2 *cell)
drivers/md/dm-cache-target.c
478
dm_bio_prison_free_cell_v2(cache->prison, cell);
drivers/md/dm-cache-target.c
481
static struct dm_cache_migration *alloc_migration(struct cache *cache)
drivers/md/dm-cache-target.c
485
mg = mempool_alloc(&cache->migration_pool, GFP_NOIO);
drivers/md/dm-cache-target.c
489
mg->cache = cache;
drivers/md/dm-cache-target.c
490
atomic_inc(&cache->nr_allocated_migrations);
drivers/md/dm-cache-target.c
497
struct cache *cache = mg->cache;
drivers/md/dm-cache-target.c
499
if (atomic_dec_and_test(&cache->nr_allocated_migrations))
drivers/md/dm-cache-target.c
500
wake_up(&cache->migration_wait);
drivers/md/dm-cache-target.c
502
mempool_free(mg, &cache->migration_pool);
drivers/md/dm-cache-target.c
562
static void defer_bio(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
564
spin_lock_irq(&cache->lock);
drivers/md/dm-cache-target.c
565
bio_list_add(&cache->deferred_bios, bio);
drivers/md/dm-cache-target.c
566
spin_unlock_irq(&cache->lock);
drivers/md/dm-cache-target.c
568
wake_deferred_bio_worker(cache);
drivers/md/dm-cache-target.c
571
static void defer_bios(struct cache *cache, struct bio_list *bios)
drivers/md/dm-cache-target.c
573
spin_lock_irq(&cache->lock);
drivers/md/dm-cache-target.c
574
bio_list_merge_init(&cache->deferred_bios, bios);
drivers/md/dm-cache-target.c
575
spin_unlock_irq(&cache->lock);
drivers/md/dm-cache-target.c
577
wake_deferred_bio_worker(cache);
drivers/md/dm-cache-target.c
582
static bool bio_detain_shared(struct cache *cache, dm_oblock_t oblock, struct bio *bio)
drivers/md/dm-cache-target.c
590
cell_prealloc = alloc_prison_cell(cache); /* FIXME: allow wait if calling from worker */
drivers/md/dm-cache-target.c
593
r = dm_cell_get_v2(cache->prison, &key, lock_level(bio), bio, cell_prealloc, &cell);
drivers/md/dm-cache-target.c
598
free_prison_cell(cache, cell_prealloc);
drivers/md/dm-cache-target.c
603
free_prison_cell(cache, cell_prealloc);
drivers/md/dm-cache-target.c
613
static bool is_dirty(struct cache *cache, dm_cblock_t b)
drivers/md/dm-cache-target.c
615
return test_bit(from_cblock(b), cache->dirty_bitset);
drivers/md/dm-cache-target.c
618
static void set_dirty(struct cache *cache, dm_cblock_t cblock)
drivers/md/dm-cache-target.c
620
if (!test_and_set_bit(from_cblock(cblock), cache->dirty_bitset)) {
drivers/md/dm-cache-target.c
621
atomic_inc(&cache->nr_dirty);
drivers/md/dm-cache-target.c
622
policy_set_dirty(cache->policy, cblock);
drivers/md/dm-cache-target.c
630
static void force_set_dirty(struct cache *cache, dm_cblock_t cblock)
drivers/md/dm-cache-target.c
632
if (!test_and_set_bit(from_cblock(cblock), cache->dirty_bitset))
drivers/md/dm-cache-target.c
633
atomic_inc(&cache->nr_dirty);
drivers/md/dm-cache-target.c
634
policy_set_dirty(cache->policy, cblock);
drivers/md/dm-cache-target.c
637
static void force_clear_dirty(struct cache *cache, dm_cblock_t cblock)
drivers/md/dm-cache-target.c
639
if (test_and_clear_bit(from_cblock(cblock), cache->dirty_bitset)) {
drivers/md/dm-cache-target.c
640
if (atomic_dec_return(&cache->nr_dirty) == 0)
drivers/md/dm-cache-target.c
641
dm_table_event(cache->ti->table);
drivers/md/dm-cache-target.c
644
policy_clear_dirty(cache->policy, cblock);
drivers/md/dm-cache-target.c
649
static bool block_size_is_power_of_two(struct cache *cache)
drivers/md/dm-cache-target.c
651
return cache->sectors_per_block_shift >= 0;
drivers/md/dm-cache-target.c
661
static dm_block_t oblocks_per_dblock(struct cache *cache)
drivers/md/dm-cache-target.c
663
dm_block_t oblocks = cache->discard_block_size;
drivers/md/dm-cache-target.c
665
if (block_size_is_power_of_two(cache))
drivers/md/dm-cache-target.c
666
oblocks >>= cache->sectors_per_block_shift;
drivers/md/dm-cache-target.c
668
oblocks = block_div(oblocks, cache->sectors_per_block);
drivers/md/dm-cache-target.c
673
static dm_dblock_t oblock_to_dblock(struct cache *cache, dm_oblock_t oblock)
drivers/md/dm-cache-target.c
676
oblocks_per_dblock(cache)));
drivers/md/dm-cache-target.c
679
static void set_discard(struct cache *cache, dm_dblock_t b)
drivers/md/dm-cache-target.c
681
BUG_ON(from_dblock(b) >= from_dblock(cache->discard_nr_blocks));
drivers/md/dm-cache-target.c
682
atomic_inc(&cache->stats.discard_count);
drivers/md/dm-cache-target.c
684
spin_lock_irq(&cache->lock);
drivers/md/dm-cache-target.c
685
set_bit(from_dblock(b), cache->discard_bitset);
drivers/md/dm-cache-target.c
686
spin_unlock_irq(&cache->lock);
drivers/md/dm-cache-target.c
689
static void clear_discard(struct cache *cache, dm_dblock_t b)
drivers/md/dm-cache-target.c
691
spin_lock_irq(&cache->lock);
drivers/md/dm-cache-target.c
692
clear_bit(from_dblock(b), cache->discard_bitset);
drivers/md/dm-cache-target.c
693
spin_unlock_irq(&cache->lock);
drivers/md/dm-cache-target.c
696
static bool is_discarded(struct cache *cache, dm_dblock_t b)
drivers/md/dm-cache-target.c
700
spin_lock_irq(&cache->lock);
drivers/md/dm-cache-target.c
701
r = test_bit(from_dblock(b), cache->discard_bitset);
drivers/md/dm-cache-target.c
702
spin_unlock_irq(&cache->lock);
drivers/md/dm-cache-target.c
707
static bool is_discarded_oblock(struct cache *cache, dm_oblock_t b)
drivers/md/dm-cache-target.c
711
spin_lock_irq(&cache->lock);
drivers/md/dm-cache-target.c
712
r = test_bit(from_dblock(oblock_to_dblock(cache, b)),
drivers/md/dm-cache-target.c
713
cache->discard_bitset);
drivers/md/dm-cache-target.c
714
spin_unlock_irq(&cache->lock);
drivers/md/dm-cache-target.c
724
static void remap_to_origin(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
726
bio_set_dev(bio, cache->origin_dev->bdev);
drivers/md/dm-cache-target.c
729
static void remap_to_cache(struct cache *cache, struct bio *bio,
drivers/md/dm-cache-target.c
735
bio_set_dev(bio, cache->cache_dev->bdev);
drivers/md/dm-cache-target.c
736
if (!block_size_is_power_of_two(cache))
drivers/md/dm-cache-target.c
738
(block * cache->sectors_per_block) +
drivers/md/dm-cache-target.c
739
sector_div(bi_sector, cache->sectors_per_block);
drivers/md/dm-cache-target.c
742
(block << cache->sectors_per_block_shift) |
drivers/md/dm-cache-target.c
743
(bi_sector & (cache->sectors_per_block - 1));
drivers/md/dm-cache-target.c
746
static void check_if_tick_bio_needed(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
750
spin_lock_irq(&cache->lock);
drivers/md/dm-cache-target.c
751
if (cache->need_tick_bio && !op_is_flush(bio->bi_opf) &&
drivers/md/dm-cache-target.c
755
cache->need_tick_bio = false;
drivers/md/dm-cache-target.c
757
spin_unlock_irq(&cache->lock);
drivers/md/dm-cache-target.c
760
static void remap_to_origin_clear_discard(struct cache *cache, struct bio *bio,
drivers/md/dm-cache-target.c
764
check_if_tick_bio_needed(cache, bio);
drivers/md/dm-cache-target.c
765
remap_to_origin(cache, bio);
drivers/md/dm-cache-target.c
767
clear_discard(cache, oblock_to_dblock(cache, oblock));
drivers/md/dm-cache-target.c
770
static void remap_to_cache_dirty(struct cache *cache, struct bio *bio,
drivers/md/dm-cache-target.c
773
check_if_tick_bio_needed(cache, bio);
drivers/md/dm-cache-target.c
774
remap_to_cache(cache, bio, cblock);
drivers/md/dm-cache-target.c
776
set_dirty(cache, cblock);
drivers/md/dm-cache-target.c
777
clear_discard(cache, oblock_to_dblock(cache, oblock));
drivers/md/dm-cache-target.c
781
static dm_oblock_t get_bio_block(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
785
if (!block_size_is_power_of_two(cache))
drivers/md/dm-cache-target.c
786
(void) sector_div(block_nr, cache->sectors_per_block);
drivers/md/dm-cache-target.c
788
block_nr >>= cache->sectors_per_block_shift;
drivers/md/dm-cache-target.c
793
static bool accountable_bio(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
798
static void accounted_begin(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
802
if (accountable_bio(cache, bio)) {
drivers/md/dm-cache-target.c
805
dm_iot_io_begin(&cache->tracker, pb->len);
drivers/md/dm-cache-target.c
809
static void accounted_complete(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
813
dm_iot_io_end(&cache->tracker, pb->len);
drivers/md/dm-cache-target.c
816
static void accounted_request(struct cache *cache, struct bio *bio)
drivers/md/dm-cache-target.c
818
accounted_begin(cache, bio);
drivers/md/dm-cache-target.c
824
struct cache *cache = context;
drivers/md/dm-cache-target.c
826
accounted_request(cache, bio);
drivers/md/dm-cache-target.c
833
static void remap_to_origin_and_cache(struct cache *cache, struct bio *bio,
drivers/md/dm-cache-target.c
836
struct bio *origin_bio = bio_alloc_clone(cache->origin_dev->bdev, bio,
drivers/md/dm-cache-target.c
837
GFP_NOIO, &cache->bs);
drivers/md/dm-cache-target.c
844
clear_discard(cache, oblock_to_dblock(cache, oblock));
drivers/md/dm-cache-target.c
847
remap_to_cache(cache, bio, cblock);
drivers/md/dm-cache-target.c
855
static enum cache_metadata_mode get_cache_mode(struct cache *cache)
drivers/md/dm-cache-target.c
857
return cache->features.mode;
drivers/md/dm-cache-target.c
860
static const char *cache_device_name(struct cache *cache)
drivers/md/dm-cache-target.c
862
return dm_table_device_name(cache->ti->table);
drivers/md/dm-cache-target.c
865
static void notify_mode_switch(struct cache *cache, enum cache_metadata_mode mode)
drivers/md/dm-cache-target.c
873
dm_table_event(cache->ti->table);
drivers/md/dm-cache-target.c
875
cache_device_name(cache), descs[(int)mode]);
drivers/md/dm-cache-target.c
878
static void set_cache_mode(struct cache *cache, enum cache_metadata_mode new_mode)
drivers/md/dm-cache-target.c
881
enum cache_metadata_mode old_mode = get_cache_mode(cache);
drivers/md/dm-cache-target.c
883
if (dm_cache_metadata_needs_check(cache->cmd, &needs_check)) {
drivers/md/dm-cache-target.c
885
cache_device_name(cache));
drivers/md/dm-cache-target.c
891
cache_device_name(cache));
drivers/md/dm-cache-target.c
905
dm_cache_metadata_set_read_only(cache->cmd);
drivers/md/dm-cache-target.c
909
dm_cache_metadata_set_read_write(cache->cmd);
drivers/md/dm-cache-target.c
913
cache->features.mode = new_mode;
drivers/md/dm-cache-target.c
916
notify_mode_switch(cache, new_mode);
drivers/md/dm-cache-target.c
919
static void abort_transaction(struct cache *cache)
drivers/md/dm-cache-target.c
921
const char *dev_name = cache_device_name(cache);
drivers/md/dm-cache-target.c
923
if (get_cache_mode(cache) >= CM_READ_ONLY)
drivers/md/dm-cache-target.c
927
if (dm_cache_metadata_abort(cache->cmd)) {
drivers/md/dm-cache-target.c
929
set_cache_mode(cache, CM_FAIL);
drivers/md/dm-cache-target.c
932
if (dm_cache_metadata_set_needs_check(cache->cmd)) {
drivers/md/dm-cache-target.c
934
set_cache_mode(cache, CM_FAIL);
drivers/md/dm-cache-target.c
938
static void metadata_operation_failed(struct cache *cache, const char *op, int r)
drivers/md/dm-cache-target.c
941
cache_device_name(cache), op, r);
drivers/md/dm-cache-target.c
942
abort_transaction(cache);
drivers/md/dm-cache-target.c
943
set_cache_mode(cache, CM_READ_ONLY);
drivers/md/dm-cache-target.c
948
static void load_stats(struct cache *cache)
drivers/md/dm-cache-target.c
952
dm_cache_metadata_get_stats(cache->cmd, &stats);
drivers/md/dm-cache-target.c
953
atomic_set(&cache->stats.read_hit, stats.read_hits);
drivers/md/dm-cache-target.c
954
atomic_set(&cache->stats.read_miss, stats.read_misses);
drivers/md/dm-cache-target.c
955
atomic_set(&cache->stats.write_hit, stats.write_hits);
drivers/md/dm-cache-target.c
956
atomic_set(&cache->stats.write_miss, stats.write_misses);
drivers/md/dm-cache-target.c
959
static void save_stats(struct cache *cache)
drivers/md/dm-cache-target.c
963
if (get_cache_mode(cache) >= CM_READ_ONLY)
drivers/md/dm-cache-target.c
966
stats.read_hits = atomic_read(&cache->stats.read_hit);
drivers/md/dm-cache-target.c
967
stats.read_misses = atomic_read(&cache->stats.read_miss);
drivers/md/dm-cache-target.c
968
stats.write_hits = atomic_read(&cache->stats.write_hit);
drivers/md/dm-cache-target.c
969
stats.write_misses = atomic_read(&cache->stats.write_miss);
drivers/md/dm-cache-target.c
971
dm_cache_metadata_set_stats(cache->cmd, &stats);
drivers/md/dm-cache-target.c
999
static void inc_io_migrations(struct cache *cache)
drivers/md/dm-pcache/backing_dev.h
43
struct pcache_cache *cache;
drivers/md/dm-pcache/cache.c
105
int cache_pos_decode(struct pcache_cache *cache,
drivers/md/dm-pcache/cache.c
11
static inline struct pcache_cache_info *get_cache_info_addr(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.c
121
pos->cache_seg = &cache->segments[latest.cache_seg_id];
drivers/md/dm-pcache/cache.c
129
static inline void cache_info_set_seg_id(struct pcache_cache *cache, u32 seg_id)
drivers/md/dm-pcache/cache.c
13
return (struct pcache_cache_info *)((char *)cache->cache_info_addr +
drivers/md/dm-pcache/cache.c
131
cache->cache_info.seg_id = seg_id;
drivers/md/dm-pcache/cache.c
136
struct pcache_cache *cache = &pcache->cache;
drivers/md/dm-pcache/cache.c
14
(size_t)cache->info_index * PCACHE_CACHE_INFO_SIZE);
drivers/md/dm-pcache/cache.c
141
cache->segments = kvzalloc_objs(struct pcache_cache_segment,
drivers/md/dm-pcache/cache.c
143
if (!cache->segments) {
drivers/md/dm-pcache/cache.c
148
cache->seg_map = kvcalloc(BITS_TO_LONGS(cache_dev->seg_num), sizeof(unsigned long), GFP_KERNEL);
drivers/md/dm-pcache/cache.c
149
if (!cache->seg_map) {
drivers/md/dm-pcache/cache.c
154
cache->backing_dev = backing_dev;
drivers/md/dm-pcache/cache.c
155
cache->cache_dev = &pcache->cache_dev;
drivers/md/dm-pcache/cache.c
156
cache->n_segs = cache_dev->seg_num;
drivers/md/dm-pcache/cache.c
157
atomic_set(&cache->gc_errors, 0);
drivers/md/dm-pcache/cache.c
158
spin_lock_init(&cache->seg_map_lock);
drivers/md/dm-pcache/cache.c
159
spin_lock_init(&cache->key_head_lock);
drivers/md/dm-pcache/cache.c
161
mutex_init(&cache->cache_info_lock);
drivers/md/dm-pcache/cache.c
162
mutex_init(&cache->key_tail_lock);
drivers/md/dm-pcache/cache.c
163
mutex_init(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache.c
164
mutex_init(&cache->writeback_lock);
drivers/md/dm-pcache/cache.c
166
INIT_DELAYED_WORK(&cache->writeback_work, cache_writeback_fn);
drivers/md/dm-pcache/cache.c
167
INIT_DELAYED_WORK(&cache->gc_work, pcache_cache_gc_fn);
drivers/md/dm-pcache/cache.c
168
INIT_WORK(&cache->clean_work, clean_fn);
drivers/md/dm-pcache/cache.c
17
static void cache_info_write(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.c
173
kvfree(cache->segments);
drivers/md/dm-pcache/cache.c
178
static void cache_exit(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.c
180
kvfree(cache->seg_map);
drivers/md/dm-pcache/cache.c
181
kvfree(cache->segments);
drivers/md/dm-pcache/cache.c
184
static void cache_info_init_default(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.c
186
struct pcache_cache_info *cache_info = &cache->cache_info;
drivers/md/dm-pcache/cache.c
189
cache_info->n_segs = cache->cache_dev->seg_num;
drivers/md/dm-pcache/cache.c
19
struct pcache_cache_info *cache_info = &cache->cache_info;
drivers/md/dm-pcache/cache.c
193
static int cache_tail_init(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.c
195
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache.c
196
bool new_cache = !(cache->cache_info.flags & PCACHE_CACHE_FLAGS_INIT_DONE);
drivers/md/dm-pcache/cache.c
199
__set_bit(0, cache->seg_map);
drivers/md/dm-pcache/cache.c
201
cache->key_head.cache_seg = &cache->segments[0];
drivers/md/dm-pcache/cache.c
202
cache->key_head.seg_off = 0;
drivers/md/dm-pcache/cache.c
203
cache_pos_copy(&cache->key_tail, &cache->key_head);
drivers/md/dm-pcache/cache.c
204
cache_pos_copy(&cache->dirty_tail, &cache->key_head);
drivers/md/dm-pcache/cache.c
206
cache_encode_dirty_tail(cache);
drivers/md/dm-pcache/cache.c
207
cache_encode_key_tail(cache);
drivers/md/dm-pcache/cache.c
209
if (cache_decode_key_tail(cache) || cache_decode_dirty_tail(cache)) {
drivers/md/dm-pcache/cache.c
218
static int get_seg_id(struct pcache_cache *cache,
drivers/md/dm-pcache/cache.c
222
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache.c
223
struct pcache_cache_dev *cache_dev = cache->cache_dev;
drivers/md/dm-pcache/cache.c
236
cache_info_set_seg_id(cache, *seg_id);
drivers/md/dm-pcache/cache.c
248
*seg_id = cache->cache_info.seg_id;
drivers/md/dm-pcache/cache.c
25
cache->info_index = (cache->info_index + 1) % PCACHE_META_INDEX_MAX;
drivers/md/dm-pcache/cache.c
256
static int cache_segs_init(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.c
259
struct pcache_cache_info *cache_info = &cache->cache_info;
drivers/md/dm-pcache/cache.c
26
memcpy_flushcache(get_cache_info_addr(cache), cache_info,
drivers/md/dm-pcache/cache.c
260
bool new_cache = !(cache->cache_info.flags & PCACHE_CACHE_FLAGS_INIT_DONE);
drivers/md/dm-pcache/cache.c
266
ret = get_seg_id(cache, prev_cache_seg, new_cache, &seg_id);
drivers/md/dm-pcache/cache.c
270
ret = cache_seg_init(cache, seg_id, i, new_cache);
drivers/md/dm-pcache/cache.c
274
prev_cache_seg = &cache->segments[i];
drivers/md/dm-pcache/cache.c
281
static int cache_init_req_keys(struct pcache_cache *cache, u32 n_paral)
drivers/md/dm-pcache/cache.c
283
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache.c
289
n_subtrees = DIV_ROUND_UP(cache->dev_size << SECTOR_SHIFT, PCACHE_CACHE_SUBTREE_SIZE);
drivers/md/dm-pcache/cache.c
290
ret = cache_tree_init(cache, &cache->req_key_tree, n_subtrees);
drivers/md/dm-pcache/cache.c
294
cache->n_ksets = n_paral;
drivers/md/dm-pcache/cache.c
295
cache->ksets = kvcalloc(cache->n_ksets, PCACHE_KSET_SIZE, GFP_KERNEL);
drivers/md/dm-pcache/cache.c
296
if (!cache->ksets) {
drivers/md/dm-pcache/cache.c
306
for (i = 0; i < cache->n_ksets; i++) {
drivers/md/dm-pcache/cache.c
307
struct pcache_cache_kset *kset = get_kset(cache, i);
drivers/md/dm-pcache/cache.c
309
kset->cache = cache;
drivers/md/dm-pcache/cache.c
31
static void cache_info_init_default(struct pcache_cache *cache);
drivers/md/dm-pcache/cache.c
314
cache->data_heads = alloc_percpu(struct pcache_cache_data_head);
drivers/md/dm-pcache/cache.c
315
if (!cache->data_heads) {
drivers/md/dm-pcache/cache.c
32
static int cache_info_init(struct pcache_cache *cache, struct pcache_cache_options *opts)
drivers/md/dm-pcache/cache.c
322
per_cpu_ptr(cache->data_heads, cpu);
drivers/md/dm-pcache/cache.c
331
ret = cache_replay(cache);
drivers/md/dm-pcache/cache.c
34
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache.c
340
free_percpu(cache->data_heads);
drivers/md/dm-pcache/cache.c
342
kvfree(cache->ksets);
drivers/md/dm-pcache/cache.c
344
cache_tree_exit(&cache->req_key_tree);
drivers/md/dm-pcache/cache.c
349
static void cache_destroy_req_keys(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.c
353
for (i = 0; i < cache->n_ksets; i++) {
drivers/md/dm-pcache/cache.c
354
struct pcache_cache_kset *kset = get_kset(cache, i);
drivers/md/dm-pcache/cache.c
359
free_percpu(cache->data_heads);
drivers/md/dm-pcache/cache.c
360
kvfree(cache->ksets);
drivers/md/dm-pcache/cache.c
361
cache_tree_exit(&cache->req_key_tree);
drivers/md/dm-pcache/cache.c
367
struct pcache_cache *cache = &pcache->cache;
drivers/md/dm-pcache/cache.c
37
cache_info_addr = pcache_meta_find_latest(&cache->cache_info_addr->header,
drivers/md/dm-pcache/cache.c
375
cache->cache_info_addr = CACHE_DEV_CACHE_INFO(cache->cache_dev);
drivers/md/dm-pcache/cache.c
376
cache->cache_ctrl = CACHE_DEV_CACHE_CTRL(cache->cache_dev);
drivers/md/dm-pcache/cache.c
377
backing_dev->cache = cache;
drivers/md/dm-pcache/cache.c
378
cache->dev_size = backing_dev->dev_size;
drivers/md/dm-pcache/cache.c
380
ret = cache_info_init(cache, opts);
drivers/md/dm-pcache/cache.c
384
ret = cache_segs_init(cache);
drivers/md/dm-pcache/cache.c
388
ret = cache_tail_init(cache);
drivers/md/dm-pcache/cache.c
392
ret = cache_init_req_keys(cache, num_online_cpus());
drivers/md/dm-pcache/cache.c
396
ret = cache_writeback_init(cache);
drivers/md/dm-pcache/cache.c
40
&cache->cache_info);
drivers/md/dm-pcache/cache.c
400
cache->cache_info.flags |= PCACHE_CACHE_FLAGS_INIT_DONE;
drivers/md/dm-pcache/cache.c
401
cache_info_write(cache);
drivers/md/dm-pcache/cache.c
402
queue_delayed_work(cache_get_wq(cache), &cache->gc_work, 0);
drivers/md/dm-pcache/cache.c
407
cache_destroy_req_keys(cache);
drivers/md/dm-pcache/cache.c
409
cache_exit(cache);
drivers/md/dm-pcache/cache.c
416
struct pcache_cache *cache = &pcache->cache;
drivers/md/dm-pcache/cache.c
418
pcache_cache_flush(cache);
drivers/md/dm-pcache/cache.c
420
cancel_delayed_work_sync(&cache->gc_work);
drivers/md/dm-pcache/cache.c
421
flush_work(&cache->clean_work);
drivers/md/dm-pcache/cache.c
422
cache_writeback_exit(cache);
drivers/md/dm-pcache/cache.c
424
if (cache->req_key_tree.n_subtrees)
drivers/md/dm-pcache/cache.c
425
cache_destroy_req_keys(cache);
drivers/md/dm-pcache/cache.c
427
cache_exit(cache);
drivers/md/dm-pcache/cache.c
430
struct workqueue_struct *cache_get_wq(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.c
432
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache.c
46
(cache->cache_info.flags & PCACHE_CACHE_FLAGS_DATA_CRC)) {
drivers/md/dm-pcache/cache.c
49
cache->cache_info.flags & PCACHE_CACHE_FLAGS_DATA_CRC ? "true" : "false");
drivers/md/dm-pcache/cache.c
53
cache->info_index = ((char *)cache_info_addr - (char *)cache->cache_info_addr) / PCACHE_CACHE_INFO_SIZE;
drivers/md/dm-pcache/cache.c
59
cache_info_init_default(cache);
drivers/md/dm-pcache/cache.c
60
cache_mode_set(cache, opts->cache_mode);
drivers/md/dm-pcache/cache.c
62
cache->cache_info.flags |= PCACHE_CACHE_FLAGS_DATA_CRC;
drivers/md/dm-pcache/cache.c
73
int pcache_cache_set_gc_percent(struct pcache_cache *cache, u8 percent)
drivers/md/dm-pcache/cache.c
78
mutex_lock(&cache->cache_info_lock);
drivers/md/dm-pcache/cache.c
79
cache_info_set_gc_percent(&cache->cache_info, percent);
drivers/md/dm-pcache/cache.c
81
cache_info_write(cache);
drivers/md/dm-pcache/cache.c
82
mutex_unlock(&cache->cache_info_lock);
drivers/md/dm-pcache/cache.c
87
void cache_pos_encode(struct pcache_cache *cache,
drivers/md/dm-pcache/cache.h
102
struct pcache_cache *cache;
drivers/md/dm-pcache/cache.h
201
struct workqueue_struct *cache_get_wq(struct pcache_cache *cache);
drivers/md/dm-pcache/cache.h
223
static inline u16 pcache_cache_get_gc_percent(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
225
return FIELD_GET(PCACHE_CACHE_FLAGS_GC_PERCENT_MASK, cache->cache_info.flags);
drivers/md/dm-pcache/cache.h
228
int pcache_cache_set_gc_percent(struct pcache_cache *cache, u8 percent);
drivers/md/dm-pcache/cache.h
235
int cache_key_append(struct pcache_cache *cache, struct pcache_cache_key *key, bool force_close);
drivers/md/dm-pcache/cache.h
237
int cache_key_decode(struct pcache_cache *cache,
drivers/md/dm-pcache/cache.h
246
struct pcache_cache *cache;
drivers/md/dm-pcache/cache.h
325
int cache_kset_close(struct pcache_cache *cache, struct pcache_cache_kset *kset);
drivers/md/dm-pcache/cache.h
328
int cache_replay(struct pcache_cache *cache);
drivers/md/dm-pcache/cache.h
329
int cache_tree_init(struct pcache_cache *cache, struct pcache_cache_tree *cache_tree, u32 n_subtrees);
drivers/md/dm-pcache/cache.h
334
struct pcache_cache_segment *get_cache_segment(struct pcache_cache *cache);
drivers/md/dm-pcache/cache.h
335
int cache_seg_init(struct pcache_cache *cache, u32 seg_id, u32 cache_seg_id,
drivers/md/dm-pcache/cache.h
342
int pcache_cache_flush(struct pcache_cache *cache);
drivers/md/dm-pcache/cache.h
344
int pcache_cache_handle_req(struct pcache_cache *cache, struct pcache_request *pcache_req);
drivers/md/dm-pcache/cache.h
350
void cache_writeback_exit(struct pcache_cache *cache);
drivers/md/dm-pcache/cache.h
351
int cache_writeback_init(struct pcache_cache *cache);
drivers/md/dm-pcache/cache.h
368
static inline void *get_key_head_addr(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
370
return cache_pos_addr(&cache->key_head);
drivers/md/dm-pcache/cache.h
373
static inline u32 get_kset_id(struct pcache_cache *cache, u64 off)
drivers/md/dm-pcache/cache.h
377
div_u64_rem(off >> PCACHE_CACHE_SUBTREE_SIZE_SHIFT, cache->n_ksets, &kset_id);
drivers/md/dm-pcache/cache.h
382
static inline struct pcache_cache_kset *get_kset(struct pcache_cache *cache, u32 kset_id)
drivers/md/dm-pcache/cache.h
384
return (void *)cache->ksets + PCACHE_KSET_SIZE * kset_id;
drivers/md/dm-pcache/cache.h
387
static inline struct pcache_cache_data_head *get_data_head(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
389
return this_cpu_ptr(cache->data_heads);
drivers/md/dm-pcache/cache.h
463
static inline bool cache_data_crc_on(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
465
return (cache->cache_info.flags & PCACHE_CACHE_FLAGS_DATA_CRC);
drivers/md/dm-pcache/cache.h
468
static inline u32 cache_mode_get(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
470
return FIELD_GET(PCACHE_CACHE_FLAGS_CACHE_MODE_MASK, cache->cache_info.flags);
drivers/md/dm-pcache/cache.h
473
static inline void cache_mode_set(struct pcache_cache *cache, u32 cache_mode)
drivers/md/dm-pcache/cache.h
475
cache->cache_info.flags &= ~PCACHE_CACHE_FLAGS_CACHE_MODE_MASK;
drivers/md/dm-pcache/cache.h
476
cache->cache_info.flags |= FIELD_PREP(PCACHE_CACHE_FLAGS_CACHE_MODE_MASK, cache_mode);
drivers/md/dm-pcache/cache.h
598
void cache_pos_encode(struct pcache_cache *cache,
drivers/md/dm-pcache/cache.h
601
int cache_pos_decode(struct pcache_cache *cache,
drivers/md/dm-pcache/cache.h
605
static inline void cache_encode_key_tail(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
607
cache_pos_encode(cache, cache->cache_ctrl->key_tail_pos,
drivers/md/dm-pcache/cache.h
608
&cache->key_tail, ++cache->key_tail_seq,
drivers/md/dm-pcache/cache.h
609
&cache->key_tail_index);
drivers/md/dm-pcache/cache.h
612
static inline int cache_decode_key_tail(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
614
return cache_pos_decode(cache, cache->cache_ctrl->key_tail_pos,
drivers/md/dm-pcache/cache.h
615
&cache->key_tail, &cache->key_tail_seq,
drivers/md/dm-pcache/cache.h
616
&cache->key_tail_index);
drivers/md/dm-pcache/cache.h
619
static inline void cache_encode_dirty_tail(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
621
cache_pos_encode(cache, cache->cache_ctrl->dirty_tail_pos,
drivers/md/dm-pcache/cache.h
622
&cache->dirty_tail, ++cache->dirty_tail_seq,
drivers/md/dm-pcache/cache.h
623
&cache->dirty_tail_index);
drivers/md/dm-pcache/cache.h
626
static inline int cache_decode_dirty_tail(struct pcache_cache *cache)
drivers/md/dm-pcache/cache.h
628
return cache_pos_decode(cache, cache->cache_ctrl->dirty_tail_pos,
drivers/md/dm-pcache/cache.h
629
&cache->dirty_tail, &cache->dirty_tail_seq,
drivers/md/dm-pcache/cache.h
630
&cache->dirty_tail_index);
drivers/md/dm-pcache/cache.h
78
struct pcache_cache *cache;
drivers/md/dm-pcache/cache_gc.c
101
struct pcache_cache *cache = container_of(work, struct pcache_cache, gc_work.work);
drivers/md/dm-pcache/cache_gc.c
102
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache_gc.c
110
kset_onmedia = (struct pcache_cache_kset_onmedia *)cache->gc_kset_onmedia_buf;
drivers/md/dm-pcache/cache_gc.c
113
if (pcache_is_stopping(pcache) || atomic_read(&cache->gc_errors))
drivers/md/dm-pcache/cache_gc.c
117
mutex_lock(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache_gc.c
118
cache_pos_copy(&dirty_tail, &cache->dirty_tail);
drivers/md/dm-pcache/cache_gc.c
119
mutex_unlock(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache_gc.c
121
mutex_lock(&cache->key_tail_lock);
drivers/md/dm-pcache/cache_gc.c
122
cache_pos_copy(&key_tail, &cache->key_tail);
drivers/md/dm-pcache/cache_gc.c
123
mutex_unlock(&cache->key_tail_lock);
drivers/md/dm-pcache/cache_gc.c
125
if (!need_gc(cache, &dirty_tail, &key_tail))
drivers/md/dm-pcache/cache_gc.c
133
last_kset_gc(cache, kset_onmedia);
drivers/md/dm-pcache/cache_gc.c
143
cache_key_init(&cache->req_key_tree, key);
drivers/md/dm-pcache/cache_gc.c
145
ret = cache_key_decode(cache, key_onmedia, key);
drivers/md/dm-pcache/cache_gc.c
150
atomic_inc(&cache->gc_errors);
drivers/md/dm-pcache/cache_gc.c
155
cache_key_gc(cache, key);
drivers/md/dm-pcache/cache_gc.c
16
static void cache_key_gc(struct pcache_cache *cache, struct pcache_cache_key *key)
drivers/md/dm-pcache/cache_gc.c
163
mutex_lock(&cache->key_tail_lock);
drivers/md/dm-pcache/cache_gc.c
164
cache_pos_advance(&cache->key_tail, get_kset_onmedia_size(kset_onmedia));
drivers/md/dm-pcache/cache_gc.c
165
cache_encode_key_tail(cache);
drivers/md/dm-pcache/cache_gc.c
166
mutex_unlock(&cache->key_tail_lock);
drivers/md/dm-pcache/cache_gc.c
169
queue_delayed_work(cache_get_wq(cache), &cache->gc_work, PCACHE_CACHE_GC_INTERVAL);
drivers/md/dm-pcache/cache_gc.c
21
static bool need_gc(struct pcache_cache *cache, struct pcache_cache_pos *dirty_tail, struct pcache_cache_pos *key_tail)
drivers/md/dm-pcache/cache_gc.c
23
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache_gc.c
38
kset_onmedia = (struct pcache_cache_kset_onmedia *)cache->gc_kset_onmedia_buf;
drivers/md/dm-pcache/cache_gc.c
62
segs_used = bitmap_weight(cache->seg_map, cache->n_segs);
drivers/md/dm-pcache/cache_gc.c
63
segs_gc_threshold = cache->n_segs * pcache_cache_get_gc_percent(cache) / 100;
drivers/md/dm-pcache/cache_gc.c
77
static void last_kset_gc(struct pcache_cache *cache, struct pcache_cache_kset_onmedia *kset_onmedia)
drivers/md/dm-pcache/cache_gc.c
79
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache_gc.c
82
cur_seg = cache->key_tail.cache_seg;
drivers/md/dm-pcache/cache_gc.c
84
next_seg = &cache->segments[kset_onmedia->next_cache_seg_id];
drivers/md/dm-pcache/cache_gc.c
86
mutex_lock(&cache->key_tail_lock);
drivers/md/dm-pcache/cache_gc.c
87
cache->key_tail.cache_seg = next_seg;
drivers/md/dm-pcache/cache_gc.c
88
cache->key_tail.seg_off = 0;
drivers/md/dm-pcache/cache_gc.c
89
cache_encode_key_tail(cache);
drivers/md/dm-pcache/cache_gc.c
90
mutex_unlock(&cache->key_tail_lock);
drivers/md/dm-pcache/cache_gc.c
94
spin_lock(&cache->seg_map_lock);
drivers/md/dm-pcache/cache_gc.c
95
__clear_bit(cur_seg->cache_seg_id, cache->seg_map);
drivers/md/dm-pcache/cache_gc.c
96
spin_unlock(&cache->seg_map_lock);
drivers/md/dm-pcache/cache_key.c
103
if (cache_data_crc_on(cache) &&
drivers/md/dm-pcache/cache_key.c
114
static void append_last_kset(struct pcache_cache *cache, u32 next_seg)
drivers/md/dm-pcache/cache_key.c
123
memcpy_flushcache(get_key_head_addr(cache), &kset_onmedia, sizeof(struct pcache_cache_kset_onmedia));
drivers/md/dm-pcache/cache_key.c
125
cache_pos_advance(&cache->key_head, sizeof(struct pcache_cache_kset_onmedia));
drivers/md/dm-pcache/cache_key.c
128
int cache_kset_close(struct pcache_cache *cache, struct pcache_cache_kset *kset)
drivers/md/dm-pcache/cache_key.c
141
spin_lock(&cache->key_head_lock);
drivers/md/dm-pcache/cache_key.c
144
if (cache_seg_remain(&cache->key_head) < kset_onmedia_size + sizeof(struct pcache_cache_kset_onmedia)) {
drivers/md/dm-pcache/cache_key.c
147
next_seg = get_cache_segment(cache);
drivers/md/dm-pcache/cache_key.c
156
append_last_kset(cache, next_seg->cache_seg_id);
drivers/md/dm-pcache/cache_key.c
157
cache->key_head.cache_seg = next_seg;
drivers/md/dm-pcache/cache_key.c
158
cache->key_head.seg_off = 0;
drivers/md/dm-pcache/cache_key.c
166
memcpy_flushcache(get_key_head_addr(cache) + kset_onmedia_size, &pcache_empty_kset,
drivers/md/dm-pcache/cache_key.c
169
memcpy_flushcache(get_key_head_addr(cache), kset_onmedia, kset_onmedia_size);
drivers/md/dm-pcache/cache_key.c
174
cache_pos_advance(&cache->key_head, kset_onmedia_size);
drivers/md/dm-pcache/cache_key.c
178
spin_unlock(&cache->key_head_lock);
drivers/md/dm-pcache/cache_key.c
195
int cache_key_append(struct pcache_cache *cache, struct pcache_cache_key *key, bool force_close)
drivers/md/dm-pcache/cache_key.c
200
u32 kset_id = get_kset_id(cache, key->off);
drivers/md/dm-pcache/cache_key.c
203
kset = get_kset(cache, kset_id);
drivers/md/dm-pcache/cache_key.c
208
cache_key_encode(cache, key_onmedia, key);
drivers/md/dm-pcache/cache_key.c
213
ret = cache_kset_close(cache, kset);
drivers/md/dm-pcache/cache_key.c
220
queue_delayed_work(cache_get_wq(cache), &kset->flush_work, 1 * HZ);
drivers/md/dm-pcache/cache_key.c
577
struct pcache_cache *cache = cache_tree->cache;
drivers/md/dm-pcache/cache_key.c
619
pcache_dev_debug(CACHE_TO_PCACHE(cache), "allocate pre_alloc_key with GFP_NOIO");
drivers/md/dm-pcache/cache_key.c
647
struct pcache_cache *cache = container_of(work, struct pcache_cache, clean_work);
drivers/md/dm-pcache/cache_key.c
653
for (i = 0; i < cache->req_key_tree.n_subtrees; i++) {
drivers/md/dm-pcache/cache_key.c
654
cache_subtree = &cache->req_key_tree.subtrees[i];
drivers/md/dm-pcache/cache_key.c
657
if (pcache_is_stopping(CACHE_TO_PCACHE(cache)))
drivers/md/dm-pcache/cache_key.c
697
struct pcache_cache *cache = kset->cache;
drivers/md/dm-pcache/cache_key.c
700
if (pcache_is_stopping(CACHE_TO_PCACHE(cache)))
drivers/md/dm-pcache/cache_key.c
704
ret = cache_kset_close(cache, kset);
drivers/md/dm-pcache/cache_key.c
709
queue_delayed_work(cache_get_wq(cache), &kset->flush_work, msecs_to_jiffies(100));
drivers/md/dm-pcache/cache_key.c
71
static void cache_key_encode(struct pcache_cache *cache,
drivers/md/dm-pcache/cache_key.c
713
static int kset_replay(struct pcache_cache *cache, struct pcache_cache_kset_onmedia *kset_onmedia)
drivers/md/dm-pcache/cache_key.c
724
key = cache_key_alloc(&cache->req_key_tree, GFP_NOIO);
drivers/md/dm-pcache/cache_key.c
725
ret = cache_key_decode(cache, key_onmedia, key);
drivers/md/dm-pcache/cache_key.c
731
__set_bit(key->cache_pos.cache_seg->cache_seg_id, cache->seg_map);
drivers/md/dm-pcache/cache_key.c
737
cache_subtree = get_subtree(&cache->req_key_tree, key->off);
drivers/md/dm-pcache/cache_key.c
739
cache_key_insert(&cache->req_key_tree, key, true);
drivers/md/dm-pcache/cache_key.c
751
int cache_replay(struct pcache_cache *cache)
drivers/md/dm-pcache/cache_key.c
753
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache_key.c
764
cache_pos_copy(&pos_tail, &cache->key_tail);
drivers/md/dm-pcache/cache_key.c
771
__set_bit(pos->cache_seg->cache_seg_id, cache->seg_map);
drivers/md/dm-pcache/cache_key.c
792
next_seg = &cache->segments[kset_onmedia->next_cache_seg_id];
drivers/md/dm-pcache/cache_key.c
797
__set_bit(pos->cache_seg->cache_seg_id, cache->seg_map);
drivers/md/dm-pcache/cache_key.c
802
ret = kset_replay(cache, kset_onmedia);
drivers/md/dm-pcache/cache_key.c
815
spin_lock(&cache->key_head_lock);
drivers/md/dm-pcache/cache_key.c
816
cache_pos_copy(&cache->key_head, pos);
drivers/md/dm-pcache/cache_key.c
817
spin_unlock(&cache->key_head_lock);
drivers/md/dm-pcache/cache_key.c
823
int cache_tree_init(struct pcache_cache *cache, struct pcache_cache_tree *cache_tree, u32 n_subtrees)
drivers/md/dm-pcache/cache_key.c
828
cache_tree->cache = cache;
drivers/md/dm-pcache/cache_key.c
84
if (cache_data_crc_on(cache))
drivers/md/dm-pcache/cache_key.c
88
int cache_key_decode(struct pcache_cache *cache,
drivers/md/dm-pcache/cache_key.c
92
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache_key.c
97
key->cache_pos.cache_seg = &cache->segments[key_onmedia->cache_seg_id];
drivers/md/dm-pcache/cache_req.c
101
static int cache_copy_to_req_bio(struct pcache_cache *cache, struct pcache_request *pcache_req,
drivers/md/dm-pcache/cache_req.c
13
data_head = get_data_head(cache);
drivers/md/dm-pcache/cache_req.c
137
struct pcache_cache *cache = backing_req->backing_dev->cache;
drivers/md/dm-pcache/cache_req.c
14
next_seg = get_cache_segment(cache);
drivers/md/dm-pcache/cache_req.c
159
ret = cache_data_alloc(cache, key);
drivers/md/dm-pcache/cache_req.c
165
ret = cache_copy_from_req_bio(cache, key, pcache_req, backing_req->req.bio_off);
drivers/md/dm-pcache/cache_req.c
175
ret = cache_key_append(cache, key, false);
drivers/md/dm-pcache/cache_req.c
202
static void submit_cache_miss_req(struct pcache_cache *cache, struct pcache_backing_dev_req *backing_req)
drivers/md/dm-pcache/cache_req.c
209
cache_key_insert(&cache->req_key_tree, key, true);
drivers/md/dm-pcache/cache_req.c
228
static struct pcache_backing_dev_req *cache_miss_req_alloc(struct pcache_cache *cache,
drivers/md/dm-pcache/cache_req.c
232
struct pcache_backing_dev *backing_dev = cache->backing_dev;
drivers/md/dm-pcache/cache_req.c
245
key = cache_key_alloc(&cache->req_key_tree, gfp_mask);
drivers/md/dm-pcache/cache_req.c
259
static void cache_miss_req_init(struct pcache_cache *cache,
drivers/md/dm-pcache/cache_req.c
290
struct pcache_cache *cache = ctx->cache_tree->cache;
drivers/md/dm-pcache/cache_req.c
301
return cache_miss_req_alloc(cache, pcache_req, GFP_NOWAIT);
drivers/md/dm-pcache/cache_req.c
331
struct pcache_cache *cache = ctx->cache_tree->cache;
drivers/md/dm-pcache/cache_req.c
342
cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, key->len, true);
drivers/md/dm-pcache/cache_req.c
36
static int cache_data_alloc(struct pcache_cache *cache, struct pcache_cache_key *key)
drivers/md/dm-pcache/cache_req.c
361
struct pcache_cache *cache = ctx->cache_tree->cache;
drivers/md/dm-pcache/cache_req.c
376
cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, true);
drivers/md/dm-pcache/cache_req.c
393
cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, false);
drivers/md/dm-pcache/cache_req.c
394
submit_cache_miss_req(cache, backing_req);
drivers/md/dm-pcache/cache_req.c
396
ret = cache_copy_to_req_bio(ctx->cache_tree->cache, ctx->pcache_req, ctx->req_done,
drivers/md/dm-pcache/cache_req.c
422
struct pcache_cache *cache = ctx->cache_tree->cache;
drivers/md/dm-pcache/cache_req.c
437
cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, true);
drivers/md/dm-pcache/cache_req.c
454
cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, false);
drivers/md/dm-pcache/cache_req.c
455
submit_cache_miss_req(cache, backing_req);
drivers/md/dm-pcache/cache_req.c
457
ret = cache_copy_to_req_bio(ctx->cache_tree->cache, ctx->pcache_req, ctx->req_done,
drivers/md/dm-pcache/cache_req.c
46
data_head = get_data_head(cache);
drivers/md/dm-pcache/cache_req.c
487
struct pcache_cache *cache = ctx->cache_tree->cache;
drivers/md/dm-pcache/cache_req.c
501
cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, key->len, false);
drivers/md/dm-pcache/cache_req.c
502
submit_cache_miss_req(cache, backing_req);
drivers/md/dm-pcache/cache_req.c
507
ret = cache_copy_to_req_bio(ctx->cache_tree->cache, ctx->pcache_req, ctx->req_done,
drivers/md/dm-pcache/cache_req.c
533
struct pcache_cache *cache = ctx->cache_tree->cache;
drivers/md/dm-pcache/cache_req.c
546
cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, false);
drivers/md/dm-pcache/cache_req.c
547
submit_cache_miss_req(cache, backing_req);
drivers/md/dm-pcache/cache_req.c
552
ret = cache_copy_to_req_bio(ctx->cache_tree->cache, ctx->pcache_req, ctx->req_done,
drivers/md/dm-pcache/cache_req.c
597
struct pcache_cache *cache = ctx->cache_tree->cache;
drivers/md/dm-pcache/cache_req.c
603
submit_cache_miss_req(ctx->cache_tree->cache, backing_req);
drivers/md/dm-pcache/cache_req.c
614
cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, key->len, true);
drivers/md/dm-pcache/cache_req.c
615
submit_cache_miss_req(cache, backing_req);
drivers/md/dm-pcache/cache_req.c
662
static int cache_read(struct pcache_cache *cache, struct pcache_request *pcache_req)
drivers/md/dm-pcache/cache_req.c
675
walk_ctx.cache_tree = &cache->req_key_tree;
drivers/md/dm-pcache/cache_req.c
694
cache_subtree = get_subtree(&cache->req_key_tree, key->off);
drivers/md/dm-pcache/cache_req.c
720
walk_ctx.pre_alloc_req = cache_miss_req_alloc(cache, pcache_req, GFP_NOIO);
drivers/md/dm-pcache/cache_req.c
721
pcache_dev_debug(CACHE_TO_PCACHE(cache), "allocate pre_alloc_req with GFP_NOIO");
drivers/md/dm-pcache/cache_req.c
739
static int cache_write(struct pcache_cache *cache, struct pcache_request *pcache_req)
drivers/md/dm-pcache/cache_req.c
752
key = cache_key_alloc(&cache->req_key_tree, GFP_NOIO);
drivers/md/dm-pcache/cache_req.c
758
ret = cache_data_alloc(cache, key);
drivers/md/dm-pcache/cache_req.c
764
ret = cache_copy_from_req_bio(cache, key, pcache_req, io_done);
drivers/md/dm-pcache/cache_req.c
77
ret = cache_data_head_init(cache);
drivers/md/dm-pcache/cache_req.c
771
cache_subtree = get_subtree(&cache->req_key_tree, key->off);
drivers/md/dm-pcache/cache_req.c
773
cache_key_insert(&cache->req_key_tree, key, true);
drivers/md/dm-pcache/cache_req.c
774
ret = cache_key_append(cache, key, pcache_req->bio->bi_opf & REQ_FUA);
drivers/md/dm-pcache/cache_req.c
8
static int cache_data_head_init(struct pcache_cache *cache)
drivers/md/dm-pcache/cache_req.c
805
int pcache_cache_flush(struct pcache_cache *cache)
drivers/md/dm-pcache/cache_req.c
811
for (i = 0; i < cache->n_ksets; i++) {
drivers/md/dm-pcache/cache_req.c
812
kset = get_kset(cache, i);
drivers/md/dm-pcache/cache_req.c
815
ret = cache_kset_close(cache, kset);
drivers/md/dm-pcache/cache_req.c
825
int pcache_cache_handle_req(struct pcache_cache *cache, struct pcache_request *pcache_req)
drivers/md/dm-pcache/cache_req.c
830
return pcache_cache_flush(cache);
drivers/md/dm-pcache/cache_req.c
833
return cache_read(cache, pcache_req);
drivers/md/dm-pcache/cache_req.c
835
return cache_write(cache, pcache_req);
drivers/md/dm-pcache/cache_req.c
90
static int cache_copy_from_req_bio(struct pcache_cache *cache, struct pcache_cache_key *key,
drivers/md/dm-pcache/cache_segment.c
14
seg_addr = CACHE_DEV_SEGMENT(cache_seg->cache->cache_dev, seg_id);
drivers/md/dm-pcache/cache_segment.c
182
int cache_seg_init(struct pcache_cache *cache, u32 seg_id, u32 cache_seg_id,
drivers/md/dm-pcache/cache_segment.c
185
struct pcache_cache_dev *cache_dev = cache->cache_dev;
drivers/md/dm-pcache/cache_segment.c
186
struct pcache_cache_segment *cache_seg = &cache->segments[cache_seg_id];
drivers/md/dm-pcache/cache_segment.c
191
cache_seg->cache = cache;
drivers/md/dm-pcache/cache_segment.c
239
struct pcache_cache_segment *get_cache_segment(struct pcache_cache *cache)
drivers/md/dm-pcache/cache_segment.c
244
spin_lock(&cache->seg_map_lock);
drivers/md/dm-pcache/cache_segment.c
246
seg_id = find_next_zero_bit(cache->seg_map, cache->n_segs, cache->last_cache_seg);
drivers/md/dm-pcache/cache_segment.c
247
if (seg_id == cache->n_segs) {
drivers/md/dm-pcache/cache_segment.c
249
if (cache->last_cache_seg) {
drivers/md/dm-pcache/cache_segment.c
250
cache->last_cache_seg = 0;
drivers/md/dm-pcache/cache_segment.c
253
cache->cache_full = true;
drivers/md/dm-pcache/cache_segment.c
254
spin_unlock(&cache->seg_map_lock);
drivers/md/dm-pcache/cache_segment.c
262
__set_bit(seg_id, cache->seg_map);
drivers/md/dm-pcache/cache_segment.c
263
cache->last_cache_seg = seg_id;
drivers/md/dm-pcache/cache_segment.c
264
spin_unlock(&cache->seg_map_lock);
drivers/md/dm-pcache/cache_segment.c
266
cache_seg = &cache->segments[seg_id];
drivers/md/dm-pcache/cache_segment.c
288
struct pcache_cache *cache;
drivers/md/dm-pcache/cache_segment.c
290
cache = cache_seg->cache;
drivers/md/dm-pcache/cache_segment.c
293
spin_lock(&cache->seg_map_lock);
drivers/md/dm-pcache/cache_segment.c
294
if (cache->cache_full)
drivers/md/dm-pcache/cache_segment.c
295
cache->cache_full = false;
drivers/md/dm-pcache/cache_segment.c
296
__clear_bit(cache_seg->cache_seg_id, cache->seg_map);
drivers/md/dm-pcache/cache_segment.c
297
spin_unlock(&cache->seg_map_lock);
drivers/md/dm-pcache/cache_segment.c
299
pcache_defer_reqs_kick(CACHE_TO_PCACHE(cache));
drivers/md/dm-pcache/cache_segment.c
301
queue_work(cache_get_wq(cache), &cache->clean_work);
drivers/md/dm-pcache/cache_segment.c
40
struct pcache_cache_dev *cache_dev = cache_seg->cache->cache_dev;
drivers/md/dm-pcache/cache_writeback.c
10
static void writeback_ctx_end(struct pcache_cache *cache, int ret)
drivers/md/dm-pcache/cache_writeback.c
102
static void cache_key_writeback(struct pcache_cache *cache, struct pcache_cache_key *key)
drivers/md/dm-pcache/cache_writeback.c
12
if (ret && !cache->writeback_ctx.ret) {
drivers/md/dm-pcache/cache_writeback.c
124
writeback_req_opts.priv_data = cache;
drivers/md/dm-pcache/cache_writeback.c
13
pcache_dev_err(CACHE_TO_PCACHE(cache), "writeback error: %d", ret);
drivers/md/dm-pcache/cache_writeback.c
131
writeback_req = backing_dev_req_create(cache->backing_dev, &writeback_req_opts);
drivers/md/dm-pcache/cache_writeback.c
133
atomic_inc(&cache->writeback_ctx.pending);
drivers/md/dm-pcache/cache_writeback.c
14
cache->writeback_ctx.ret = ret;
drivers/md/dm-pcache/cache_writeback.c
141
static void cache_wb_tree_writeback(struct pcache_cache *cache, u32 advance)
drivers/md/dm-pcache/cache_writeback.c
143
struct pcache_cache_tree *cache_tree = &cache->writeback_key_tree;
drivers/md/dm-pcache/cache_writeback.c
149
cache->writeback_ctx.ret = 0;
drivers/md/dm-pcache/cache_writeback.c
150
cache->writeback_ctx.advance = advance;
drivers/md/dm-pcache/cache_writeback.c
151
atomic_set(&cache->writeback_ctx.pending, 1);
drivers/md/dm-pcache/cache_writeback.c
161
cache_key_writeback(cache, key);
drivers/md/dm-pcache/cache_writeback.c
165
writeback_ctx_end(cache, 0);
drivers/md/dm-pcache/cache_writeback.c
168
static int cache_kset_insert_tree(struct pcache_cache *cache, struct pcache_cache_kset_onmedia *kset_onmedia)
drivers/md/dm-pcache/cache_writeback.c
17
if (!atomic_dec_and_test(&cache->writeback_ctx.pending))
drivers/md/dm-pcache/cache_writeback.c
180
key = cache_key_alloc(&cache->writeback_key_tree, GFP_NOIO);
drivers/md/dm-pcache/cache_writeback.c
181
ret = cache_key_decode(cache, key_onmedia, key);
drivers/md/dm-pcache/cache_writeback.c
187
cache_subtree = get_subtree(&cache->writeback_key_tree, key->off);
drivers/md/dm-pcache/cache_writeback.c
189
cache_key_insert(&cache->writeback_key_tree, key, true);
drivers/md/dm-pcache/cache_writeback.c
195
cache_tree_clear(&cache->writeback_key_tree);
drivers/md/dm-pcache/cache_writeback.c
199
static void last_kset_writeback(struct pcache_cache *cache,
drivers/md/dm-pcache/cache_writeback.c
20
if (!cache->writeback_ctx.ret) {
drivers/md/dm-pcache/cache_writeback.c
202
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache_writeback.c
207
next_seg = &cache->segments[last_kset_onmedia->next_cache_seg_id];
drivers/md/dm-pcache/cache_writeback.c
209
mutex_lock(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache_writeback.c
21
backing_dev_flush(cache->backing_dev);
drivers/md/dm-pcache/cache_writeback.c
210
cache->dirty_tail.cache_seg = next_seg;
drivers/md/dm-pcache/cache_writeback.c
211
cache->dirty_tail.seg_off = 0;
drivers/md/dm-pcache/cache_writeback.c
212
cache_encode_dirty_tail(cache);
drivers/md/dm-pcache/cache_writeback.c
213
mutex_unlock(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache_writeback.c
218
struct pcache_cache *cache = container_of(work, struct pcache_cache, writeback_work.work);
drivers/md/dm-pcache/cache_writeback.c
219
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache_writeback.c
225
mutex_lock(&cache->writeback_lock);
drivers/md/dm-pcache/cache_writeback.c
226
if (atomic_read(&cache->writeback_ctx.pending))
drivers/md/dm-pcache/cache_writeback.c
23
mutex_lock(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache_writeback.c
232
kset_onmedia = (struct pcache_cache_kset_onmedia *)cache->wb_kset_onmedia_buf;
drivers/md/dm-pcache/cache_writeback.c
234
mutex_lock(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache_writeback.c
235
cache_pos_copy(&dirty_tail, &cache->dirty_tail);
drivers/md/dm-pcache/cache_writeback.c
236
mutex_unlock(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache_writeback.c
238
if (is_cache_clean(cache, &dirty_tail)) {
drivers/md/dm-pcache/cache_writeback.c
24
cache_pos_advance(&cache->dirty_tail, cache->writeback_ctx.advance);
drivers/md/dm-pcache/cache_writeback.c
244
last_kset_writeback(cache, kset_onmedia);
drivers/md/dm-pcache/cache_writeback.c
249
ret = cache_kset_insert_tree(cache, kset_onmedia);
drivers/md/dm-pcache/cache_writeback.c
25
cache_encode_dirty_tail(cache);
drivers/md/dm-pcache/cache_writeback.c
255
cache_wb_tree_writeback(cache, get_kset_onmedia_size(kset_onmedia));
drivers/md/dm-pcache/cache_writeback.c
258
queue_delayed_work(cache_get_wq(cache), &cache->writeback_work, delay);
drivers/md/dm-pcache/cache_writeback.c
26
mutex_unlock(&cache->dirty_tail_lock);
drivers/md/dm-pcache/cache_writeback.c
260
mutex_unlock(&cache->writeback_lock);
drivers/md/dm-pcache/cache_writeback.c
28
queue_delayed_work(cache_get_wq(cache), &cache->writeback_work, 0);
drivers/md/dm-pcache/cache_writeback.c
33
struct pcache_cache *cache = backing_req->priv_data;
drivers/md/dm-pcache/cache_writeback.c
35
mutex_lock(&cache->writeback_lock);
drivers/md/dm-pcache/cache_writeback.c
36
writeback_ctx_end(cache, ret);
drivers/md/dm-pcache/cache_writeback.c
37
mutex_unlock(&cache->writeback_lock);
drivers/md/dm-pcache/cache_writeback.c
40
static inline bool is_cache_clean(struct pcache_cache *cache, struct pcache_cache_pos *dirty_tail)
drivers/md/dm-pcache/cache_writeback.c
42
struct dm_pcache *pcache = CACHE_TO_PCACHE(cache);
drivers/md/dm-pcache/cache_writeback.c
49
kset_onmedia = (struct pcache_cache_kset_onmedia *)cache->wb_kset_onmedia_buf;
drivers/md/dm-pcache/cache_writeback.c
77
void cache_writeback_exit(struct pcache_cache *cache)
drivers/md/dm-pcache/cache_writeback.c
79
cancel_delayed_work_sync(&cache->writeback_work);
drivers/md/dm-pcache/cache_writeback.c
80
backing_dev_flush(cache->backing_dev);
drivers/md/dm-pcache/cache_writeback.c
81
cache_tree_exit(&cache->writeback_key_tree);
drivers/md/dm-pcache/cache_writeback.c
84
int cache_writeback_init(struct pcache_cache *cache)
drivers/md/dm-pcache/cache_writeback.c
88
ret = cache_tree_init(cache, &cache->writeback_key_tree, 1);
drivers/md/dm-pcache/cache_writeback.c
92
atomic_set(&cache->writeback_ctx.pending, 0);
drivers/md/dm-pcache/cache_writeback.c
95
queue_delayed_work(cache_get_wq(cache), &cache->writeback_work, 0);
drivers/md/dm-pcache/dm_pcache.c
14
struct pcache_cache *cache = &pcache->cache;
drivers/md/dm-pcache/dm_pcache.c
16
spin_lock(&cache->seg_map_lock);
drivers/md/dm-pcache/dm_pcache.c
17
if (!cache->cache_full)
drivers/md/dm-pcache/dm_pcache.c
19
spin_unlock(&cache->seg_map_lock);
drivers/md/dm-pcache/dm_pcache.c
383
ret = pcache_cache_handle_req(&pcache->cache, pcache_req);
drivers/md/dm-pcache/dm_pcache.c
399
struct pcache_cache *cache = &pcache->cache;
drivers/md/dm-pcache/dm_pcache.c
407
cache->n_segs,
drivers/md/dm-pcache/dm_pcache.c
408
bitmap_weight(cache->seg_map, cache->n_segs),
drivers/md/dm-pcache/dm_pcache.c
409
pcache_cache_get_gc_percent(cache),
drivers/md/dm-pcache/dm_pcache.c
410
cache->cache_info.flags,
drivers/md/dm-pcache/dm_pcache.c
411
cache->key_head.cache_seg->cache_seg_id,
drivers/md/dm-pcache/dm_pcache.c
412
cache->key_head.seg_off,
drivers/md/dm-pcache/dm_pcache.c
413
cache->dirty_tail.cache_seg->cache_seg_id,
drivers/md/dm-pcache/dm_pcache.c
414
cache->dirty_tail.seg_off,
drivers/md/dm-pcache/dm_pcache.c
415
cache->key_tail.cache_seg->cache_seg_id,
drivers/md/dm-pcache/dm_pcache.c
416
cache->key_tail.seg_off);
drivers/md/dm-pcache/dm_pcache.c
422
cache_data_crc_on(cache) ? "true" : "false");
drivers/md/dm-pcache/dm_pcache.c
443
return pcache_cache_set_gc_percent(&pcache->cache, val);
drivers/md/dm-pcache/dm_pcache.c
53
ret = pcache_cache_handle_req(&pcache->cache, pcache_req);
drivers/md/dm-pcache/dm_pcache.h
10
#define CACHE_TO_PCACHE(cache) (container_of(cache, struct dm_pcache, cache))
drivers/md/dm-pcache/dm_pcache.h
23
struct pcache_cache cache;
drivers/md/dm-vdo/block-map.c
1010
assert_on_cache_thread(info->cache, __func__);
drivers/md/dm-vdo/block-map.c
1011
info->cache->outstanding_writes--;
drivers/md/dm-vdo/block-map.c
1025
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
1037
ADD_ONCE(cache->stats.failed_writes, 1);
drivers/md/dm-vdo/block-map.c
1038
set_persistent_error(cache, "cannot write page", result);
drivers/md/dm-vdo/block-map.c
1041
discard_page_if_needed(cache);
drivers/md/dm-vdo/block-map.c
1043
check_for_drain_complete(cache->zone);
drivers/md/dm-vdo/block-map.c
1053
continue_vio_after_io(vio, page_is_written_out, info->cache->zone->thread_id);
drivers/md/dm-vdo/block-map.c
1065
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
1078
vdo_release_recovery_journal_block_reference(cache->zone->block_map->journal,
drivers/md/dm-vdo/block-map.c
1081
cache->zone->zone_number);
drivers/md/dm-vdo/block-map.c
1089
ADD_ONCE(cache->stats.reclaimed, reclamations);
drivers/md/dm-vdo/block-map.c
1092
cache->discard_count--;
drivers/md/dm-vdo/block-map.c
1095
discard_page_if_needed(cache);
drivers/md/dm-vdo/block-map.c
1099
check_for_drain_complete(cache->zone);
drivers/md/dm-vdo/block-map.c
1111
struct vdo_page_cache *cache = ((struct page_info *) flush_completion->parent)->cache;
drivers/md/dm-vdo/block-map.c
1118
bool has_unflushed_pages = (cache->pages_to_flush > 0);
drivers/md/dm-vdo/block-map.c
1119
page_count_t pages_in_flush = cache->pages_in_flush;
drivers/md/dm-vdo/block-map.c
1121
cache->pages_in_flush = 0;
drivers/md/dm-vdo/block-map.c
1124
list_first_entry(&cache->outgoing_list, struct page_info,
drivers/md/dm-vdo/block-map.c
1128
if (vdo_is_read_only(info->cache->vdo)) {
drivers/md/dm-vdo/block-map.c
1137
ADD_ONCE(info->cache->stats.pages_saved, 1);
drivers/md/dm-vdo/block-map.c
1147
save_pages(cache);
drivers/md/dm-vdo/block-map.c
1163
struct vdo_page_cache *cache;
drivers/md/dm-vdo/block-map.c
1177
cache = page_completion->cache;
drivers/md/dm-vdo/block-map.c
1178
assert_on_cache_thread(cache, __func__);
drivers/md/dm-vdo/block-map.c
1190
discard_page_if_needed(cache);
drivers/md/dm-vdo/block-map.c
1228
struct vdo_page_cache *cache = &zone->page_cache;
drivers/md/dm-vdo/block-map.c
1232
assert_on_cache_thread(cache, __func__);
drivers/md/dm-vdo/block-map.c
1239
.cache = cache,
drivers/md/dm-vdo/block-map.c
1242
vdo_initialize_completion(completion, cache->vdo, VDO_PAGE_COMPLETION);
drivers/md/dm-vdo/block-map.c
1244
cache->zone->thread_id, parent);
drivers/md/dm-vdo/block-map.c
1247
if (page_completion->writable && vdo_is_read_only(cache->vdo)) {
drivers/md/dm-vdo/block-map.c
1253
ADD_ONCE(cache->stats.write_count, 1);
drivers/md/dm-vdo/block-map.c
1255
ADD_ONCE(cache->stats.read_count, 1);
drivers/md/dm-vdo/block-map.c
1257
info = find_page(cache, page_completion->pbn);
drivers/md/dm-vdo/block-map.c
1264
ADD_ONCE(cache->stats.wait_for_page, 1);
drivers/md/dm-vdo/block-map.c
1271
ADD_ONCE(cache->stats.found_in_cache, 1);
drivers/md/dm-vdo/block-map.c
1273
ADD_ONCE(cache->stats.read_outgoing, 1);
drivers/md/dm-vdo/block-map.c
1285
info = find_free_page(cache);
drivers/md/dm-vdo/block-map.c
1287
ADD_ONCE(cache->stats.fetch_required, 1);
drivers/md/dm-vdo/block-map.c
1293
ADD_ONCE(cache->stats.discard_required, 1);
drivers/md/dm-vdo/block-map.c
1343
int vdo_invalidate_page_cache(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
1347
assert_on_cache_thread(cache, __func__);
drivers/md/dm-vdo/block-map.c
1350
for (info = cache->infos; info < cache->infos + cache->page_count; info++) {
drivers/md/dm-vdo/block-map.c
1358
vdo_int_map_free(vdo_forget(cache->page_map));
drivers/md/dm-vdo/block-map.c
1359
return vdo_int_map_create(cache->page_count, &cache->page_map);
drivers/md/dm-vdo/block-map.c
158
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
160
return &cache->pages[(info - cache->infos) * VDO_BLOCK_SIZE];
drivers/md/dm-vdo/block-map.c
181
static int initialize_info(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
185
INIT_LIST_HEAD(&cache->free_list);
drivers/md/dm-vdo/block-map.c
186
for (info = cache->infos; info < cache->infos + cache->page_count; info++) {
drivers/md/dm-vdo/block-map.c
189
info->cache = cache;
drivers/md/dm-vdo/block-map.c
193
result = create_metadata_vio(cache->vdo, VIO_TYPE_BLOCK_MAP,
drivers/md/dm-vdo/block-map.c
200
info->vio->completion.callback_thread_id = cache->zone->thread_id;
drivers/md/dm-vdo/block-map.c
203
list_add_tail(&info->state_entry, &cache->free_list);
drivers/md/dm-vdo/block-map.c
219
static int __must_check allocate_cache_components(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
221
u64 size = cache->page_count * (u64) VDO_BLOCK_SIZE;
drivers/md/dm-vdo/block-map.c
224
result = vdo_allocate(cache->page_count, struct page_info, "page infos",
drivers/md/dm-vdo/block-map.c
225
&cache->infos);
drivers/md/dm-vdo/block-map.c
229
result = vdo_allocate_memory(size, VDO_BLOCK_SIZE, "cache pages", &cache->pages);
drivers/md/dm-vdo/block-map.c
233
result = vdo_int_map_create(cache->page_count, &cache->page_map);
drivers/md/dm-vdo/block-map.c
237
return initialize_info(cache);
drivers/md/dm-vdo/block-map.c
246
static inline void assert_on_cache_thread(struct vdo_page_cache *cache,
drivers/md/dm-vdo/block-map.c
251
VDO_ASSERT_LOG_ONLY((thread_id == cache->zone->thread_id),
drivers/md/dm-vdo/block-map.c
253
function_name, cache->zone->thread_id, thread_id);
drivers/md/dm-vdo/block-map.c
257
static inline void assert_io_allowed(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
259
VDO_ASSERT_LOG_ONLY(!vdo_is_state_quiescent(&cache->zone->state),
drivers/md/dm-vdo/block-map.c
264
static void report_cache_pressure(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
266
ADD_ONCE(cache->stats.cache_pressure, 1);
drivers/md/dm-vdo/block-map.c
267
if (cache->waiter_count > cache->page_count) {
drivers/md/dm-vdo/block-map.c
268
if ((cache->pressure_report % LOG_INTERVAL) == 0)
drivers/md/dm-vdo/block-map.c
269
vdo_log_info("page cache pressure %u", cache->stats.cache_pressure);
drivers/md/dm-vdo/block-map.c
271
if (++cache->pressure_report >= DISPLAY_INTERVAL)
drivers/md/dm-vdo/block-map.c
272
cache->pressure_report = 0;
drivers/md/dm-vdo/block-map.c
2852
struct vdo_page_cache *cache = &zone->page_cache;
drivers/md/dm-vdo/block-map.c
2857
if (cache->infos != NULL) {
drivers/md/dm-vdo/block-map.c
2860
for (info = cache->infos; info < cache->infos + cache->page_count; info++)
drivers/md/dm-vdo/block-map.c
2864
vdo_int_map_free(vdo_forget(cache->page_map));
drivers/md/dm-vdo/block-map.c
2865
vdo_free(vdo_forget(cache->infos));
drivers/md/dm-vdo/block-map.c
2866
vdo_free(vdo_forget(cache->pages));
drivers/md/dm-vdo/block-map.c
308
struct block_map_statistics *stats = &info->cache->stats;
drivers/md/dm-vdo/block-map.c
3290
add_to_dirty_lists(info->cache->zone, &info->state_entry,
drivers/md/dm-vdo/block-map.c
343
if (info->cache->lru_list.prev != &info->lru_entry)
drivers/md/dm-vdo/block-map.c
344
list_move_tail(&info->lru_entry, &info->cache->lru_list);
drivers/md/dm-vdo/block-map.c
365
list_move_tail(&info->state_entry, &info->cache->free_list);
drivers/md/dm-vdo/block-map.c
369
list_move_tail(&info->state_entry, &info->cache->outgoing_list);
drivers/md/dm-vdo/block-map.c
383
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
392
vdo_int_map_remove(cache->page_map, info->pbn);
drivers/md/dm-vdo/block-map.c
397
result = vdo_int_map_put(cache->page_map, pbn, info, true, NULL);
drivers/md/dm-vdo/block-map.c
430
static struct page_info * __must_check find_free_page(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
434
info = list_first_entry_or_null(&cache->free_list, struct page_info,
drivers/md/dm-vdo/block-map.c
449
static struct page_info * __must_check find_page(struct vdo_page_cache *cache,
drivers/md/dm-vdo/block-map.c
452
if ((cache->last_found != NULL) && (cache->last_found->pbn == pbn))
drivers/md/dm-vdo/block-map.c
453
return cache->last_found;
drivers/md/dm-vdo/block-map.c
455
cache->last_found = vdo_int_map_get(cache->page_map, pbn);
drivers/md/dm-vdo/block-map.c
456
return cache->last_found;
drivers/md/dm-vdo/block-map.c
470
static struct page_info * __must_check select_lru_page(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
474
list_for_each_entry(info, &cache->lru_list, lru_entry)
drivers/md/dm-vdo/block-map.c
570
static void set_persistent_error(struct vdo_page_cache *cache, const char *context,
drivers/md/dm-vdo/block-map.c
575
struct vdo *vdo = cache->vdo;
drivers/md/dm-vdo/block-map.c
583
assert_on_cache_thread(cache, __func__);
drivers/md/dm-vdo/block-map.c
585
vdo_waitq_notify_all_waiters(&cache->free_waiters,
drivers/md/dm-vdo/block-map.c
587
cache->waiter_count = 0;
drivers/md/dm-vdo/block-map.c
589
for (info = cache->infos; info < cache->infos + cache->page_count; info++) {
drivers/md/dm-vdo/block-map.c
672
enter_zone_read_only_mode(completion->info->cache->zone, result);
drivers/md/dm-vdo/block-map.c
684
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
686
assert_on_cache_thread(cache, __func__);
drivers/md/dm-vdo/block-map.c
688
vdo_enter_read_only_mode(cache->zone->block_map->vdo, result);
drivers/md/dm-vdo/block-map.c
689
ADD_ONCE(cache->stats.failed_reads, 1);
drivers/md/dm-vdo/block-map.c
698
cache->outstanding_reads--;
drivers/md/dm-vdo/block-map.c
699
check_for_drain_complete(cache->zone);
drivers/md/dm-vdo/block-map.c
709
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
710
nonce_t nonce = info->cache->zone->block_map->nonce;
drivers/md/dm-vdo/block-map.c
714
assert_on_cache_thread(cache, __func__);
drivers/md/dm-vdo/block-map.c
740
cache->outstanding_reads--;
drivers/md/dm-vdo/block-map.c
741
check_for_drain_complete(cache->zone);
drivers/md/dm-vdo/block-map.c
751
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
753
assert_on_cache_thread(cache, __func__);
drivers/md/dm-vdo/block-map.c
760
ADD_ONCE(cache->stats.failed_reads, 1);
drivers/md/dm-vdo/block-map.c
771
continue_vio_after_io(vio, page_is_loaded, info->cache->zone->thread_id);
drivers/md/dm-vdo/block-map.c
786
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
788
assert_io_allowed(cache);
drivers/md/dm-vdo/block-map.c
799
cache->outstanding_reads++;
drivers/md/dm-vdo/block-map.c
800
ADD_ONCE(cache->stats.pages_loaded, 1);
drivers/md/dm-vdo/block-map.c
801
callback = (cache->rebuilding ? handle_rebuild_read_error : handle_load_error);
drivers/md/dm-vdo/block-map.c
815
set_persistent_error(info->cache, "flush failed", completion->result);
drivers/md/dm-vdo/block-map.c
824
continue_vio_after_io(vio, write_pages, info->cache->zone->thread_id);
drivers/md/dm-vdo/block-map.c
828
static void save_pages(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
833
if ((cache->pages_in_flush > 0) || (cache->pages_to_flush == 0))
drivers/md/dm-vdo/block-map.c
836
assert_io_allowed(cache);
drivers/md/dm-vdo/block-map.c
838
info = list_first_entry(&cache->outgoing_list, struct page_info, state_entry);
drivers/md/dm-vdo/block-map.c
840
cache->pages_in_flush = cache->pages_to_flush;
drivers/md/dm-vdo/block-map.c
841
cache->pages_to_flush = 0;
drivers/md/dm-vdo/block-map.c
842
ADD_ONCE(cache->stats.flush_count, 1);
drivers/md/dm-vdo/block-map.c
867
info->cache->pages_to_flush++;
drivers/md/dm-vdo/block-map.c
868
info->cache->outstanding_writes++;
drivers/md/dm-vdo/block-map.c
880
save_pages(info->cache);
drivers/md/dm-vdo/block-map.c
910
struct vdo_page_cache *cache = info->cache;
drivers/md/dm-vdo/block-map.c
912
assert_on_cache_thread(cache, __func__);
drivers/md/dm-vdo/block-map.c
914
if (!vdo_waitq_has_waiters(&cache->free_waiters)) {
drivers/md/dm-vdo/block-map.c
915
if (cache->stats.cache_pressure > 0) {
drivers/md/dm-vdo/block-map.c
917
WRITE_ONCE(cache->stats.cache_pressure, 0);
drivers/md/dm-vdo/block-map.c
925
set_persistent_error(cache, "cannot reset page info", result);
drivers/md/dm-vdo/block-map.c
929
oldest_waiter = vdo_waitq_get_first_waiter(&cache->free_waiters);
drivers/md/dm-vdo/block-map.c
936
vdo_waitq_dequeue_matching_waiters(&cache->free_waiters, completion_needs_page,
drivers/md/dm-vdo/block-map.c
938
cache->waiter_count -= vdo_waitq_num_waiters(&info->waiting);
drivers/md/dm-vdo/block-map.c
958
static void discard_a_page(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
960
struct page_info *info = select_lru_page(cache);
drivers/md/dm-vdo/block-map.c
963
report_cache_pressure(cache);
drivers/md/dm-vdo/block-map.c
975
cache->discard_count++;
drivers/md/dm-vdo/block-map.c
982
struct vdo_page_cache *cache = vdo_page_comp->cache;
drivers/md/dm-vdo/block-map.c
984
cache->waiter_count++;
drivers/md/dm-vdo/block-map.c
985
vdo_waitq_enqueue_waiter(&cache->free_waiters, &vdo_page_comp->waiter);
drivers/md/dm-vdo/block-map.c
986
discard_a_page(cache);
drivers/md/dm-vdo/block-map.c
994
static void discard_page_if_needed(struct vdo_page_cache *cache)
drivers/md/dm-vdo/block-map.c
996
if (cache->waiter_count > cache->discard_count)
drivers/md/dm-vdo/block-map.c
997
discard_a_page(cache);
drivers/md/dm-vdo/block-map.h
137
struct vdo_page_cache *cache;
drivers/md/dm-vdo/block-map.h
169
struct vdo_page_cache *cache;
drivers/md/dm-vdo/block-map.h
311
int __must_check vdo_invalidate_page_cache(struct vdo_page_cache *cache);
drivers/md/dm-vdo/indexer/sparse-cache.c
234
static int __must_check make_search_list(struct sparse_cache *cache,
drivers/md/dm-vdo/indexer/sparse-cache.c
243
(cache->capacity * sizeof(struct cached_chapter_index *)));
drivers/md/dm-vdo/indexer/sparse-cache.c
248
list->capacity = cache->capacity;
drivers/md/dm-vdo/indexer/sparse-cache.c
252
list->entries[i] = &cache->chapters[i];
drivers/md/dm-vdo/indexer/sparse-cache.c
263
struct sparse_cache *cache;
drivers/md/dm-vdo/indexer/sparse-cache.c
267
result = vdo_allocate_cache_aligned(bytes, "sparse cache", &cache);
drivers/md/dm-vdo/indexer/sparse-cache.c
271
cache->geometry = geometry;
drivers/md/dm-vdo/indexer/sparse-cache.c
272
cache->capacity = capacity;
drivers/md/dm-vdo/indexer/sparse-cache.c
273
cache->zone_count = zone_count;
drivers/md/dm-vdo/indexer/sparse-cache.c
279
cache->skip_threshold = (SKIP_SEARCH_THRESHOLD / zone_count);
drivers/md/dm-vdo/indexer/sparse-cache.c
281
initialize_threads_barrier(&cache->begin_update_barrier, zone_count);
drivers/md/dm-vdo/indexer/sparse-cache.c
282
initialize_threads_barrier(&cache->end_update_barrier, zone_count);
drivers/md/dm-vdo/indexer/sparse-cache.c
285
result = initialize_cached_chapter_index(&cache->chapters[i], geometry);
drivers/md/dm-vdo/indexer/sparse-cache.c
291
result = make_search_list(cache, &cache->search_lists[i]);
drivers/md/dm-vdo/indexer/sparse-cache.c
298
"scratch entries", &cache->scratch_entries);
drivers/md/dm-vdo/indexer/sparse-cache.c
302
*cache_ptr = cache;
drivers/md/dm-vdo/indexer/sparse-cache.c
305
uds_free_sparse_cache(cache);
drivers/md/dm-vdo/indexer/sparse-cache.c
323
static void score_search_miss(struct sparse_cache *cache,
drivers/md/dm-vdo/indexer/sparse-cache.c
327
if (chapter->counters.consecutive_misses > cache->skip_threshold)
drivers/md/dm-vdo/indexer/sparse-cache.c
345
void uds_free_sparse_cache(struct sparse_cache *cache)
drivers/md/dm-vdo/indexer/sparse-cache.c
349
if (cache == NULL)
drivers/md/dm-vdo/indexer/sparse-cache.c
352
vdo_free(cache->scratch_entries);
drivers/md/dm-vdo/indexer/sparse-cache.c
354
for (i = 0; i < cache->zone_count; i++)
drivers/md/dm-vdo/indexer/sparse-cache.c
355
vdo_free(cache->search_lists[i]);
drivers/md/dm-vdo/indexer/sparse-cache.c
357
for (i = 0; i < cache->capacity; i++) {
drivers/md/dm-vdo/indexer/sparse-cache.c
358
release_cached_chapter_index(&cache->chapters[i]);
drivers/md/dm-vdo/indexer/sparse-cache.c
359
vdo_free(cache->chapters[i].index_pages);
drivers/md/dm-vdo/indexer/sparse-cache.c
360
vdo_free(cache->chapters[i].page_buffers);
drivers/md/dm-vdo/indexer/sparse-cache.c
363
vdo_free(cache);
drivers/md/dm-vdo/indexer/sparse-cache.c
389
bool uds_sparse_cache_contains(struct sparse_cache *cache, u64 virtual_chapter,
drivers/md/dm-vdo/indexer/sparse-cache.c
403
search_list = cache->search_lists[zone_number];
drivers/md/dm-vdo/indexer/sparse-cache.c
425
struct sparse_cache *cache, u64 oldest_virtual_chapter)
drivers/md/dm-vdo/indexer/sparse-cache.c
437
skipped = &cache->scratch_entries[0];
drivers/md/dm-vdo/indexer/sparse-cache.c
438
dead = &cache->scratch_entries[search_list->capacity];
drivers/md/dm-vdo/indexer/sparse-cache.c
496
struct sparse_cache *cache = index->volume->sparse_cache;
drivers/md/dm-vdo/indexer/sparse-cache.c
498
if (uds_sparse_cache_contains(cache, virtual_chapter, zone->id))
drivers/md/dm-vdo/indexer/sparse-cache.c
505
enter_threads_barrier(&cache->begin_update_barrier);
drivers/md/dm-vdo/indexer/sparse-cache.c
516
struct search_list *list = cache->search_lists[ZONE_ZERO];
drivers/md/dm-vdo/indexer/sparse-cache.c
518
purge_search_list(list, cache, zone->oldest_virtual_chapter);
drivers/md/dm-vdo/indexer/sparse-cache.c
526
for (z = 1; z < cache->zone_count; z++)
drivers/md/dm-vdo/indexer/sparse-cache.c
527
copy_search_list(list, cache->search_lists[z]);
drivers/md/dm-vdo/indexer/sparse-cache.c
533
enter_threads_barrier(&cache->end_update_barrier);
drivers/md/dm-vdo/indexer/sparse-cache.c
537
void uds_invalidate_sparse_cache(struct sparse_cache *cache)
drivers/md/dm-vdo/indexer/sparse-cache.c
541
for (i = 0; i < cache->capacity; i++)
drivers/md/dm-vdo/indexer/sparse-cache.c
542
release_cached_chapter_index(&cache->chapters[i]);
drivers/md/dm-vdo/indexer/sparse-cache.c
580
struct sparse_cache *cache = volume->sparse_cache;
drivers/md/dm-vdo/indexer/sparse-cache.c
588
search_list = cache->search_lists[zone->id];
drivers/md/dm-vdo/indexer/sparse-cache.c
596
result = search_cached_chapter_index(chapter, cache->geometry,
drivers/md/dm-vdo/indexer/sparse-cache.c
617
score_search_miss(cache, chapter);
drivers/md/dm-vdo/indexer/sparse-cache.h
33
void uds_free_sparse_cache(struct sparse_cache *cache);
drivers/md/dm-vdo/indexer/sparse-cache.h
35
bool uds_sparse_cache_contains(struct sparse_cache *cache, u64 virtual_chapter,
drivers/md/dm-vdo/indexer/sparse-cache.h
40
void uds_invalidate_sparse_cache(struct sparse_cache *cache);
drivers/md/dm-vdo/indexer/volume.c
1032
static void invalidate_page(struct page_cache *cache, u32 physical_page)
drivers/md/dm-vdo/indexer/volume.c
1038
get_page_and_index(cache, physical_page, &queue_index, &page);
drivers/md/dm-vdo/indexer/volume.c
1040
WRITE_ONCE(cache->index[page->physical_page], cache->cache_slots);
drivers/md/dm-vdo/indexer/volume.c
1041
wait_for_pending_searches(cache, page->physical_page);
drivers/md/dm-vdo/indexer/volume.c
1042
clear_cache_page(cache, page);
drivers/md/dm-vdo/indexer/volume.c
1045
cache->read_queue[queue_index].invalid = true;
drivers/md/dm-vdo/indexer/volume.c
107
static inline union invalidate_counter get_invalidate_counter(struct page_cache *cache,
drivers/md/dm-vdo/indexer/volume.c
111
.value = READ_ONCE(cache->search_pending_counters[zone_number].atomic_value),
drivers/md/dm-vdo/indexer/volume.c
115
static inline void set_invalidate_counter(struct page_cache *cache,
drivers/md/dm-vdo/indexer/volume.c
119
WRITE_ONCE(cache->search_pending_counters[zone_number].atomic_value,
drivers/md/dm-vdo/indexer/volume.c
129
static void begin_pending_search(struct page_cache *cache, u32 physical_page,
drivers/md/dm-vdo/indexer/volume.c
133
get_invalidate_counter(cache, zone_number);
drivers/md/dm-vdo/indexer/volume.c
137
set_invalidate_counter(cache, zone_number, invalidate_counter);
drivers/md/dm-vdo/indexer/volume.c
1483
clear_cache_page(&volume->page_cache, &volume->page_cache.cache[i]);
drivers/md/dm-vdo/indexer/volume.c
149
static void end_pending_search(struct page_cache *cache, unsigned int zone_number)
drivers/md/dm-vdo/indexer/volume.c
1493
static int __must_check initialize_page_cache(struct page_cache *cache,
drivers/md/dm-vdo/indexer/volume.c
1501
cache->indexable_pages = geometry->pages_per_volume + 1;
drivers/md/dm-vdo/indexer/volume.c
1502
cache->cache_slots = chapters_in_cache * geometry->record_pages_per_chapter;
drivers/md/dm-vdo/indexer/volume.c
1503
cache->zone_count = zone_count;
drivers/md/dm-vdo/indexer/volume.c
1504
atomic64_set(&cache->clock, 1);
drivers/md/dm-vdo/indexer/volume.c
1506
result = VDO_ASSERT((cache->cache_slots <= VOLUME_CACHE_MAX_ENTRIES),
drivers/md/dm-vdo/indexer/volume.c
1508
cache->cache_slots, VOLUME_CACHE_MAX_ENTRIES);
drivers/md/dm-vdo/indexer/volume.c
1513
"volume read queue", &cache->read_queue);
drivers/md/dm-vdo/indexer/volume.c
1517
result = vdo_allocate(cache->zone_count, struct search_pending_counter,
drivers/md/dm-vdo/indexer/volume.c
1518
"Volume Cache Zones", &cache->search_pending_counters);
drivers/md/dm-vdo/indexer/volume.c
1522
result = vdo_allocate(cache->indexable_pages, u16, "page cache index",
drivers/md/dm-vdo/indexer/volume.c
1523
&cache->index);
drivers/md/dm-vdo/indexer/volume.c
1527
result = vdo_allocate(cache->cache_slots, struct cached_page, "page cache cache",
drivers/md/dm-vdo/indexer/volume.c
1528
&cache->cache);
drivers/md/dm-vdo/indexer/volume.c
1533
for (i = 0; i < cache->indexable_pages; i++)
drivers/md/dm-vdo/indexer/volume.c
1534
cache->index[i] = cache->cache_slots;
drivers/md/dm-vdo/indexer/volume.c
1536
for (i = 0; i < cache->cache_slots; i++)
drivers/md/dm-vdo/indexer/volume.c
1537
clear_cache_page(cache, &cache->cache[i]);
drivers/md/dm-vdo/indexer/volume.c
160
invalidate_counter = get_invalidate_counter(cache, zone_number);
drivers/md/dm-vdo/indexer/volume.c
164
set_invalidate_counter(cache, zone_number, invalidate_counter);
drivers/md/dm-vdo/indexer/volume.c
1651
static void uninitialize_page_cache(struct page_cache *cache)
drivers/md/dm-vdo/indexer/volume.c
1655
if (cache->cache != NULL) {
drivers/md/dm-vdo/indexer/volume.c
1656
for (i = 0; i < cache->cache_slots; i++)
drivers/md/dm-vdo/indexer/volume.c
1657
release_page_buffer(&cache->cache[i]);
drivers/md/dm-vdo/indexer/volume.c
1659
vdo_free(cache->index);
drivers/md/dm-vdo/indexer/volume.c
1660
vdo_free(cache->cache);
drivers/md/dm-vdo/indexer/volume.c
1661
vdo_free(cache->search_pending_counters);
drivers/md/dm-vdo/indexer/volume.c
1662
vdo_free(cache->read_queue);
drivers/md/dm-vdo/indexer/volume.c
167
static void wait_for_pending_searches(struct page_cache *cache, u32 physical_page)
drivers/md/dm-vdo/indexer/volume.c
180
for (i = 0; i < cache->zone_count; i++)
drivers/md/dm-vdo/indexer/volume.c
181
initial_counters[i] = get_invalidate_counter(cache, i);
drivers/md/dm-vdo/indexer/volume.c
182
for (i = 0; i < cache->zone_count; i++) {
drivers/md/dm-vdo/indexer/volume.c
192
get_invalidate_counter(cache, i).value)
drivers/md/dm-vdo/indexer/volume.c
204
static void clear_cache_page(struct page_cache *cache, struct cached_page *page)
drivers/md/dm-vdo/indexer/volume.c
208
page->physical_page = cache->indexable_pages;
drivers/md/dm-vdo/indexer/volume.c
212
static void make_page_most_recent(struct page_cache *cache, struct cached_page *page)
drivers/md/dm-vdo/indexer/volume.c
218
if (atomic64_read(&cache->clock) != READ_ONCE(page->last_used))
drivers/md/dm-vdo/indexer/volume.c
219
WRITE_ONCE(page->last_used, atomic64_inc_return(&cache->clock));
drivers/md/dm-vdo/indexer/volume.c
223
static struct cached_page *select_victim_in_cache(struct page_cache *cache)
drivers/md/dm-vdo/indexer/volume.c
232
for (i = 0; i < cache->cache_slots; i++) {
drivers/md/dm-vdo/indexer/volume.c
234
if (cache->cache[i].read_pending)
drivers/md/dm-vdo/indexer/volume.c
237
last_used = READ_ONCE(cache->cache[i].last_used);
drivers/md/dm-vdo/indexer/volume.c
244
page = &cache->cache[oldest_index];
drivers/md/dm-vdo/indexer/volume.c
245
if (page->physical_page != cache->indexable_pages) {
drivers/md/dm-vdo/indexer/volume.c
246
WRITE_ONCE(cache->index[page->physical_page], cache->cache_slots);
drivers/md/dm-vdo/indexer/volume.c
247
wait_for_pending_searches(cache, page->physical_page);
drivers/md/dm-vdo/indexer/volume.c
251
clear_cache_page(cache, page);
drivers/md/dm-vdo/indexer/volume.c
256
static int put_page_in_cache(struct page_cache *cache, u32 physical_page,
drivers/md/dm-vdo/indexer/volume.c
267
make_page_most_recent(cache, page);
drivers/md/dm-vdo/indexer/volume.c
278
WRITE_ONCE(cache->index[physical_page], page - cache->cache);
drivers/md/dm-vdo/indexer/volume.c
282
static void cancel_page_in_cache(struct page_cache *cache, u32 physical_page,
drivers/md/dm-vdo/indexer/volume.c
292
clear_cache_page(cache, page);
drivers/md/dm-vdo/indexer/volume.c
296
WRITE_ONCE(cache->index[physical_page], cache->cache_slots);
drivers/md/dm-vdo/indexer/volume.c
309
static inline bool read_queue_is_full(struct page_cache *cache)
drivers/md/dm-vdo/indexer/volume.c
311
return cache->read_queue_first == next_queue_position(cache->read_queue_last);
drivers/md/dm-vdo/indexer/volume.c
314
static bool enqueue_read(struct page_cache *cache, struct uds_request *request,
drivers/md/dm-vdo/indexer/volume.c
318
u16 last = cache->read_queue_last;
drivers/md/dm-vdo/indexer/volume.c
322
if ((cache->index[physical_page] & VOLUME_CACHE_QUEUED_FLAG) == 0) {
drivers/md/dm-vdo/indexer/volume.c
324
if (read_queue_is_full(cache))
drivers/md/dm-vdo/indexer/volume.c
328
cache->read_queue[last].physical_page = physical_page;
drivers/md/dm-vdo/indexer/volume.c
329
cache->read_queue[last].invalid = false;
drivers/md/dm-vdo/indexer/volume.c
330
cache->read_queue[last].first_request = NULL;
drivers/md/dm-vdo/indexer/volume.c
331
cache->read_queue[last].last_request = NULL;
drivers/md/dm-vdo/indexer/volume.c
335
WRITE_ONCE(cache->index[physical_page],
drivers/md/dm-vdo/indexer/volume.c
338
advance_queue_position(&cache->read_queue_last);
drivers/md/dm-vdo/indexer/volume.c
341
read_queue_index = cache->index[physical_page] & ~VOLUME_CACHE_QUEUED_FLAG;
drivers/md/dm-vdo/indexer/volume.c
345
queue_entry = &cache->read_queue[read_queue_index];
drivers/md/dm-vdo/indexer/volume.c
372
static struct queued_read *reserve_read_queue_entry(struct page_cache *cache)
drivers/md/dm-vdo/indexer/volume.c
380
if (cache->read_queue_next_read == cache->read_queue_last)
drivers/md/dm-vdo/indexer/volume.c
383
entry = &cache->read_queue[cache->read_queue_next_read];
drivers/md/dm-vdo/indexer/volume.c
384
index_value = cache->index[entry->physical_page];
drivers/md/dm-vdo/indexer/volume.c
388
WRITE_ONCE(cache->index[entry->physical_page], cache->cache_slots);
drivers/md/dm-vdo/indexer/volume.c
398
advance_queue_position(&cache->read_queue_next_read);
drivers/md/dm-vdo/indexer/volume.c
602
struct page_cache *cache = &volume->page_cache;
drivers/md/dm-vdo/indexer/volume.c
603
u16 next_read = cache->read_queue_next_read;
drivers/md/dm-vdo/indexer/volume.c
617
while ((cache->read_queue_first != next_read) &&
drivers/md/dm-vdo/indexer/volume.c
618
(!cache->read_queue[cache->read_queue_first].reserved))
drivers/md/dm-vdo/indexer/volume.c
619
advance_queue_position(&cache->read_queue_first);
drivers/md/dm-vdo/indexer/volume.c
644
static void get_page_and_index(struct page_cache *cache, u32 physical_page,
drivers/md/dm-vdo/indexer/volume.c
662
index_value = READ_ONCE(cache->index[physical_page]);
drivers/md/dm-vdo/indexer/volume.c
666
if (!queued && (index < cache->cache_slots)) {
drivers/md/dm-vdo/indexer/volume.c
667
*page_ptr = &cache->cache[index];
drivers/md/dm-vdo/indexer/volume.c
681
static void get_page_from_cache(struct page_cache *cache, u32 physical_page,
drivers/md/dm-vdo/indexer/volume.c
690
get_page_and_index(cache, physical_page, &queue_index, page);
drivers/md/dm-vdo/indexer/volume.h
75
struct cached_page *cache;
drivers/md/dm-vdo/repair.c
641
struct vdo_page_cache *cache = &vdo->block_map->zones[0].page_cache;
drivers/md/dm-vdo/repair.c
651
if (abort_on_error(vdo_invalidate_page_cache(cache), repair))
drivers/md/dm-verity-fec.c
318
fio->bufs[n] = kmem_cache_alloc(f->cache, GFP_NOWAIT);
drivers/md/dm-verity-fec.c
462
kmem_cache_free(f->cache, fio->bufs[n]);
drivers/md/dm-verity-fec.c
502
kmem_cache_destroy(f->cache);
drivers/md/dm-verity-fec.c
745
f->cache = kmem_cache_create("dm_verity_fec_buffers",
drivers/md/dm-verity-fec.c
748
if (!f->cache) {
drivers/md/dm-verity-fec.c
755
f->cache);
drivers/md/dm-verity-fec.h
43
struct kmem_cache *cache; /* cache for buffers */
drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-common.c
199
struct v4l2_ctrl_hevc_scaling_matrix *cache)
drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-common.c
203
if (!memcmp(cache, scaling,
drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-common.c
209
memcpy(cache, scaling,
drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-common.c
381
struct v4l2_ctrl_hevc_ext_sps_st_rps *cache)
drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-common.c
388
if (!memcmp(cache, run->ext_sps_st_rps, sizeof(struct v4l2_ctrl_hevc_ext_sps_st_rps)))
drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-common.c
408
memcpy(cache, run->ext_sps_st_rps, sizeof(struct v4l2_ctrl_hevc_ext_sps_st_rps));
drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-common.h
101
struct v4l2_ctrl_hevc_scaling_matrix *cache);
drivers/memstick/core/ms_block.c
1523
if (!msb->cache)
drivers/memstick/core/ms_block.c
1524
msb->cache = kzalloc(msb->block_size, GFP_KERNEL);
drivers/memstick/core/ms_block.c
1525
if (!msb->cache)
drivers/memstick/core/ms_block.c
1551
sg_init_one(&sg, msb->cache , msb->block_size);
drivers/memstick/core/ms_block.c
1640
msb->cache + page * msb->page_size, msb->page_size);
drivers/memstick/core/ms_block.c
1663
msb->cache + msb->page_size * page,
drivers/memstick/core/ms_block.c
1951
kfree(msb->cache);
drivers/memstick/core/ms_block.h
184
unsigned char *cache;
drivers/mtd/nand/bbt.c
108
unsigned long *pos = nand->bbt.cache +
drivers/mtd/nand/bbt.c
28
nand->bbt.cache = bitmap_zalloc(nblocks * bits_per_block, GFP_KERNEL);
drivers/mtd/nand/bbt.c
29
if (!nand->bbt.cache)
drivers/mtd/nand/bbt.c
44
bitmap_free(nand->bbt.cache);
drivers/mtd/nand/bbt.c
75
unsigned long *pos = nand->bbt.cache +
drivers/mtd/nand/raw/atmel/pmecc.c
169
struct atmel_pmecc_user_conf_cache cache;
drivers/mtd/nand/raw/atmel/pmecc.c
396
user->cache.cfg = PMECC_CFG_BCH_STRENGTH(strength) |
drivers/mtd/nand/raw/atmel/pmecc.c
400
user->cache.cfg |= PMECC_CFG_SECTOR1024;
drivers/mtd/nand/raw/atmel/pmecc.c
402
user->cache.sarea = req->oobsize - 1;
drivers/mtd/nand/raw/atmel/pmecc.c
403
user->cache.saddr = req->ecc.ooboffset;
drivers/mtd/nand/raw/atmel/pmecc.c
404
user->cache.eaddr = req->ecc.ooboffset + req->ecc.bytes - 1;
drivers/mtd/nand/raw/atmel/pmecc.c
414
return strengths[user->cache.cfg & PMECC_CFG_BCH_STRENGTH_MASK];
drivers/mtd/nand/raw/atmel/pmecc.c
419
return user->cache.cfg & PMECC_CFG_SECTOR1024 ? 1024 : 512;
drivers/mtd/nand/raw/atmel/pmecc.c
777
cfg = user->cache.cfg;
drivers/mtd/nand/raw/atmel/pmecc.c
784
writel(user->cache.sarea, pmecc->regs.base + ATMEL_PMECC_SAREA);
drivers/mtd/nand/raw/atmel/pmecc.c
785
writel(user->cache.saddr, pmecc->regs.base + ATMEL_PMECC_SADDR);
drivers/mtd/nand/raw/atmel/pmecc.c
786
writel(user->cache.eaddr, pmecc->regs.base + ATMEL_PMECC_EADDR);
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
1031
u16 *cache = phy->phy_cache;
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
1063
*cache++ = (be32_to_cpu(p[i]) & 0xffff0000) >> 16;
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
1064
*cache++ = be32_to_cpu(p[i]) & 0xffff;
drivers/net/ethernet/dec/tulip/tulip_core.c
1183
u8 cache;
drivers/net/ethernet/dec/tulip/tulip_core.c
1206
pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &cache);
drivers/net/ethernet/dec/tulip/tulip_core.c
1207
if ((csr0 & MWI) && (cache == 0)) {
drivers/net/ethernet/dec/tulip/tulip_core.c
1215
switch (cache) {
drivers/net/ethernet/dec/tulip/tulip_core.c
1226
cache = 0;
drivers/net/ethernet/dec/tulip/tulip_core.c
1233
if (cache)
drivers/net/ethernet/dec/tulip/tulip_core.c
1251
cache, csr0);
drivers/net/ethernet/fungible/funeth/funeth_rx.c
52
struct funeth_rx_cache *c = &q->cache;
drivers/net/ethernet/fungible/funeth/funeth_rx.c
577
struct funeth_rxbuf *b = q->cache.bufs;
drivers/net/ethernet/fungible/funeth/funeth_rx.c
580
for (i = 0; i <= q->cache.mask; i++, b++)
drivers/net/ethernet/fungible/funeth/funeth_rx.c
583
kvfree(q->cache.bufs);
drivers/net/ethernet/fungible/funeth/funeth_rx.c
584
q->cache.bufs = NULL;
drivers/net/ethernet/fungible/funeth/funeth_rx.c
650
err = fun_rxq_init_cache(&q->cache, nrqe, numa_node);
drivers/net/ethernet/fungible/funeth/funeth_rx.c
69
struct funeth_rx_cache *c = &q->cache;
drivers/net/ethernet/fungible/funeth/funeth_txrx.h
188
struct funeth_rx_cache cache; /* used buffer cache */
drivers/net/ethernet/marvell/prestera/prestera_router_hw.c
544
u8 *cache = sw->router->nhgrp_hw_state_cache;
drivers/net/ethernet/marvell/prestera/prestera_router_hw.c
553
err = prestera_hw_nhgrp_blk_get(sw, cache, buf_size);
drivers/net/ethernet/marvell/prestera/prestera_router_hw.c
562
if (cache[gid / 8] & BIT(gid % 8))
drivers/net/ethernet/mediatek/mtk_wed_wo.c
145
buf = page_frag_alloc(&q->cache, q->buf_size,
drivers/net/ethernet/mediatek/mtk_wed_wo.c
303
page_frag_cache_drain(&q->cache);
drivers/net/ethernet/mediatek/mtk_wed_wo.c
318
page_frag_cache_drain(&q->cache);
drivers/net/ethernet/mediatek/mtk_wed_wo.h
216
struct page_frag_cache cache;
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
1906
ch = &cmd->cache[i];
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
2343
ch = &dev->cmd.cache[i];
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
2373
ch = &cmd->cache[k];
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h
327
struct mlx5_fc_cache cache;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
146
if (time_after64(bulk_query_time, counter->cache.lastuse))
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
148
&counter->cache);
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
291
counter->cache.lastuse = jiffies;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
292
counter->lastbytes = counter->cache.bytes;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
293
counter->lastpackets = counter->cache.packets;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
391
return counter->cache.lastuse;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
399
c = counter->cache;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
412
struct mlx5_fc_cache c = counter->cache;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
78
struct mlx5_fc_cache *cache)
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
85
if (cache->packets == packets)
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
88
cache->packets = packets;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
89
cache->bytes = bytes;
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
90
cache->lastuse = jiffies;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
2138
int mlx5hws_definer_init_cache(struct mlx5hws_definer_cache **cache)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
2147
*cache = new_cache;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
2152
void mlx5hws_definer_uninit_cache(struct mlx5hws_definer_cache *cache)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
2154
kfree(cache);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
2160
struct mlx5hws_definer_cache *cache = ctx->definer_cache;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
2167
list_for_each_entry(cached_definer, &cache->list_head, list_node) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
2172
list_move(&cached_definer->list_node, &cache->list_head);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
2193
list_add(&cached_definer->list_node, &cache->list_head);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.h
811
int mlx5hws_definer_init_cache(struct mlx5hws_definer_cache **cache);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.h
813
void mlx5hws_definer_uninit_cache(struct mlx5hws_definer_cache *cache);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
129
mlx5hws_pat_find_cached_pattern(struct mlx5hws_pattern_cache *cache,
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
135
list_for_each_entry(cached_pat, &cache->ptrn_list, ptrn_list_node) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
147
mlx5hws_pat_get_existing_cached_pattern(struct mlx5hws_pattern_cache *cache,
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
153
cached_pattern = mlx5hws_pat_find_cached_pattern(cache, num_of_actions, actions);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
156
list_move(&cached_pattern->ptrn_list_node, &cache->ptrn_list);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
164
mlx5hws_pat_add_pattern_to_cache(struct mlx5hws_pattern_cache *cache,
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
182
list_add(&cached_pattern->ptrn_list_node, &cache->ptrn_list);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
193
mlx5hws_pat_find_cached_pattern_by_id(struct mlx5hws_pattern_cache *cache,
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
198
list_for_each_entry(cached_pattern, &cache->ptrn_list, ptrn_list_node) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
217
struct mlx5hws_pattern_cache *cache = ctx->pattern_cache;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
220
mutex_lock(&cache->lock);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
221
cached_pattern = mlx5hws_pat_find_cached_pattern_by_id(cache, ptrn_id);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
235
mutex_unlock(&cache->lock);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
77
int mlx5hws_pat_init_pattern_cache(struct mlx5hws_pattern_cache **cache)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
88
*cache = new_cache;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
93
void mlx5hws_pat_uninit_pattern_cache(struct mlx5hws_pattern_cache *cache)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
95
mutex_destroy(&cache->lock);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
96
kfree(cache);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.h
48
int mlx5hws_pat_init_pattern_cache(struct mlx5hws_pattern_cache **cache);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.h
50
void mlx5hws_pat_uninit_pattern_cache(struct mlx5hws_pattern_cache *cache);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
390
memset(admin->cache.keystream, 0, STREAMSIZE);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
391
memset(admin->cache.maskstream, 0, STREAMSIZE);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
392
memset(admin->cache.actionstream, 0, STREAMSIZE);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
393
memset(&admin->cache.counter, 0, sizeof(admin->cache.counter));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
412
admin->cache.counter = counter;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
423
lan_wr(admin->cache.counter, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
440
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
441
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
442
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
459
admin->cache.sticky = admin->cache.counter > 0;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
460
lan_wr(admin->cache.counter, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
482
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
483
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
484
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
501
admin->cache.counter =
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
503
admin->cache.sticky = admin->cache.counter > 0;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
601
kfree(admin->cache.keystream);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
602
kfree(admin->cache.maskstream);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
603
kfree(admin->cache.actionstream);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
635
admin->cache.keystream = kzalloc(STREAMSIZE, GFP_KERNEL);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
636
admin->cache.maskstream = kzalloc(STREAMSIZE, GFP_KERNEL);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
637
admin->cache.actionstream = kzalloc(STREAMSIZE, GFP_KERNEL);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
638
if (!admin->cache.keystream ||
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
639
!admin->cache.maskstream ||
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
640
!admin->cache.actionstream) {
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1012
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1013
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1014
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1039
spx5_wr(admin->cache.counter, sparx5, VCAP_ES0_VCAP_CNT_DAT(0));
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1053
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1054
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1055
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1081
spx5_wr(admin->cache.counter, sparx5, EACL_ES2_CNT(start));
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1082
spx5_wr(admin->cache.sticky, sparx5, VCAP_ES2_VCAP_CNT_DAT(0));
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1124
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1125
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1126
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1143
admin->cache.counter =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1145
admin->cache.sticky =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1159
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1160
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1161
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1180
admin->cache.counter =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1183
admin->cache.counter =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1185
admin->cache.sticky =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1202
admin->cache.counter = counter;
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1214
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1215
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1216
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1233
admin->cache.counter =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1235
admin->cache.sticky = admin->cache.counter;
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1249
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1250
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1251
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1269
admin->cache.counter =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1271
admin->cache.sticky =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1934
kfree(admin->cache.keystream);
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1935
kfree(admin->cache.maskstream);
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1936
kfree(admin->cache.actionstream);
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1961
admin->cache.keystream =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1963
admin->cache.maskstream =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1965
admin->cache.actionstream =
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1967
if (!admin->cache.keystream || !admin->cache.maskstream ||
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
1968
!admin->cache.actionstream) {
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
896
memset(admin->cache.keystream, 0, STREAMSIZE);
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
897
memset(admin->cache.maskstream, 0, STREAMSIZE);
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
898
memset(admin->cache.actionstream, 0, STREAMSIZE);
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
899
memset(&admin->cache.counter, 0, sizeof(admin->cache.counter));
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
911
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
912
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
913
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
939
spx5_wr(admin->cache.counter, sparx5,
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
952
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
953
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
954
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
981
spx5_wr(admin->cache.counter, sparx5,
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
984
spx5_wr(admin->cache.counter, sparx5,
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
986
spx5_wr(admin->cache.sticky, sparx5,
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
997
spx5_wr(admin->cache.counter, sparx5,
drivers/net/ethernet/microchip/vcap/vcap_api.c
1444
actstream = admin->cache.actionstream;
drivers/net/ethernet/microchip/vcap/vcap_api.c
1491
keystream = admin->cache.keystream;
drivers/net/ethernet/microchip/vcap/vcap_api.c
1492
maskstream = admin->cache.maskstream;
drivers/net/ethernet/microchip/vcap/vcap_api.c
1595
admin->cache.counter = ctr->value;
drivers/net/ethernet/microchip/vcap/vcap_api.c
1596
admin->cache.sticky = ctr->sticky;
drivers/net/ethernet/microchip/vcap/vcap_api.c
2931
ctr->value = admin->cache.counter;
drivers/net/ethernet/microchip/vcap/vcap_api.c
2932
ctr->sticky = admin->cache.sticky;
drivers/net/ethernet/microchip/vcap/vcap_api.c
383
key |= ~admin->cache.keystream[idx];
drivers/net/ethernet/microchip/vcap/vcap_api.c
384
mask |= admin->cache.maskstream[idx];
drivers/net/ethernet/microchip/vcap/vcap_api.c
389
return vcap_find_keystream_keysets(vctrl, vt, admin->cache.keystream,
drivers/net/ethernet/microchip/vcap/vcap_api.c
390
admin->cache.maskstream, false, 0,
drivers/net/ethernet/microchip/vcap/vcap_api.c
452
struct vcap_cache_data *cache = &ri->admin->cache;
drivers/net/ethernet/microchip/vcap/vcap_api.c
494
vcap_encode_field(cache->keystream, &iter, rf->width, value);
drivers/net/ethernet/microchip/vcap/vcap_api.c
496
vcap_encode_field(cache->maskstream, &iter, rf->width, mask);
drivers/net/ethernet/microchip/vcap/vcap_api.c
504
struct vcap_cache_data *cache = &ri->admin->cache;
drivers/net/ethernet/microchip/vcap/vcap_api.c
509
vcap_encode_typegroups(cache->keystream, sw_width, tgt, false);
drivers/net/ethernet/microchip/vcap/vcap_api.c
510
vcap_encode_typegroups(cache->maskstream, sw_width, tgt, true);
drivers/net/ethernet/microchip/vcap/vcap_api.c
746
struct vcap_cache_data *cache = &ri->admin->cache;
drivers/net/ethernet/microchip/vcap/vcap_api.c
778
vcap_encode_field(cache->actionstream, &iter, rf->width, value);
drivers/net/ethernet/microchip/vcap/vcap_api.c
785
struct vcap_cache_data *cache = &ri->admin->cache;
drivers/net/ethernet/microchip/vcap/vcap_api.c
790
vcap_encode_typegroups(cache->actionstream, sw_width, tgt, false);
drivers/net/ethernet/microchip/vcap/vcap_api.h
180
struct vcap_cache_data cache; /* encoded rule data */
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
174
admin->cache.keystream,
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
175
admin->cache.maskstream,
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
241
ri->counter.value = admin->cache.counter;
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
242
ri->counter.sticky = admin->cache.sticky;
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
121
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
122
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
135
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
144
admin->cache.counter = test_hw_cache.counter;
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
145
admin->cache.sticky = test_hw_cache.sticky;
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
162
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
163
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
176
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
185
test_hw_cache.counter = admin->cache.counter;
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
186
test_hw_cache.sticky = admin->cache.sticky;
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
307
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
325
admin.cache.keystream = &keydata[idx];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
326
admin.cache.maskstream = &mskdata[idx];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
333
admin.cache.keystream = &keydata[idx];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
334
admin.cache.maskstream = &mskdata[idx];
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
354
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
503
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
96
memset(admin->cache.keystream, 0, test_cache_erase_count);
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
97
memset(admin->cache.maskstream, 0, test_cache_erase_count);
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
98
memset(admin->cache.actionstream, 0, test_cache_erase_count);
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
112
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
113
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
126
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
1348
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
135
admin->cache.counter = test_hw_cache.counter;
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
136
admin->cache.sticky = test_hw_cache.sticky;
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
1457
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
1510
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
153
keystr = &admin->cache.keystream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
154
mskstr = &admin->cache.maskstream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
1579
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
1617
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
167
actstr = &admin->cache.actionstream[start];
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
1680
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
1752
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
176
test_hw_cache.counter = admin->cache.counter;
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
177
test_hw_cache.sticky = admin->cache.sticky;
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
1827
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
586
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
647
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
712
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
832
.cache = {
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
87
memset(admin->cache.keystream, 0, test_cache_erase_count);
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
88
memset(admin->cache.maskstream, 0, test_cache_erase_count);
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
89
memset(admin->cache.actionstream, 0, test_cache_erase_count);
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
943
.cache = {
drivers/net/ethernet/netronome/nfp/bpf/cmsg.c
221
if (!nfp_map->cache)
drivers/net/ethernet/netronome/nfp/bpf/cmsg.c
226
reply = (void *)nfp_map->cache->data;
drivers/net/ethernet/netronome/nfp/bpf/cmsg.c
256
dev_consume_skb_any(nfp_map->cache);
drivers/net/ethernet/netronome/nfp/bpf/cmsg.c
257
nfp_map->cache = NULL;
drivers/net/ethernet/netronome/nfp/bpf/cmsg.c
285
swap(nfp_map->cache, skb);
drivers/net/ethernet/netronome/nfp/bpf/main.h
218
struct sk_buff *cache;
drivers/net/ethernet/netronome/nfp/bpf/offload.c
413
dev_consume_skb_any(nfp_map->cache);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
1011
if (cache)
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
1012
area_cache_put(cpp, cache);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
163
struct nfp_cpp_area_cache *cache, *ctmp;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
167
list_for_each_entry_safe(cache, ctmp, &cpp->area_cache_list, entry) {
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
168
list_del(&cache->entry);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
169
if (cache->id)
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
170
nfp_cpp_area_release(cache->area);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
171
nfp_cpp_area_free(cache->area);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
172
kfree(cache);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
794
struct nfp_cpp_area_cache *cache;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
805
cache = kzalloc_obj(*cache);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
806
if (!cache) {
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
811
cache->id = 0;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
812
cache->addr = 0;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
813
cache->size = size;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
814
cache->area = area;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
816
list_add_tail(&cache->entry, &cpp->area_cache_list);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
826
struct nfp_cpp_area_cache *cache;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
851
list_for_each_entry(cache, &cpp->area_cache_list, entry) {
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
852
if (id == cache->id &&
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
853
addr >= cache->addr &&
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
854
addr + length <= cache->addr + cache->size)
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
859
cache = list_entry(cpp->area_cache_list.prev,
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
863
if (round_down(addr + length - 1, cache->size) !=
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
864
round_down(addr, cache->size)) {
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
870
if (cache->id) {
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
871
nfp_cpp_area_release(cache->area);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
872
cache->id = 0;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
873
cache->addr = 0;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
877
cache->addr = addr & ~(u64)(cache->size - 1);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
881
err = cpp->op->area_init(cache->area,
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
882
id, cache->addr, cache->size);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
890
err = nfp_cpp_area_acquire(cache->area);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
896
cache->id = id;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
900
*offset = addr - cache->addr;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
901
return cache;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
905
area_cache_put(struct nfp_cpp *cpp, struct nfp_cpp_area_cache *cache)
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
907
if (!cache)
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
911
list_move(&cache->entry, &cpp->area_cache_list);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
920
struct nfp_cpp_area_cache *cache;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
925
cache = area_cache_get(cpp, destination, address, &offset, length);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
926
if (cache) {
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
927
area = cache->area;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
942
if (cache)
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
943
area_cache_put(cpp, cache);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
989
struct nfp_cpp_area_cache *cache;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
994
cache = area_cache_get(cpp, destination, address, &offset, length);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
995
if (cache) {
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
996
area = cache->area;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
101
struct nfp_rtsym_table *cache;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
121
size = sizeof(*cache);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
124
cache = kmalloc(size, GFP_KERNEL);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
125
if (!cache)
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
128
cache->cpp = cpp;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
129
cache->num = symtab_size / sizeof(*rtsymtab);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
130
cache->strtab = (void *)&cache->symtab[cache->num];
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
136
err = nfp_cpp_read(cpp, dram, strtab_addr, cache->strtab, strtab_size);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
139
cache->strtab[strtab_size] = '\0';
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
141
for (n = 0; n < cache->num; n++)
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
142
nfp_rtsym_sw_entry_init(cache, strtab_size,
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
143
&cache->symtab[n], &rtsymtab[n]);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
147
return cache;
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
150
kfree(cache);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
54
nfp_rtsym_sw_entry_init(struct nfp_rtsym_table *cache, u32 strtab_size,
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_rtsym.c
58
sw->name = cache->strtab + le16_to_cpu(fw->name) % strtab_size;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
232
struct __cache cache;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
593
struct __cache *l1 = &entry->region.cache;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
619
struct __cache *l2 = &entry->region.cache;
drivers/net/ipvlan/ipvlan_main.c
392
.cache = eth_header_cache,
drivers/net/macvlan.c
617
.cache = eth_header_cache,
drivers/net/ovpn/udp.c
146
struct dst_cache *cache, struct sock *sk,
drivers/net/ovpn/udp.c
161
rt = dst_cache_get_ip4(cache, &fl.saddr);
drivers/net/ovpn/udp.c
175
dst_cache_reset(cache);
drivers/net/ovpn/udp.c
184
dst_cache_reset(cache);
drivers/net/ovpn/udp.c
197
dst_cache_set_ip4(cache, &rt->dst, fl.saddr);
drivers/net/ovpn/udp.c
221
struct dst_cache *cache, struct sock *sk,
drivers/net/ovpn/udp.c
238
dst = dst_cache_get_ip6(cache, &fl.saddr);
drivers/net/ovpn/udp.c
251
dst_cache_reset(cache);
drivers/net/ovpn/udp.c
262
dst_cache_set_ip6(cache, dst, &fl.saddr);
drivers/net/ovpn/udp.c
297
static int ovpn_udp_output(struct ovpn_peer *peer, struct dst_cache *cache,
drivers/net/ovpn/udp.c
318
ret = ovpn_udp4_output(peer, bind, cache, sk, skb);
drivers/net/ovpn/udp.c
322
ret = ovpn_udp6_output(peer, bind, cache, sk, skb);
drivers/net/plip/plip.c
263
.cache = plip_hard_header_cache,
drivers/net/wireguard/socket.c
128
if (cache)
drivers/net/wireguard/socket.c
129
dst = dst_cache_get_ip6(cache, &fl.saddr);
drivers/net/wireguard/socket.c
136
if (cache)
drivers/net/wireguard/socket.c
137
dst_cache_reset(cache);
drivers/net/wireguard/socket.c
147
if (cache)
drivers/net/wireguard/socket.c
148
dst_cache_set_ip6(cache, dst, &fl.saddr);
drivers/net/wireguard/socket.c
21
struct endpoint *endpoint, u8 ds, struct dst_cache *cache)
drivers/net/wireguard/socket.c
48
if (cache)
drivers/net/wireguard/socket.c
49
rt = dst_cache_get_ip4(cache, &fl.saddr);
drivers/net/wireguard/socket.c
58
if (cache)
drivers/net/wireguard/socket.c
59
dst_cache_reset(cache);
drivers/net/wireguard/socket.c
68
if (cache)
drivers/net/wireguard/socket.c
69
dst_cache_reset(cache);
drivers/net/wireguard/socket.c
80
if (cache)
drivers/net/wireguard/socket.c
81
dst_cache_set_ip4(cache, &rt->dst, fl.saddr);
drivers/net/wireguard/socket.c
98
struct endpoint *endpoint, u8 ds, struct dst_cache *cache)
drivers/net/wireless/ath/ath12k/core.h
386
struct ath12k_vif_cache *cache[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/ath/ath12k/mac.c
10462
struct ath12k_vif_cache *cache = ahvif->cache[arvif->link_id];
drivers/net/wireless/ath/ath12k/mac.c
10467
list_for_each_entry_safe(key_conf, tmp, &cache->key_conf.list, list) {
drivers/net/wireless/ath/ath12k/mac.c
10493
struct ath12k_vif_cache *cache = ahvif->cache[arvif->link_id];
drivers/net/wireless/ath/ath12k/mac.c
10501
if (!cache)
drivers/net/wireless/ath/ath12k/mac.c
10504
if (cache->tx_conf.changed) {
drivers/net/wireless/ath/ath12k/mac.c
10505
ret = ath12k_mac_conf_tx(arvif, cache->tx_conf.ac,
drivers/net/wireless/ath/ath12k/mac.c
10506
&cache->tx_conf.tx_queue_params);
drivers/net/wireless/ath/ath12k/mac.c
10513
if (cache->bss_conf_changed) {
drivers/net/wireless/ath/ath12k/mac.c
10521
cache->bss_conf_changed);
drivers/net/wireless/ath/ath12k/mac.c
10524
if (!list_empty(&cache->key_conf.list))
drivers/net/wireless/ath/ath12k/mac.c
5026
if (!ahvif->cache[link_id]) {
drivers/net/wireless/ath/ath12k/mac.c
5027
ahvif->cache[link_id] = kzalloc_obj(*ahvif->cache[0]);
drivers/net/wireless/ath/ath12k/mac.c
5028
if (ahvif->cache[link_id])
drivers/net/wireless/ath/ath12k/mac.c
5029
INIT_LIST_HEAD(&ahvif->cache[link_id]->key_conf.list);
drivers/net/wireless/ath/ath12k/mac.c
5032
return ahvif->cache[link_id];
drivers/net/wireless/ath/ath12k/mac.c
5035
static void ath12k_ahvif_put_link_key_cache(struct ath12k_vif_cache *cache)
drivers/net/wireless/ath/ath12k/mac.c
5039
if (!cache || list_empty(&cache->key_conf.list))
drivers/net/wireless/ath/ath12k/mac.c
5041
list_for_each_entry_safe(key_conf, tmp, &cache->key_conf.list, list) {
drivers/net/wireless/ath/ath12k/mac.c
5052
ath12k_ahvif_put_link_key_cache(ahvif->cache[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5053
kfree(ahvif->cache[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5054
ahvif->cache[link_id] = NULL;
drivers/net/wireless/ath/ath12k/mac.c
5064
struct ath12k_vif_cache *cache;
drivers/net/wireless/ath/ath12k/mac.c
5077
cache = ath12k_ahvif_get_link_cache(ahvif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
5078
if (!cache)
drivers/net/wireless/ath/ath12k/mac.c
5081
cache->bss_conf_changed |= changed;
drivers/net/wireless/ath/ath12k/mac.c
6101
static int ath12k_mac_update_key_cache(struct ath12k_vif_cache *cache,
drivers/net/wireless/ath/ath12k/mac.c
6108
list_for_each_entry_safe(key_conf, tmp, &cache->key_conf.list, list) {
drivers/net/wireless/ath/ath12k/mac.c
6134
&cache->key_conf.list);
drivers/net/wireless/ath/ath12k/mac.c
6147
struct ath12k_vif_cache *cache;
drivers/net/wireless/ath/ath12k/mac.c
6212
cache = ath12k_ahvif_get_link_cache(ahvif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
6213
if (!cache)
drivers/net/wireless/ath/ath12k/mac.c
6216
ret = ath12k_mac_update_key_cache(cache, cmd, sta, key);
drivers/net/wireless/ath/ath12k/mac.c
8183
struct ath12k_vif_cache *cache;
drivers/net/wireless/ath/ath12k/mac.c
8193
cache = ath12k_ahvif_get_link_cache(ahvif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
8194
if (!cache)
drivers/net/wireless/ath/ath12k/mac.c
8197
cache->tx_conf.changed = true;
drivers/net/wireless/ath/ath12k/mac.c
8198
cache->tx_conf.ac = ac;
drivers/net/wireless/ath/ath12k/mac.c
8199
cache->tx_conf.tx_queue_params = *params;
drivers/net/wireless/ath/carl9170/carl9170.h
457
u16 cache[CARL9170_HWRNG_CACHE_SIZE / sizeof(u16)];
drivers/net/wireless/ath/carl9170/main.c
1543
count = ARRAY_SIZE(ar->rng.cache);
drivers/net/wireless/ath/carl9170/main.c
1553
ar->rng.cache[off + i] = buf[i];
drivers/net/wireless/ath/carl9170/main.c
1572
if (ar->rng.cache_idx >= ARRAY_SIZE(ar->rng.cache)) {
drivers/net/wireless/ath/carl9170/main.c
1580
*data = ar->rng.cache[ar->rng.cache_idx++];
drivers/net/wireless/ralink/rt2x00/rt2x00.h
820
void *cache;
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
101
memcpy(rt2x00dev->csr.cache, buffer, buffer_length);
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
104
offset, 0, rt2x00dev->csr.cache,
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
108
memcpy(buffer, rt2x00dev->csr.cache, buffer_length);
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
769
kfree(rt2x00dev->csr.cache);
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
770
rt2x00dev->csr.cache = NULL;
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
775
rt2x00dev->csr.cache = kzalloc(CSR_CACHE_SIZE, GFP_KERNEL);
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
776
if (!rt2x00dev->csr.cache)
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
95
if (unlikely(!rt2x00dev->csr.cache || buffer_length > CSR_CACHE_SIZE)) {
drivers/net/wireless/silabs/wfx/data_tx.c
104
struct wfx_tx_policy_cache *cache = &wvif->tx_policy_cache;
drivers/net/wireless/silabs/wfx/data_tx.c
110
spin_lock_bh(&cache->lock);
drivers/net/wireless/silabs/wfx/data_tx.c
111
if (list_empty(&cache->free)) {
drivers/net/wireless/silabs/wfx/data_tx.c
113
spin_unlock_bh(&cache->lock);
drivers/net/wireless/silabs/wfx/data_tx.c
116
idx = wfx_tx_policy_find(cache, &wanted);
drivers/net/wireless/silabs/wfx/data_tx.c
122
entry = list_entry(cache->free.prev, struct wfx_tx_policy, link);
drivers/net/wireless/silabs/wfx/data_tx.c
126
idx = entry - cache->cache;
drivers/net/wireless/silabs/wfx/data_tx.c
128
wfx_tx_policy_use(cache, &cache->cache[idx]);
drivers/net/wireless/silabs/wfx/data_tx.c
129
if (list_empty(&cache->free))
drivers/net/wireless/silabs/wfx/data_tx.c
131
spin_unlock_bh(&cache->lock);
drivers/net/wireless/silabs/wfx/data_tx.c
138
struct wfx_tx_policy_cache *cache = &wvif->tx_policy_cache;
drivers/net/wireless/silabs/wfx/data_tx.c
142
spin_lock_bh(&cache->lock);
drivers/net/wireless/silabs/wfx/data_tx.c
143
locked = list_empty(&cache->free);
drivers/net/wireless/silabs/wfx/data_tx.c
144
usage = wfx_tx_policy_release(cache, &cache->cache[idx]);
drivers/net/wireless/silabs/wfx/data_tx.c
147
spin_unlock_bh(&cache->lock);
drivers/net/wireless/silabs/wfx/data_tx.c
152
struct wfx_tx_policy *policies = wvif->tx_policy_cache.cache;
drivers/net/wireless/silabs/wfx/data_tx.c
158
for (i = 0; i < ARRAY_SIZE(wvif->tx_policy_cache.cache); ++i) {
drivers/net/wireless/silabs/wfx/data_tx.c
163
if (i < ARRAY_SIZE(wvif->tx_policy_cache.cache)) {
drivers/net/wireless/silabs/wfx/data_tx.c
171
} while (i < ARRAY_SIZE(wvif->tx_policy_cache.cache));
drivers/net/wireless/silabs/wfx/data_tx.c
185
struct wfx_tx_policy_cache *cache = &wvif->tx_policy_cache;
drivers/net/wireless/silabs/wfx/data_tx.c
188
memset(cache, 0, sizeof(*cache));
drivers/net/wireless/silabs/wfx/data_tx.c
190
spin_lock_init(&cache->lock);
drivers/net/wireless/silabs/wfx/data_tx.c
191
INIT_LIST_HEAD(&cache->used);
drivers/net/wireless/silabs/wfx/data_tx.c
192
INIT_LIST_HEAD(&cache->free);
drivers/net/wireless/silabs/wfx/data_tx.c
194
for (i = 0; i < ARRAY_SIZE(cache->cache); ++i)
drivers/net/wireless/silabs/wfx/data_tx.c
195
list_add(&cache->cache[i].link, &cache->free);
drivers/net/wireless/silabs/wfx/data_tx.c
73
static int wfx_tx_policy_find(struct wfx_tx_policy_cache *cache, struct wfx_tx_policy *wanted)
drivers/net/wireless/silabs/wfx/data_tx.c
77
list_for_each_entry(it, &cache->used, link)
drivers/net/wireless/silabs/wfx/data_tx.c
79
return it - cache->cache;
drivers/net/wireless/silabs/wfx/data_tx.c
80
list_for_each_entry(it, &cache->free, link)
drivers/net/wireless/silabs/wfx/data_tx.c
82
return it - cache->cache;
drivers/net/wireless/silabs/wfx/data_tx.c
86
static void wfx_tx_policy_use(struct wfx_tx_policy_cache *cache, struct wfx_tx_policy *entry)
drivers/net/wireless/silabs/wfx/data_tx.c
89
list_move(&entry->link, &cache->used);
drivers/net/wireless/silabs/wfx/data_tx.c
92
static int wfx_tx_policy_release(struct wfx_tx_policy_cache *cache, struct wfx_tx_policy *entry)
drivers/net/wireless/silabs/wfx/data_tx.c
97
list_move(&entry->link, &cache->free);
drivers/net/wireless/silabs/wfx/data_tx.h
29
struct wfx_tx_policy cache[HIF_TX_RETRY_POLICY_MAX];
drivers/net/wireless/st/cw1200/txrx.c
213
static int tx_policy_find(struct tx_policy_cache *cache,
drivers/net/wireless/st/cw1200/txrx.c
222
list_for_each_entry(it, &cache->used, link) {
drivers/net/wireless/st/cw1200/txrx.c
224
return it - cache->cache;
drivers/net/wireless/st/cw1200/txrx.c
227
list_for_each_entry(it, &cache->free, link) {
drivers/net/wireless/st/cw1200/txrx.c
229
return it - cache->cache;
drivers/net/wireless/st/cw1200/txrx.c
234
static inline void tx_policy_use(struct tx_policy_cache *cache,
drivers/net/wireless/st/cw1200/txrx.c
238
list_move(&entry->link, &cache->used);
drivers/net/wireless/st/cw1200/txrx.c
241
static inline int tx_policy_release(struct tx_policy_cache *cache,
drivers/net/wireless/st/cw1200/txrx.c
246
list_move(&entry->link, &cache->free);
drivers/net/wireless/st/cw1200/txrx.c
253
struct tx_policy_cache *cache = &priv->tx_policy_cache;
drivers/net/wireless/st/cw1200/txrx.c
257
spin_lock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
258
locked = list_empty(&cache->free);
drivers/net/wireless/st/cw1200/txrx.c
261
entry = &cache->cache[idx];
drivers/net/wireless/st/cw1200/txrx.c
267
list_move(&entry->link, &cache->free);
drivers/net/wireless/st/cw1200/txrx.c
275
spin_unlock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
283
struct tx_policy_cache *cache = &priv->tx_policy_cache;
drivers/net/wireless/st/cw1200/txrx.c
286
memset(cache, 0, sizeof(*cache));
drivers/net/wireless/st/cw1200/txrx.c
288
spin_lock_init(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
289
INIT_LIST_HEAD(&cache->used);
drivers/net/wireless/st/cw1200/txrx.c
290
INIT_LIST_HEAD(&cache->free);
drivers/net/wireless/st/cw1200/txrx.c
293
list_add(&cache->cache[i].link, &cache->free);
drivers/net/wireless/st/cw1200/txrx.c
301
struct tx_policy_cache *cache = &priv->tx_policy_cache;
drivers/net/wireless/st/cw1200/txrx.c
306
spin_lock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
307
if (WARN_ON_ONCE(list_empty(&cache->free))) {
drivers/net/wireless/st/cw1200/txrx.c
308
spin_unlock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
311
idx = tx_policy_find(cache, &wanted);
drivers/net/wireless/st/cw1200/txrx.c
321
entry = list_entry(cache->free.prev,
drivers/net/wireless/st/cw1200/txrx.c
324
idx = entry - cache->cache;
drivers/net/wireless/st/cw1200/txrx.c
328
tx_policy_use(cache, &cache->cache[idx]);
drivers/net/wireless/st/cw1200/txrx.c
329
if (list_empty(&cache->free)) {
drivers/net/wireless/st/cw1200/txrx.c
333
spin_unlock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
340
struct tx_policy_cache *cache = &priv->tx_policy_cache;
drivers/net/wireless/st/cw1200/txrx.c
342
spin_lock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
343
locked = list_empty(&cache->free);
drivers/net/wireless/st/cw1200/txrx.c
344
usage = tx_policy_release(cache, &cache->cache[idx]);
drivers/net/wireless/st/cw1200/txrx.c
349
spin_unlock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
354
struct tx_policy_cache *cache = &priv->tx_policy_cache;
drivers/net/wireless/st/cw1200/txrx.c
359
spin_lock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.c
363
struct tx_policy *src = &cache->cache[i].policy;
drivers/net/wireless/st/cw1200/txrx.c
379
spin_unlock_bh(&cache->lock);
drivers/net/wireless/st/cw1200/txrx.h
39
struct tx_policy_cache_entry cache[TX_POLICY_CACHE_SIZE];
drivers/net/xen-netback/common.h
260
struct xenvif_hash_cache cache;
drivers/net/xen-netback/hash.c
104
spin_lock_irqsave(&vif->hash.cache.lock, flags);
drivers/net/xen-netback/hash.c
106
list_for_each_entry_safe(entry, n, &vif->hash.cache.list, link) {
drivers/net/xen-netback/hash.c
108
vif->hash.cache.count--;
drivers/net/xen-netback/hash.c
112
spin_unlock_irqrestore(&vif->hash.cache.lock, flags);
drivers/net/xen-netback/hash.c
132
list_for_each_entry_rcu(entry, &vif->hash.cache.list, link) {
drivers/net/xen-netback/hash.c
136
entry->seq = atomic_inc_return(&vif->hash.cache.seq);
drivers/net/xen-netback/hash.c
458
BUG_ON(vif->hash.cache.count);
drivers/net/xen-netback/hash.c
460
spin_lock_init(&vif->hash.cache.lock);
drivers/net/xen-netback/hash.c
461
INIT_LIST_HEAD(&vif->hash.cache.list);
drivers/net/xen-netback/hash.c
50
spin_lock_irqsave(&vif->hash.cache.lock, flags);
drivers/net/xen-netback/hash.c
54
list_for_each_entry_rcu(entry, &vif->hash.cache.list, link,
drivers/net/xen-netback/hash.c
55
lockdep_is_held(&vif->hash.cache.lock)) {
drivers/net/xen-netback/hash.c
65
new->seq = atomic_inc_return(&vif->hash.cache.seq);
drivers/net/xen-netback/hash.c
66
list_add_rcu(&new->link, &vif->hash.cache.list);
drivers/net/xen-netback/hash.c
68
if (++vif->hash.cache.count > xenvif_hash_cache_size) {
drivers/net/xen-netback/hash.c
70
vif->hash.cache.count--;
drivers/net/xen-netback/hash.c
75
spin_unlock_irqrestore(&vif->hash.cache.lock, flags);
drivers/pcmcia/cistpl.c
310
memcpy(ptr, cis->cache, len);
drivers/pcmcia/cistpl.c
325
memcpy(cis->cache, ptr, len);
drivers/pcmcia/cistpl.c
393
if (ret || memcmp(buf, cis->cache, len) != 0) {
drivers/pcmcia/cs_internal.h
43
unsigned char cache[];
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2715
struct rzg2l_pinctrl_reg_cache *cache, *dedicated_cache;
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2717
cache = devm_kzalloc(pctrl->dev, sizeof(*cache), GFP_KERNEL);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2718
if (!cache)
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2725
cache->p = devm_kcalloc(pctrl->dev, nports, sizeof(*cache->p), GFP_KERNEL);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2726
if (!cache->p)
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2729
cache->pm = devm_kcalloc(pctrl->dev, nports, sizeof(*cache->pm), GFP_KERNEL);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2730
if (!cache->pm)
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2733
cache->pmc = devm_kcalloc(pctrl->dev, nports, sizeof(*cache->pmc), GFP_KERNEL);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2734
if (!cache->pmc)
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2737
cache->pfc = devm_kcalloc(pctrl->dev, nports, sizeof(*cache->pfc), GFP_KERNEL);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2738
if (!cache->pfc)
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2741
cache->smt = devm_kcalloc(pctrl->dev, nports, sizeof(*cache->smt), GFP_KERNEL);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2742
if (!cache->smt)
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2748
cache->iolh[i] = devm_kcalloc(pctrl->dev, nports, sizeof(*cache->iolh[i]),
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2750
if (!cache->iolh[i])
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2753
cache->ien[i] = devm_kcalloc(pctrl->dev, nports, sizeof(*cache->ien[i]),
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2755
if (!cache->ien[i])
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2758
cache->pupd[i] = devm_kcalloc(pctrl->dev, nports, sizeof(*cache->pupd[i]),
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2760
if (!cache->pupd[i])
drivers/pinctrl/renesas/pinctrl-rzg2l.c
2777
pctrl->cache = cache;
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3003
struct rzg2l_pinctrl_reg_cache *cache = pctrl->cache;
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3022
RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + PFC(off), cache->pfc[port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3029
RZG2L_PCTRL_REG_ACCESS8(suspend, pctrl->base + PMC(off), cache->pmc[port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3031
pctrl->data->pmc_writeb(pctrl, cache->pmc[port], PMC(off));
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3035
cache->iolh[0][port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3038
cache->iolh[1][port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3044
cache->pupd[0][port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3047
cache->pupd[1][port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3051
RZG2L_PCTRL_REG_ACCESS16(suspend, pctrl->base + PM(off), cache->pm[port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3052
RZG2L_PCTRL_REG_ACCESS8(suspend, pctrl->base + P(off), cache->p[port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3056
cache->ien[0][port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3059
cache->ien[1][port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3064
RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + SMT(off), cache->smt[port]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3070
struct rzg2l_pinctrl_reg_cache *cache = pctrl->dedicated_cache;
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3104
cache->iolh[0][i]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3108
cache->ien[0][i]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3115
cache->iolh[1][i]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3120
cache->ien[1][i]);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3151
struct rzg2l_pinctrl_reg_cache *cache = pctrl->cache;
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3155
if (!(cache->pmc[port] & BIT(pin)))
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3161
if ((cache->pfc[port] & pfc_mask) == (pfc_val & pfc_mask))
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3174
pfc |= (cache->pfc[port] & pfc_mask);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3192
struct rzg2l_pinctrl_reg_cache *cache = pctrl->cache;
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3199
cache->sd_ch[i] = readb(pctrl->base + SD_CH(regs->sd_ch, i));
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3201
cache->eth_poc[i] = readb(pctrl->base + ETH_POC(regs->eth_poc, i));
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3204
cache->qspi = readb(pctrl->base + QSPI);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3205
cache->oen = readb(pctrl->base + pctrl->data->hwcfg->regs.oen);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3220
struct rzg2l_pinctrl_reg_cache *cache = pctrl->cache;
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3230
writeb(cache->qspi, pctrl->base + QSPI);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3233
rzg2l_oen_write_with_pwpr(pctrl, cache->oen);
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3238
writeb(cache->sd_ch[i], pctrl->base + SD_CH(regs->sd_ch, i));
drivers/pinctrl/renesas/pinctrl-rzg2l.c
3240
writeb(cache->eth_poc[i], pctrl->base + ETH_POC(regs->eth_poc, i));
drivers/pinctrl/renesas/pinctrl-rzg2l.c
366
struct rzg2l_pinctrl_reg_cache *cache;
drivers/platform/arm64/lenovo-thinkpad-t14s.c
228
led->cache = ledstatus;
drivers/platform/arm64/lenovo-thinkpad-t14s.c
241
else if (led->cache == T14S_EC_LED_BLINK)
drivers/platform/arm64/lenovo-thinkpad-t14s.c
92
enum t14s_ec_led_status_t cache;
drivers/platform/mellanox/mlxreg-hotplug.c
364
asserted = item->cache ^ regval;
drivers/platform/mellanox/mlxreg-hotplug.c
365
item->cache = regval;
drivers/platform/mellanox/mlxreg-hotplug.c
424
if (item->cache == regval)
drivers/platform/mellanox/mlxreg-hotplug.c
455
item->cache = regval;
drivers/platform/mellanox/mlxreg-hotplug.c
621
item->cache = item->mask;
drivers/platform/surface/aggregator/controller.c
563
struct kmem_cache *cache;
drivers/platform/surface/aggregator/controller.c
565
cache = kmem_cache_create("ssam_event_item", size, align, 0, NULL);
drivers/platform/surface/aggregator/controller.c
566
if (!cache)
drivers/platform/surface/aggregator/controller.c
569
ssam_event_item_cache = cache;
drivers/platform/surface/aggregator/ssh_packet_layer.c
600
struct kmem_cache *cache;
drivers/platform/surface/aggregator/ssh_packet_layer.c
602
cache = kmem_cache_create("ssam_ctrl_packet", size, align, 0, NULL);
drivers/platform/surface/aggregator/ssh_packet_layer.c
603
if (!cache)
drivers/platform/surface/aggregator/ssh_packet_layer.c
606
ssh_ctrl_packet_cache = cache;
drivers/platform/x86/p2sb.c
182
struct p2sb_res_cache *cache = &p2sb_resources[PCI_FUNC(devfn)];
drivers/platform/x86/p2sb.c
184
if (cache->bus_dev_id != bus->dev.id)
drivers/platform/x86/p2sb.c
187
if (!p2sb_valid_resource(&cache->res))
drivers/platform/x86/p2sb.c
190
memcpy(mem, &cache->res, sizeof(*mem));
drivers/platform/x86/p2sb.c
86
struct p2sb_res_cache *cache = &p2sb_resources[PCI_FUNC(devfn)];
drivers/platform/x86/p2sb.c
93
p2sb_read_bar0(pdev, &cache->res);
drivers/platform/x86/p2sb.c
94
cache->bus_dev_id = bus->dev.id;
drivers/power/supply/bq27xxx_battery.c
1829
if (unlikely(bq27xxx_battery_overtemp(di, di->cache.flags)))
drivers/power/supply/bq27xxx_battery.c
1831
else if (unlikely(bq27xxx_battery_undertemp(di, di->cache.flags)))
drivers/power/supply/bq27xxx_battery.c
1833
else if (unlikely(bq27xxx_battery_dead(di, di->cache.flags)))
drivers/power/supply/bq27xxx_battery.c
1835
else if (unlikely(bq27xxx_battery_capacity_inaccurate(di, di->cache.flags)))
drivers/power/supply/bq27xxx_battery.c
1864
struct bq27xxx_reg_cache *cache)
drivers/power/supply/bq27xxx_battery.c
1876
if (cache) {
drivers/power/supply/bq27xxx_battery.c
1877
flags = cache->flags;
drivers/power/supply/bq27xxx_battery.c
1918
struct bq27xxx_reg_cache cache = {0, };
drivers/power/supply/bq27xxx_battery.c
1921
cache.flags = bq27xxx_read(di, BQ27XXX_REG_FLAGS, has_singe_flag);
drivers/power/supply/bq27xxx_battery.c
1922
if (di->chip == BQ27000 && (cache.flags & 0xff) == 0xff)
drivers/power/supply/bq27xxx_battery.c
1923
cache.flags = -ENODEV; /* bq27000 hdq read error */
drivers/power/supply/bq27xxx_battery.c
1924
if (cache.flags >= 0) {
drivers/power/supply/bq27xxx_battery.c
1925
cache.capacity = bq27xxx_battery_read_soc(di);
drivers/power/supply/bq27xxx_battery.c
1932
bq27xxx_battery_current_and_status(di, NULL, &status, &cache);
drivers/power/supply/bq27xxx_battery.c
1935
if ((di->cache.capacity != cache.capacity) ||
drivers/power/supply/bq27xxx_battery.c
1936
(di->cache.flags != cache.flags) ||
drivers/power/supply/bq27xxx_battery.c
1942
if (memcmp(&di->cache, &cache, sizeof(cache)) != 0)
drivers/power/supply/bq27xxx_battery.c
1943
di->cache = cache;
drivers/power/supply/bq27xxx_battery.c
2000
if (di->cache.flags & BQ27000_FLAG_FC)
drivers/power/supply/bq27xxx_battery.c
2002
else if (di->cache.flags & BQ27000_FLAG_EDVF)
drivers/power/supply/bq27xxx_battery.c
2004
else if (di->cache.flags & BQ27000_FLAG_EDV1)
drivers/power/supply/bq27xxx_battery.c
2009
if (di->cache.flags & BQ27Z561_FLAG_FC)
drivers/power/supply/bq27xxx_battery.c
2011
else if (di->cache.flags & BQ27Z561_FLAG_FDC)
drivers/power/supply/bq27xxx_battery.c
2016
if (di->cache.flags & BQ27XXX_FLAG_FC)
drivers/power/supply/bq27xxx_battery.c
2018
else if (di->cache.flags & BQ27XXX_FLAG_SOCF)
drivers/power/supply/bq27xxx_battery.c
2020
else if (di->cache.flags & BQ27XXX_FLAG_SOC1)
drivers/power/supply/bq27xxx_battery.c
2133
if (psp != POWER_SUPPLY_PROP_PRESENT && di->cache.flags < 0)
drivers/power/supply/bq27xxx_battery.c
2134
return di->cache.flags;
drivers/power/supply/bq27xxx_battery.c
2144
val->intval = di->cache.flags < 0 ? 0 : 1;
drivers/power/supply/bq27xxx_battery.c
2150
ret = bq27xxx_simple_value(di->cache.capacity, val);
drivers/resctrl/mpam_resctrl.c
1013
r->cache.shareable_bits = resctrl_get_default_ctrl(r);
drivers/resctrl/mpam_resctrl.c
991
r->cache.arch_has_sparse_bitmasks = true;
drivers/resctrl/mpam_resctrl.c
993
r->cache.cbm_len = class->props.cpbm_wd;
drivers/resctrl/mpam_resctrl.c
995
r->cache.min_cbm_bits = 1;
drivers/s390/block/dasd_eckd.h
276
unsigned char cache:1;
drivers/scsi/aacraid/aachba.c
256
module_param_named(cache, aac_cache, int, S_IRUGO|S_IWUSR);
drivers/scsi/aacraid/aachba.c
257
MODULE_PARM_DESC(cache, "Disable Queue Flush commands:\n"
drivers/scsi/hisi_sas/hisi_sas.h
394
struct hisi_sas_iost_itct_cache *cache;
drivers/scsi/hisi_sas/hisi_sas.h
398
struct hisi_sas_iost_itct_cache *cache;
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
3205
u32 *cache)
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
3210
u32 *buf = cache;
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
3596
void *cachebuf = hisi_hba->debugfs_itct_cache[dump_index].cache;
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
3615
void *cachebuf = hisi_hba->debugfs_iost_cache[dump_index].cache;
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
3832
debugfs_iost_cache->cache;
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
3880
debugfs_itct_cache->cache;
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4643
devm_kfree(dev, hisi_hba->debugfs_iost_cache[dump_index].cache);
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4644
hisi_hba->debugfs_iost_cache[dump_index].cache = NULL;
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4645
devm_kfree(dev, hisi_hba->debugfs_itct_cache[dump_index].cache);
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4646
hisi_hba->debugfs_itct_cache[dump_index].cache = NULL;
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4741
hisi_hba->debugfs_iost_cache[dump_index].cache =
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4743
if (!hisi_hba->debugfs_iost_cache[dump_index].cache)
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4749
hisi_hba->debugfs_itct_cache[dump_index].cache =
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4751
if (!hisi_hba->debugfs_itct_cache[dump_index].cache)
drivers/soc/qcom/rpmh-internal.h
81
struct list_head cache;
drivers/soc/qcom/rpmh-rsc.c
1119
INIT_LIST_HEAD(&drv->client.cache);
drivers/soc/qcom/rpmh.c
101
list_for_each_entry(p, &ctrlr->cache, list) {
drivers/soc/qcom/rpmh.c
132
list_add_tail(&req->list, &ctrlr->cache);
drivers/soc/qcom/rpmh.c
457
list_for_each_entry(p, &ctrlr->cache, list) {
drivers/soc/tegra/cbb/tegra-cbb.c
36
void tegra_cbb_print_cache(struct seq_file *file, u32 cache)
drivers/soc/tegra/cbb/tegra-cbb.c
40
buff_str = (cache & BIT(0)) ? "Bufferable " : "";
drivers/soc/tegra/cbb/tegra-cbb.c
41
mod_str = (cache & BIT(1)) ? "Modifiable " : "";
drivers/soc/tegra/cbb/tegra-cbb.c
42
rd_str = (cache & BIT(2)) ? "Read-Allocate " : "";
drivers/soc/tegra/cbb/tegra-cbb.c
43
wr_str = (cache & BIT(3)) ? "Write-Allocate" : "";
drivers/soc/tegra/cbb/tegra-cbb.c
45
if (cache == 0x0)
drivers/soc/tegra/cbb/tegra-cbb.c
49
cache, buff_str, mod_str, rd_str, wr_str);
drivers/tty/serial/atmel_serial.c
182
} cache;
drivers/tty/serial/atmel_serial.c
2742
atmel_port->cache.mr = atmel_uart_readl(port, ATMEL_US_MR);
drivers/tty/serial/atmel_serial.c
2743
atmel_port->cache.imr = atmel_uart_readl(port, ATMEL_US_IMR);
drivers/tty/serial/atmel_serial.c
2744
atmel_port->cache.brgr = atmel_uart_readl(port, ATMEL_US_BRGR);
drivers/tty/serial/atmel_serial.c
2745
atmel_port->cache.rtor = atmel_uart_readl(port,
drivers/tty/serial/atmel_serial.c
2747
atmel_port->cache.ttgr = atmel_uart_readl(port, ATMEL_US_TTGR);
drivers/tty/serial/atmel_serial.c
2748
atmel_port->cache.fmr = atmel_uart_readl(port, ATMEL_US_FMR);
drivers/tty/serial/atmel_serial.c
2749
atmel_port->cache.fimr = atmel_uart_readl(port, ATMEL_US_FIMR);
drivers/tty/serial/atmel_serial.c
2775
atmel_uart_writel(port, ATMEL_US_MR, atmel_port->cache.mr);
drivers/tty/serial/atmel_serial.c
2776
atmel_uart_writel(port, ATMEL_US_IER, atmel_port->cache.imr);
drivers/tty/serial/atmel_serial.c
2777
atmel_uart_writel(port, ATMEL_US_BRGR, atmel_port->cache.brgr);
drivers/tty/serial/atmel_serial.c
2779
atmel_port->cache.rtor);
drivers/tty/serial/atmel_serial.c
2780
atmel_uart_writel(port, ATMEL_US_TTGR, atmel_port->cache.ttgr);
drivers/tty/serial/atmel_serial.c
2786
atmel_port->cache.fmr);
drivers/tty/serial/atmel_serial.c
2788
atmel_port->cache.fimr);
drivers/usb/core/quirks.c
683
struct usb_interface_cache *cache;
drivers/usb/core/quirks.c
686
cache = cfg->intf_cache[j];
drivers/usb/core/quirks.c
687
if (cache->num_altsetting == 0)
drivers/usb/core/quirks.c
690
intf = &cache->altsetting[0];
drivers/usb/dwc3/core.c
502
evt->cache = devm_kzalloc(dwc->dev, length, GFP_KERNEL);
drivers/usb/dwc3/core.c
503
if (!evt->cache)
drivers/usb/dwc3/core.h
696
void *cache;
drivers/usb/dwc3/gadget.c
4538
event.raw = *(u32 *) (evt->cache + evt->lpos);
drivers/usb/dwc3/gadget.c
4639
memcpy(evt->cache + evt->lpos, evt->buf + evt->lpos, amount);
drivers/usb/dwc3/gadget.c
4642
memcpy(evt->cache, evt->buf, count - amount);
drivers/video/fbdev/ffb.c
382
int cache = par->fifo_cache;
drivers/video/fbdev/ffb.c
384
if (cache - n < 0) {
drivers/video/fbdev/ffb.c
387
cache = (upa_readl(&fbc->ucsr) & FFB_UCSR_FIFO_MASK);
drivers/video/fbdev/ffb.c
388
cache -= 8;
drivers/video/fbdev/ffb.c
389
} while (cache - n < 0);
drivers/video/fbdev/ffb.c
391
par->fifo_cache = cache - n;
drivers/video/fbdev/matrox/g450_pll.c
395
ci = &minfo->cache.pixel;
drivers/video/fbdev/matrox/g450_pll.c
407
ci = &minfo->cache.system;
drivers/video/fbdev/matrox/g450_pll.c
426
ci = &minfo->cache.video;
drivers/video/fbdev/matrox/matroxfb_base.h
471
} cache;
drivers/video/sticore.c
495
sti->regions[i].region_desc.cache,
drivers/xen/grant-table.c
1002
void gnttab_page_cache_shrink(struct gnttab_page_cache *cache, unsigned int num)
drivers/xen/grant-table.c
1008
spin_lock_irqsave(&cache->lock, flags);
drivers/xen/grant-table.c
1010
while (cache->num_pages > num) {
drivers/xen/grant-table.c
1011
page[i] = cache_deq(cache);
drivers/xen/grant-table.c
1012
cache->num_pages--;
drivers/xen/grant-table.c
1014
spin_unlock_irqrestore(&cache->lock, flags);
drivers/xen/grant-table.c
1017
spin_lock_irqsave(&cache->lock, flags);
drivers/xen/grant-table.c
1021
spin_unlock_irqrestore(&cache->lock, flags);
drivers/xen/grant-table.c
906
static inline void cache_init(struct gnttab_page_cache *cache)
drivers/xen/grant-table.c
908
cache->pages = NULL;
drivers/xen/grant-table.c
911
static inline bool cache_empty(struct gnttab_page_cache *cache)
drivers/xen/grant-table.c
913
return !cache->pages;
drivers/xen/grant-table.c
916
static inline struct page *cache_deq(struct gnttab_page_cache *cache)
drivers/xen/grant-table.c
920
page = cache->pages;
drivers/xen/grant-table.c
921
cache->pages = page->zone_device_data;
drivers/xen/grant-table.c
926
static inline void cache_enq(struct gnttab_page_cache *cache, struct page *page)
drivers/xen/grant-table.c
928
page->zone_device_data = cache->pages;
drivers/xen/grant-table.c
929
cache->pages = page;
drivers/xen/grant-table.c
932
static inline void cache_init(struct gnttab_page_cache *cache)
drivers/xen/grant-table.c
934
INIT_LIST_HEAD(&cache->pages);
drivers/xen/grant-table.c
937
static inline bool cache_empty(struct gnttab_page_cache *cache)
drivers/xen/grant-table.c
939
return list_empty(&cache->pages);
drivers/xen/grant-table.c
942
static inline struct page *cache_deq(struct gnttab_page_cache *cache)
drivers/xen/grant-table.c
946
page = list_first_entry(&cache->pages, struct page, lru);
drivers/xen/grant-table.c
952
static inline void cache_enq(struct gnttab_page_cache *cache, struct page *page)
drivers/xen/grant-table.c
954
list_add(&page->lru, &cache->pages);
drivers/xen/grant-table.c
958
void gnttab_page_cache_init(struct gnttab_page_cache *cache)
drivers/xen/grant-table.c
960
spin_lock_init(&cache->lock);
drivers/xen/grant-table.c
961
cache_init(cache);
drivers/xen/grant-table.c
962
cache->num_pages = 0;
drivers/xen/grant-table.c
966
int gnttab_page_cache_get(struct gnttab_page_cache *cache, struct page **page)
drivers/xen/grant-table.c
970
spin_lock_irqsave(&cache->lock, flags);
drivers/xen/grant-table.c
972
if (cache_empty(cache)) {
drivers/xen/grant-table.c
973
spin_unlock_irqrestore(&cache->lock, flags);
drivers/xen/grant-table.c
977
page[0] = cache_deq(cache);
drivers/xen/grant-table.c
978
cache->num_pages--;
drivers/xen/grant-table.c
980
spin_unlock_irqrestore(&cache->lock, flags);
drivers/xen/grant-table.c
986
void gnttab_page_cache_put(struct gnttab_page_cache *cache, struct page **page,
drivers/xen/grant-table.c
992
spin_lock_irqsave(&cache->lock, flags);
drivers/xen/grant-table.c
995
cache_enq(cache, page[i]);
drivers/xen/grant-table.c
996
cache->num_pages += num;
drivers/xen/grant-table.c
998
spin_unlock_irqrestore(&cache->lock, flags);
fs/9p/cache.c
65
v9inode->netfs.cache =
fs/9p/cache.c
71
if (v9inode->netfs.cache)
fs/9p/v9fs.c
168
if (v9ses->cache)
fs/9p/v9fs.c
169
seq_printf(m, ",cache=%#x", v9ses->cache);
fs/9p/v9fs.c
171
if (v9ses->cachetag && (v9ses->cache & CACHE_FSCACHE))
fs/9p/v9fs.c
293
session_opts->cache = r;
fs/9p/v9fs.c
422
v9ses->cache = ctx->session_opts.cache;
fs/9p/v9fs.c
507
if (v9ses->cache & CACHE_FSCACHE) {
fs/9p/v9fs.h
118
unsigned int cache;
fs/9p/vfs_file.c
471
if (!(v9ses->cache & CACHE_WRITEBACK)) {
fs/9p/vfs_file.c
64
if ((v9ses->cache & CACHE_WRITEBACK) && (omode & P9_OWRITE)) {
fs/9p/vfs_file.c
90
if (v9ses->cache & CACHE_FSCACHE)
fs/9p/vfs_file.c
94
v9fs_fid_add_modes(fid, v9ses->flags, v9ses->cache, file->f_flags);
fs/9p/vfs_inode.c
1081
if (v9ses->cache & CACHE_FSCACHE) {
fs/9p/vfs_inode.c
1349
flags = (v9ses->cache & CACHE_LOOSE) ?
fs/9p/vfs_inode.c
739
else if (v9ses->cache & (CACHE_META|CACHE_LOOSE))
fs/9p/vfs_inode.c
788
if ((v9ses->cache & CACHE_WRITEBACK) && (p9_omode & P9_OWRITE)) {
fs/9p/vfs_inode.c
808
if (v9ses->cache & CACHE_FSCACHE)
fs/9p/vfs_inode.c
813
v9fs_fid_add_modes(fid, v9ses->flags, v9ses->cache, file->f_flags);
fs/9p/vfs_inode.c
975
if (v9ses->cache & (CACHE_META|CACHE_LOOSE)) {
fs/9p/vfs_inode.c
978
} else if (v9ses->cache & CACHE_WRITEBACK) {
fs/9p/vfs_inode_dotl.c
284
if ((v9ses->cache & CACHE_WRITEBACK) && (p9_omode & P9_OWRITE)) {
fs/9p/vfs_inode_dotl.c
322
if (v9ses->cache & CACHE_FSCACHE) {
fs/9p/vfs_inode_dotl.c
328
v9fs_fid_add_modes(ofid, v9ses->flags, v9ses->cache, flags);
fs/9p/vfs_inode_dotl.c
431
if (v9ses->cache & (CACHE_META|CACHE_LOOSE)) {
fs/9p/vfs_inode_dotl.c
434
} else if (v9ses->cache) {
fs/9p/vfs_inode_dotl.c
583
if (v9ses->cache & CACHE_FSCACHE)
fs/9p/vfs_inode_dotl.c
761
if (v9ses->cache & (CACHE_META|CACHE_LOOSE)) {
fs/9p/vfs_inode_dotl.c
907
flags = (v9ses->cache & CACHE_LOOSE) ?
fs/9p/vfs_super.c
113
if (v9ses->cache & (CACHE_META|CACHE_LOOSE)) {
fs/9p/vfs_super.c
231
if (v9ses->cache & (CACHE_META|CACHE_LOOSE))
fs/9p/vfs_super.c
317
ctx->session_opts.cache = CACHE_NONE;
fs/9p/vfs_super.c
58
if (!v9ses->cache) {
fs/afs/inode.c
536
vnode->netfs.cache = NULL;
fs/afs/inode.c
548
vnode->volume->cache,
fs/afs/internal.h
642
struct fscache_volume *cache; /* Caching cookie */
fs/afs/internal.h
752
vnode->netfs.cache = cookie;
fs/afs/volume.c
245
ASSERTCMP(volume->cache, ==, NULL);
fs/afs/volume.c
330
volume->cache = vcookie;
fs/afs/volume.c
344
fscache_relinquish_volume(volume->cache, NULL,
fs/afs/volume.c
346
volume->cache = NULL;
fs/btrfs/backref.c
3026
struct btrfs_backref_cache *cache, bool is_reloc)
fs/btrfs/backref.c
3030
cache->rb_root = RB_ROOT;
fs/btrfs/backref.c
3032
INIT_LIST_HEAD(&cache->pending[i]);
fs/btrfs/backref.c
3033
INIT_LIST_HEAD(&cache->pending_edge);
fs/btrfs/backref.c
3034
INIT_LIST_HEAD(&cache->useless_node);
fs/btrfs/backref.c
3035
cache->fs_info = fs_info;
fs/btrfs/backref.c
3036
cache->is_reloc = is_reloc;
fs/btrfs/backref.c
3040
struct btrfs_backref_cache *cache, u64 bytenr, int level)
fs/btrfs/backref.c
3053
cache->nr_nodes++;
fs/btrfs/backref.c
3060
void btrfs_backref_free_node(struct btrfs_backref_cache *cache,
fs/btrfs/backref.c
3067
cache->nr_nodes--;
fs/btrfs/backref.c
3074
struct btrfs_backref_cache *cache)
fs/btrfs/backref.c
3080
cache->nr_edges++;
fs/btrfs/backref.c
3084
void btrfs_backref_free_edge(struct btrfs_backref_cache *cache,
fs/btrfs/backref.c
3088
cache->nr_edges--;
fs/btrfs/backref.c
3137
void btrfs_backref_cleanup_node(struct btrfs_backref_cache *cache,
fs/btrfs/backref.c
3150
btrfs_backref_free_edge(cache, edge);
fs/btrfs/backref.c
3153
btrfs_backref_drop_node(cache, node);
fs/btrfs/backref.c
3159
void btrfs_backref_release_cache(struct btrfs_backref_cache *cache)
fs/btrfs/backref.c
3163
while ((node = rb_entry_safe(rb_first(&cache->rb_root),
fs/btrfs/backref.c
3165
btrfs_backref_cleanup_node(cache, node);
fs/btrfs/backref.c
3167
ASSERT(list_empty(&cache->pending_edge));
fs/btrfs/backref.c
3168
ASSERT(list_empty(&cache->useless_node));
fs/btrfs/backref.c
3169
ASSERT(!cache->nr_nodes);
fs/btrfs/backref.c
3170
ASSERT(!cache->nr_edges);
fs/btrfs/backref.c
3194
static int handle_direct_tree_backref(struct btrfs_backref_cache *cache,
fs/btrfs/backref.c
3210
if (cache->is_reloc) {
fs/btrfs/backref.c
3211
root = find_reloc_root(cache->fs_info, cur->bytenr);
fs/btrfs/backref.c
3220
list_add(&cur->list, &cache->useless_node);
fs/btrfs/backref.c
3225
edge = btrfs_backref_alloc_edge(cache);
fs/btrfs/backref.c
3229
rb_node = rb_simple_search(&cache->rb_root, ref_key->offset);
fs/btrfs/backref.c
3232
upper = btrfs_backref_alloc_node(cache, ref_key->offset,
fs/btrfs/backref.c
3235
btrfs_backref_free_edge(cache, edge);
fs/btrfs/backref.c
3243
list_add_tail(&edge->list[UPPER], &cache->pending_edge);
fs/btrfs/backref.c
3268
struct btrfs_backref_cache *cache,
fs/btrfs/backref.c
3274
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/backref.c
3308
if (btrfs_should_ignore_reloc_root(root) && cache->is_reloc) {
fs/btrfs/backref.c
3310
list_add(&cur->list, &cache->useless_node);
fs/btrfs/backref.c
3351
cache->is_reloc) {
fs/btrfs/backref.c
3353
list_add(&lower->list, &cache->useless_node);
fs/btrfs/backref.c
3360
edge = btrfs_backref_alloc_edge(cache);
fs/btrfs/backref.c
3368
rb_node = rb_simple_search(&cache->rb_root, eb->start);
fs/btrfs/backref.c
3370
upper = btrfs_backref_alloc_node(cache, eb->start,
fs/btrfs/backref.c
3374
btrfs_backref_free_edge(cache, edge);
fs/btrfs/backref.c
3383
btrfs_backref_free_edge(cache, edge);
fs/btrfs/backref.c
3384
btrfs_backref_free_node(cache, upper);
fs/btrfs/backref.c
3406
&cache->pending_edge);
fs/btrfs/backref.c
3447
struct btrfs_backref_cache *cache,
fs/btrfs/backref.c
3490
list_add_tail(&edge->list[UPPER], &cache->pending_edge);
fs/btrfs/backref.c
3538
ret = handle_direct_tree_backref(cache, &key, cur);
fs/btrfs/backref.c
3547
ret = handle_indirect_tree_backref(trans, cache, path,
fs/btrfs/backref.c
3568
int btrfs_backref_finish_upper_links(struct btrfs_backref_cache *cache,
fs/btrfs/backref.c
3571
struct list_head *useless_node = &cache->useless_node;
fs/btrfs/backref.c
3578
rb_node = rb_simple_insert(&cache->rb_root, &start->simple_node);
fs/btrfs/backref.c
3580
btrfs_backref_panic(cache->fs_info, start->bytenr, -EEXIST);
fs/btrfs/backref.c
3603
btrfs_backref_free_edge(cache, edge);
fs/btrfs/backref.c
3629
rb_node = rb_simple_insert(&cache->rb_root, &upper->simple_node);
fs/btrfs/backref.c
3631
btrfs_backref_panic(cache->fs_info, upper->bytenr, -EEXIST);
fs/btrfs/backref.c
3645
void btrfs_backref_error_cleanup(struct btrfs_backref_cache *cache,
fs/btrfs/backref.c
3652
while (!list_empty(&cache->useless_node)) {
fs/btrfs/backref.c
3653
lower = list_first_entry(&cache->useless_node,
fs/btrfs/backref.c
3657
while (!list_empty(&cache->pending_edge)) {
fs/btrfs/backref.c
3658
edge = list_first_entry(&cache->pending_edge,
fs/btrfs/backref.c
3664
btrfs_backref_free_edge(cache, edge);
fs/btrfs/backref.c
3672
list_add(&lower->list, &cache->useless_node);
fs/btrfs/backref.c
3680
&cache->pending_edge);
fs/btrfs/backref.c
3682
list_add(&upper->list, &cache->useless_node);
fs/btrfs/backref.c
3685
while (!list_empty(&cache->useless_node)) {
fs/btrfs/backref.c
3686
lower = list_first_entry(&cache->useless_node,
fs/btrfs/backref.c
3691
btrfs_backref_drop_node(cache, lower);
fs/btrfs/backref.c
3694
btrfs_backref_cleanup_node(cache, node);
fs/btrfs/backref.c
3695
ASSERT(list_empty(&cache->useless_node) &&
fs/btrfs/backref.c
3696
list_empty(&cache->pending_edge));
fs/btrfs/backref.h
429
struct btrfs_backref_cache *cache, bool is_reloc);
fs/btrfs/backref.h
431
struct btrfs_backref_cache *cache, u64 bytenr, int level);
fs/btrfs/backref.h
433
struct btrfs_backref_cache *cache);
fs/btrfs/backref.h
435
void btrfs_backref_free_node(struct btrfs_backref_cache *cache,
fs/btrfs/backref.h
437
void btrfs_backref_free_edge(struct btrfs_backref_cache *cache,
fs/btrfs/backref.h
442
void btrfs_backref_cleanup_node(struct btrfs_backref_cache *cache,
fs/btrfs/backref.h
447
void btrfs_backref_release_cache(struct btrfs_backref_cache *cache);
fs/btrfs/backref.h
458
struct btrfs_backref_cache *cache,
fs/btrfs/backref.h
464
int btrfs_backref_finish_upper_links(struct btrfs_backref_cache *cache,
fs/btrfs/backref.h
467
void btrfs_backref_error_cleanup(struct btrfs_backref_cache *cache,
fs/btrfs/block-group.c
1409
static int inc_block_group_ro(struct btrfs_block_group *cache, bool force)
fs/btrfs/block-group.c
1411
struct btrfs_space_info *sinfo = cache->space_info;
fs/btrfs/block-group.c
1416
spin_lock(&cache->lock);
fs/btrfs/block-group.c
1418
if (cache->swap_extents) {
fs/btrfs/block-group.c
1423
if (cache->ro) {
fs/btrfs/block-group.c
1424
cache->ro++;
fs/btrfs/block-group.c
1429
num_bytes = btrfs_block_group_available_space(cache);
fs/btrfs/block-group.c
1459
if (btrfs_is_zoned(cache->fs_info)) {
fs/btrfs/block-group.c
1461
sinfo->bytes_readonly += cache->zone_unusable;
fs/btrfs/block-group.c
1462
btrfs_space_info_update_bytes_zone_unusable(sinfo, -cache->zone_unusable);
fs/btrfs/block-group.c
1463
cache->zone_unusable = 0;
fs/btrfs/block-group.c
1465
cache->ro++;
fs/btrfs/block-group.c
1466
list_add_tail(&cache->ro_list, &sinfo->ro_bgs);
fs/btrfs/block-group.c
1469
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
1471
if (ret == -ENOSPC && btrfs_test_opt(cache->fs_info, ENOSPC_DEBUG)) {
fs/btrfs/block-group.c
1472
btrfs_info(cache->fs_info,
fs/btrfs/block-group.c
1473
"unable to make block group %llu ro", cache->start);
fs/btrfs/block-group.c
1474
btrfs_dump_space_info(cache->space_info, 0, false);
fs/btrfs/block-group.c
154
void btrfs_get_block_group(struct btrfs_block_group *cache)
fs/btrfs/block-group.c
156
refcount_inc(&cache->refs);
fs/btrfs/block-group.c
159
void btrfs_put_block_group(struct btrfs_block_group *cache)
fs/btrfs/block-group.c
161
if (refcount_dec_and_test(&cache->refs)) {
fs/btrfs/block-group.c
162
WARN_ON(cache->pinned > 0);
fs/btrfs/block-group.c
170
if (!(cache->flags & BTRFS_BLOCK_GROUP_METADATA) ||
fs/btrfs/block-group.c
171
!BTRFS_FS_LOG_CLEANUP_ERROR(cache->fs_info))
fs/btrfs/block-group.c
172
WARN_ON(cache->reserved > 0);
fs/btrfs/block-group.c
179
if (WARN_ON(!list_empty(&cache->discard_list)))
fs/btrfs/block-group.c
180
btrfs_discard_cancel_work(&cache->fs_info->discard_ctl,
fs/btrfs/block-group.c
181
cache);
fs/btrfs/block-group.c
183
kfree(cache->free_space_ctl);
fs/btrfs/block-group.c
184
btrfs_free_chunk_map(cache->physical_map);
fs/btrfs/block-group.c
185
kfree(cache);
fs/btrfs/block-group.c
2315
static int exclude_super_stripes(struct btrfs_block_group *cache)
fs/btrfs/block-group.c
2317
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/block-group.c
2324
if (cache->start < BTRFS_SUPER_INFO_OFFSET) {
fs/btrfs/block-group.c
2325
stripe_len = BTRFS_SUPER_INFO_OFFSET - cache->start;
fs/btrfs/block-group.c
2326
cache->bytes_super += stripe_len;
fs/btrfs/block-group.c
2327
ret = btrfs_set_extent_bit(&fs_info->excluded_extents, cache->start,
fs/btrfs/block-group.c
2328
cache->start + stripe_len - 1,
fs/btrfs/block-group.c
233
struct btrfs_block_group *cache, *ret = NULL;
fs/btrfs/block-group.c
2336
ret = btrfs_rmap_block(fs_info, cache->start,
fs/btrfs/block-group.c
2346
cache->start);
fs/btrfs/block-group.c
2352
btrfs_block_group_end(cache) - logical[nr]);
fs/btrfs/block-group.c
2354
cache->bytes_super += len;
fs/btrfs/block-group.c
2372
struct btrfs_block_group *cache;
fs/btrfs/block-group.c
2374
cache = kzalloc_obj(*cache, GFP_NOFS);
fs/btrfs/block-group.c
2375
if (!cache)
fs/btrfs/block-group.c
2378
cache->free_space_ctl = kzalloc_obj(*cache->free_space_ctl, GFP_NOFS);
fs/btrfs/block-group.c
2379
if (!cache->free_space_ctl) {
fs/btrfs/block-group.c
2380
kfree(cache);
fs/btrfs/block-group.c
2384
cache->start = start;
fs/btrfs/block-group.c
2386
cache->fs_info = fs_info;
fs/btrfs/block-group.c
2387
cache->full_stripe_len = btrfs_full_stripe_len(fs_info, start);
fs/btrfs/block-group.c
2389
cache->discard_index = BTRFS_DISCARD_INDEX_UNUSED;
fs/btrfs/block-group.c
2391
refcount_set(&cache->refs, 1);
fs/btrfs/block-group.c
2392
spin_lock_init(&cache->lock);
fs/btrfs/block-group.c
2393
init_rwsem(&cache->data_rwsem);
fs/btrfs/block-group.c
2394
INIT_LIST_HEAD(&cache->list);
fs/btrfs/block-group.c
2395
INIT_LIST_HEAD(&cache->cluster_list);
fs/btrfs/block-group.c
2396
INIT_LIST_HEAD(&cache->bg_list);
fs/btrfs/block-group.c
2397
INIT_LIST_HEAD(&cache->ro_list);
fs/btrfs/block-group.c
2398
INIT_LIST_HEAD(&cache->discard_list);
fs/btrfs/block-group.c
2399
INIT_LIST_HEAD(&cache->dirty_list);
fs/btrfs/block-group.c
2400
INIT_LIST_HEAD(&cache->io_list);
fs/btrfs/block-group.c
2401
INIT_LIST_HEAD(&cache->active_bg_list);
fs/btrfs/block-group.c
2402
btrfs_init_free_space_ctl(cache, cache->free_space_ctl);
fs/btrfs/block-group.c
2403
atomic_set(&cache->frozen, 0);
fs/btrfs/block-group.c
2404
mutex_init(&cache->free_space_lock);
fs/btrfs/block-group.c
2406
return cache;
fs/btrfs/block-group.c
241
cache = rb_entry(n, struct btrfs_block_group, cache_node);
fs/btrfs/block-group.c
242
end = btrfs_block_group_end(cache) - 1;
fs/btrfs/block-group.c
243
start = cache->start;
fs/btrfs/block-group.c
2466
struct btrfs_block_group *cache;
fs/btrfs/block-group.c
247
ret = cache;
fs/btrfs/block-group.c
2472
cache = btrfs_create_block_group(info, key->objectid);
fs/btrfs/block-group.c
2473
if (!cache)
fs/btrfs/block-group.c
2476
cache->length = key->offset;
fs/btrfs/block-group.c
2477
cache->used = btrfs_stack_block_group_v2_used(bgi);
fs/btrfs/block-group.c
2478
cache->last_used = cache->used;
fs/btrfs/block-group.c
2479
cache->flags = btrfs_stack_block_group_v2_flags(bgi);
fs/btrfs/block-group.c
2480
cache->last_flags = cache->flags;
fs/btrfs/block-group.c
2481
cache->global_root_id = btrfs_stack_block_group_v2_chunk_objectid(bgi);
fs/btrfs/block-group.c
2482
cache->space_info = btrfs_find_space_info(info, cache->flags);
fs/btrfs/block-group.c
2483
cache->remap_bytes = btrfs_stack_block_group_v2_remap_bytes(bgi);
fs/btrfs/block-group.c
2484
cache->last_remap_bytes = cache->remap_bytes;
fs/btrfs/block-group.c
2485
cache->identity_remap_count = btrfs_stack_block_group_v2_identity_remap_count(bgi);
fs/btrfs/block-group.c
2486
cache->last_identity_remap_count = cache->identity_remap_count;
fs/btrfs/block-group.c
2488
btrfs_set_free_space_tree_thresholds(cache);
fs/btrfs/block-group.c
2502
cache->disk_cache_state = BTRFS_DC_CLEAR;
fs/btrfs/block-group.c
2504
if (!mixed && ((cache->flags & BTRFS_BLOCK_GROUP_METADATA) &&
fs/btrfs/block-group.c
2505
(cache->flags & BTRFS_BLOCK_GROUP_DATA))) {
fs/btrfs/block-group.c
2508
cache->start);
fs/btrfs/block-group.c
251
ret = cache;
fs/btrfs/block-group.c
2513
ret = btrfs_load_block_group_zone_info(cache, false);
fs/btrfs/block-group.c
2516
cache->start);
fs/btrfs/block-group.c
2525
ret = exclude_super_stripes(cache);
fs/btrfs/block-group.c
2528
btrfs_free_excluded_extents(cache);
fs/btrfs/block-group.c
2545
btrfs_calc_zone_unusable(cache);
fs/btrfs/block-group.c
2547
btrfs_free_excluded_extents(cache);
fs/btrfs/block-group.c
2548
} else if (cache->length == cache->used) {
fs/btrfs/block-group.c
2549
cache->cached = BTRFS_CACHE_FINISHED;
fs/btrfs/block-group.c
2550
btrfs_free_excluded_extents(cache);
fs/btrfs/block-group.c
2551
} else if (cache->used == 0 && cache->remap_bytes == 0) {
fs/btrfs/block-group.c
2552
cache->cached = BTRFS_CACHE_FINISHED;
fs/btrfs/block-group.c
2553
ret = btrfs_add_new_free_space(cache, cache->start,
fs/btrfs/block-group.c
2554
btrfs_block_group_end(cache), NULL);
fs/btrfs/block-group.c
2555
btrfs_free_excluded_extents(cache);
fs/btrfs/block-group.c
256
ret = cache;
fs/btrfs/block-group.c
2560
ret = btrfs_add_block_group_cache(cache);
fs/btrfs/block-group.c
2562
btrfs_remove_free_space_cache(cache);
fs/btrfs/block-group.c
2566
trace_btrfs_add_block_group(info, cache, 0);
fs/btrfs/block-group.c
2567
btrfs_add_bg_to_space_info(info, cache);
fs/btrfs/block-group.c
2569
set_avail_alloc_bits(info, cache->flags);
fs/btrfs/block-group.c
2570
if (btrfs_chunk_writeable(info, cache->start)) {
fs/btrfs/block-group.c
2571
if (cache->used == 0 && cache->remap_bytes == 0) {
fs/btrfs/block-group.c
2572
ASSERT(list_empty(&cache->bg_list));
fs/btrfs/block-group.c
2574
btrfs_discard_queue_work(&info->discard_ctl, cache);
fs/btrfs/block-group.c
2576
btrfs_mark_bg_unused(cache);
fs/btrfs/block-group.c
2579
inc_block_group_ro(cache, true);
fs/btrfs/block-group.c
2584
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
2642
struct btrfs_block_group *cache;
fs/btrfs/block-group.c
2716
cache = list_first_entry(&space_info->block_groups[i],
fs/btrfs/block-group.c
2719
btrfs_sysfs_add_block_group_type(cache);
fs/btrfs/block-group.c
2732
list_for_each_entry(cache,
fs/btrfs/block-group.c
2735
inc_block_group_ro(cache, true);
fs/btrfs/block-group.c
2736
list_for_each_entry(cache,
fs/btrfs/block-group.c
2739
inc_block_group_ro(cache, true);
fs/btrfs/block-group.c
286
struct btrfs_block_group *cache)
fs/btrfs/block-group.c
288
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/block-group.c
294
if (RB_EMPTY_NODE(&cache->cache_node)) {
fs/btrfs/block-group.c
295
const u64 next_bytenr = btrfs_block_group_end(cache);
fs/btrfs/block-group.c
298
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
301
node = rb_next(&cache->cache_node);
fs/btrfs/block-group.c
3012
struct btrfs_block_group *cache;
fs/btrfs/block-group.c
3017
cache = btrfs_create_block_group(fs_info, chunk_offset);
fs/btrfs/block-group.c
3018
if (!cache)
fs/btrfs/block-group.c
302
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
3026
set_bit(BLOCK_GROUP_FLAG_NEW, &cache->runtime_flags);
fs/btrfs/block-group.c
3028
cache->length = size;
fs/btrfs/block-group.c
3029
btrfs_set_free_space_tree_thresholds(cache);
fs/btrfs/block-group.c
3030
cache->flags = type;
fs/btrfs/block-group.c
3031
cache->cached = BTRFS_CACHE_FINISHED;
fs/btrfs/block-group.c
3032
cache->global_root_id = calculate_global_root_id(fs_info, cache->start);
fs/btrfs/block-group.c
3035
set_bit(BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE, &cache->runtime_flags);
fs/btrfs/block-group.c
3037
ret = btrfs_load_block_group_zone_info(cache, true);
fs/btrfs/block-group.c
3039
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
304
cache = rb_entry(node, struct btrfs_block_group, cache_node);
fs/btrfs/block-group.c
3043
ret = exclude_super_stripes(cache);
fs/btrfs/block-group.c
3046
btrfs_free_excluded_extents(cache);
fs/btrfs/block-group.c
3047
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
305
btrfs_get_block_group(cache);
fs/btrfs/block-group.c
3051
ret = btrfs_add_new_free_space(cache, chunk_offset, chunk_offset + size, NULL);
fs/btrfs/block-group.c
3052
btrfs_free_excluded_extents(cache);
fs/btrfs/block-group.c
3054
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
3063
cache->space_info = space_info;
fs/btrfs/block-group.c
3064
ASSERT(cache->space_info);
fs/btrfs/block-group.c
3066
ret = btrfs_add_block_group_cache(cache);
fs/btrfs/block-group.c
3068
btrfs_remove_free_space_cache(cache);
fs/btrfs/block-group.c
3069
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
307
cache = NULL;
fs/btrfs/block-group.c
3077
trace_btrfs_add_block_group(fs_info, cache, 1);
fs/btrfs/block-group.c
3078
btrfs_add_bg_to_space_info(fs_info, cache);
fs/btrfs/block-group.c
3082
if (btrfs_should_fragment_free_space(cache)) {
fs/btrfs/block-group.c
3083
cache->space_info->bytes_used += size >> 1;
fs/btrfs/block-group.c
3084
fragment_free_space(cache);
fs/btrfs/block-group.c
3088
btrfs_link_bg_list(cache, &trans->new_bgs);
fs/btrfs/block-group.c
309
return cache;
fs/btrfs/block-group.c
3092
return cache;
fs/btrfs/block-group.c
3104
int btrfs_inc_block_group_ro(struct btrfs_block_group *cache,
fs/btrfs/block-group.c
3107
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/block-group.c
3108
struct btrfs_space_info *space_info = cache->space_info;
fs/btrfs/block-group.c
3128
ret = inc_block_group_ro(cache, false);
fs/btrfs/block-group.c
3164
alloc_flags = btrfs_get_alloc_profile(fs_info, cache->flags);
fs/btrfs/block-group.c
3165
if (alloc_flags != cache->flags) {
fs/btrfs/block-group.c
3179
ret = inc_block_group_ro(cache, false);
fs/btrfs/block-group.c
3191
(cache->flags & BTRFS_BLOCK_GROUP_SYSTEM))
fs/btrfs/block-group.c
3206
ret = inc_block_group_ro(cache, false);
fs/btrfs/block-group.c
3210
if (cache->flags & BTRFS_BLOCK_GROUP_SYSTEM) {
fs/btrfs/block-group.c
3211
alloc_flags = btrfs_get_alloc_profile(fs_info, cache->flags);
fs/btrfs/block-group.c
3223
void btrfs_dec_block_group_ro(struct btrfs_block_group *cache)
fs/btrfs/block-group.c
3225
struct btrfs_space_info *sinfo = cache->space_info;
fs/btrfs/block-group.c
3227
BUG_ON(!cache->ro);
fs/btrfs/block-group.c
3230
spin_lock(&cache->lock);
fs/btrfs/block-group.c
3231
if (!--cache->ro) {
fs/btrfs/block-group.c
3232
if (btrfs_is_zoned(cache->fs_info)) {
fs/btrfs/block-group.c
3234
cache->zone_unusable =
fs/btrfs/block-group.c
3235
(cache->alloc_offset - cache->used - cache->pinned -
fs/btrfs/block-group.c
3236
cache->reserved) +
fs/btrfs/block-group.c
3237
(cache->length - cache->zone_capacity);
fs/btrfs/block-group.c
3238
btrfs_space_info_update_bytes_zone_unusable(sinfo, cache->zone_unusable);
fs/btrfs/block-group.c
3239
sinfo->bytes_readonly -= cache->zone_unusable;
fs/btrfs/block-group.c
3241
sinfo->bytes_readonly -= btrfs_block_group_available_space(cache);
fs/btrfs/block-group.c
3242
list_del_init(&cache->ro_list);
fs/btrfs/block-group.c
3244
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
3250
struct btrfs_block_group *cache)
fs/btrfs/block-group.c
3275
spin_lock(&cache->lock);
fs/btrfs/block-group.c
3276
old_last_used = cache->last_used;
fs/btrfs/block-group.c
3277
old_last_remap_bytes = cache->last_remap_bytes;
fs/btrfs/block-group.c
3278
old_last_identity_remap_count = cache->last_identity_remap_count;
fs/btrfs/block-group.c
3279
used = cache->used;
fs/btrfs/block-group.c
3280
remap_bytes = cache->remap_bytes;
fs/btrfs/block-group.c
3281
identity_remap_count = cache->identity_remap_count;
fs/btrfs/block-group.c
3283
if (cache->last_used == used &&
fs/btrfs/block-group.c
3284
cache->last_remap_bytes == remap_bytes &&
fs/btrfs/block-group.c
3285
cache->last_identity_remap_count == identity_remap_count &&
fs/btrfs/block-group.c
3286
cache->last_flags == cache->flags) {
fs/btrfs/block-group.c
3287
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
3290
cache->last_used = used;
fs/btrfs/block-group.c
3291
cache->last_remap_bytes = remap_bytes;
fs/btrfs/block-group.c
3292
cache->last_identity_remap_count = identity_remap_count;
fs/btrfs/block-group.c
3293
cache->last_flags = cache->flags;
fs/btrfs/block-group.c
3294
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
3296
key.objectid = cache->start;
fs/btrfs/block-group.c
3298
key.offset = cache->length;
fs/btrfs/block-group.c
3310
btrfs_set_stack_block_group_v2_chunk_objectid(&bgi, cache->global_root_id);
fs/btrfs/block-group.c
3311
btrfs_set_stack_block_group_v2_flags(&bgi, cache->flags);
fs/btrfs/block-group.c
3314
btrfs_set_stack_block_group_v2_remap_bytes(&bgi, cache->remap_bytes);
fs/btrfs/block-group.c
3316
cache->identity_remap_count);
fs/btrfs/block-group.c
3336
spin_lock(&cache->lock);
fs/btrfs/block-group.c
3337
cache->last_used = old_last_used;
fs/btrfs/block-group.c
3338
cache->last_remap_bytes = old_last_remap_bytes;
fs/btrfs/block-group.c
3339
cache->last_identity_remap_count = old_last_identity_remap_count;
fs/btrfs/block-group.c
3340
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
3515
struct btrfs_block_group *cache, *tmp;
fs/btrfs/block-group.c
3528
list_for_each_entry_safe(cache, tmp, &cur_trans->dirty_bgs,
fs/btrfs/block-group.c
3530
if (cache->disk_cache_state == BTRFS_DC_CLEAR)
fs/btrfs/block-group.c
3531
cache_save_setup(cache, trans, path);
fs/btrfs/block-group.c
3552
struct btrfs_block_group *cache;
fs/btrfs/block-group.c
3590
cache = list_first_entry(&dirty, struct btrfs_block_group,
fs/btrfs/block-group.c
3597
if (!list_empty(&cache->io_list)) {
fs/btrfs/block-group.c
3598
list_del_init(&cache->io_list);
fs/btrfs/block-group.c
3599
btrfs_wait_cache_io(trans, cache, path);
fs/btrfs/block-group.c
3600
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
3613
list_del_init(&cache->dirty_list);
fs/btrfs/block-group.c
3618
cache_save_setup(cache, trans, path);
fs/btrfs/block-group.c
3620
if (cache->disk_cache_state == BTRFS_DC_SETUP) {
fs/btrfs/block-group.c
3621
cache->io_ctl.inode = NULL;
fs/btrfs/block-group.c
3622
ret = btrfs_write_out_cache(trans, cache, path);
fs/btrfs/block-group.c
3623
if (ret == 0 && cache->io_ctl.inode) {
fs/btrfs/block-group.c
3631
list_add_tail(&cache->io_list, io);
fs/btrfs/block-group.c
3641
ret = update_block_group_item(trans, path, cache);
fs/btrfs/block-group.c
3654
if (list_empty(&cache->dirty_list)) {
fs/btrfs/block-group.c
3655
list_add_tail(&cache->dirty_list,
fs/btrfs/block-group.c
3657
btrfs_get_block_group(cache);
fs/btrfs/block-group.c
3668
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
3717
struct btrfs_block_group *cache;
fs/btrfs/block-group.c
3745
cache = list_first_entry(&cur_trans->dirty_bgs,
fs/btrfs/block-group.c
3754
if (!list_empty(&cache->io_list)) {
fs/btrfs/block-group.c
3756
list_del_init(&cache->io_list);
fs/btrfs/block-group.c
3757
btrfs_wait_cache_io(trans, cache, path);
fs/btrfs/block-group.c
3758
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
3766
list_del_init(&cache->dirty_list);
fs/btrfs/block-group.c
3770
cache_save_setup(cache, trans, path);
fs/btrfs/block-group.c
3775
if (!ret && cache->disk_cache_state == BTRFS_DC_SETUP) {
fs/btrfs/block-group.c
3776
cache->io_ctl.inode = NULL;
fs/btrfs/block-group.c
3777
ret = btrfs_write_out_cache(trans, cache, path);
fs/btrfs/block-group.c
3778
if (ret == 0 && cache->io_ctl.inode) {
fs/btrfs/block-group.c
3780
list_add_tail(&cache->io_list, io);
fs/btrfs/block-group.c
3790
ret = update_block_group_item(trans, path, cache);
fs/btrfs/block-group.c
3807
ret = update_block_group_item(trans, path, cache);
fs/btrfs/block-group.c
3817
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
3828
cache = list_first_entry(io, struct btrfs_block_group,
fs/btrfs/block-group.c
3830
list_del_init(&cache->io_list);
fs/btrfs/block-group.c
3831
btrfs_wait_cache_io(trans, cache, path);
fs/btrfs/block-group.c
3832
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
3851
struct btrfs_block_group *cache;
fs/btrfs/block-group.c
3867
cache = btrfs_lookup_block_group(info, bytenr);
fs/btrfs/block-group.c
3868
if (!cache)
fs/btrfs/block-group.c
3872
ASSERT(bytenr + num_bytes <= btrfs_block_group_end(cache));
fs/btrfs/block-group.c
3874
space_info = cache->space_info;
fs/btrfs/block-group.c
3875
factor = btrfs_bg_type_to_factor(cache->flags);
fs/btrfs/block-group.c
3883
if (!alloc && !btrfs_block_group_done(cache))
fs/btrfs/block-group.c
3884
btrfs_cache_block_group(cache, true);
fs/btrfs/block-group.c
3887
spin_lock(&cache->lock);
fs/btrfs/block-group.c
3890
cache->disk_cache_state < BTRFS_DC_CLEAR)
fs/btrfs/block-group.c
3891
cache->disk_cache_state = BTRFS_DC_CLEAR;
fs/btrfs/block-group.c
3893
old_val = cache->used;
fs/btrfs/block-group.c
3896
cache->used = old_val;
fs/btrfs/block-group.c
3897
cache->reserved -= num_bytes;
fs/btrfs/block-group.c
3898
cache->reclaim_mark = 0;
fs/btrfs/block-group.c
3904
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
3908
cache->used = old_val;
fs/btrfs/block-group.c
3909
cache->pinned += num_bytes;
fs/btrfs/block-group.c
3910
btrfs_maybe_reset_size_class(cache);
fs/btrfs/block-group.c
3917
reclaim = should_reclaim_block_group(cache, num_bytes);
fs/btrfs/block-group.c
3919
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
3927
if (list_empty(&cache->dirty_list)) {
fs/btrfs/block-group.c
3928
list_add_tail(&cache->dirty_list, &trans->transaction->dirty_bgs);
fs/btrfs/block-group.c
3930
btrfs_get_block_group(cache);
fs/btrfs/block-group.c
3941
btrfs_mark_bg_unused(cache);
fs/btrfs/block-group.c
3943
btrfs_mark_bg_to_reclaim(cache);
fs/btrfs/block-group.c
3946
btrfs_put_block_group(cache);
fs/btrfs/block-group.c
3968
int btrfs_add_reserved_bytes(struct btrfs_block_group *cache,
fs/btrfs/block-group.c
3972
struct btrfs_space_info *space_info = cache->space_info;
fs/btrfs/block-group.c
3977
spin_lock(&cache->lock);
fs/btrfs/block-group.c
3978
if (cache->ro) {
fs/btrfs/block-group.c
3983
if (btrfs_block_group_should_use_size_class(cache)) {
fs/btrfs/block-group.c
3985
ret = btrfs_use_block_group_size_class(cache, size_class, force_wrong_size_class);
fs/btrfs/block-group.c
3990
cache->reserved += num_bytes;
fs/btrfs/block-group.c
3992
cache->delalloc_bytes += num_bytes;
fs/btrfs/block-group.c
3994
trace_btrfs_space_reservation(cache->fs_info, "space_info",
fs/btrfs/block-group.c
3996
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
4012
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
4029
void btrfs_free_reserved_bytes(struct btrfs_block_group *cache, u64 num_bytes,
fs/btrfs/block-group.c
4032
struct btrfs_space_info *space_info = cache->space_info;
fs/btrfs/block-group.c
4036
spin_lock(&cache->lock);
fs/btrfs/block-group.c
4037
bg_ro = cache->ro;
fs/btrfs/block-group.c
4038
cache->reserved -= num_bytes;
fs/btrfs/block-group.c
4039
btrfs_maybe_reset_size_class(cache);
fs/btrfs/block-group.c
4041
cache->delalloc_bytes -= num_bytes;
fs/btrfs/block-group.c
4042
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
4046
else if (btrfs_is_zoned(cache->fs_info))
fs/btrfs/block-group.c
416
struct btrfs_block_group *cache)
fs/btrfs/block-group.c
420
spin_lock(&cache->lock);
fs/btrfs/block-group.c
421
if (!cache->caching_ctl) {
fs/btrfs/block-group.c
422
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
426
ctl = cache->caching_ctl;
fs/btrfs/block-group.c
428
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
451
void btrfs_wait_block_group_cache_progress(struct btrfs_block_group *cache,
fs/btrfs/block-group.c
457
caching_ctl = btrfs_get_caching_control(cache);
fs/btrfs/block-group.c
469
wait_event(caching_ctl->wait, btrfs_block_group_done(cache) ||
fs/btrfs/block-group.c
471
(cache->free_space_ctl->free_space >= num_bytes)));
fs/btrfs/block-group.c
476
static int btrfs_caching_ctl_wait_done(struct btrfs_block_group *cache,
fs/btrfs/block-group.c
4769
void btrfs_freeze_block_group(struct btrfs_block_group *cache)
fs/btrfs/block-group.c
4771
atomic_inc(&cache->frozen);
fs/btrfs/block-group.c
479
wait_event(caching_ctl->wait, btrfs_block_group_done(cache));
fs/btrfs/block-group.c
480
return cache->cached == BTRFS_CACHE_ERROR ? -EIO : 0;
fs/btrfs/block-group.c
483
static int btrfs_wait_block_group_cache_done(struct btrfs_block_group *cache)
fs/btrfs/block-group.c
488
caching_ctl = btrfs_get_caching_control(cache);
fs/btrfs/block-group.c
490
return (cache->cached == BTRFS_CACHE_ERROR) ? -EIO : 0;
fs/btrfs/block-group.c
491
ret = btrfs_caching_ctl_wait_done(cache, caching_ctl);
fs/btrfs/block-group.c
938
int btrfs_cache_block_group(struct btrfs_block_group *cache, bool wait)
fs/btrfs/block-group.c
940
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/block-group.c
952
if (cache->flags & BTRFS_BLOCK_GROUP_REMAPPED)
fs/btrfs/block-group.c
962
caching_ctl->block_group = cache;
fs/btrfs/block-group.c
967
spin_lock(&cache->lock);
fs/btrfs/block-group.c
968
if (cache->cached != BTRFS_CACHE_NO) {
fs/btrfs/block-group.c
971
caching_ctl = cache->caching_ctl;
fs/btrfs/block-group.c
974
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
977
WARN_ON(cache->caching_ctl);
fs/btrfs/block-group.c
978
cache->caching_ctl = caching_ctl;
fs/btrfs/block-group.c
979
cache->cached = BTRFS_CACHE_STARTED;
fs/btrfs/block-group.c
980
spin_unlock(&cache->lock);
fs/btrfs/block-group.c
987
btrfs_get_block_group(cache);
fs/btrfs/block-group.c
992
ret = btrfs_caching_ctl_wait_done(cache, caching_ctl);
fs/btrfs/block-group.h
328
struct btrfs_block_group *cache);
fs/btrfs/block-group.h
329
void btrfs_get_block_group(struct btrfs_block_group *cache);
fs/btrfs/block-group.h
330
void btrfs_put_block_group(struct btrfs_block_group *cache);
fs/btrfs/block-group.h
338
void btrfs_wait_block_group_cache_progress(struct btrfs_block_group *cache,
fs/btrfs/block-group.h
340
int btrfs_cache_block_group(struct btrfs_block_group *cache, bool wait);
fs/btrfs/block-group.h
342
struct btrfs_block_group *cache);
fs/btrfs/block-group.h
362
int btrfs_inc_block_group_ro(struct btrfs_block_group *cache,
fs/btrfs/block-group.h
364
void btrfs_dec_block_group_ro(struct btrfs_block_group *cache);
fs/btrfs/block-group.h
370
int btrfs_add_reserved_bytes(struct btrfs_block_group *cache,
fs/btrfs/block-group.h
373
void btrfs_free_reserved_bytes(struct btrfs_block_group *cache, u64 num_bytes,
fs/btrfs/block-group.h
403
static inline int btrfs_block_group_done(const struct btrfs_block_group *cache)
fs/btrfs/block-group.h
406
return cache->cached == BTRFS_CACHE_FINISHED ||
fs/btrfs/block-group.h
407
cache->cached == BTRFS_CACHE_ERROR;
fs/btrfs/block-group.h
410
void btrfs_freeze_block_group(struct btrfs_block_group *cache);
fs/btrfs/block-group.h
411
void btrfs_unfreeze_block_group(struct btrfs_block_group *cache);
fs/btrfs/dev-replace.c
446
struct btrfs_block_group *cache;
fs/btrfs/dev-replace.c
515
cache = btrfs_lookup_block_group(fs_info, chunk_offset);
fs/btrfs/dev-replace.c
516
if (!cache)
fs/btrfs/dev-replace.c
519
set_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
fs/btrfs/dev-replace.c
520
btrfs_put_block_group(cache);
fs/btrfs/dev-replace.c
533
struct btrfs_block_group *cache,
fs/btrfs/dev-replace.c
536
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/dev-replace.c
538
u64 chunk_offset = cache->start;
fs/btrfs/dev-replace.c
546
spin_lock(&cache->lock);
fs/btrfs/dev-replace.c
547
if (test_bit(BLOCK_GROUP_FLAG_REMOVED, &cache->runtime_flags)) {
fs/btrfs/dev-replace.c
548
spin_unlock(&cache->lock);
fs/btrfs/dev-replace.c
551
spin_unlock(&cache->lock);
fs/btrfs/dev-replace.c
579
clear_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
fs/btrfs/dev-replace.h
30
struct btrfs_block_group *cache,
fs/btrfs/disk-io.c
4721
static void btrfs_cleanup_bg_io(struct btrfs_block_group *cache)
fs/btrfs/disk-io.c
4725
inode = cache->io_ctl.inode;
fs/btrfs/disk-io.c
4734
cache->io_ctl.inode = NULL;
fs/btrfs/disk-io.c
4737
ASSERT(cache->io_ctl.pages == NULL);
fs/btrfs/disk-io.c
4738
btrfs_put_block_group(cache);
fs/btrfs/disk-io.c
4744
struct btrfs_block_group *cache;
fs/btrfs/disk-io.c
4748
cache = list_first_entry(&cur_trans->dirty_bgs,
fs/btrfs/disk-io.c
4752
if (!list_empty(&cache->io_list)) {
fs/btrfs/disk-io.c
4754
list_del_init(&cache->io_list);
fs/btrfs/disk-io.c
4755
btrfs_cleanup_bg_io(cache);
fs/btrfs/disk-io.c
4759
list_del_init(&cache->dirty_list);
fs/btrfs/disk-io.c
4760
spin_lock(&cache->lock);
fs/btrfs/disk-io.c
4761
cache->disk_cache_state = BTRFS_DC_ERROR;
fs/btrfs/disk-io.c
4762
spin_unlock(&cache->lock);
fs/btrfs/disk-io.c
4765
btrfs_put_block_group(cache);
fs/btrfs/disk-io.c
4776
cache = list_first_entry(&cur_trans->io_bgs,
fs/btrfs/disk-io.c
4780
list_del_init(&cache->io_list);
fs/btrfs/disk-io.c
4781
spin_lock(&cache->lock);
fs/btrfs/disk-io.c
4782
cache->disk_cache_state = BTRFS_DC_ERROR;
fs/btrfs/disk-io.c
4783
spin_unlock(&cache->lock);
fs/btrfs/disk-io.c
4784
btrfs_cleanup_bg_io(cache);
fs/btrfs/extent-tree.c
2706
struct btrfs_block_group *cache;
fs/btrfs/extent-tree.c
2708
cache = btrfs_lookup_block_group(trans->fs_info, bytenr);
fs/btrfs/extent-tree.c
2709
BUG_ON(!cache); /* Logic error */
fs/btrfs/extent-tree.c
2711
pin_down_extent(trans, cache, bytenr, num_bytes, true);
fs/btrfs/extent-tree.c
2713
btrfs_put_block_group(cache);
fs/btrfs/extent-tree.c
2720
struct btrfs_block_group *cache;
fs/btrfs/extent-tree.c
2723
cache = btrfs_lookup_block_group(trans->fs_info, eb->start);
fs/btrfs/extent-tree.c
2724
if (!cache)
fs/btrfs/extent-tree.c
2731
ret = btrfs_cache_block_group(cache, true);
fs/btrfs/extent-tree.c
2735
pin_down_extent(trans, cache, eb->start, eb->len, false);
fs/btrfs/extent-tree.c
2738
ret = btrfs_remove_free_space(cache, eb->start, eb->len);
fs/btrfs/extent-tree.c
2740
btrfs_put_block_group(cache);
fs/btrfs/extent-tree.c
2835
struct btrfs_block_group *cache = NULL;
fs/btrfs/extent-tree.c
2845
if (!cache || start >= btrfs_block_group_end(cache)) {
fs/btrfs/extent-tree.c
2846
if (cache)
fs/btrfs/extent-tree.c
2847
btrfs_put_block_group(cache);
fs/btrfs/extent-tree.c
2849
cache = btrfs_lookup_block_group(fs_info, start);
fs/btrfs/extent-tree.c
2850
if (unlikely(cache == NULL)) {
fs/btrfs/extent-tree.c
2856
cache->space_info,
fs/btrfs/extent-tree.c
2861
len = btrfs_block_group_end(cache) - start;
fs/btrfs/extent-tree.c
2865
btrfs_add_free_space(cache, start, len);
fs/btrfs/extent-tree.c
2869
space_info = cache->space_info;
fs/btrfs/extent-tree.c
2885
spin_lock(&cache->lock);
fs/btrfs/extent-tree.c
2886
readonly = cache->ro;
fs/btrfs/extent-tree.c
2887
cache->pinned -= len;
fs/btrfs/extent-tree.c
2888
spin_unlock(&cache->lock);
fs/btrfs/extent-tree.c
2904
if (cache)
fs/btrfs/extent-tree.c
2905
btrfs_put_block_group(cache);
fs/btrfs/extent-tree.c
3770
btrfs_lock_block_group(struct btrfs_block_group *cache, bool delalloc)
fs/btrfs/extent-tree.c
3773
down_read(&cache->data_rwsem);
fs/btrfs/extent-tree.c
3776
static inline void btrfs_grab_block_group(struct btrfs_block_group *cache,
fs/btrfs/extent-tree.c
3779
btrfs_get_block_group(cache);
fs/btrfs/extent-tree.c
3781
down_read(&cache->data_rwsem);
fs/btrfs/extent-tree.c
3824
btrfs_release_block_group(struct btrfs_block_group *cache, bool delalloc)
fs/btrfs/extent-tree.c
3827
up_read(&cache->data_rwsem);
fs/btrfs/extent-tree.c
3828
btrfs_put_block_group(cache);
fs/btrfs/extent-tree.c
4929
struct btrfs_block_group *cache;
fs/btrfs/extent-tree.c
4931
cache = btrfs_lookup_block_group(fs_info, start);
fs/btrfs/extent-tree.c
4932
if (!cache) {
fs/btrfs/extent-tree.c
4938
btrfs_add_free_space(cache, start, len);
fs/btrfs/extent-tree.c
4939
btrfs_free_reserved_bytes(cache, len, is_delalloc);
fs/btrfs/extent-tree.c
4942
btrfs_put_block_group(cache);
fs/btrfs/extent-tree.c
4949
struct btrfs_block_group *cache;
fs/btrfs/extent-tree.c
4952
cache = btrfs_lookup_block_group(trans->fs_info, eb->start);
fs/btrfs/extent-tree.c
4953
if (!cache) {
fs/btrfs/extent-tree.c
4959
ret = pin_down_extent(trans, cache, eb->start, eb->len, true);
fs/btrfs/extent-tree.c
4960
btrfs_put_block_group(cache);
fs/btrfs/extent-tree.c
66
static int block_group_bits(const struct btrfs_block_group *cache, u64 bits)
fs/btrfs/extent-tree.c
68
return (cache->flags & bits) == bits;
fs/btrfs/extent-tree.c
6837
struct btrfs_block_group *cache = NULL;
fs/btrfs/extent-tree.c
6860
cache = btrfs_lookup_first_block_group(fs_info, range->start);
fs/btrfs/extent-tree.c
6861
for (; cache; cache = btrfs_next_block_group(cache)) {
fs/btrfs/extent-tree.c
6862
if (cache->start >= range_end) {
fs/btrfs/extent-tree.c
6863
btrfs_put_block_group(cache);
fs/btrfs/extent-tree.c
6867
start = max(range->start, cache->start);
fs/btrfs/extent-tree.c
6868
end = min(range_end, btrfs_block_group_end(cache));
fs/btrfs/extent-tree.c
6871
if (!btrfs_block_group_done(cache)) {
fs/btrfs/extent-tree.c
6872
ret = btrfs_cache_block_group(cache, true);
fs/btrfs/extent-tree.c
6880
ret = btrfs_trim_block_group(cache,
fs/btrfs/extent-tree.c
6888
btrfs_put_block_group(cache);
fs/btrfs/fiemap.c
108
struct fiemap_cache *cache,
fs/btrfs/fiemap.c
117
if (!cache->cached)
fs/btrfs/fiemap.c
152
cache_end = cache->offset + cache->len;
fs/btrfs/fiemap.c
154
if (offset == cache->offset) {
fs/btrfs/fiemap.c
163
} else if (offset > cache->offset) {
fs/btrfs/fiemap.c
176
cache->len = offset - cache->offset;
fs/btrfs/fiemap.c
231
if (cache->offset + cache->len == offset &&
fs/btrfs/fiemap.c
232
cache->phys + cache->len == phys &&
fs/btrfs/fiemap.c
233
cache->flags == flags) {
fs/btrfs/fiemap.c
234
cache->len += len;
fs/btrfs/fiemap.c
241
if (cache->entries_pos == cache->entries_size) {
fs/btrfs/fiemap.c
250
entry = &cache->entries[cache->entries_size - 1];
fs/btrfs/fiemap.c
251
cache->next_search_offset = entry->offset + entry->len;
fs/btrfs/fiemap.c
252
cache->cached = false;
fs/btrfs/fiemap.c
257
entry = &cache->entries[cache->entries_pos];
fs/btrfs/fiemap.c
258
entry->offset = cache->offset;
fs/btrfs/fiemap.c
259
entry->phys = cache->phys;
fs/btrfs/fiemap.c
260
entry->len = cache->len;
fs/btrfs/fiemap.c
261
entry->flags = cache->flags;
fs/btrfs/fiemap.c
262
cache->entries_pos++;
fs/btrfs/fiemap.c
263
cache->extents_mapped++;
fs/btrfs/fiemap.c
265
if (cache->extents_mapped == fieinfo->fi_extents_max) {
fs/btrfs/fiemap.c
266
cache->cached = false;
fs/btrfs/fiemap.c
270
cache->cached = true;
fs/btrfs/fiemap.c
271
cache->offset = offset;
fs/btrfs/fiemap.c
272
cache->phys = phys;
fs/btrfs/fiemap.c
273
cache->len = len;
fs/btrfs/fiemap.c
274
cache->flags = flags;
fs/btrfs/fiemap.c
291
struct fiemap_cache *cache)
fs/btrfs/fiemap.c
295
if (!cache->cached)
fs/btrfs/fiemap.c
298
ret = fiemap_fill_next_extent(fieinfo, cache->offset, cache->phys,
fs/btrfs/fiemap.c
299
cache->len, cache->flags);
fs/btrfs/fiemap.c
300
cache->cached = false;
fs/btrfs/fiemap.c
438
struct fiemap_cache *cache,
fs/btrfs/fiemap.c
497
ret = emit_fiemap_extent(fieinfo, cache, prealloc_start,
fs/btrfs/fiemap.c
505
ret = emit_fiemap_extent(fieinfo, cache, delalloc_start, 0,
fs/btrfs/fiemap.c
544
ret = emit_fiemap_extent(fieinfo, cache, prealloc_start,
fs/btrfs/fiemap.c
638
struct fiemap_cache cache = { 0 };
fs/btrfs/fiemap.c
648
cache.entries_size = PAGE_SIZE / sizeof(struct btrfs_fiemap_entry);
fs/btrfs/fiemap.c
649
cache.entries = kmalloc_objs(struct btrfs_fiemap_entry,
fs/btrfs/fiemap.c
650
cache.entries_size);
fs/btrfs/fiemap.c
653
if (!cache.entries || !backref_ctx || !path) {
fs/btrfs/fiemap.c
715
ret = fiemap_process_hole(inode, fieinfo, &cache,
fs/btrfs/fiemap.c
753
ret = emit_fiemap_extent(fieinfo, &cache, key.offset, 0,
fs/btrfs/fiemap.c
756
ret = fiemap_process_hole(inode, fieinfo, &cache,
fs/btrfs/fiemap.c
76
struct fiemap_cache *cache)
fs/btrfs/fiemap.c
764
ret = fiemap_process_hole(inode, fieinfo, &cache,
fs/btrfs/fiemap.c
78
for (int i = 0; i < cache->entries_pos; i++) {
fs/btrfs/fiemap.c
781
ret = emit_fiemap_extent(fieinfo, &cache, key.offset,
fs/btrfs/fiemap.c
79
struct btrfs_fiemap_entry *entry = &cache->entries[i];
fs/btrfs/fiemap.c
813
ret = fiemap_process_hole(inode, fieinfo, &cache,
fs/btrfs/fiemap.c
821
if (cache.cached && cache.offset + cache.len >= last_extent_end) {
fs/btrfs/fiemap.c
836
cache.flags |= FIEMAP_EXTENT_LAST;
fs/btrfs/fiemap.c
838
cache.flags |= FIEMAP_EXTENT_LAST;
fs/btrfs/fiemap.c
847
ret = flush_fiemap_cache(fieinfo, &cache);
fs/btrfs/fiemap.c
850
len -= cache.next_search_offset - start;
fs/btrfs/fiemap.c
851
start = cache.next_search_offset;
fs/btrfs/fiemap.c
867
ret = flush_fiemap_cache(fieinfo, &cache);
fs/btrfs/fiemap.c
871
ret = emit_last_fiemap_cache(fieinfo, &cache);
fs/btrfs/fiemap.c
874
kfree(cache.entries);
fs/btrfs/fiemap.c
92
cache->entries_pos = 0;
fs/btrfs/free-space-cache.c
4239
int test_add_free_space_entry(struct btrfs_block_group *cache,
fs/btrfs/free-space-cache.c
4242
struct btrfs_free_space_ctl *ctl = cache->free_space_ctl;
fs/btrfs/free-space-cache.c
4309
int test_check_exists(struct btrfs_block_group *cache,
fs/btrfs/free-space-cache.c
4312
struct btrfs_free_space_ctl *ctl = cache->free_space_ctl;
fs/btrfs/free-space-cache.h
175
int test_add_free_space_entry(struct btrfs_block_group *cache,
fs/btrfs/free-space-cache.h
177
int test_check_exists(struct btrfs_block_group *cache, u64 offset, u64 bytes);
fs/btrfs/free-space-tree.c
37
void btrfs_set_free_space_tree_thresholds(struct btrfs_block_group *cache)
fs/btrfs/free-space-tree.c
43
if (WARN_ON(cache->length == 0))
fs/btrfs/free-space-tree.c
44
btrfs_warn(cache->fs_info, "block group %llu length is zero",
fs/btrfs/free-space-tree.c
45
cache->start);
fs/btrfs/free-space-tree.c
51
bitmap_range = cache->fs_info->sectorsize * BTRFS_FREE_SPACE_BITMAP_BITS;
fs/btrfs/free-space-tree.c
52
num_bitmaps = div_u64(cache->length + bitmap_range - 1, bitmap_range);
fs/btrfs/free-space-tree.c
55
cache->bitmap_high_thresh = div_u64(total_bitmap_size,
fs/btrfs/free-space-tree.c
62
if (cache->bitmap_high_thresh > 100)
fs/btrfs/free-space-tree.c
63
cache->bitmap_low_thresh = cache->bitmap_high_thresh - 100;
fs/btrfs/free-space-tree.c
65
cache->bitmap_low_thresh = 0;
fs/btrfs/inode.c
3132
struct btrfs_block_group *cache;
fs/btrfs/inode.c
3134
cache = btrfs_lookup_block_group(fs_info, start);
fs/btrfs/inode.c
3135
ASSERT(cache);
fs/btrfs/inode.c
3137
spin_lock(&cache->lock);
fs/btrfs/inode.c
3138
cache->delalloc_bytes -= len;
fs/btrfs/inode.c
3139
spin_unlock(&cache->lock);
fs/btrfs/inode.c
3141
btrfs_put_block_group(cache);
fs/btrfs/lru_cache.c
106
int btrfs_lru_cache_store(struct btrfs_lru_cache *cache,
fs/btrfs/lru_cache.c
118
ret = mtree_insert(&cache->entries, key, head, gfp);
fs/btrfs/lru_cache.c
124
head = mtree_load(&cache->entries, key);
fs/btrfs/lru_cache.c
134
if (cache->max_size > 0 && cache->size == cache->max_size) {
fs/btrfs/lru_cache.c
137
lru_entry = list_first_entry(&cache->lru_list,
fs/btrfs/lru_cache.c
140
btrfs_lru_cache_remove(cache, lru_entry);
fs/btrfs/lru_cache.c
143
list_add_tail(&new_entry->lru_list, &cache->lru_list);
fs/btrfs/lru_cache.c
144
cache->size++;
fs/btrfs/lru_cache.c
15
void btrfs_lru_cache_init(struct btrfs_lru_cache *cache, unsigned int max_size)
fs/btrfs/lru_cache.c
156
void btrfs_lru_cache_clear(struct btrfs_lru_cache *cache)
fs/btrfs/lru_cache.c
161
list_for_each_entry_safe(entry, tmp, &cache->lru_list, lru_list)
fs/btrfs/lru_cache.c
162
btrfs_lru_cache_remove(cache, entry);
fs/btrfs/lru_cache.c
164
ASSERT(cache->size == 0);
fs/btrfs/lru_cache.c
165
ASSERT(mtree_empty(&cache->entries));
fs/btrfs/lru_cache.c
17
INIT_LIST_HEAD(&cache->lru_list);
fs/btrfs/lru_cache.c
18
mt_init(&cache->entries);
fs/btrfs/lru_cache.c
19
cache->size = 0;
fs/btrfs/lru_cache.c
20
cache->max_size = max_size;
fs/btrfs/lru_cache.c
45
struct btrfs_lru_cache_entry *btrfs_lru_cache_lookup(struct btrfs_lru_cache *cache,
fs/btrfs/lru_cache.c
51
head = mtree_load(&cache->entries, key);
fs/btrfs/lru_cache.c
57
list_move_tail(&entry->lru_list, &cache->lru_list);
fs/btrfs/lru_cache.c
70
void btrfs_lru_cache_remove(struct btrfs_lru_cache *cache,
fs/btrfs/lru_cache.c
75
ASSERT(cache->size > 0);
fs/btrfs/lru_cache.c
76
ASSERT(!mtree_empty(&cache->entries));
fs/btrfs/lru_cache.c
89
head = mtree_erase(&cache->entries, entry->key);
fs/btrfs/lru_cache.c
95
cache->size--;
fs/btrfs/lru_cache.h
51
#define btrfs_lru_cache_for_each_entry_safe(cache, entry, tmp) \
fs/btrfs/lru_cache.h
52
list_for_each_entry_safe_reverse((entry), (tmp), &(cache)->lru_list, lru_list)
fs/btrfs/lru_cache.h
55
struct btrfs_lru_cache *cache)
fs/btrfs/lru_cache.h
57
return list_first_entry_or_null(&cache->lru_list,
fs/btrfs/lru_cache.h
61
void btrfs_lru_cache_init(struct btrfs_lru_cache *cache, unsigned int max_size);
fs/btrfs/lru_cache.h
62
struct btrfs_lru_cache_entry *btrfs_lru_cache_lookup(struct btrfs_lru_cache *cache,
fs/btrfs/lru_cache.h
64
int btrfs_lru_cache_store(struct btrfs_lru_cache *cache,
fs/btrfs/lru_cache.h
67
void btrfs_lru_cache_remove(struct btrfs_lru_cache *cache,
fs/btrfs/lru_cache.h
69
void btrfs_lru_cache_clear(struct btrfs_lru_cache *cache);
fs/btrfs/ordered-data.c
1173
struct extent_state *cache = NULL;
fs/btrfs/ordered-data.c
1174
struct extent_state **cachedp = &cache;
fs/btrfs/ordered-data.c
1190
refcount_dec(&cache->refs);
fs/btrfs/relocation.c
2365
struct btrfs_backref_cache *cache = &rc->backref_cache;
fs/btrfs/relocation.c
2371
while (!list_empty(&cache->pending[level])) {
fs/btrfs/relocation.c
2372
node = list_first_entry(&cache->pending[level],
fs/btrfs/relocation.c
2383
list_splice_init(&list, &cache->pending[level]);
fs/btrfs/relocation.c
340
struct btrfs_backref_cache *cache = &rc->backref_cache;
fs/btrfs/relocation.c
341
struct list_head *useless_node = &cache->useless_node;
fs/btrfs/relocation.c
367
btrfs_backref_free_edge(cache, edge);
fs/btrfs/relocation.c
384
rb_erase(&cur->rb_node, &cache->rb_root);
fs/btrfs/relocation.c
385
btrfs_backref_free_node(cache, cur);
fs/btrfs/relocation.c
411
struct btrfs_backref_cache *cache = &rc->backref_cache;
fs/btrfs/relocation.c
428
node = btrfs_backref_alloc_node(cache, bytenr, level);
fs/btrfs/relocation.c
438
ret = btrfs_backref_add_tree_node(trans, cache, path, iter,
fs/btrfs/relocation.c
443
edge = list_first_entry_or_null(&cache->pending_edge,
fs/btrfs/relocation.c
456
ret = btrfs_backref_finish_upper_links(cache, node);
fs/btrfs/relocation.c
467
btrfs_backref_error_cleanup(cache, node);
fs/btrfs/relocation.c
471
ASSERT(list_empty(&cache->useless_node) &&
fs/btrfs/relocation.c
472
list_empty(&cache->pending_edge));
fs/btrfs/scrub.c
2630
struct btrfs_block_group *cache)
fs/btrfs/scrub.c
2632
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/scrub.c
2637
btrfs_wait_block_group_reservations(cache);
fs/btrfs/scrub.c
2638
btrfs_wait_nocow_writers(cache);
fs/btrfs/scrub.c
2639
btrfs_wait_ordered_roots(fs_info, U64_MAX, cache);
fs/btrfs/scrub.c
2659
struct btrfs_block_group *cache;
fs/btrfs/scrub.c
2724
cache = btrfs_lookup_block_group(fs_info, chunk_offset);
fs/btrfs/scrub.c
2728
if (!cache)
fs/btrfs/scrub.c
2731
ASSERT(cache->start <= chunk_offset);
fs/btrfs/scrub.c
2751
if (cache->start < chunk_offset) {
fs/btrfs/scrub.c
2752
btrfs_put_block_group(cache);
fs/btrfs/scrub.c
2757
if (!test_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags)) {
fs/btrfs/scrub.c
2758
btrfs_put_block_group(cache);
fs/btrfs/scrub.c
2771
spin_lock(&cache->lock);
fs/btrfs/scrub.c
2772
if (test_bit(BLOCK_GROUP_FLAG_REMOVED, &cache->runtime_flags)) {
fs/btrfs/scrub.c
2773
spin_unlock(&cache->lock);
fs/btrfs/scrub.c
2774
btrfs_put_block_group(cache);
fs/btrfs/scrub.c
2777
btrfs_freeze_block_group(cache);
fs/btrfs/scrub.c
2778
spin_unlock(&cache->lock);
fs/btrfs/scrub.c
2820
ret = btrfs_inc_block_group_ro(cache, sctx->is_dev_replace);
fs/btrfs/scrub.c
2822
ret = finish_extent_writes_for_zoned(root, cache);
fs/btrfs/scrub.c
2824
btrfs_dec_block_group_ro(cache);
fs/btrfs/scrub.c
2826
btrfs_put_block_group(cache);
fs/btrfs/scrub.c
2834
!(cache->flags & BTRFS_BLOCK_GROUP_RAID56_MASK)) {
fs/btrfs/scrub.c
2852
cache->start);
fs/btrfs/scrub.c
2859
btrfs_unfreeze_block_group(cache);
fs/btrfs/scrub.c
2860
btrfs_put_block_group(cache);
fs/btrfs/scrub.c
2871
btrfs_wait_nocow_writers(cache);
fs/btrfs/scrub.c
2872
btrfs_wait_ordered_roots(fs_info, U64_MAX, cache);
fs/btrfs/scrub.c
2882
ret = scrub_chunk(sctx, cache, scrub_dev, found_key.offset,
fs/btrfs/scrub.c
2886
cache, found_key.offset))
fs/btrfs/scrub.c
2895
btrfs_dec_block_group_ro(cache);
fs/btrfs/scrub.c
2904
spin_lock(&cache->lock);
fs/btrfs/scrub.c
2905
if (!test_bit(BLOCK_GROUP_FLAG_REMOVED, &cache->runtime_flags) &&
fs/btrfs/scrub.c
2906
!cache->ro && cache->reserved == 0 && cache->used == 0) {
fs/btrfs/scrub.c
2907
spin_unlock(&cache->lock);
fs/btrfs/scrub.c
2910
cache);
fs/btrfs/scrub.c
2912
btrfs_mark_bg_unused(cache);
fs/btrfs/scrub.c
2914
spin_unlock(&cache->lock);
fs/btrfs/scrub.c
2917
btrfs_unfreeze_block_group(cache);
fs/btrfs/scrub.c
2918
btrfs_put_block_group(cache);
fs/btrfs/space-info.c
668
struct btrfs_block_group *cache;
fs/btrfs/space-info.c
682
list_for_each_entry(cache, &info->block_groups[index], list) {
fs/btrfs/space-info.c
685
spin_lock(&cache->lock);
fs/btrfs/space-info.c
686
avail = btrfs_block_group_available_space(cache);
fs/btrfs/space-info.c
689
cache->start, cache->length, cache->used, cache->pinned,
fs/btrfs/space-info.c
690
cache->reserved, cache->delalloc_bytes,
fs/btrfs/space-info.c
691
cache->bytes_super, cache->zone_unusable,
fs/btrfs/space-info.c
692
avail, cache->ro ? "[readonly]" : "");
fs/btrfs/space-info.c
693
spin_unlock(&cache->lock);
fs/btrfs/space-info.c
694
btrfs_dump_free_space(cache, bytes);
fs/btrfs/sysfs.c
1818
void btrfs_sysfs_add_block_group_type(struct btrfs_block_group *cache)
fs/btrfs/sysfs.c
1820
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/sysfs.c
1821
struct btrfs_space_info *space_info = cache->space_info;
fs/btrfs/sysfs.c
1823
const int index = btrfs_bg_flags_to_raid_index(cache->flags);
fs/btrfs/sysfs.c
1839
btrfs_warn(cache->fs_info,
fs/btrfs/sysfs.c
1844
rkobj->flags = cache->flags;
fs/btrfs/sysfs.h
39
void btrfs_sysfs_add_block_group_type(struct btrfs_block_group *cache);
fs/btrfs/tests/btrfs-tests.c
206
struct btrfs_block_group *cache;
fs/btrfs/tests/btrfs-tests.c
208
cache = kzalloc_obj(*cache);
fs/btrfs/tests/btrfs-tests.c
209
if (!cache)
fs/btrfs/tests/btrfs-tests.c
211
cache->free_space_ctl = kzalloc_obj(*cache->free_space_ctl);
fs/btrfs/tests/btrfs-tests.c
212
if (!cache->free_space_ctl) {
fs/btrfs/tests/btrfs-tests.c
213
kfree(cache);
fs/btrfs/tests/btrfs-tests.c
217
cache->start = 0;
fs/btrfs/tests/btrfs-tests.c
218
cache->length = length;
fs/btrfs/tests/btrfs-tests.c
219
cache->full_stripe_len = fs_info->sectorsize;
fs/btrfs/tests/btrfs-tests.c
220
cache->fs_info = fs_info;
fs/btrfs/tests/btrfs-tests.c
222
INIT_LIST_HEAD(&cache->list);
fs/btrfs/tests/btrfs-tests.c
223
INIT_LIST_HEAD(&cache->cluster_list);
fs/btrfs/tests/btrfs-tests.c
224
INIT_LIST_HEAD(&cache->bg_list);
fs/btrfs/tests/btrfs-tests.c
225
btrfs_init_free_space_ctl(cache, cache->free_space_ctl);
fs/btrfs/tests/btrfs-tests.c
226
mutex_init(&cache->free_space_lock);
fs/btrfs/tests/btrfs-tests.c
228
return cache;
fs/btrfs/tests/btrfs-tests.c
231
void btrfs_free_dummy_block_group(struct btrfs_block_group *cache)
fs/btrfs/tests/btrfs-tests.c
233
if (!cache)
fs/btrfs/tests/btrfs-tests.c
235
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/btrfs-tests.c
236
kfree(cache->free_space_ctl);
fs/btrfs/tests/btrfs-tests.c
237
kfree(cache);
fs/btrfs/tests/btrfs-tests.h
59
void btrfs_free_dummy_block_group(struct btrfs_block_group *cache);
fs/btrfs/tests/free-space-tests.c
1000
cache->free_space_ctl->op = orig_free_space_ops;
fs/btrfs/tests/free-space-tests.c
1001
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
1008
struct btrfs_block_group *cache;
fs/btrfs/tests/free-space-tests.c
1024
cache = btrfs_alloc_dummy_block_group(fs_info,
fs/btrfs/tests/free-space-tests.c
1026
if (!cache) {
fs/btrfs/tests/free-space-tests.c
103
ret = btrfs_remove_free_space(cache, 0, SZ_4M);
fs/btrfs/tests/free-space-tests.c
1044
ret = test_extents(cache);
fs/btrfs/tests/free-space-tests.c
1047
ret = test_bitmaps(cache, sectorsize);
fs/btrfs/tests/free-space-tests.c
1050
ret = test_bitmaps_and_extents(cache, sectorsize);
fs/btrfs/tests/free-space-tests.c
1054
ret = test_steal_space_from_bitmap_to_extent(cache, sectorsize);
fs/btrfs/tests/free-space-tests.c
1057
ret = test_bytes_index(cache, sectorsize);
fs/btrfs/tests/free-space-tests.c
1059
btrfs_free_dummy_block_group(cache);
fs/btrfs/tests/free-space-tests.c
109
if (test_check_exists(cache, 0, SZ_4M)) {
fs/btrfs/tests/free-space-tests.c
114
ret = test_add_free_space_entry(cache, 0, SZ_4M, 1);
fs/btrfs/tests/free-space-tests.c
120
ret = btrfs_remove_free_space(cache, SZ_1M, SZ_2M);
fs/btrfs/tests/free-space-tests.c
133
ret = test_add_free_space_entry(cache, next_bitmap_offset - SZ_2M,
fs/btrfs/tests/free-space-tests.c
141
ret = btrfs_remove_free_space(cache, next_bitmap_offset - SZ_1M, SZ_2M);
fs/btrfs/tests/free-space-tests.c
147
if (test_check_exists(cache, next_bitmap_offset - SZ_1M, SZ_2M)) {
fs/btrfs/tests/free-space-tests.c
152
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
158
static int test_bitmaps_and_extents(struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tests.c
171
ret = test_add_free_space_entry(cache, SZ_4M, SZ_1M, 1);
fs/btrfs/tests/free-space-tests.c
177
ret = test_add_free_space_entry(cache, 0, SZ_1M, 0);
fs/btrfs/tests/free-space-tests.c
183
ret = btrfs_remove_free_space(cache, 0, SZ_1M);
fs/btrfs/tests/free-space-tests.c
189
if (test_check_exists(cache, 0, SZ_1M)) {
fs/btrfs/tests/free-space-tests.c
195
ret = test_add_free_space_entry(cache, 0, SZ_1M, 0);
fs/btrfs/tests/free-space-tests.c
20
static int test_extents(struct btrfs_block_group *cache)
fs/btrfs/tests/free-space-tests.c
201
ret = btrfs_remove_free_space(cache, SZ_4M, SZ_1M);
fs/btrfs/tests/free-space-tests.c
207
if (test_check_exists(cache, SZ_4M, SZ_1M)) {
fs/btrfs/tests/free-space-tests.c
216
ret = test_add_free_space_entry(cache, SZ_1M, SZ_4M, 1);
fs/btrfs/tests/free-space-tests.c
222
ret = btrfs_remove_free_space(cache, SZ_512K, 3 * SZ_1M);
fs/btrfs/tests/free-space-tests.c
228
if (test_check_exists(cache, SZ_512K, 3 * SZ_1M)) {
fs/btrfs/tests/free-space-tests.c
233
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
236
ret = test_add_free_space_entry(cache, SZ_4M, SZ_4M, 1);
fs/btrfs/tests/free-space-tests.c
242
ret = test_add_free_space_entry(cache, SZ_2M, SZ_2M, 0);
fs/btrfs/tests/free-space-tests.c
248
ret = btrfs_remove_free_space(cache, 3 * SZ_1M, SZ_4M);
fs/btrfs/tests/free-space-tests.c
254
if (test_check_exists(cache, 3 * SZ_1M, SZ_4M)) {
fs/btrfs/tests/free-space-tests.c
269
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
27
ret = btrfs_add_free_space(cache, 0, SZ_4M);
fs/btrfs/tests/free-space-tests.c
270
ret = test_add_free_space_entry(cache, bitmap_offset + SZ_4M, SZ_4M, 1);
fs/btrfs/tests/free-space-tests.c
276
ret = test_add_free_space_entry(cache, bitmap_offset - SZ_1M,
fs/btrfs/tests/free-space-tests.c
283
ret = btrfs_remove_free_space(cache, bitmap_offset + SZ_1M, 5 * SZ_1M);
fs/btrfs/tests/free-space-tests.c
289
if (test_check_exists(cache, bitmap_offset + SZ_1M, 5 * SZ_1M)) {
fs/btrfs/tests/free-space-tests.c
294
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
302
ret = test_add_free_space_entry(cache, SZ_1M, SZ_2M, 1);
fs/btrfs/tests/free-space-tests.c
308
ret = test_add_free_space_entry(cache, 3 * SZ_1M, SZ_1M, 0);
fs/btrfs/tests/free-space-tests.c
314
ret = btrfs_remove_free_space(cache, SZ_1M, 3 * SZ_1M);
fs/btrfs/tests/free-space-tests.c
320
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
33
ret = btrfs_remove_free_space(cache, 0, SZ_4M);
fs/btrfs/tests/free-space-tests.c
333
check_num_extents_and_bitmaps(const struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tests.c
337
if (cache->free_space_ctl->free_extents != num_extents) {
fs/btrfs/tests/free-space-tests.c
340
cache->free_space_ctl->free_extents, num_extents);
fs/btrfs/tests/free-space-tests.c
343
if (cache->free_space_ctl->total_bitmaps != num_bitmaps) {
fs/btrfs/tests/free-space-tests.c
346
cache->free_space_ctl->total_bitmaps, num_bitmaps);
fs/btrfs/tests/free-space-tests.c
353
static int check_cache_empty(struct btrfs_block_group *cache)
fs/btrfs/tests/free-space-tests.c
362
if (cache->free_space_ctl->free_space != 0) {
fs/btrfs/tests/free-space-tests.c
368
offset = btrfs_find_space_for_alloc(cache, 0, 4096, 0,
fs/btrfs/tests/free-space-tests.c
377
return check_num_extents_and_bitmaps(cache, 0, 0);
fs/btrfs/tests/free-space-tests.c
39
if (test_check_exists(cache, 0, SZ_4M)) {
fs/btrfs/tests/free-space-tests.c
395
test_steal_space_from_bitmap_to_extent(struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tests.c
426
orig_free_space_ops = cache->free_space_ctl->op;
fs/btrfs/tests/free-space-tests.c
427
cache->free_space_ctl->op = &test_free_space_ops;
fs/btrfs/tests/free-space-tests.c
432
ret = test_add_free_space_entry(cache, SZ_128M - SZ_256K, SZ_128K, 0);
fs/btrfs/tests/free-space-tests.c
439
ret = test_add_free_space_entry(cache, SZ_128M + SZ_512K,
fs/btrfs/tests/free-space-tests.c
446
ret = check_num_extents_and_bitmaps(cache, 2, 1);
fs/btrfs/tests/free-space-tests.c
45
ret = btrfs_add_free_space(cache, 0, SZ_4M);
fs/btrfs/tests/free-space-tests.c
457
ret = btrfs_remove_free_space(cache,
fs/btrfs/tests/free-space-tests.c
466
if (!test_check_exists(cache, SZ_128M - SZ_256K, SZ_128K)) {
fs/btrfs/tests/free-space-tests.c
470
if (!test_check_exists(cache, SZ_128M + SZ_512K, SZ_256K)) {
fs/btrfs/tests/free-space-tests.c
479
if (test_check_exists(cache, SZ_128M + 768 * SZ_1K,
fs/btrfs/tests/free-space-tests.c
489
if (test_check_exists(cache, SZ_128M + SZ_256K, SZ_256K)) {
fs/btrfs/tests/free-space-tests.c
498
if (test_check_exists(cache, SZ_128M, SZ_256K)) {
fs/btrfs/tests/free-space-tests.c
508
ret = btrfs_add_free_space(cache, SZ_128M, SZ_512K);
fs/btrfs/tests/free-space-tests.c
51
ret = btrfs_remove_free_space(cache, 3 * SZ_1M, SZ_1M);
fs/btrfs/tests/free-space-tests.c
514
if (!test_check_exists(cache, SZ_128M, SZ_512K)) {
fs/btrfs/tests/free-space-tests.c
523
ret = check_num_extents_and_bitmaps(cache, 2, 1);
fs/btrfs/tests/free-space-tests.c
533
ret = btrfs_add_free_space(cache, SZ_128M + SZ_16M, sectorsize);
fs/btrfs/tests/free-space-tests.c
543
ret = check_num_extents_and_bitmaps(cache, 2, 1);
fs/btrfs/tests/free-space-tests.c
552
ret = btrfs_add_free_space(cache, SZ_128M - SZ_128K, SZ_128K);
fs/btrfs/tests/free-space-tests.c
558
if (!test_check_exists(cache, SZ_128M - SZ_128K, SZ_128K)) {
fs/btrfs/tests/free-space-tests.c
567
ret = check_num_extents_and_bitmaps(cache, 2, 1);
fs/btrfs/tests/free-space-tests.c
57
ret = btrfs_remove_free_space(cache, 0, SZ_1M);
fs/btrfs/tests/free-space-tests.c
586
if (!test_check_exists(cache, SZ_128M - SZ_256K, SZ_1M)) {
fs/btrfs/tests/free-space-tests.c
591
if (cache->free_space_ctl->free_space != (SZ_1M + sectorsize)) {
fs/btrfs/tests/free-space-tests.c
596
offset = btrfs_find_space_for_alloc(cache,
fs/btrfs/tests/free-space-tests.c
610
ret = check_num_extents_and_bitmaps(cache, 1, 1);
fs/btrfs/tests/free-space-tests.c
614
if (cache->free_space_ctl->free_space != sectorsize) {
fs/btrfs/tests/free-space-tests.c
619
offset = btrfs_find_space_for_alloc(cache,
fs/btrfs/tests/free-space-tests.c
628
ret = check_cache_empty(cache);
fs/btrfs/tests/free-space-tests.c
63
ret = btrfs_remove_free_space(cache, SZ_2M, 4096);
fs/btrfs/tests/free-space-tests.c
632
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
643
ret = test_add_free_space_entry(cache, SZ_128M + SZ_128K, SZ_128K, 0);
fs/btrfs/tests/free-space-tests.c
650
ret = test_add_free_space_entry(cache, 0, SZ_128M - SZ_512K, 1);
fs/btrfs/tests/free-space-tests.c
656
ret = check_num_extents_and_bitmaps(cache, 2, 1);
fs/btrfs/tests/free-space-tests.c
667
ret = btrfs_remove_free_space(cache, 0, SZ_128M - 768 * SZ_1K);
fs/btrfs/tests/free-space-tests.c
674
if (!test_check_exists(cache, SZ_128M + SZ_128K, SZ_128K)) {
fs/btrfs/tests/free-space-tests.c
678
if (!test_check_exists(cache, SZ_128M - 768 * SZ_1K, SZ_256K)) {
fs/btrfs/tests/free-space-tests.c
687
if (test_check_exists(cache, 0, SZ_128M - 768 * SZ_1K)) {
fs/btrfs/tests/free-space-tests.c
69
if (test_check_exists(cache, 0, SZ_1M)) {
fs/btrfs/tests/free-space-tests.c
696
if (test_check_exists(cache, SZ_128M - SZ_512K, SZ_512K)) {
fs/btrfs/tests/free-space-tests.c
706
ret = btrfs_add_free_space(cache, SZ_128M - SZ_512K, SZ_512K);
fs/btrfs/tests/free-space-tests.c
712
if (!test_check_exists(cache, SZ_128M - SZ_512K, SZ_512K)) {
fs/btrfs/tests/free-space-tests.c
721
ret = check_num_extents_and_bitmaps(cache, 2, 1);
fs/btrfs/tests/free-space-tests.c
731
ret = btrfs_add_free_space(cache, SZ_32M, 2 * sectorsize);
fs/btrfs/tests/free-space-tests.c
74
if (test_check_exists(cache, SZ_2M, 4096)) {
fs/btrfs/tests/free-space-tests.c
742
ret = btrfs_add_free_space(cache, SZ_128M, SZ_128K);
fs/btrfs/tests/free-space-tests.c
748
if (!test_check_exists(cache, SZ_128M, SZ_128K)) {
fs/btrfs/tests/free-space-tests.c
757
ret = check_num_extents_and_bitmaps(cache, 2, 1);
fs/btrfs/tests/free-space-tests.c
776
if (!test_check_exists(cache, SZ_128M - 768 * SZ_1K, SZ_1M)) {
fs/btrfs/tests/free-space-tests.c
781
if (cache->free_space_ctl->free_space != (SZ_1M + 2 * sectorsize)) {
fs/btrfs/tests/free-space-tests.c
786
offset = btrfs_find_space_for_alloc(cache, 0, SZ_1M, 0,
fs/btrfs/tests/free-space-tests.c
79
if (test_check_exists(cache, 3 * SZ_1M, SZ_1M)) {
fs/btrfs/tests/free-space-tests.c
799
ret = check_num_extents_and_bitmaps(cache, 1, 1);
fs/btrfs/tests/free-space-tests.c
803
if (cache->free_space_ctl->free_space != 2 * sectorsize) {
fs/btrfs/tests/free-space-tests.c
808
offset = btrfs_find_space_for_alloc(cache,
fs/btrfs/tests/free-space-tests.c
817
ret = check_cache_empty(cache);
fs/btrfs/tests/free-space-tests.c
821
cache->free_space_ctl->op = orig_free_space_ops;
fs/btrfs/tests/free-space-tests.c
822
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
833
static int test_bytes_index(struct btrfs_block_group *cache, u32 sectorsize)
fs/btrfs/tests/free-space-tests.c
839
struct btrfs_free_space_ctl *ctl = cache->free_space_ctl;
fs/btrfs/tests/free-space-tests.c
85
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
851
ret = test_add_free_space_entry(cache, offset, bytes, 0);
fs/btrfs/tests/free-space-tests.c
871
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
875
ret = test_add_free_space_entry(cache, offset, bytes, 1);
fs/btrfs/tests/free-space-tests.c
894
btrfs_remove_free_space_cache(cache);
fs/btrfs/tests/free-space-tests.c
895
orig_free_space_ops = cache->free_space_ctl->op;
fs/btrfs/tests/free-space-tests.c
896
cache->free_space_ctl->op = &test_free_space_ops;
fs/btrfs/tests/free-space-tests.c
898
ret = test_add_free_space_entry(cache, 0, sectorsize, 1);
fs/btrfs/tests/free-space-tests.c
90
static int test_bitmaps(struct btrfs_block_group *cache, u32 sectorsize)
fs/btrfs/tests/free-space-tests.c
905
ret = test_add_free_space_entry(cache, offset, sectorsize, 1);
fs/btrfs/tests/free-space-tests.c
917
ret = btrfs_add_free_space(cache, offset, sectorsize);
fs/btrfs/tests/free-space-tests.c
929
ret = btrfs_add_free_space(cache, offset, sectorsize);
fs/btrfs/tests/free-space-tests.c
947
offset = btrfs_find_space_for_alloc(cache, cache->start, sectorsize * 3,
fs/btrfs/tests/free-space-tests.c
97
ret = test_add_free_space_entry(cache, 0, SZ_4M, 1);
fs/btrfs/tests/free-space-tests.c
973
ret = btrfs_add_free_space(cache, offset, sectorsize);
fs/btrfs/tests/free-space-tests.c
991
offset = btrfs_find_space_for_alloc(cache, cache->start, sectorsize * 2,
fs/btrfs/tests/free-space-tree-tests.c
109
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
118
info = btrfs_search_free_space_info(trans, cache, path, 0);
fs/btrfs/tests/free-space-tree-tests.c
127
ret = __check_free_space_extents(trans, fs_info, cache, path, extents,
fs/btrfs/tests/free-space-tree-tests.c
134
ret = btrfs_convert_free_space_to_extents(trans, cache, path);
fs/btrfs/tests/free-space-tree-tests.c
140
ret = btrfs_convert_free_space_to_bitmaps(trans, cache, path);
fs/btrfs/tests/free-space-tree-tests.c
146
return __check_free_space_extents(trans, fs_info, cache, path, extents,
fs/btrfs/tests/free-space-tree-tests.c
152
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
157
{cache->start, cache->length},
fs/btrfs/tests/free-space-tree-tests.c
160
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
166
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
173
ret = __btrfs_remove_from_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
174
cache->start, cache->length);
fs/btrfs/tests/free-space-tree-tests.c
180
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
186
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
191
{cache->start + alignment, cache->length - alignment},
fs/btrfs/tests/free-space-tree-tests.c
195
ret = __btrfs_remove_from_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
196
cache->start, alignment);
fs/btrfs/tests/free-space-tree-tests.c
202
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
209
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
214
{cache->start, cache->length - alignment},
fs/btrfs/tests/free-space-tree-tests.c
218
ret = __btrfs_remove_from_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
219
btrfs_block_group_end(cache) - alignment,
fs/btrfs/tests/free-space-tree-tests.c
22
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
226
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
232
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
237
{cache->start, alignment},
fs/btrfs/tests/free-space-tree-tests.c
238
{cache->start + 2 * alignment, cache->length - 2 * alignment},
fs/btrfs/tests/free-space-tree-tests.c
242
ret = __btrfs_remove_from_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
243
cache->start + alignment,
fs/btrfs/tests/free-space-tree-tests.c
250
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
256
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
261
{cache->start, 2 * alignment},
fs/btrfs/tests/free-space-tree-tests.c
265
ret = __btrfs_remove_from_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
266
cache->start, cache->length);
fs/btrfs/tests/free-space-tree-tests.c
272
ret = __btrfs_add_to_free_space_tree(trans, cache, path, cache->start,
fs/btrfs/tests/free-space-tree-tests.c
279
ret = __btrfs_add_to_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
280
cache->start + alignment, alignment);
fs/btrfs/tests/free-space-tree-tests.c
286
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
292
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
297
{cache->start + alignment, 2 * alignment},
fs/btrfs/tests/free-space-tree-tests.c
301
ret = __btrfs_remove_from_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
302
cache->start, cache->length);
fs/btrfs/tests/free-space-tree-tests.c
308
ret = __btrfs_add_to_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
309
cache->start + 2 * alignment,
fs/btrfs/tests/free-space-tree-tests.c
316
ret = __btrfs_add_to_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
317
cache->start + alignment, alignment);
fs/btrfs/tests/free-space-tree-tests.c
323
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
329
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
334
{cache->start, 3 * alignment},
fs/btrfs/tests/free-space-tree-tests.c
338
ret = __btrfs_remove_from_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
339
cache->start, cache->length);
fs/btrfs/tests/free-space-tree-tests.c
345
ret = __btrfs_add_to_free_space_tree(trans, cache, path, cache->start,
fs/btrfs/tests/free-space-tree-tests.c
35
info = btrfs_search_free_space_info(trans, cache, path, 0);
fs/btrfs/tests/free-space-tree-tests.c
352
ret = __btrfs_add_to_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
353
cache->start + 2 * alignment, alignment);
fs/btrfs/tests/free-space-tree-tests.c
359
ret = __btrfs_add_to_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
360
cache->start + alignment, alignment);
fs/btrfs/tests/free-space-tree-tests.c
366
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
372
struct btrfs_block_group *cache,
fs/btrfs/tests/free-space-tree-tests.c
377
{cache->start, alignment},
fs/btrfs/tests/free-space-tree-tests.c
378
{cache->start + 2 * alignment, alignment},
fs/btrfs/tests/free-space-tree-tests.c
379
{cache->start + 4 * alignment, alignment},
fs/btrfs/tests/free-space-tree-tests.c
383
ret = __btrfs_remove_from_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
384
cache->start, cache->length);
fs/btrfs/tests/free-space-tree-tests.c
390
ret = __btrfs_add_to_free_space_tree(trans, cache, path, cache->start,
fs/btrfs/tests/free-space-tree-tests.c
397
ret = __btrfs_add_to_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
398
cache->start + 4 * alignment, alignment);
fs/btrfs/tests/free-space-tree-tests.c
404
ret = __btrfs_add_to_free_space_tree(trans, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
405
cache->start + 2 * alignment, alignment);
fs/btrfs/tests/free-space-tree-tests.c
411
return check_free_space_extents(trans, fs_info, cache, path,
fs/btrfs/tests/free-space-tree-tests.c
426
struct btrfs_block_group *cache = NULL;
fs/btrfs/tests/free-space-tree-tests.c
463
cache = btrfs_alloc_dummy_block_group(fs_info, 8 * alignment);
fs/btrfs/tests/free-space-tree-tests.c
464
if (!cache) {
fs/btrfs/tests/free-space-tree-tests.c
469
cache->bitmap_low_thresh = 0;
fs/btrfs/tests/free-space-tree-tests.c
470
cache->bitmap_high_thresh = (u32)-1;
fs/btrfs/tests/free-space-tree-tests.c
471
set_bit(BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE, &cache->runtime_flags);
fs/btrfs/tests/free-space-tree-tests.c
472
cache->fs_info = root->fs_info;
fs/btrfs/tests/free-space-tree-tests.c
483
ret = btrfs_add_block_group_free_space(&trans, cache);
fs/btrfs/tests/free-space-tree-tests.c
490
ret = btrfs_convert_free_space_to_bitmaps(&trans, cache, path);
fs/btrfs/tests/free-space-tree-tests.c
497
ret = test_func(&trans, root->fs_info, cache, path, alignment);
fs/btrfs/tests/free-space-tree-tests.c
501
ret = btrfs_remove_block_group_free_space(&trans, cache);
fs/btrfs/tests/free-space-tree-tests.c
516
btrfs_free_dummy_block_group(cache);
fs/btrfs/tests/free-space-tree-tests.c
52
end = btrfs_block_group_end(cache);
fs/btrfs/tests/free-space-tree-tests.c
60
bit = btrfs_free_space_test_bit(cache, path, offset);
fs/btrfs/transaction.c
160
struct btrfs_block_group *cache;
fs/btrfs/transaction.c
162
cache = list_first_entry(&transaction->deleted_bgs,
fs/btrfs/transaction.c
170
list_del_init(&cache->bg_list);
fs/btrfs/transaction.c
172
btrfs_unfreeze_block_group(cache);
fs/btrfs/transaction.c
173
btrfs_put_block_group(cache);
fs/btrfs/volumes.c
3716
struct btrfs_block_group *cache;
fs/btrfs/volumes.c
3720
cache = btrfs_lookup_block_group(fs_info, chunk_offset);
fs/btrfs/volumes.c
3721
ASSERT(cache);
fs/btrfs/volumes.c
3722
chunk_type = cache->flags;
fs/btrfs/volumes.c
3723
btrfs_put_block_group(cache);
fs/btrfs/volumes.c
3963
struct btrfs_block_group *cache;
fs/btrfs/volumes.c
3969
cache = btrfs_lookup_block_group(fs_info, chunk_offset);
fs/btrfs/volumes.c
3970
chunk_used = cache->used;
fs/btrfs/volumes.c
3975
user_thresh_min = mult_perc(cache->length, bargs->usage_min);
fs/btrfs/volumes.c
3980
user_thresh_max = cache->length;
fs/btrfs/volumes.c
3982
user_thresh_max = mult_perc(cache->length, bargs->usage_max);
fs/btrfs/volumes.c
3987
btrfs_put_block_group(cache);
fs/btrfs/volumes.c
3994
struct btrfs_block_group *cache;
fs/btrfs/volumes.c
3998
cache = btrfs_lookup_block_group(fs_info, chunk_offset);
fs/btrfs/volumes.c
3999
chunk_used = cache->used;
fs/btrfs/volumes.c
4004
user_thresh = cache->length;
fs/btrfs/volumes.c
4006
user_thresh = mult_perc(cache->length, bargs->usage);
fs/btrfs/volumes.c
4011
btrfs_put_block_group(cache);
fs/btrfs/volumes.c
6713
struct btrfs_block_group *cache;
fs/btrfs/volumes.c
6720
cache = btrfs_lookup_block_group(fs_info, logical);
fs/btrfs/volumes.c
6722
ret = test_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
fs/btrfs/volumes.c
6724
btrfs_put_block_group(cache);
fs/btrfs/volumes.c
8725
struct btrfs_block_group *cache = data;
fs/btrfs/volumes.c
8726
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/volumes.c
8730
target = cache->start;
fs/btrfs/volumes.c
8731
btrfs_put_block_group(cache);
fs/btrfs/volumes.c
8745
cache = btrfs_lookup_block_group(fs_info, target);
fs/btrfs/volumes.c
8746
if (!cache)
fs/btrfs/volumes.c
8749
if (!test_bit(BLOCK_GROUP_FLAG_RELOCATING_REPAIR, &cache->runtime_flags))
fs/btrfs/volumes.c
8762
if (cache)
fs/btrfs/volumes.c
8763
btrfs_put_block_group(cache);
fs/btrfs/volumes.c
8772
struct btrfs_block_group *cache;
fs/btrfs/volumes.c
8781
cache = btrfs_lookup_block_group(fs_info, logical);
fs/btrfs/volumes.c
8782
if (!cache)
fs/btrfs/volumes.c
8785
if (test_and_set_bit(BLOCK_GROUP_FLAG_RELOCATING_REPAIR, &cache->runtime_flags)) {
fs/btrfs/volumes.c
8786
btrfs_put_block_group(cache);
fs/btrfs/volumes.c
8790
kthread_run(relocating_repair_kthread, cache,
fs/btrfs/zoned.c
1228
static int calculate_alloc_pointer(struct btrfs_block_group *cache,
fs/btrfs/zoned.c
1231
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/zoned.c
1236
const u64 bg_end = btrfs_block_group_end(cache);
fs/btrfs/zoned.c
1278
ret = btrfs_previous_extent_item(root, path, cache->start);
fs/btrfs/zoned.c
1294
if (unlikely(!(found_key.objectid >= cache->start &&
fs/btrfs/zoned.c
1298
*offset_ret = found_key.objectid + length - cache->start;
fs/btrfs/zoned.c
1890
int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new)
fs/btrfs/zoned.c
1892
struct btrfs_fs_info *fs_info = cache->fs_info;
fs/btrfs/zoned.c
1894
u64 logical = cache->start;
fs/btrfs/zoned.c
1895
u64 length = cache->length;
fs/btrfs/zoned.c
1918
cache->physical_map = map;
fs/btrfs/zoned.c
1944
set_bit(BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE, &cache->runtime_flags);
fs/btrfs/zoned.c
1947
ret = calculate_alloc_pointer(cache, &last_alloc, new);
fs/btrfs/zoned.c
1951
cache->start);
fs/btrfs/zoned.c
1954
cache->alloc_offset = last_alloc;
fs/btrfs/zoned.c
1955
cache->zone_capacity = cache->length;
fs/btrfs/zoned.c
1956
set_bit(BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE, &cache->runtime_flags);
fs/btrfs/zoned.c
1961
ret = btrfs_load_block_group_by_raid_type(cache, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
1973
if (unlikely(cache->alloc_offset > cache->zone_capacity)) {
fs/btrfs/zoned.c
1976
cache->alloc_offset, cache->zone_capacity,
fs/btrfs/zoned.c
1977
cache->start);
fs/btrfs/zoned.c
1982
if (!ret && num_conventional && last_alloc > cache->alloc_offset) {
fs/btrfs/zoned.c
1985
logical, last_alloc, cache->alloc_offset);
fs/btrfs/zoned.c
1990
cache->meta_write_pointer = cache->alloc_offset + cache->start;
fs/btrfs/zoned.c
1991
if (test_bit(BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE, &cache->runtime_flags)) {
fs/btrfs/zoned.c
1992
btrfs_get_block_group(cache);
fs/btrfs/zoned.c
1994
list_add_tail(&cache->active_bg_list,
fs/btrfs/zoned.c
1999
btrfs_free_chunk_map(cache->physical_map);
fs/btrfs/zoned.c
2000
cache->physical_map = NULL;
fs/btrfs/zoned.c
2007
void btrfs_calc_zone_unusable(struct btrfs_block_group *cache)
fs/btrfs/zoned.c
2011
if (!btrfs_is_zoned(cache->fs_info))
fs/btrfs/zoned.c
2014
WARN_ON(cache->bytes_super != 0);
fs/btrfs/zoned.c
2015
unusable = (cache->alloc_offset - cache->used) +
fs/btrfs/zoned.c
2016
(cache->length - cache->zone_capacity);
fs/btrfs/zoned.c
2017
free = cache->zone_capacity - cache->alloc_offset;
fs/btrfs/zoned.c
2020
cache->cached = BTRFS_CACHE_FINISHED;
fs/btrfs/zoned.c
2021
cache->free_space_ctl->free_space = free;
fs/btrfs/zoned.c
2022
cache->zone_unusable = unusable;
fs/btrfs/zoned.c
2030
struct btrfs_block_group *cache;
fs/btrfs/zoned.c
2053
cache = btrfs_lookup_block_group(fs_info, start);
fs/btrfs/zoned.c
2054
ASSERT(cache);
fs/btrfs/zoned.c
2055
if (!cache)
fs/btrfs/zoned.c
2058
ret = !!test_bit(BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE, &cache->runtime_flags);
fs/btrfs/zoned.c
2059
btrfs_put_block_group(cache);
fs/btrfs/zoned.h
196
struct btrfs_block_group *cache, bool new)
fs/btrfs/zoned.h
201
static inline void btrfs_calc_zone_unusable(struct btrfs_block_group *cache) { }
fs/btrfs/zoned.h
74
int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new);
fs/btrfs/zoned.h
75
void btrfs_calc_zone_unusable(struct btrfs_block_group *cache);
fs/cachefiles/cache.c
107
cache->fstop = stats.f_files * cache->fstop_percent;
fs/cachefiles/cache.c
108
cache->fcull = stats.f_files * cache->fcull_percent;
fs/cachefiles/cache.c
109
cache->frun = stats.f_files * cache->frun_percent;
fs/cachefiles/cache.c
112
(unsigned long long) cache->frun,
fs/cachefiles/cache.c
113
(unsigned long long) cache->fcull,
fs/cachefiles/cache.c
114
(unsigned long long) cache->fstop);
fs/cachefiles/cache.c
117
cache->bstop = stats.f_blocks * cache->bstop_percent;
fs/cachefiles/cache.c
118
cache->bcull = stats.f_blocks * cache->bcull_percent;
fs/cachefiles/cache.c
119
cache->brun = stats.f_blocks * cache->brun_percent;
fs/cachefiles/cache.c
122
(unsigned long long) cache->brun,
fs/cachefiles/cache.c
123
(unsigned long long) cache->bcull,
fs/cachefiles/cache.c
124
(unsigned long long) cache->bstop);
fs/cachefiles/cache.c
127
cachedir = cachefiles_get_directory(cache, root, "cache", NULL);
fs/cachefiles/cache.c
133
cache->store = cachedir;
fs/cachefiles/cache.c
136
graveyard = cachefiles_get_directory(cache, root, "graveyard", NULL);
fs/cachefiles/cache.c
142
cache->graveyard = graveyard;
fs/cachefiles/cache.c
143
cache->cache = cache_cookie;
fs/cachefiles/cache.c
145
ret = fscache_add_cache(cache_cookie, &cachefiles_cache_ops, cache);
fs/cachefiles/cache.c
150
set_bit(CACHEFILES_READY, &cache->flags);
fs/cachefiles/cache.c
156
cachefiles_has_space(cache, 0, 0, cachefiles_has_space_check);
fs/cachefiles/cache.c
157
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/cache.c
158
_leave(" = 0 [%px]", cache->cache);
fs/cachefiles/cache.c
162
cachefiles_put_directory(cache->graveyard);
fs/cachefiles/cache.c
163
cache->graveyard = NULL;
fs/cachefiles/cache.c
165
cachefiles_put_directory(cache->store);
fs/cachefiles/cache.c
166
cache->store = NULL;
fs/cachefiles/cache.c
167
mntput(cache->mnt);
fs/cachefiles/cache.c
168
cache->mnt = NULL;
fs/cachefiles/cache.c
17
int cachefiles_add_cache(struct cachefiles_cache *cache)
fs/cachefiles/cache.c
171
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/cache.c
172
put_cred(cache->cache_cred);
fs/cachefiles/cache.c
173
cache->cache_cred = NULL;
fs/cachefiles/cache.c
176
cache->cache = NULL;
fs/cachefiles/cache.c
185
int cachefiles_has_space(struct cachefiles_cache *cache,
fs/cachefiles/cache.c
194
.mnt = cache->mnt,
fs/cachefiles/cache.c
195
.dentry = cache->mnt->mnt_root,
fs/cachefiles/cache.c
215
cachefiles_io_error(cache, "statfs failed");
fs/cachefiles/cache.c
221
b_writing = atomic_long_read(&cache->b_writing);
fs/cachefiles/cache.c
243
if (stats.f_ffree < cache->fstop ||
fs/cachefiles/cache.c
244
b_avail < cache->bstop)
fs/cachefiles/cache.c
248
if (stats.f_ffree < cache->fcull ||
fs/cachefiles/cache.c
249
b_avail < cache->bcull)
fs/cachefiles/cache.c
252
if (test_bit(CACHEFILES_CULLING, &cache->flags) &&
fs/cachefiles/cache.c
253
stats.f_ffree >= cache->frun &&
fs/cachefiles/cache.c
254
b_avail >= cache->brun &&
fs/cachefiles/cache.c
255
test_and_clear_bit(CACHEFILES_CULLING, &cache->flags)
fs/cachefiles/cache.c
258
cachefiles_state_changed(cache);
fs/cachefiles/cache.c
276
if (!test_and_set_bit(CACHEFILES_CULLING, &cache->flags)) {
fs/cachefiles/cache.c
278
cachefiles_state_changed(cache);
fs/cachefiles/cache.c
28
cache_cookie = fscache_acquire_cache(cache->tag);
fs/cachefiles/cache.c
288
static void cachefiles_withdraw_objects(struct cachefiles_cache *cache)
fs/cachefiles/cache.c
295
spin_lock(&cache->object_list_lock);
fs/cachefiles/cache.c
297
while (!list_empty(&cache->object_list)) {
fs/cachefiles/cache.c
298
object = list_first_entry(&cache->object_list,
fs/cachefiles/cache.c
305
spin_unlock(&cache->object_list_lock);
fs/cachefiles/cache.c
307
spin_lock(&cache->object_list_lock);
fs/cachefiles/cache.c
311
spin_unlock(&cache->object_list_lock);
fs/cachefiles/cache.c
318
static void cachefiles_withdraw_fscache_volumes(struct cachefiles_cache *cache)
fs/cachefiles/cache.c
326
spin_lock(&cache->object_list_lock);
fs/cachefiles/cache.c
327
list_for_each(cur, &cache->volumes) {
fs/cachefiles/cache.c
33
ret = cachefiles_get_security_ID(cache);
fs/cachefiles/cache.c
336
spin_unlock(&cache->object_list_lock);
fs/cachefiles/cache.c
342
spin_unlock(&cache->object_list_lock);
fs/cachefiles/cache.c
350
static void cachefiles_withdraw_volumes(struct cachefiles_cache *cache)
fs/cachefiles/cache.c
358
spin_lock(&cache->object_list_lock);
fs/cachefiles/cache.c
359
if (!list_empty(&cache->volumes)) {
fs/cachefiles/cache.c
360
volume = list_first_entry(&cache->volumes,
fs/cachefiles/cache.c
365
spin_unlock(&cache->object_list_lock);
fs/cachefiles/cache.c
37
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/cache.c
371
spin_unlock(&cache->object_list_lock);
fs/cachefiles/cache.c
385
static void cachefiles_sync_cache(struct cachefiles_cache *cache)
fs/cachefiles/cache.c
390
_enter("%s", cache->cache->name);
fs/cachefiles/cache.c
394
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/cache.c
395
down_read(&cache->mnt->mnt_sb->s_umount);
fs/cachefiles/cache.c
396
ret = sync_filesystem(cache->mnt->mnt_sb);
fs/cachefiles/cache.c
397
up_read(&cache->mnt->mnt_sb->s_umount);
fs/cachefiles/cache.c
398
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/cache.c
40
ret = kern_path(cache->rootdirname, LOOKUP_DIRECTORY, &path);
fs/cachefiles/cache.c
401
cachefiles_io_error(cache,
fs/cachefiles/cache.c
409
void cachefiles_withdraw_cache(struct cachefiles_cache *cache)
fs/cachefiles/cache.c
411
struct fscache_cache *fscache = cache->cache;
fs/cachefiles/cache.c
416
cachefiles_withdraw_fscache_volumes(cache);
fs/cachefiles/cache.c
421
cachefiles_withdraw_objects(cache);
fs/cachefiles/cache.c
424
cachefiles_withdraw_volumes(cache);
fs/cachefiles/cache.c
425
cachefiles_sync_cache(cache);
fs/cachefiles/cache.c
426
cache->cache = NULL;
fs/cachefiles/cache.c
44
cache->mnt = path.mnt;
fs/cachefiles/cache.c
78
ret = cachefiles_determine_cache_security(cache, root, &saved_cred);
fs/cachefiles/cache.c
95
cache->bsize = stats.f_bsize;
fs/cachefiles/cache.c
96
cache->bshift = ilog2(stats.f_bsize);
fs/cachefiles/cache.c
99
cache->bsize, cache->bshift);
fs/cachefiles/daemon.c
105
cache = kzalloc_obj(struct cachefiles_cache);
fs/cachefiles/daemon.c
106
if (!cache) {
fs/cachefiles/daemon.c
111
mutex_init(&cache->daemon_mutex);
fs/cachefiles/daemon.c
112
init_waitqueue_head(&cache->daemon_pollwq);
fs/cachefiles/daemon.c
113
INIT_LIST_HEAD(&cache->volumes);
fs/cachefiles/daemon.c
114
INIT_LIST_HEAD(&cache->object_list);
fs/cachefiles/daemon.c
115
spin_lock_init(&cache->object_list_lock);
fs/cachefiles/daemon.c
116
refcount_set(&cache->unbind_pincount, 1);
fs/cachefiles/daemon.c
117
xa_init_flags(&cache->reqs, XA_FLAGS_ALLOC);
fs/cachefiles/daemon.c
118
xa_init_flags(&cache->ondemand_ids, XA_FLAGS_ALLOC1);
fs/cachefiles/daemon.c
125
cache->frun_percent = 7;
fs/cachefiles/daemon.c
126
cache->fcull_percent = 5;
fs/cachefiles/daemon.c
127
cache->fstop_percent = 1;
fs/cachefiles/daemon.c
128
cache->brun_percent = 7;
fs/cachefiles/daemon.c
129
cache->bcull_percent = 5;
fs/cachefiles/daemon.c
130
cache->bstop_percent = 1;
fs/cachefiles/daemon.c
132
file->private_data = cache;
fs/cachefiles/daemon.c
133
cache->cachefilesd = file;
fs/cachefiles/daemon.c
137
void cachefiles_flush_reqs(struct cachefiles_cache *cache)
fs/cachefiles/daemon.c
139
struct xarray *xa = &cache->reqs;
fs/cachefiles/daemon.c
167
xa_destroy(&cache->reqs);
fs/cachefiles/daemon.c
168
xa_destroy(&cache->ondemand_ids);
fs/cachefiles/daemon.c
171
void cachefiles_put_unbind_pincount(struct cachefiles_cache *cache)
fs/cachefiles/daemon.c
173
if (refcount_dec_and_test(&cache->unbind_pincount)) {
fs/cachefiles/daemon.c
174
cachefiles_daemon_unbind(cache);
fs/cachefiles/daemon.c
176
kfree(cache);
fs/cachefiles/daemon.c
180
void cachefiles_get_unbind_pincount(struct cachefiles_cache *cache)
fs/cachefiles/daemon.c
182
refcount_inc(&cache->unbind_pincount);
fs/cachefiles/daemon.c
190
struct cachefiles_cache *cache = file->private_data;
fs/cachefiles/daemon.c
194
ASSERT(cache);
fs/cachefiles/daemon.c
196
set_bit(CACHEFILES_DEAD, &cache->flags);
fs/cachefiles/daemon.c
198
if (cachefiles_in_ondemand_mode(cache))
fs/cachefiles/daemon.c
199
cachefiles_flush_reqs(cache);
fs/cachefiles/daemon.c
202
cache->cachefilesd = NULL;
fs/cachefiles/daemon.c
205
cachefiles_put_unbind_pincount(cache);
fs/cachefiles/daemon.c
211
static ssize_t cachefiles_do_daemon_read(struct cachefiles_cache *cache,
fs/cachefiles/daemon.c
220
cachefiles_has_space(cache, 0, 0, cachefiles_has_space_check);
fs/cachefiles/daemon.c
223
f_released = atomic_xchg(&cache->f_released, 0);
fs/cachefiles/daemon.c
224
b_released = atomic_long_xchg(&cache->b_released, 0);
fs/cachefiles/daemon.c
225
clear_bit(CACHEFILES_STATE_CHANGED, &cache->flags);
fs/cachefiles/daemon.c
237
test_bit(CACHEFILES_CULLING, &cache->flags) ? '1' : '0',
fs/cachefiles/daemon.c
238
(unsigned long long) cache->frun,
fs/cachefiles/daemon.c
239
(unsigned long long) cache->fcull,
fs/cachefiles/daemon.c
240
(unsigned long long) cache->fstop,
fs/cachefiles/daemon.c
241
(unsigned long long) cache->brun,
fs/cachefiles/daemon.c
242
(unsigned long long) cache->bcull,
fs/cachefiles/daemon.c
243
(unsigned long long) cache->bstop,
fs/cachefiles/daemon.c
262
struct cachefiles_cache *cache = file->private_data;
fs/cachefiles/daemon.c
266
if (!test_bit(CACHEFILES_READY, &cache->flags))
fs/cachefiles/daemon.c
269
if (cachefiles_in_ondemand_mode(cache))
fs/cachefiles/daemon.c
270
return cachefiles_ondemand_daemon_read(cache, _buffer, buflen);
fs/cachefiles/daemon.c
272
return cachefiles_do_daemon_read(cache, _buffer, buflen);
fs/cachefiles/daemon.c
284
struct cachefiles_cache *cache = file->private_data;
fs/cachefiles/daemon.c
290
ASSERT(cache);
fs/cachefiles/daemon.c
292
if (test_bit(CACHEFILES_DEAD, &cache->flags))
fs/cachefiles/daemon.c
340
mutex_lock(&cache->daemon_mutex);
fs/cachefiles/daemon.c
343
if (!test_bit(CACHEFILES_DEAD, &cache->flags))
fs/cachefiles/daemon.c
344
ret = cmd->handler(cache, args);
fs/cachefiles/daemon.c
346
mutex_unlock(&cache->daemon_mutex);
fs/cachefiles/daemon.c
360
struct cachefiles_cache *cache = file->private_data;
fs/cachefiles/daemon.c
361
XA_STATE(xas, &cache->reqs, 0);
fs/cachefiles/daemon.c
365
poll_wait(file, &cache->daemon_pollwq, poll);
fs/cachefiles/daemon.c
368
if (cachefiles_in_ondemand_mode(cache)) {
fs/cachefiles/daemon.c
369
if (!xa_empty(&cache->reqs)) {
fs/cachefiles/daemon.c
380
if (test_bit(CACHEFILES_STATE_CHANGED, &cache->flags))
fs/cachefiles/daemon.c
384
if (test_bit(CACHEFILES_CULLING, &cache->flags))
fs/cachefiles/daemon.c
394
static int cachefiles_daemon_range_error(struct cachefiles_cache *cache,
fs/cachefiles/daemon.c
406
static int cachefiles_daemon_frun(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
419
if (frun <= cache->fcull_percent || frun >= 100)
fs/cachefiles/daemon.c
420
return cachefiles_daemon_range_error(cache, args);
fs/cachefiles/daemon.c
422
cache->frun_percent = frun;
fs/cachefiles/daemon.c
430
static int cachefiles_daemon_fcull(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
443
if (fcull <= cache->fstop_percent || fcull >= cache->frun_percent)
fs/cachefiles/daemon.c
444
return cachefiles_daemon_range_error(cache, args);
fs/cachefiles/daemon.c
446
cache->fcull_percent = fcull;
fs/cachefiles/daemon.c
454
static int cachefiles_daemon_fstop(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
467
if (fstop >= cache->fcull_percent)
fs/cachefiles/daemon.c
468
return cachefiles_daemon_range_error(cache, args);
fs/cachefiles/daemon.c
470
cache->fstop_percent = fstop;
fs/cachefiles/daemon.c
478
static int cachefiles_daemon_brun(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
491
if (brun <= cache->bcull_percent || brun >= 100)
fs/cachefiles/daemon.c
492
return cachefiles_daemon_range_error(cache, args);
fs/cachefiles/daemon.c
494
cache->brun_percent = brun;
fs/cachefiles/daemon.c
502
static int cachefiles_daemon_bcull(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
515
if (bcull <= cache->bstop_percent || bcull >= cache->brun_percent)
fs/cachefiles/daemon.c
516
return cachefiles_daemon_range_error(cache, args);
fs/cachefiles/daemon.c
518
cache->bcull_percent = bcull;
fs/cachefiles/daemon.c
526
static int cachefiles_daemon_bstop(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
539
if (bstop >= cache->bcull_percent)
fs/cachefiles/daemon.c
540
return cachefiles_daemon_range_error(cache, args);
fs/cachefiles/daemon.c
542
cache->bstop_percent = bstop;
fs/cachefiles/daemon.c
550
static int cachefiles_daemon_dir(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
561
if (cache->rootdirname) {
fs/cachefiles/daemon.c
570
cache->rootdirname = dir;
fs/cachefiles/daemon.c
578
static int cachefiles_daemon_secctx(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
589
if (cache->have_secid) {
fs/cachefiles/daemon.c
594
err = security_secctx_to_secid(args, strlen(args), &cache->secid);
fs/cachefiles/daemon.c
598
cache->have_secid = true;
fs/cachefiles/daemon.c
606
static int cachefiles_daemon_tag(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
617
if (cache->tag)
fs/cachefiles/daemon.c
62
int (*handler)(struct cachefiles_cache *cache, char *args);
fs/cachefiles/daemon.c
624
cache->tag = tag;
fs/cachefiles/daemon.c
632
static int cachefiles_daemon_cull(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
643
if (!test_bit(CACHEFILES_READY, &cache->flags)) {
fs/cachefiles/daemon.c
648
if (test_bit(CACHEFILES_DEAD, &cache->flags)) {
fs/cachefiles/daemon.c
658
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/daemon.c
659
ret = cachefiles_cull(cache, path.dentry, args);
fs/cachefiles/daemon.c
660
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/daemon.c
680
static int cachefiles_daemon_debug(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
703
static int cachefiles_daemon_inuse(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
714
if (!test_bit(CACHEFILES_READY, &cache->flags)) {
fs/cachefiles/daemon.c
719
if (test_bit(CACHEFILES_DEAD, &cache->flags)) {
fs/cachefiles/daemon.c
729
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/daemon.c
730
ret = cachefiles_check_in_use(cache, path.dentry, args);
fs/cachefiles/daemon.c
731
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/daemon.c
750
static int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args)
fs/cachefiles/daemon.c
753
cache->frun_percent,
fs/cachefiles/daemon.c
754
cache->fcull_percent,
fs/cachefiles/daemon.c
755
cache->fstop_percent,
fs/cachefiles/daemon.c
756
cache->brun_percent,
fs/cachefiles/daemon.c
757
cache->bcull_percent,
fs/cachefiles/daemon.c
758
cache->bstop_percent,
fs/cachefiles/daemon.c
761
if (cache->fstop_percent >= cache->fcull_percent ||
fs/cachefiles/daemon.c
762
cache->fcull_percent >= cache->frun_percent ||
fs/cachefiles/daemon.c
763
cache->frun_percent >= 100)
fs/cachefiles/daemon.c
766
if (cache->bstop_percent >= cache->bcull_percent ||
fs/cachefiles/daemon.c
767
cache->bcull_percent >= cache->brun_percent ||
fs/cachefiles/daemon.c
768
cache->brun_percent >= 100)
fs/cachefiles/daemon.c
771
if (!cache->rootdirname) {
fs/cachefiles/daemon.c
777
if (test_bit(CACHEFILES_READY, &cache->flags)) {
fs/cachefiles/daemon.c
784
set_bit(CACHEFILES_ONDEMAND_MODE, &cache->flags);
fs/cachefiles/daemon.c
795
if (!cache->tag) {
fs/cachefiles/daemon.c
800
cache->tag = kstrdup("CacheFiles", GFP_KERNEL);
fs/cachefiles/daemon.c
801
if (!cache->tag)
fs/cachefiles/daemon.c
805
return cachefiles_add_cache(cache);
fs/cachefiles/daemon.c
811
static void cachefiles_daemon_unbind(struct cachefiles_cache *cache)
fs/cachefiles/daemon.c
815
if (test_bit(CACHEFILES_READY, &cache->flags))
fs/cachefiles/daemon.c
816
cachefiles_withdraw_cache(cache);
fs/cachefiles/daemon.c
818
cachefiles_put_directory(cache->graveyard);
fs/cachefiles/daemon.c
819
cachefiles_put_directory(cache->store);
fs/cachefiles/daemon.c
820
mntput(cache->mnt);
fs/cachefiles/daemon.c
821
put_cred(cache->cache_cred);
fs/cachefiles/daemon.c
823
kfree(cache->rootdirname);
fs/cachefiles/daemon.c
824
kfree(cache->tag);
fs/cachefiles/daemon.c
92
struct cachefiles_cache *cache;
fs/cachefiles/interface.c
102
fscache_uncount_object(cache);
fs/cachefiles/interface.c
181
struct cachefiles_cache *cache = cookie->volume->cache->cache_priv;
fs/cachefiles/interface.c
196
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/interface.c
204
spin_lock(&cache->object_list_lock);
fs/cachefiles/interface.c
205
list_add(&object->cache_link, &cache->object_list);
fs/cachefiles/interface.c
206
spin_unlock(&cache->object_list_lock);
fs/cachefiles/interface.c
209
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/interface.c
214
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/interface.c
236
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/interface.c
253
cachefiles_remove_object_xattr(cache, object, file->f_path.dentry);
fs/cachefiles/interface.c
268
cachefiles_remove_object_xattr(cache, object, file->f_path.dentry);
fs/cachefiles/interface.c
283
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/interface.c
292
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/interface.c
294
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/interface.c
310
struct cachefiles_cache *cache)
fs/cachefiles/interface.c
322
cachefiles_commit_tmpfile(cache, object);
fs/cachefiles/interface.c
329
struct cachefiles_cache *cache)
fs/cachefiles/interface.c
344
cachefiles_commit_object(object, cache);
fs/cachefiles/interface.c
364
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/interface.c
371
spin_lock(&cache->object_list_lock);
fs/cachefiles/interface.c
374
spin_unlock(&cache->object_list_lock);
fs/cachefiles/interface.c
380
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/interface.c
381
cachefiles_clean_up_object(object, cache);
fs/cachefiles/interface.c
382
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/interface.c
436
cachefiles_bury_object(volume->cache, object,
fs/cachefiles/interface.c
48
fscache_count_object(vcookie->cache);
fs/cachefiles/interface.c
85
struct fscache_cache *cache;
fs/cachefiles/interface.c
98
cache = object->volume->cache->cache;
fs/cachefiles/internal.h
135
static inline bool cachefiles_in_ondemand_mode(struct cachefiles_cache *cache)
fs/cachefiles/internal.h
138
test_bit(CACHEFILES_ONDEMAND_MODE, &cache->flags);
fs/cachefiles/internal.h
168
static inline void cachefiles_state_changed(struct cachefiles_cache *cache)
fs/cachefiles/internal.h
170
set_bit(CACHEFILES_STATE_CHANGED, &cache->flags);
fs/cachefiles/internal.h
171
wake_up_all(&cache->daemon_pollwq);
fs/cachefiles/internal.h
177
extern int cachefiles_add_cache(struct cachefiles_cache *cache);
fs/cachefiles/internal.h
178
extern void cachefiles_withdraw_cache(struct cachefiles_cache *cache);
fs/cachefiles/internal.h
185
extern int cachefiles_has_space(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
193
extern void cachefiles_flush_reqs(struct cachefiles_cache *cache);
fs/cachefiles/internal.h
194
extern void cachefiles_get_unbind_pincount(struct cachefiles_cache *cache);
fs/cachefiles/internal.h
195
extern void cachefiles_put_unbind_pincount(struct cachefiles_cache *cache);
fs/cachefiles/internal.h
278
extern int cachefiles_bury_object(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
286
extern struct dentry *cachefiles_get_directory(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
292
extern int cachefiles_cull(struct cachefiles_cache *cache, struct dentry *dir,
fs/cachefiles/internal.h
295
extern int cachefiles_check_in_use(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
298
extern bool cachefiles_commit_tmpfile(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
305
extern ssize_t cachefiles_ondemand_daemon_read(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
308
extern int cachefiles_ondemand_copen(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
311
extern int cachefiles_ondemand_restore(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
349
static inline ssize_t cachefiles_ondemand_daemon_read(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
388
extern int cachefiles_get_security_ID(struct cachefiles_cache *cache);
fs/cachefiles/internal.h
389
extern int cachefiles_determine_cache_security(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
393
static inline void cachefiles_begin_secure(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
396
*_saved_cred = override_creds(cache->cache_cred);
fs/cachefiles/internal.h
399
static inline void cachefiles_end_secure(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
40
struct cachefiles_cache *cache;
fs/cachefiles/internal.h
418
extern int cachefiles_remove_object_xattr(struct cachefiles_cache *cache,
fs/cachefiles/internal.h
431
fscache_io_error((___cache)->cache); \
fs/cachefiles/internal.h
441
___cache = (object)->volume->cache; \
fs/cachefiles/internal.h
88
struct fscache_cache *cache; /* Cache cookie */
fs/cachefiles/io.c
215
granularity = max_t(size_t, object->volume->cache->bsize, granularity);
fs/cachefiles/io.c
271
atomic_long_sub(ki->b_writing, &object->volume->cache->b_writing);
fs/cachefiles/io.c
288
struct cachefiles_cache *cache;
fs/cachefiles/io.c
295
cache = object->volume->cache;
fs/cachefiles/io.c
319
ki->b_writing = (len + (1 << cache->bshift) - 1) >> cache->bshift;
fs/cachefiles/io.c
323
atomic_long_add(ki->b_writing, &cache->b_writing);
fs/cachefiles/io.c
385
struct cachefiles_cache *cache;
fs/cachefiles/io.c
422
cache = object->volume->cache;
fs/cachefiles/io.c
423
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/io.c
445
off = round_up(off, cache->bsize);
fs/cachefiles/io.c
464
to = round_up(to, cache->bsize);
fs/cachefiles/io.c
466
to = round_down(to, cache->bsize);
fs/cachefiles/io.c
486
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/io.c
524
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/io.c
566
if (cachefiles_has_space(cache, 0, *_len / PAGE_SIZE,
fs/cachefiles/io.c
598
return cachefiles_has_space(cache, 0, *_len / PAGE_SIZE,
fs/cachefiles/io.c
607
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/io.c
618
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/io.c
622
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/io.c
650
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/io.c
699
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/io.c
702
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/namei.c
118
ret = cachefiles_has_space(cache, 1, 0,
fs/cachefiles/namei.c
125
path.mnt = cache->mnt;
fs/cachefiles/namei.c
229
static int cachefiles_unlink(struct cachefiles_cache *cache,
fs/cachefiles/namei.c
235
.mnt = cache->mnt,
fs/cachefiles/namei.c
243
cachefiles_io_error(cache, "Unlink security error");
fs/cachefiles/namei.c
251
cachefiles_io_error(cache, "Unlink failed");
fs/cachefiles/namei.c
267
int cachefiles_bury_object(struct cachefiles_cache *cache,
fs/cachefiles/namei.c
289
ret = cachefiles_unlink(cache, object, dir, rep, why);
fs/cachefiles/namei.c
304
(uint32_t) atomic_inc_return(&cache->gravecounter));
fs/cachefiles/namei.c
308
rd.new_parent = cache->graveyard;
fs/cachefiles/namei.c
323
cachefiles_io_error(cache, "May not make directory loop");
fs/cachefiles/namei.c
331
cachefiles_io_error(cache, "Lookup error %d", ret);
fs/cachefiles/namei.c
337
cachefiles_io_error(cache, "Mountpoint in cache");
fs/cachefiles/namei.c
351
cachefiles_io_error(cache, "Mountpoint in graveyard");
fs/cachefiles/namei.c
356
path.mnt = cache->mnt;
fs/cachefiles/namei.c
358
path_to_graveyard.mnt = cache->mnt;
fs/cachefiles/namei.c
359
path_to_graveyard.dentry = cache->graveyard;
fs/cachefiles/namei.c
362
cachefiles_io_error(cache, "Rename security error %d", ret);
fs/cachefiles/namei.c
372
cachefiles_io_error(cache,
fs/cachefiles/namei.c
399
ret = cachefiles_unlink(volume->cache, object, fan, dentry, why);
fs/cachefiles/namei.c
411
struct cachefiles_cache *cache = volume->cache;
fs/cachefiles/namei.c
415
const struct path parentpath = { .mnt = cache->mnt, .dentry = fan };
fs/cachefiles/namei.c
420
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/namei.c
427
cache->cache_cred);
fs/cachefiles/namei.c
473
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/namei.c
492
ret = cachefiles_has_space(object->volume->cache, 1, 0,
fs/cachefiles/namei.c
515
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/namei.c
532
path.mnt = cache->mnt;
fs/cachefiles/namei.c
534
file = kernel_file_open(&path, O_RDWR | O_LARGEFILE | O_DIRECT, cache->cache_cred);
fs/cachefiles/namei.c
617
ret = cachefiles_bury_object(volume->cache, object,
fs/cachefiles/namei.c
642
bool cachefiles_commit_tmpfile(struct cachefiles_cache *cache,
fs/cachefiles/namei.c
669
ret = cachefiles_unlink(volume->cache, object, fan, dentry,
fs/cachefiles/namei.c
69
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/namei.c
718
static struct dentry *cachefiles_lookup_for_cull(struct cachefiles_cache *cache,
fs/cachefiles/namei.c
744
cachefiles_io_error(cache, "Lookup failed");
fs/cachefiles/namei.c
75
atomic_long_add(inode->i_blocks, &cache->b_released);
fs/cachefiles/namei.c
757
int cachefiles_cull(struct cachefiles_cache *cache, struct dentry *dir,
fs/cachefiles/namei.c
76
if (atomic_inc_return(&cache->f_released))
fs/cachefiles/namei.c
766
victim = cachefiles_lookup_for_cull(cache, dir, filename);
fs/cachefiles/namei.c
77
cachefiles_state_changed(cache);
fs/cachefiles/namei.c
789
ret = cachefiles_bury_object(cache, NULL, dir, victim,
fs/cachefiles/namei.c
819
int cachefiles_check_in_use(struct cachefiles_cache *cache, struct dentry *dir,
fs/cachefiles/namei.c
825
victim = cachefiles_lookup_for_cull(cache, dir, filename);
fs/cachefiles/namei.c
84
struct dentry *cachefiles_get_directory(struct cachefiles_cache *cache,
fs/cachefiles/ondemand.c
120
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/ondemand.c
122
XA_STATE(xas, &cache->reqs, id);
fs/cachefiles/ondemand.c
127
if (!test_bit(CACHEFILES_ONDEMAND_MODE, &cache->flags))
fs/cachefiles/ondemand.c
130
xa_lock(&cache->reqs);
fs/cachefiles/ondemand.c
134
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
138
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
158
int cachefiles_ondemand_copen(struct cachefiles_cache *cache, char *args)
fs/cachefiles/ondemand.c
167
XA_STATE(xas, &cache->reqs, 0);
fs/cachefiles/ondemand.c
169
if (!test_bit(CACHEFILES_ONDEMAND_MODE, &cache->flags))
fs/cachefiles/ondemand.c
191
xa_lock(&cache->reqs);
fs/cachefiles/ondemand.c
196
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
200
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
21
struct cachefiles_cache *cache;
fs/cachefiles/ondemand.c
258
wake_up_all(&cache->daemon_pollwq);
fs/cachefiles/ondemand.c
270
int cachefiles_ondemand_restore(struct cachefiles_cache *cache, char *args)
fs/cachefiles/ondemand.c
274
XA_STATE(xas, &cache->reqs, 0);
fs/cachefiles/ondemand.c
276
if (!test_bit(CACHEFILES_ONDEMAND_MODE, &cache->flags))
fs/cachefiles/ondemand.c
289
wake_up_all(&cache->daemon_pollwq);
fs/cachefiles/ondemand.c
297
struct cachefiles_cache *cache;
fs/cachefiles/ondemand.c
304
cache = object->volume->cache;
fs/cachefiles/ondemand.c
306
ret = xa_alloc_cyclic(&cache->ondemand_ids, &object_id, NULL,
fs/cachefiles/ondemand.c
308
&cache->ondemand_id_next, GFP_KERNEL);
fs/cachefiles/ondemand.c
31
cache = object->volume->cache;
fs/cachefiles/ondemand.c
32
xas.xa = &cache->reqs;
fs/cachefiles/ondemand.c
34
xa_lock(&cache->reqs);
fs/cachefiles/ondemand.c
340
cachefiles_get_unbind_pincount(cache);
fs/cachefiles/ondemand.c
351
xa_erase(&cache->ondemand_ids, object_id);
fs/cachefiles/ondemand.c
413
ssize_t cachefiles_ondemand_daemon_read(struct cachefiles_cache *cache,
fs/cachefiles/ondemand.c
421
XA_STATE(xas, &cache->reqs, cache->req_id_next);
fs/cachefiles/ondemand.c
423
xa_lock(&cache->reqs);
fs/cachefiles/ondemand.c
430
if (!req && cache->req_id_next > 0) {
fs/cachefiles/ondemand.c
432
req = cachefiles_ondemand_select_req(&xas, cache->req_id_next - 1);
fs/cachefiles/ondemand.c
435
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
443
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
448
cache->req_id_next = xas.xa_index + 1;
fs/cachefiles/ondemand.c
451
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
49
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
490
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/ondemand.c
492
XA_STATE(xas, &cache->reqs, 0);
fs/cachefiles/ondemand.c
495
if (!test_bit(CACHEFILES_ONDEMAND_MODE, &cache->flags))
fs/cachefiles/ondemand.c
498
if (test_bit(CACHEFILES_DEAD, &cache->flags)) {
fs/cachefiles/ondemand.c
51
xa_erase(&cache->ondemand_ids, object_id);
fs/cachefiles/ondemand.c
537
if (test_bit(CACHEFILES_DEAD, &cache->flags) ||
fs/cachefiles/ondemand.c
54
cachefiles_put_unbind_pincount(cache);
fs/cachefiles/ondemand.c
559
xas.xa_index = cache->msg_id_next;
fs/cachefiles/ondemand.c
563
xas_find_marked(&xas, cache->msg_id_next - 1, XA_FREE_MARK);
fs/cachefiles/ondemand.c
570
cache->msg_id_next = xas.xa_index + 1;
fs/cachefiles/ondemand.c
581
wake_up_all(&cache->daemon_pollwq);
fs/cachefiles/ondemand.c
62
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/ondemand.c
703
struct cachefiles_cache *cache;
fs/cachefiles/ondemand.c
715
cache = object->volume->cache;
fs/cachefiles/ondemand.c
716
xa_lock(&cache->reqs);
fs/cachefiles/ondemand.c
718
xa_for_each(&cache->reqs, index, req) {
fs/cachefiles/ondemand.c
722
__xa_erase(&cache->reqs, index);
fs/cachefiles/ondemand.c
725
xa_unlock(&cache->reqs);
fs/cachefiles/ondemand.c
734
if (!cachefiles_in_ondemand_mode(volume->cache))
fs/cachefiles/ondemand.c
78
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/ondemand.c
80
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/security.c
102
put_cred(cache->cache_cred);
fs/cachefiles/security.c
103
cache->cache_cred = new;
fs/cachefiles/security.c
105
cachefiles_begin_secure(cache, _saved_cred);
fs/cachefiles/security.c
106
ret = cachefiles_check_cache_dir(cache, root);
fs/cachefiles/security.c
16
int cachefiles_get_security_ID(struct cachefiles_cache *cache)
fs/cachefiles/security.c
21
_enter("{%u}", cache->have_secid ? cache->secid : 0);
fs/cachefiles/security.c
29
if (cache->have_secid) {
fs/cachefiles/security.c
30
ret = set_security_override(new, cache->secid);
fs/cachefiles/security.c
39
cache->cache_cred = new;
fs/cachefiles/security.c
49
static int cachefiles_check_cache_dir(struct cachefiles_cache *cache,
fs/cachefiles/security.c
75
int cachefiles_determine_cache_security(struct cachefiles_cache *cache,
fs/cachefiles/security.c
90
cachefiles_end_secure(cache, *_saved_cred);
fs/cachefiles/security.c
97
cachefiles_begin_secure(cache, _saved_cred);
fs/cachefiles/volume.c
105
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/volume.c
130
spin_lock(&volume->cache->object_list_lock);
fs/cachefiles/volume.c
132
spin_unlock(&volume->cache->object_list_lock);
fs/cachefiles/volume.c
21
struct cachefiles_cache *cache = vcookie->cache->cache_priv;
fs/cachefiles/volume.c
35
volume->cache = cache;
fs/cachefiles/volume.c
38
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/volume.c
49
vdentry = cachefiles_get_directory(cache, cache->store, name, &is_new);
fs/cachefiles/volume.c
62
vdentry = start_removing_dentry(cache->store, vdentry);
fs/cachefiles/volume.c
64
cachefiles_bury_object(cache, NULL, cache->store,
fs/cachefiles/volume.c
75
fan = cachefiles_get_directory(cache, vdentry, name, NULL);
fs/cachefiles/volume.c
81
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/volume.c
89
spin_lock(&cache->object_list_lock);
fs/cachefiles/volume.c
90
list_add(&volume->cache_link, &volume->cache->volumes);
fs/cachefiles/volume.c
91
spin_unlock(&cache->object_list_lock);
fs/cachefiles/xattr.c
160
int cachefiles_remove_object_xattr(struct cachefiles_cache *cache,
fs/cachefiles/xattr.c
168
ret = mnt_want_write(cache->mnt);
fs/cachefiles/xattr.c
172
mnt_drop_write(cache->mnt);
fs/cachefiles/xattr.c
181
cachefiles_io_error(cache,
fs/cachefiles/xattr.c
198
struct cachefiles_cache *cache = object->volume->cache;
fs/cachefiles/xattr.c
203
cachefiles_begin_secure(cache, &saved_cred);
fs/cachefiles/xattr.c
205
cachefiles_end_secure(cache, saved_cred);
fs/cachefiles/xattr.c
231
ret = mnt_want_write(volume->cache->mnt);
fs/cachefiles/xattr.c
236
mnt_drop_write(volume->cache->mnt);
fs/cachefiles/xattr.c
246
volume->cache, "Failed to set xattr with error %d", ret);
fs/cachefiles/xattr.c
287
volume->cache,
fs/ceph/cache.c
32
WARN_ON_ONCE(ci->netfs.cache);
fs/ceph/cache.c
34
ci->netfs.cache =
fs/ceph/cache.c
39
if (ci->netfs.cache)
fs/ecryptfs/main.c
655
struct kmem_cache **cache;
fs/ecryptfs/main.c
662
.cache = &ecryptfs_auth_tok_list_item_cache,
fs/ecryptfs/main.c
667
.cache = &ecryptfs_file_info_cache,
fs/ecryptfs/main.c
672
.cache = &ecryptfs_inode_info_cache,
fs/ecryptfs/main.c
679
.cache = &ecryptfs_sb_info_cache,
fs/ecryptfs/main.c
684
.cache = &ecryptfs_header_cache,
fs/ecryptfs/main.c
689
.cache = &ecryptfs_xattr_cache,
fs/ecryptfs/main.c
694
.cache = &ecryptfs_key_record_cache,
fs/ecryptfs/main.c
699
.cache = &ecryptfs_key_sig_cache,
fs/ecryptfs/main.c
704
.cache = &ecryptfs_global_auth_tok_cache,
fs/ecryptfs/main.c
709
.cache = &ecryptfs_key_tfm_cache,
fs/ecryptfs/main.c
729
kmem_cache_destroy(*(info->cache));
fs/ecryptfs/main.c
746
*(info->cache) = kmem_cache_create(info->name, info->size, 0,
fs/ecryptfs/main.c
748
if (!*(info->cache)) {
fs/exfat/cache.c
166
struct exfat_cache *cache, *tmp;
fs/exfat/cache.c
176
cache = exfat_cache_merge(inode, new);
fs/exfat/cache.c
177
if (cache == NULL) {
fs/exfat/cache.c
191
cache = exfat_cache_merge(inode, new);
fs/exfat/cache.c
192
if (cache != NULL) {
fs/exfat/cache.c
197
cache = tmp;
fs/exfat/cache.c
201
cache = list_entry(p,
fs/exfat/cache.c
204
cache->fcluster = new->fcluster;
fs/exfat/cache.c
205
cache->dcluster = new->dcluster;
fs/exfat/cache.c
206
cache->nr_contig = new->nr_contig;
fs/exfat/cache.c
209
exfat_cache_update_lru(inode, cache);
fs/exfat/cache.c
221
struct exfat_cache *cache;
fs/exfat/cache.c
224
cache = list_entry(ei->cache_lru.next,
fs/exfat/cache.c
226
list_del_init(&cache->cache_list);
fs/exfat/cache.c
228
exfat_cache_free(cache);
fs/exfat/cache.c
40
struct exfat_cache *cache = (struct exfat_cache *)c;
fs/exfat/cache.c
42
INIT_LIST_HEAD(&cache->cache_list);
fs/exfat/cache.c
68
static inline void exfat_cache_free(struct exfat_cache *cache)
fs/exfat/cache.c
70
WARN_ON(!list_empty(&cache->cache_list));
fs/exfat/cache.c
71
kmem_cache_free(exfat_cachep, cache);
fs/exfat/cache.c
75
struct exfat_cache *cache)
fs/exfat/cache.c
79
if (ei->cache_lru.next != &cache->cache_list)
fs/exfat/cache.c
80
list_move(&cache->cache_list, &ei->cache_lru);
fs/exfat/fatent.c
111
unsigned int *content, struct buffer_head **cache)
fs/exfat/fatent.c
122
if (unlikely(__exfat_ent_get(sb, loc, content, cache))) {
fs/exfat/fatent.c
154
brelse(*cache);
fs/exfat/fatent.c
155
*cache = NULL;
fs/exfat/fatent.c
47
unsigned int *content, struct buffer_head **cache)
fs/exfat/fatent.c
51
struct buffer_head *bh = *cache;
fs/exfat/fatent.c
59
*cache = bh;
fs/exfat/fatent.c
74
unsigned int content, struct buffer_head **cache)
fs/exfat/fatent.c
78
struct buffer_head *bh = cache ? *cache : NULL;
fs/exfat/fatent.c
88
if (cache)
fs/exfat/fatent.c
89
*cache = bh;
fs/exfat/fatent.c
96
if (!cache)
fs/ext2/xattr.c
1055
void ext2_xattr_destroy_cache(struct mb_cache *cache)
fs/ext2/xattr.c
1057
if (cache)
fs/ext2/xattr.c
1058
mb_cache_destroy(cache);
fs/ext2/xattr.c
872
ext2_xattr_cache_insert(struct mb_cache *cache, struct buffer_head *bh)
fs/ext2/xattr.c
877
error = mb_cache_entry_create(cache, GFP_KERNEL, hash, bh->b_blocknr,
fs/ext2/xattr.h
73
extern void ext2_xattr_destroy_cache(struct mb_cache *cache);
fs/ext2/xattr.h
98
static inline void ext2_xattr_destroy_cache(struct mb_cache *cache)
fs/ext4/xattr.c
3223
void ext4_xattr_destroy_cache(struct mb_cache *cache)
fs/ext4/xattr.c
3225
if (cache)
fs/ext4/xattr.c
3226
mb_cache_destroy(cache);
fs/fat/cache.c
131
struct fat_cache *cache, *tmp;
fs/fat/cache.c
141
cache = fat_cache_merge(inode, new);
fs/fat/cache.c
142
if (cache == NULL) {
fs/fat/cache.c
156
cache = fat_cache_merge(inode, new);
fs/fat/cache.c
157
if (cache != NULL) {
fs/fat/cache.c
162
cache = tmp;
fs/fat/cache.c
165
cache = list_entry(p, struct fat_cache, cache_list);
fs/fat/cache.c
167
cache->fcluster = new->fcluster;
fs/fat/cache.c
168
cache->dcluster = new->dcluster;
fs/fat/cache.c
169
cache->nr_contig = new->nr_contig;
fs/fat/cache.c
172
fat_cache_update_lru(inode, cache);
fs/fat/cache.c
184
struct fat_cache *cache;
fs/fat/cache.c
187
cache = list_entry(i->cache_lru.next,
fs/fat/cache.c
189
list_del_init(&cache->cache_list);
fs/fat/cache.c
191
fat_cache_free(cache);
fs/fat/cache.c
36
struct fat_cache *cache = (struct fat_cache *)foo;
fs/fat/cache.c
38
INIT_LIST_HEAD(&cache->cache_list);
fs/fat/cache.c
62
static inline void fat_cache_free(struct fat_cache *cache)
fs/fat/cache.c
64
BUG_ON(!list_empty(&cache->cache_list));
fs/fat/cache.c
65
kmem_cache_free(fat_cache_cachep, cache);
fs/fat/cache.c
69
struct fat_cache *cache)
fs/fat/cache.c
71
if (MSDOS_I(inode)->cache_lru.next != &cache->cache_list)
fs/fat/cache.c
72
list_move(&cache->cache_list, &MSDOS_I(inode)->cache_lru);
fs/lockd/host.c
524
static struct nlm_host *next_host_state(struct hlist_head *cache,
fs/lockd/host.c
532
for_each_host(host, chain, cache) {
fs/mbcache.c
106
head = mb_cache_entry_head(cache, key);
fs/mbcache.c
117
spin_lock(&cache->c_list_lock);
fs/mbcache.c
118
list_add_tail(&entry->e_list, &cache->c_list);
fs/mbcache.c
119
cache->c_entry_count++;
fs/mbcache.c
120
spin_unlock(&cache->c_list_lock);
fs/mbcache.c
121
mb_cache_entry_put(cache, entry);
fs/mbcache.c
127
void __mb_cache_entry_free(struct mb_cache *cache, struct mb_cache_entry *entry)
fs/mbcache.c
131
head = mb_cache_entry_head(cache, entry->e_key);
fs/mbcache.c
152
static struct mb_cache_entry *__entry_find(struct mb_cache *cache,
fs/mbcache.c
160
head = mb_cache_entry_head(cache, key);
fs/mbcache.c
179
mb_cache_entry_put(cache, old_entry);
fs/mbcache.c
192
struct mb_cache_entry *mb_cache_entry_find_first(struct mb_cache *cache,
fs/mbcache.c
195
return __entry_find(cache, NULL, key);
fs/mbcache.c
209
struct mb_cache_entry *mb_cache_entry_find_next(struct mb_cache *cache,
fs/mbcache.c
212
return __entry_find(cache, entry, entry->e_key);
fs/mbcache.c
222
struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *cache, u32 key,
fs/mbcache.c
229
head = mb_cache_entry_head(cache, key);
fs/mbcache.c
254
struct mb_cache_entry *mb_cache_entry_delete_or_get(struct mb_cache *cache,
fs/mbcache.c
259
entry = mb_cache_entry_get(cache, key, value);
fs/mbcache.c
270
spin_lock(&cache->c_list_lock);
fs/mbcache.c
273
cache->c_entry_count--;
fs/mbcache.c
274
spin_unlock(&cache->c_list_lock);
fs/mbcache.c
275
__mb_cache_entry_free(cache, entry);
fs/mbcache.c
286
void mb_cache_entry_touch(struct mb_cache *cache,
fs/mbcache.c
296
struct mb_cache *cache = shrink->private_data;
fs/mbcache.c
298
return cache->c_entry_count;
fs/mbcache.c
302
static unsigned long mb_cache_shrink(struct mb_cache *cache,
fs/mbcache.c
308
spin_lock(&cache->c_list_lock);
fs/mbcache.c
309
while (nr_to_scan-- && !list_empty(&cache->c_list)) {
fs/mbcache.c
310
entry = list_first_entry(&cache->c_list,
fs/mbcache.c
316
list_move_tail(&entry->e_list, &cache->c_list);
fs/mbcache.c
320
cache->c_entry_count--;
fs/mbcache.c
321
spin_unlock(&cache->c_list_lock);
fs/mbcache.c
322
__mb_cache_entry_free(cache, entry);
fs/mbcache.c
325
spin_lock(&cache->c_list_lock);
fs/mbcache.c
327
spin_unlock(&cache->c_list_lock);
fs/mbcache.c
335
struct mb_cache *cache = shrink->private_data;
fs/mbcache.c
336
return mb_cache_shrink(cache, sc->nr_to_scan);
fs/mbcache.c
344
struct mb_cache *cache = container_of(work, struct mb_cache,
fs/mbcache.c
346
mb_cache_shrink(cache, cache->c_max_entries / SHRINK_DIVISOR);
fs/mbcache.c
357
struct mb_cache *cache;
fs/mbcache.c
361
cache = kzalloc_obj(struct mb_cache);
fs/mbcache.c
362
if (!cache)
fs/mbcache.c
364
cache->c_bucket_bits = bucket_bits;
fs/mbcache.c
365
cache->c_max_entries = bucket_count << 4;
fs/mbcache.c
366
INIT_LIST_HEAD(&cache->c_list);
fs/mbcache.c
367
spin_lock_init(&cache->c_list_lock);
fs/mbcache.c
368
cache->c_hash = kmalloc_objs(struct hlist_bl_head, bucket_count);
fs/mbcache.c
369
if (!cache->c_hash) {
fs/mbcache.c
370
kfree(cache);
fs/mbcache.c
374
INIT_HLIST_BL_HEAD(&cache->c_hash[i]);
fs/mbcache.c
376
cache->c_shrink = shrinker_alloc(0, "mbcache-shrinker");
fs/mbcache.c
377
if (!cache->c_shrink) {
fs/mbcache.c
378
kfree(cache->c_hash);
fs/mbcache.c
379
kfree(cache);
fs/mbcache.c
383
cache->c_shrink->count_objects = mb_cache_count;
fs/mbcache.c
384
cache->c_shrink->scan_objects = mb_cache_scan;
fs/mbcache.c
385
cache->c_shrink->private_data = cache;
fs/mbcache.c
387
shrinker_register(cache->c_shrink);
fs/mbcache.c
389
INIT_WORK(&cache->c_shrink_work, mb_cache_shrink_worker);
fs/mbcache.c
391
return cache;
fs/mbcache.c
405
void mb_cache_destroy(struct mb_cache *cache)
fs/mbcache.c
409
cancel_work_sync(&cache->c_shrink_work);
fs/mbcache.c
410
shrinker_free(cache->c_shrink);
fs/mbcache.c
416
list_for_each_entry_safe(entry, next, &cache->c_list, e_list) {
fs/mbcache.c
419
mb_cache_entry_put(cache, entry);
fs/mbcache.c
421
kfree(cache->c_hash);
fs/mbcache.c
422
kfree(cache);
fs/mbcache.c
47
static unsigned long mb_cache_shrink(struct mb_cache *cache,
fs/mbcache.c
50
static inline struct hlist_bl_head *mb_cache_entry_head(struct mb_cache *cache,
fs/mbcache.c
53
return &cache->c_hash[hash_32(key, cache->c_bucket_bits)];
fs/mbcache.c
74
int mb_cache_entry_create(struct mb_cache *cache, gfp_t mask, u32 key,
fs/mbcache.c
82
if (cache->c_entry_count >= cache->c_max_entries)
fs/mbcache.c
83
schedule_work(&cache->c_shrink_work);
fs/mbcache.c
85
if (cache->c_entry_count >= 2*cache->c_max_entries)
fs/mbcache.c
86
mb_cache_shrink(cache, SYNC_SHRINK_BATCH);
fs/netfs/buffered_write.c
77
fscache_update_cookie(ctx->cache, NULL, &end);
fs/netfs/fscache_cache.c
100
fscache_get_cache_maybe(cache, fscache_cache_get_acquire))
fs/netfs/fscache_cache.c
110
list_for_each_entry(cache, &fscache_caches, cache_link) {
fs/netfs/fscache_cache.c
111
if (cache->name &&
fs/netfs/fscache_cache.c
112
fscache_get_cache_maybe(cache, fscache_cache_get_acquire))
fs/netfs/fscache_cache.c
126
return cache;
fs/netfs/fscache_cache.c
128
cache = unnamed;
fs/netfs/fscache_cache.c
129
cache->name = candidate->name;
fs/netfs/fscache_cache.c
135
return cache;
fs/netfs/fscache_cache.c
151
struct fscache_cache *cache;
fs/netfs/fscache_cache.c
154
cache = fscache_lookup_cache(name, true);
fs/netfs/fscache_cache.c
155
if (IS_ERR(cache))
fs/netfs/fscache_cache.c
156
return cache;
fs/netfs/fscache_cache.c
158
if (!fscache_set_cache_state_maybe(cache,
fs/netfs/fscache_cache.c
162
fscache_put_cache(cache, fscache_cache_put_cache);
fs/netfs/fscache_cache.c
166
return cache;
fs/netfs/fscache_cache.c
179
void fscache_put_cache(struct fscache_cache *cache,
fs/netfs/fscache_cache.c
186
if (IS_ERR_OR_NULL(cache))
fs/netfs/fscache_cache.c
189
debug_id = cache->debug_id;
fs/netfs/fscache_cache.c
190
zero = __refcount_dec_and_test(&cache->ref, &ref);
fs/netfs/fscache_cache.c
195
list_del_init(&cache->cache_link);
fs/netfs/fscache_cache.c
197
kfree(cache->name);
fs/netfs/fscache_cache.c
198
kfree(cache);
fs/netfs/fscache_cache.c
209
void fscache_relinquish_cache(struct fscache_cache *cache)
fs/netfs/fscache_cache.c
212
(cache->state == FSCACHE_CACHE_IS_PREPARING) ?
fs/netfs/fscache_cache.c
216
cache->ops = NULL;
fs/netfs/fscache_cache.c
217
cache->cache_priv = NULL;
fs/netfs/fscache_cache.c
218
fscache_set_cache_state(cache, FSCACHE_CACHE_IS_NOT_PRESENT);
fs/netfs/fscache_cache.c
219
fscache_put_cache(cache, where);
fs/netfs/fscache_cache.c
234
int fscache_add_cache(struct fscache_cache *cache,
fs/netfs/fscache_cache.c
240
_enter("{%s,%s}", ops->name, cache->name);
fs/netfs/fscache_cache.c
242
BUG_ON(fscache_cache_state(cache) != FSCACHE_CACHE_IS_PREPARING);
fs/netfs/fscache_cache.c
248
n_accesses = atomic_inc_return(&cache->n_accesses);
fs/netfs/fscache_cache.c
249
trace_fscache_access_cache(cache->debug_id, refcount_read(&cache->ref),
fs/netfs/fscache_cache.c
254
cache->ops = ops;
fs/netfs/fscache_cache.c
255
cache->cache_priv = cache_priv;
fs/netfs/fscache_cache.c
256
fscache_set_cache_state(cache, FSCACHE_CACHE_IS_ACTIVE);
fs/netfs/fscache_cache.c
259
pr_notice("Cache \"%s\" added (type %s)\n", cache->name, ops->name);
fs/netfs/fscache_cache.c
26
struct fscache_cache *cache;
fs/netfs/fscache_cache.c
260
_leave(" = 0 [%s]", cache->name);
fs/netfs/fscache_cache.c
28
cache = kzalloc_obj(*cache);
fs/netfs/fscache_cache.c
289
bool fscache_begin_cache_access(struct fscache_cache *cache, enum fscache_access_trace why)
fs/netfs/fscache_cache.c
29
if (cache) {
fs/netfs/fscache_cache.c
293
if (!fscache_cache_is_live(cache))
fs/netfs/fscache_cache.c
296
n_accesses = atomic_inc_return(&cache->n_accesses);
fs/netfs/fscache_cache.c
298
trace_fscache_access_cache(cache->debug_id, refcount_read(&cache->ref),
fs/netfs/fscache_cache.c
300
if (!fscache_cache_is_live(cache)) {
fs/netfs/fscache_cache.c
301
fscache_end_cache_access(cache, fscache_access_unlive);
fs/netfs/fscache_cache.c
31
cache->name = kstrdup(name, GFP_KERNEL);
fs/netfs/fscache_cache.c
315
void fscache_end_cache_access(struct fscache_cache *cache, enum fscache_access_trace why)
fs/netfs/fscache_cache.c
32
if (!cache->name) {
fs/netfs/fscache_cache.c
320
n_accesses = atomic_dec_return(&cache->n_accesses);
fs/netfs/fscache_cache.c
321
trace_fscache_access_cache(cache->debug_id, refcount_read(&cache->ref),
fs/netfs/fscache_cache.c
324
wake_up_var(&cache->n_accesses);
fs/netfs/fscache_cache.c
33
kfree(cache);
fs/netfs/fscache_cache.c
337
void fscache_io_error(struct fscache_cache *cache)
fs/netfs/fscache_cache.c
339
if (fscache_set_cache_state_maybe(cache,
fs/netfs/fscache_cache.c
343
cache->name);
fs/netfs/fscache_cache.c
355
void fscache_withdraw_cache(struct fscache_cache *cache)
fs/netfs/fscache_cache.c
360
cache->name, atomic_read(&cache->object_count));
fs/netfs/fscache_cache.c
362
fscache_set_cache_state(cache, FSCACHE_CACHE_IS_WITHDRAWN);
fs/netfs/fscache_cache.c
365
n_accesses = atomic_dec_return(&cache->n_accesses);
fs/netfs/fscache_cache.c
366
trace_fscache_access_cache(cache->debug_id, refcount_read(&cache->ref),
fs/netfs/fscache_cache.c
369
wait_var_event(&cache->n_accesses,
fs/netfs/fscache_cache.c
37
refcount_set(&cache->ref, 1);
fs/netfs/fscache_cache.c
370
atomic_read(&cache->n_accesses) == 0);
fs/netfs/fscache_cache.c
38
INIT_LIST_HEAD(&cache->cache_link);
fs/netfs/fscache_cache.c
382
struct fscache_cache *cache;
fs/netfs/fscache_cache.c
39
cache->debug_id = atomic_inc_return(&fscache_cache_debug_id);
fs/netfs/fscache_cache.c
392
cache = list_entry(v, struct fscache_cache, cache_link);
fs/netfs/fscache_cache.c
395
cache->debug_id,
fs/netfs/fscache_cache.c
396
refcount_read(&cache->ref),
fs/netfs/fscache_cache.c
397
atomic_read(&cache->n_volumes),
fs/netfs/fscache_cache.c
398
atomic_read(&cache->object_count),
fs/netfs/fscache_cache.c
399
atomic_read(&cache->n_accesses),
fs/netfs/fscache_cache.c
400
fscache_cache_states[cache->state],
fs/netfs/fscache_cache.c
401
cache->name ?: "-");
fs/netfs/fscache_cache.c
41
return cache;
fs/netfs/fscache_cache.c
44
static bool fscache_get_cache_maybe(struct fscache_cache *cache,
fs/netfs/fscache_cache.c
50
success = __refcount_inc_not_zero(&cache->ref, &ref);
fs/netfs/fscache_cache.c
52
trace_fscache_cache(cache->debug_id, ref + 1, where);
fs/netfs/fscache_cache.c
61
struct fscache_cache *candidate, *cache, *unnamed = NULL;
fs/netfs/fscache_cache.c
66
list_for_each_entry(cache, &fscache_caches, cache_link) {
fs/netfs/fscache_cache.c
67
if (cache->name && name && strcmp(cache->name, name) == 0 &&
fs/netfs/fscache_cache.c
68
fscache_get_cache_maybe(cache, fscache_cache_get_acquire))
fs/netfs/fscache_cache.c
70
if (!cache->name && !name &&
fs/netfs/fscache_cache.c
71
fscache_get_cache_maybe(cache, fscache_cache_get_acquire))
fs/netfs/fscache_cache.c
76
list_for_each_entry(cache, &fscache_caches, cache_link) {
fs/netfs/fscache_cache.c
77
if (cache->name &&
fs/netfs/fscache_cache.c
78
fscache_get_cache_maybe(cache, fscache_cache_get_acquire))
fs/netfs/fscache_cache.c
93
list_for_each_entry(cache, &fscache_caches, cache_link) {
fs/netfs/fscache_cache.c
94
if (cache->name && name && strcmp(cache->name, name) == 0 &&
fs/netfs/fscache_cache.c
95
fscache_get_cache_maybe(cache, fscache_cache_get_acquire))
fs/netfs/fscache_cache.c
97
if (!cache->name) {
fs/netfs/fscache_cache.c
98
unnamed = cache;
fs/netfs/fscache_cookie.c
1043
if (!cookie->volume->cache->ops->invalidate_cookie(cookie))
fs/netfs/fscache_cookie.c
185
!fscache_cache_is_live(cookie->volume->cache)) {
fs/netfs/fscache_cookie.c
497
cookie->volume->cache->ops->prepare_to_write(cookie);
fs/netfs/fscache_cookie.c
518
if (!cookie->volume->cache->ops->lookup_cookie(cookie)) {
fs/netfs/fscache_cookie.c
780
cookie->volume->cache->ops->withdraw_cookie(cookie);
fs/netfs/fscache_io.c
117
if (!cookie->volume->cache->ops->begin_operation(cres, want_state))
fs/netfs/fscache_io.c
284
cookie->volume->cache->ops->resize_cookie(&cres, new_size);
fs/netfs/fscache_io.c
29
if (!fscache_cache_is_live(cookie->volume->cache)) {
fs/netfs/fscache_io.c
60
return cookie->volume->cache->ops->begin_operation(cres, want_state);
fs/netfs/fscache_volume.c
100
if (!fscache_cache_is_live(volume->cache))
fs/netfs/fscache_volume.c
103
if (!fscache_cache_is_live(volume->cache)) {
fs/netfs/fscache_volume.c
141
a->cache != b->cache ||
fs/netfs/fscache_volume.c
218
struct fscache_cache *cache;
fs/netfs/fscache_volume.c
229
cache = fscache_lookup_cache(cache_name, false);
fs/netfs/fscache_volume.c
230
if (IS_ERR(cache))
fs/netfs/fscache_volume.c
237
volume->cache = cache;
fs/netfs/fscache_volume.c
261
atomic_inc(&cache->n_volumes);
fs/netfs/fscache_volume.c
272
fscache_put_cache(cache, fscache_cache_put_alloc_volume);
fs/netfs/fscache_volume.c
289
ops = volume->cache->ops;
fs/netfs/fscache_volume.c
292
fscache_end_cache_access(volume->cache,
fs/netfs/fscache_volume.c
308
if (!fscache_begin_cache_access(volume->cache,
fs/netfs/fscache_volume.c
391
struct fscache_cache *cache = volume->cache;
fs/netfs/fscache_volume.c
397
cache->ops->free_volume(volume);
fs/netfs/fscache_volume.c
404
atomic_dec(&volume->cache->n_volumes);
fs/netfs/fscache_volume.c
414
fscache_put_cache(cache, fscache_cache_put_volume);
fs/netfs/fscache_volume.c
503
volume->cache->name ?: "-",
fs/netfs/internal.h
230
struct fscache_cookie *cookie = ctx->cache;
fs/netfs/internal.h
310
bool fscache_begin_cache_access(struct fscache_cache *cache, enum fscache_access_trace why);
fs/netfs/internal.h
311
void fscache_end_cache_access(struct fscache_cache *cache, enum fscache_access_trace why);
fs/netfs/internal.h
313
void fscache_put_cache(struct fscache_cache *cache, enum fscache_cache_trace where);
fs/netfs/internal.h
315
static inline enum fscache_cache_state fscache_cache_state(const struct fscache_cache *cache)
fs/netfs/internal.h
317
return smp_load_acquire(&cache->state);
fs/netfs/internal.h
320
static inline bool fscache_cache_is_live(const struct fscache_cache *cache)
fs/netfs/internal.h
322
return fscache_cache_state(cache) == FSCACHE_CACHE_IS_ACTIVE;
fs/netfs/internal.h
325
static inline void fscache_set_cache_state(struct fscache_cache *cache,
fs/netfs/internal.h
328
smp_store_release(&cache->state, new_state);
fs/netfs/internal.h
332
static inline bool fscache_set_cache_state_maybe(struct fscache_cache *cache,
fs/netfs/internal.h
336
return try_cmpxchg_release(&cache->state, &old_state, new_state);
fs/netfs/objects.c
201
struct kmem_cache *cache = mempool->pool_data;
fs/netfs/objects.c
211
memset(subreq, 0, kmem_cache_size(cache));
fs/netfs/objects.c
28
struct kmem_cache *cache = mempool->pool_data;
fs/netfs/objects.c
38
memset(rreq, 0, kmem_cache_size(cache));
fs/netfs/read_pgpriv2.c
21
struct netfs_io_stream *cache = &creq->io_streams[1];
fs/netfs/read_pgpriv2.c
61
cache->submit_extendable_to = fsize;
fs/netfs/read_pgpriv2.c
62
cache->submit_off = 0;
fs/netfs/read_pgpriv2.c
63
cache->submit_len = flen;
fs/netfs/read_pgpriv2.c
73
creq->buffer.iter.iov_offset = cache->submit_off;
fs/netfs/read_pgpriv2.c
75
atomic64_set(&creq->issued_to, fpos + cache->submit_off);
fs/netfs/read_pgpriv2.c
76
cache->submit_extendable_to = fsize - cache->submit_off;
fs/netfs/read_pgpriv2.c
77
part = netfs_advance_write(creq, cache, fpos + cache->submit_off,
fs/netfs/read_pgpriv2.c
78
cache->submit_len, to_eof);
fs/netfs/read_pgpriv2.c
79
cache->submit_off += part;
fs/netfs/read_pgpriv2.c
80
if (part > cache->submit_len)
fs/netfs/read_pgpriv2.c
81
cache->submit_len = 0;
fs/netfs/read_pgpriv2.c
83
cache->submit_len -= part;
fs/netfs/read_pgpriv2.c
84
} while (cache->submit_len > 0);
fs/netfs/read_pgpriv2.c
91
netfs_issue_write(creq, cache);
fs/netfs/write_issue.c
324
struct netfs_io_stream *cache = &wreq->io_streams[1];
fs/netfs/write_issue.c
407
netfs_issue_write(wreq, cache);
fs/netfs/write_issue.c
414
netfs_issue_write(wreq, cache);
fs/netfs/write_issue.c
425
if (!cache->avail) {
fs/netfs/write_issue.c
432
} else if (!upload->avail && !cache->avail) {
fs/netfs/write_issue.c
707
struct netfs_io_stream *cache = &wreq->io_streams[1];
fs/netfs/write_issue.c
728
if (!upload->avail && !cache->avail) {
fs/nfs/dir.c
2894
struct nfs_access_entry *cache;
fs/nfs/dir.c
2897
cache = list_entry(head->next, struct nfs_access_entry, lru);
fs/nfs/dir.c
2898
list_del(&cache->lru);
fs/nfs/dir.c
2899
nfs_access_free_entry(cache);
fs/nfs/dir.c
2908
struct nfs_access_entry *cache;
fs/nfs/dir.c
2921
cache = list_entry(nfsi->access_cache_entry_lru.next,
fs/nfs/dir.c
2923
list_move(&cache->lru, &head);
fs/nfs/dir.c
2924
rb_erase(&cache->rb_node, &nfsi->access_cache);
fs/nfs/dir.c
3091
struct nfs_access_entry *cache;
fs/nfs/dir.c
3099
cache = nfs_access_search_rbtree(inode, cred);
fs/nfs/dir.c
3101
if (cache == NULL)
fs/nfs/dir.c
3119
if ((s64)(login_time - cache->timestamp) > 0)
fs/nfs/dir.c
3121
*mask = cache->mask;
fs/nfs/dir.c
3122
list_move_tail(&cache->lru, &nfsi->access_cache_entry_lru);
fs/nfs/dir.c
3140
struct nfs_access_entry *cache;
fs/nfs/dir.c
3148
cache = list_entry(lh, struct nfs_access_entry, lru);
fs/nfs/dir.c
3150
access_cmp(cred, cache) != 0)
fs/nfs/dir.c
3151
cache = NULL;
fs/nfs/dir.c
3152
if (cache == NULL)
fs/nfs/dir.c
3154
if ((s64)(login_time - cache->timestamp) > 0)
fs/nfs/dir.c
3158
*mask = cache->mask;
fs/nfs/dir.c
3219
struct nfs_access_entry *cache = kmalloc_obj(*cache);
fs/nfs/dir.c
3220
if (cache == NULL)
fs/nfs/dir.c
3222
RB_CLEAR_NODE(&cache->rb_node);
fs/nfs/dir.c
3223
cache->fsuid = cred->fsuid;
fs/nfs/dir.c
3224
cache->fsgid = cred->fsgid;
fs/nfs/dir.c
3225
cache->group_info = get_group_info(cred->group_info);
fs/nfs/dir.c
3226
cache->mask = set->mask;
fs/nfs/dir.c
3227
cache->timestamp = ktime_get_ns();
fs/nfs/dir.c
3234
nfs_access_add_rbtree(inode, cache, cred);
fs/nfs/dir.c
3292
struct nfs_access_entry cache;
fs/nfs/dir.c
3299
status = nfs_access_get_cached(inode, cred, &cache.mask, may_block);
fs/nfs/dir.c
3310
cache.mask = NFS_ACCESS_READ | NFS_ACCESS_MODIFY | NFS_ACCESS_EXTEND |
fs/nfs/dir.c
3313
cache.mask |= NFS_ACCESS_DELETE | NFS_ACCESS_LOOKUP;
fs/nfs/dir.c
3315
cache.mask |= NFS_ACCESS_EXECUTE;
fs/nfs/dir.c
3316
status = NFS_PROTO(inode)->access(inode, &cache, cred);
fs/nfs/dir.c
3326
nfs_access_add_cache(inode, &cache, cred);
fs/nfs/dir.c
3328
cache_mask = nfs_access_calc_mask(cache.mask, inode->i_mode);
fs/nfs/fscache.c
169
netfs_inode(inode)->cache = NULL;
fs/nfs/fscache.c
175
netfs_inode(inode)->cache = fscache_acquire_cookie(
fs/nfs/fscache.c
184
if (netfs_inode(inode)->cache)
fs/nfs/fscache.c
194
netfs_inode(inode)->cache = NULL;
fs/nfs/fscache.c
246
if (!netfs_inode(folio_inode(folio))->cache)
fs/nfs/fscache.c
256
if (!netfs_inode(inode)->cache)
fs/nfs/fscache.c
354
if (netfs_inode(inode)->cache)
fs/nfs/nfs42xattr.c
106
nfs4_xattr_hash_init(struct nfs4_xattr_cache *cache)
fs/nfs/nfs42xattr.c
111
INIT_HLIST_HEAD(&cache->buckets[i].hlist);
fs/nfs/nfs42xattr.c
112
spin_lock_init(&cache->buckets[i].lock);
fs/nfs/nfs42xattr.c
113
cache->buckets[i].cache = cache;
fs/nfs/nfs42xattr.c
114
cache->buckets[i].draining = false;
fs/nfs/nfs42xattr.c
270
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
273
cache = container_of(kref, struct nfs4_xattr_cache, ref);
fs/nfs/nfs42xattr.c
276
if (WARN_ON(!hlist_empty(&cache->buckets[i].hlist)))
fs/nfs/nfs42xattr.c
278
cache->buckets[i].draining = false;
fs/nfs/nfs42xattr.c
281
cache->listxattr = NULL;
fs/nfs/nfs42xattr.c
283
kmem_cache_free(nfs4_xattr_cache_cachep, cache);
fs/nfs/nfs42xattr.c
290
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
292
cache = kmem_cache_alloc(nfs4_xattr_cache_cachep, GFP_KERNEL);
fs/nfs/nfs42xattr.c
293
if (cache == NULL)
fs/nfs/nfs42xattr.c
296
kref_init(&cache->ref);
fs/nfs/nfs42xattr.c
297
atomic_long_set(&cache->nent, 0);
fs/nfs/nfs42xattr.c
299
return cache;
fs/nfs/nfs42xattr.c
309
nfs4_xattr_set_listcache(struct nfs4_xattr_cache *cache,
fs/nfs/nfs42xattr.c
315
spin_lock(&cache->listxattr_lock);
fs/nfs/nfs42xattr.c
317
old = cache->listxattr;
fs/nfs/nfs42xattr.c
324
cache->listxattr = new;
fs/nfs/nfs42xattr.c
333
spin_unlock(&cache->listxattr_lock);
fs/nfs/nfs42xattr.c
384
nfs4_xattr_discard_cache(struct nfs4_xattr_cache *cache)
fs/nfs/nfs42xattr.c
391
nfs4_xattr_set_listcache(cache, ERR_PTR(-ESTALE));
fs/nfs/nfs42xattr.c
394
bucket = &cache->buckets[i];
fs/nfs/nfs42xattr.c
406
atomic_long_set(&cache->nent, 0);
fs/nfs/nfs42xattr.c
408
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
429
struct nfs4_xattr_cache *cache, *oldcache, *newcache;
fs/nfs/nfs42xattr.c
433
cache = oldcache = NULL;
fs/nfs/nfs42xattr.c
440
cache = nfsi->xattr_cache;
fs/nfs/nfs42xattr.c
442
if (cache != NULL)
fs/nfs/nfs42xattr.c
443
kref_get(&cache->ref);
fs/nfs/nfs42xattr.c
447
if (add && cache == NULL) {
fs/nfs/nfs42xattr.c
450
cache = nfs4_xattr_alloc_cache();
fs/nfs/nfs42xattr.c
451
if (cache == NULL)
fs/nfs/nfs42xattr.c
462
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
463
cache = NULL;
fs/nfs/nfs42xattr.c
474
kref_get(&cache->ref);
fs/nfs/nfs42xattr.c
475
nfsi->xattr_cache = cache;
fs/nfs/nfs42xattr.c
476
cache->inode = inode;
fs/nfs/nfs42xattr.c
477
list_lru_add_obj(&nfs4_xattr_cache_lru, &cache->lru);
fs/nfs/nfs42xattr.c
488
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
489
cache = newcache;
fs/nfs/nfs42xattr.c
500
return cache;
fs/nfs/nfs42xattr.c
504
nfs4_xattr_hash_bucket(struct nfs4_xattr_cache *cache, const char *name)
fs/nfs/nfs42xattr.c
506
return &cache->buckets[jhash(name, strlen(name), 0) &
fs/nfs/nfs42xattr.c
507
(ARRAY_SIZE(cache->buckets) - 1)];
fs/nfs/nfs42xattr.c
526
nfs4_xattr_hash_add(struct nfs4_xattr_cache *cache,
fs/nfs/nfs42xattr.c
533
bucket = nfs4_xattr_hash_bucket(cache, entry->xattr_name);
fs/nfs/nfs42xattr.c
548
atomic_long_inc(&cache->nent);
fs/nfs/nfs42xattr.c
564
nfs4_xattr_hash_remove(struct nfs4_xattr_cache *cache, const char *name)
fs/nfs/nfs42xattr.c
569
bucket = nfs4_xattr_hash_bucket(cache, name);
fs/nfs/nfs42xattr.c
577
atomic_long_dec(&cache->nent);
fs/nfs/nfs42xattr.c
587
nfs4_xattr_hash_find(struct nfs4_xattr_cache *cache, const char *name)
fs/nfs/nfs42xattr.c
592
bucket = nfs4_xattr_hash_bucket(cache, name);
fs/nfs/nfs42xattr.c
611
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
615
cache = nfs4_xattr_get_cache(inode, 0);
fs/nfs/nfs42xattr.c
616
if (cache == NULL)
fs/nfs/nfs42xattr.c
620
entry = nfs4_xattr_hash_find(cache, name);
fs/nfs/nfs42xattr.c
64
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
640
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
650
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
654
cache = nfs4_xattr_get_cache(inode, 0);
fs/nfs/nfs42xattr.c
655
if (cache == NULL)
fs/nfs/nfs42xattr.c
658
spin_lock(&cache->listxattr_lock);
fs/nfs/nfs42xattr.c
660
entry = cache->listxattr;
fs/nfs/nfs42xattr.c
676
spin_unlock(&cache->listxattr_lock);
fs/nfs/nfs42xattr.c
678
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
691
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
697
cache = nfs4_xattr_get_cache(inode, 1);
fs/nfs/nfs42xattr.c
698
if (cache == NULL)
fs/nfs/nfs42xattr.c
705
(void)nfs4_xattr_set_listcache(cache, NULL);
fs/nfs/nfs42xattr.c
707
if (!nfs4_xattr_hash_add(cache, entry))
fs/nfs/nfs42xattr.c
711
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
722
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
726
cache = nfs4_xattr_get_cache(inode, 0);
fs/nfs/nfs42xattr.c
727
if (cache == NULL)
fs/nfs/nfs42xattr.c
730
(void)nfs4_xattr_set_listcache(cache, NULL);
fs/nfs/nfs42xattr.c
731
nfs4_xattr_hash_remove(cache, name);
fs/nfs/nfs42xattr.c
733
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
742
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
745
cache = nfs4_xattr_get_cache(inode, 1);
fs/nfs/nfs42xattr.c
746
if (cache == NULL)
fs/nfs/nfs42xattr.c
758
entry->bucket = &cache->buckets[0];
fs/nfs/nfs42xattr.c
760
if (!nfs4_xattr_set_listcache(cache, entry))
fs/nfs/nfs42xattr.c
764
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
809
struct nfs4_xattr_cache *cache = container_of(item,
fs/nfs/nfs42xattr.c
812
if (atomic_long_read(&cache->nent) > 1)
fs/nfs/nfs42xattr.c
820
inode = cache->inode;
fs/nfs/nfs42xattr.c
825
kref_get(&cache->ref);
fs/nfs/nfs42xattr.c
827
cache->inode = NULL;
fs/nfs/nfs42xattr.c
830
list_lru_isolate(lru, &cache->lru);
fs/nfs/nfs42xattr.c
834
list_add_tail(&cache->dispose, dispose);
fs/nfs/nfs42xattr.c
843
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
848
cache = list_first_entry(&dispose, struct nfs4_xattr_cache,
fs/nfs/nfs42xattr.c
850
list_del_init(&cache->dispose);
fs/nfs/nfs42xattr.c
851
nfs4_xattr_discard_cache(cache);
fs/nfs/nfs42xattr.c
852
kref_put(&cache->ref, nfs4_xattr_free_cache_cb);
fs/nfs/nfs42xattr.c
874
struct nfs4_xattr_cache *cache;
fs/nfs/nfs42xattr.c
879
cache = bucket->cache;
fs/nfs/nfs42xattr.c
898
atomic_long_dec(&cache->nent);
fs/nfs/nfs42xattr.c
904
if (!spin_trylock(&cache->listxattr_lock))
fs/nfs/nfs42xattr.c
909
cache->listxattr = NULL;
fs/nfs/nfs42xattr.c
912
spin_unlock(&cache->listxattr_lock);
fs/nfs/nfs42xattr.c
965
struct nfs4_xattr_cache *cache = p;
fs/nfs/nfs42xattr.c
967
spin_lock_init(&cache->listxattr_lock);
fs/nfs/nfs42xattr.c
968
atomic_long_set(&cache->nent, 0);
fs/nfs/nfs42xattr.c
969
nfs4_xattr_hash_init(cache);
fs/nfs/nfs42xattr.c
970
cache->listxattr = NULL;
fs/nfs/nfs42xattr.c
971
INIT_LIST_HEAD(&cache->lru);
fs/nfs/nfs42xattr.c
972
INIT_LIST_HEAD(&cache->dispose);
fs/nfs/nfs4proc.c
2679
struct nfs_access_entry cache;
fs/nfs/nfs4proc.c
2697
nfs_access_set_mask(&cache, opendata->o_res.access_result);
fs/nfs/nfs4proc.c
2698
nfs_access_add_cache(state->inode, &cache, cred);
fs/nfs/nfs4proc.c
2701
if ((mask & ~cache.mask & flags) == 0)
fs/nfsd/trace.h
409
__field(bool, cache)
fs/nfsd/trace.h
416
__entry->cache = !test_bit(CACHE_NEGATIVE, &key->h.flags);
fs/nfsd/trace.h
423
__entry->cache ? "pos" : "neg"
fs/nfsd/trace.h
454
__field(bool, cache)
fs/nfsd/trace.h
459
__entry->cache = !test_bit(CACHE_NEGATIVE, &key->h.flags);
fs/nfsd/trace.h
464
__entry->cache ? "pos" : "neg"
fs/nilfs2/alloc.c
294
struct nilfs_palloc_cache *cache = NILFS_MDT(inode)->mi_palloc_cache;
fs/nilfs2/alloc.c
299
bhp, &cache->prev_desc, &cache->lock);
fs/nilfs2/alloc.c
315
struct nilfs_palloc_cache *cache = NILFS_MDT(inode)->mi_palloc_cache;
fs/nilfs2/alloc.c
320
&cache->prev_bitmap, &cache->lock);
fs/nilfs2/alloc.c
333
struct nilfs_palloc_cache *cache = NILFS_MDT(inode)->mi_palloc_cache;
fs/nilfs2/alloc.c
338
&cache->prev_bitmap, &cache->lock);
fs/nilfs2/alloc.c
353
struct nilfs_palloc_cache *cache = NILFS_MDT(inode)->mi_palloc_cache;
fs/nilfs2/alloc.c
358
&cache->prev_entry, &cache->lock);
fs/nilfs2/alloc.c
370
struct nilfs_palloc_cache *cache = NILFS_MDT(inode)->mi_palloc_cache;
fs/nilfs2/alloc.c
374
&cache->prev_entry, &cache->lock);
fs/nilfs2/alloc.c
934
struct nilfs_palloc_cache *cache)
fs/nilfs2/alloc.c
936
NILFS_MDT(inode)->mi_palloc_cache = cache;
fs/nilfs2/alloc.c
937
spin_lock_init(&cache->lock);
fs/nilfs2/alloc.c
942
struct nilfs_palloc_cache *cache = NILFS_MDT(inode)->mi_palloc_cache;
fs/nilfs2/alloc.c
944
spin_lock(&cache->lock);
fs/nilfs2/alloc.c
945
brelse(cache->prev_desc.bh);
fs/nilfs2/alloc.c
946
brelse(cache->prev_bitmap.bh);
fs/nilfs2/alloc.c
947
brelse(cache->prev_entry.bh);
fs/nilfs2/alloc.c
948
cache->prev_desc.bh = NULL;
fs/nilfs2/alloc.c
949
cache->prev_bitmap.bh = NULL;
fs/nilfs2/alloc.c
950
cache->prev_entry.bh = NULL;
fs/nilfs2/alloc.c
951
spin_unlock(&cache->lock);
fs/nilfs2/alloc.h
95
struct nilfs_palloc_cache *cache);
fs/overlayfs/overlayfs.h
513
void ovl_set_dir_cache(struct inode *inode, struct ovl_dir_cache *cache);
fs/overlayfs/ovl_entry.h
161
struct ovl_dir_cache *cache; /* directory */
fs/overlayfs/readdir.c
1028
if (od->cache) {
fs/overlayfs/readdir.c
287
struct ovl_dir_cache *cache = ovl_dir_cache(inode);
fs/overlayfs/readdir.c
289
if (cache) {
fs/overlayfs/readdir.c
290
ovl_cache_free(&cache->entries);
fs/overlayfs/readdir.c
291
kfree(cache);
fs/overlayfs/readdir.c
297
struct ovl_dir_cache *cache = od->cache;
fs/overlayfs/readdir.c
299
WARN_ON(cache->refcount <= 0);
fs/overlayfs/readdir.c
300
cache->refcount--;
fs/overlayfs/readdir.c
301
if (!cache->refcount) {
fs/overlayfs/readdir.c
302
if (ovl_dir_cache(inode) == cache)
fs/overlayfs/readdir.c
305
ovl_cache_free(&cache->entries);
fs/overlayfs/readdir.c
306
kfree(cache);
fs/overlayfs/readdir.c
404
struct ovl_dir_cache *cache = od->cache;
fs/overlayfs/readdir.c
408
if (cache && ovl_inode_version_get(inode) != cache->version) {
fs/overlayfs/readdir.c
410
od->cache = NULL;
fs/overlayfs/readdir.c
473
list_for_each(p, &od->cache->entries) {
fs/overlayfs/readdir.c
485
struct ovl_dir_cache *cache;
fs/overlayfs/readdir.c
488
cache = ovl_dir_cache(inode);
fs/overlayfs/readdir.c
489
if (cache && ovl_inode_version_get(inode) == cache->version) {
fs/overlayfs/readdir.c
490
WARN_ON(!cache->refcount);
fs/overlayfs/readdir.c
491
cache->refcount++;
fs/overlayfs/readdir.c
492
return cache;
fs/overlayfs/readdir.c
496
cache = kzalloc_obj(struct ovl_dir_cache);
fs/overlayfs/readdir.c
497
if (!cache)
fs/overlayfs/readdir.c
500
cache->refcount = 1;
fs/overlayfs/readdir.c
501
INIT_LIST_HEAD(&cache->entries);
fs/overlayfs/readdir.c
502
cache->root = RB_ROOT;
fs/overlayfs/readdir.c
504
res = ovl_dir_read_merged(dentry, &cache->entries, &cache->root);
fs/overlayfs/readdir.c
506
ovl_cache_free(&cache->entries);
fs/overlayfs/readdir.c
507
kfree(cache);
fs/overlayfs/readdir.c
511
cache->version = ovl_inode_version_get(inode);
fs/overlayfs/readdir.c
512
ovl_set_dir_cache(inode, cache);
fs/overlayfs/readdir.c
514
return cache;
fs/overlayfs/readdir.c
62
struct ovl_dir_cache *cache;
fs/overlayfs/readdir.c
699
struct ovl_dir_cache *cache;
fs/overlayfs/readdir.c
701
cache = ovl_dir_cache(inode);
fs/overlayfs/readdir.c
702
if (cache && ovl_inode_version_get(inode) == cache->version)
fs/overlayfs/readdir.c
703
return cache;
fs/overlayfs/readdir.c
709
cache = kzalloc_obj(struct ovl_dir_cache);
fs/overlayfs/readdir.c
710
if (!cache)
fs/overlayfs/readdir.c
713
res = ovl_dir_read_impure(path, &cache->entries, &cache->root);
fs/overlayfs/readdir.c
715
ovl_cache_free(&cache->entries);
fs/overlayfs/readdir.c
716
kfree(cache);
fs/overlayfs/readdir.c
719
if (list_empty(&cache->entries)) {
fs/overlayfs/readdir.c
730
kfree(cache);
fs/overlayfs/readdir.c
734
cache->version = ovl_inode_version_get(inode);
fs/overlayfs/readdir.c
735
ovl_set_dir_cache(inode, cache);
fs/overlayfs/readdir.c
737
return cache;
fs/overlayfs/readdir.c
742
struct ovl_dir_cache *cache;
fs/overlayfs/readdir.c
761
} else if (rdt->cache) {
fs/overlayfs/readdir.c
764
p = ovl_cache_entry_find(&rdt->cache->root, name, namelen);
fs/overlayfs/readdir.c
825
rdt.cache = ovl_cache_get_impure(&file->f_path);
fs/overlayfs/readdir.c
826
if (IS_ERR(rdt.cache))
fs/overlayfs/readdir.c
827
return PTR_ERR(rdt.cache);
fs/overlayfs/readdir.c
843
if (!od->cache) {
fs/overlayfs/readdir.c
844
struct ovl_dir_cache *cache;
fs/overlayfs/readdir.c
846
cache = ovl_cache_get(dentry);
fs/overlayfs/readdir.c
847
err = PTR_ERR(cache);
fs/overlayfs/readdir.c
848
if (IS_ERR(cache))
fs/overlayfs/readdir.c
851
od->cache = cache;
fs/overlayfs/readdir.c
855
while (od->cursor != &od->cache->entries) {
fs/overlayfs/readdir.c
945
if (od->cache)
fs/overlayfs/super.c
191
oi->cache = NULL;
fs/overlayfs/util.c
442
return inode && S_ISDIR(inode->i_mode) ? OVL_I(inode)->cache : NULL;
fs/overlayfs/util.c
445
void ovl_set_dir_cache(struct inode *inode, struct ovl_dir_cache *cache)
fs/overlayfs/util.c
447
OVL_I(inode)->cache = cache;
fs/resctrl/ctrlmondata.c
1030
if (!r->cache.io_alloc_capable) {
fs/resctrl/ctrlmondata.c
118
u32 supported_bits = BIT_MASK(r->cache.cbm_len) - 1;
fs/resctrl/ctrlmondata.c
119
unsigned int cbm_len = r->cache.cbm_len;
fs/resctrl/ctrlmondata.c
129
if ((r->cache.min_cbm_bits > 0 && val == 0) || val > supported_bits) {
fs/resctrl/ctrlmondata.c
138
if (!r->cache.arch_has_sparse_bitmasks &&
fs/resctrl/ctrlmondata.c
144
if ((zero_bit - first_bit) < r->cache.min_cbm_bits) {
fs/resctrl/ctrlmondata.c
146
r->cache.min_cbm_bits);
fs/resctrl/ctrlmondata.c
776
if (r->cache.io_alloc_capable) {
fs/resctrl/ctrlmondata.c
865
if (!r->cache.io_alloc_capable) {
fs/resctrl/ctrlmondata.c
927
if (!r->cache.io_alloc_capable) {
fs/resctrl/pseudo_lock.c
620
cbm_len = d->plr->s->res->cache.cbm_len;
fs/resctrl/rdtgroup.c
1019
seq_printf(seq, "%u\n", r->cache.min_cbm_bits);
fs/resctrl/rdtgroup.c
1029
seq_printf(seq, "%x\n", r->cache.shareable_bits);
fs/resctrl/rdtgroup.c
1069
hw_shareable = r->cache.shareable_bits;
fs/resctrl/rdtgroup.c
1119
for (i = r->cache.cbm_len - 1; i >= 0; i--) {
fs/resctrl/rdtgroup.c
1292
seq_printf(seq, "%u\n", r->cache.arch_has_sparse_bitmasks);
fs/resctrl/rdtgroup.c
1328
ctrl_b = r->cache.shareable_bits;
fs/resctrl/rdtgroup.c
1329
if (bitmap_intersects(&cbm, &ctrl_b, r->cache.cbm_len))
fs/resctrl/rdtgroup.c
1339
if (bitmap_intersects(&cbm, &ctrl_b, r->cache.cbm_len)) {
fs/resctrl/rdtgroup.c
1535
num_b = bitmap_weight(&cbm, r->cache.cbm_len);
fs/resctrl/rdtgroup.c
1538
size = ci->size / r->cache.cbm_len * num_b;
fs/resctrl/rdtgroup.c
2201
if (r->cache.io_alloc_capable) {
fs/resctrl/rdtgroup.c
3508
unsigned int cbm_len = r->cache.cbm_len;
fs/resctrl/rdtgroup.c
3512
if (!_val || r->cache.arch_has_sparse_bitmasks)
fs/resctrl/rdtgroup.c
3545
cfg->new_ctrl = r->cache.shareable_bits;
fs/resctrl/rdtgroup.c
3546
used_b = r->cache.shareable_bits;
fs/resctrl/rdtgroup.c
3576
unused_b = used_b ^ (BIT_MASK(r->cache.cbm_len) - 1);
fs/resctrl/rdtgroup.c
3577
unused_b &= BIT_MASK(r->cache.cbm_len) - 1;
fs/resctrl/rdtgroup.c
3589
if (bitmap_weight(&tmp_cbm, r->cache.cbm_len) < r->cache.min_cbm_bits) {
fs/smb/client/fscache.c
140
cifsi->netfs.cache =
fs/smb/client/fscache.c
145
if (cifsi->netfs.cache)
fs/smb/client/fscache.c
170
cifsi->netfs.cache = NULL;
fs/smb/client/smbdirect.c
1960
kmem_cache_destroy(sc->send_io.mem.cache);
fs/smb/client/smbdirect.c
1963
kmem_cache_destroy(sc->recv_io.mem.cache);
fs/smb/client/smbdirect.c
2013
kmem_cache_destroy(sc->recv_io.mem.cache);
fs/smb/client/smbdirect.c
2015
kmem_cache_destroy(sc->send_io.mem.cache);
fs/smb/client/smbdirect.c
2029
sc->send_io.mem.cache =
fs/smb/client/smbdirect.c
2035
if (!sc->send_io.mem.cache)
fs/smb/client/smbdirect.c
2040
mempool_free_slab, sc->send_io.mem.cache);
fs/smb/client/smbdirect.c
2052
sc->recv_io.mem.cache =
fs/smb/client/smbdirect.c
2056
if (!sc->recv_io.mem.cache)
fs/smb/client/smbdirect.c
2061
mempool_free_slab, sc->recv_io.mem.cache);
fs/smb/client/smbdirect.c
2076
kmem_cache_destroy(sc->recv_io.mem.cache);
fs/smb/client/smbdirect.c
2080
kmem_cache_destroy(sc->send_io.mem.cache);
fs/smb/common/smbdirect/smbdirect_socket.h
161
struct kmem_cache *cache;
fs/smb/common/smbdirect/smbdirect_socket.h
226
struct kmem_cache *cache;
fs/smb/server/transport_rdma.c
2243
kmem_cache_destroy(sc->recv_io.mem.cache);
fs/smb/server/transport_rdma.c
2244
sc->recv_io.mem.cache = NULL;
fs/smb/server/transport_rdma.c
2249
kmem_cache_destroy(sc->send_io.mem.cache);
fs/smb/server/transport_rdma.c
2250
sc->send_io.mem.cache = NULL;
fs/smb/server/transport_rdma.c
2261
sc->send_io.mem.cache = kmem_cache_create(name,
fs/smb/server/transport_rdma.c
2265
if (!sc->send_io.mem.cache)
fs/smb/server/transport_rdma.c
2270
sc->send_io.mem.cache);
fs/smb/server/transport_rdma.c
2275
sc->recv_io.mem.cache = kmem_cache_create(name,
fs/smb/server/transport_rdma.c
2279
if (!sc->recv_io.mem.cache)
fs/smb/server/transport_rdma.c
2284
mempool_free_slab, sc->recv_io.mem.cache);
fs/squashfs/cache.c
102
cache->unused--;
fs/squashfs/cache.c
108
spin_unlock(&cache->lock);
fs/squashfs/cache.c
113
spin_lock(&cache->lock);
fs/squashfs/cache.c
126
spin_unlock(&cache->lock);
fs/squashfs/cache.c
129
spin_unlock(&cache->lock);
fs/squashfs/cache.c
140
entry = &cache->entry[i];
fs/squashfs/cache.c
142
cache->unused--;
fs/squashfs/cache.c
151
spin_unlock(&cache->lock);
fs/squashfs/cache.c
154
spin_unlock(&cache->lock);
fs/squashfs/cache.c
161
cache->name, i, entry->block, entry->refcount, entry->error);
fs/squashfs/cache.c
164
ERROR("Unable to read %s cache entry [%llx]\n", cache->name,
fs/squashfs/cache.c
175
struct squashfs_cache *cache = entry->cache;
fs/squashfs/cache.c
177
spin_lock(&cache->lock);
fs/squashfs/cache.c
180
cache->unused++;
fs/squashfs/cache.c
185
if (cache->num_waiters) {
fs/squashfs/cache.c
186
spin_unlock(&cache->lock);
fs/squashfs/cache.c
187
wake_up(&cache->wait_queue);
fs/squashfs/cache.c
191
spin_unlock(&cache->lock);
fs/squashfs/cache.c
197
void squashfs_cache_delete(struct squashfs_cache *cache)
fs/squashfs/cache.c
201
if (IS_ERR(cache) || cache == NULL)
fs/squashfs/cache.c
204
for (i = 0; i < cache->entries; i++) {
fs/squashfs/cache.c
205
if (cache->entry[i].data) {
fs/squashfs/cache.c
206
for (j = 0; j < cache->pages; j++)
fs/squashfs/cache.c
207
kfree(cache->entry[i].data[j]);
fs/squashfs/cache.c
208
kfree(cache->entry[i].data);
fs/squashfs/cache.c
210
kfree(cache->entry[i].actor);
fs/squashfs/cache.c
213
kfree(cache->entry);
fs/squashfs/cache.c
214
kfree(cache);
fs/squashfs/cache.c
227
struct squashfs_cache *cache;
fs/squashfs/cache.c
232
cache = kzalloc_obj(*cache);
fs/squashfs/cache.c
233
if (cache == NULL) {
fs/squashfs/cache.c
238
cache->entry = kzalloc_objs(*(cache->entry), entries);
fs/squashfs/cache.c
239
if (cache->entry == NULL) {
fs/squashfs/cache.c
244
cache->curr_blk = 0;
fs/squashfs/cache.c
245
cache->next_blk = 0;
fs/squashfs/cache.c
246
cache->unused = entries;
fs/squashfs/cache.c
247
cache->entries = entries;
fs/squashfs/cache.c
248
cache->block_size = block_size;
fs/squashfs/cache.c
249
cache->pages = block_size >> PAGE_SHIFT;
fs/squashfs/cache.c
250
cache->pages = cache->pages ? cache->pages : 1;
fs/squashfs/cache.c
251
cache->name = name;
fs/squashfs/cache.c
252
cache->num_waiters = 0;
fs/squashfs/cache.c
253
spin_lock_init(&cache->lock);
fs/squashfs/cache.c
254
init_waitqueue_head(&cache->wait_queue);
fs/squashfs/cache.c
257
struct squashfs_cache_entry *entry = &cache->entry[i];
fs/squashfs/cache.c
259
init_waitqueue_head(&cache->entry[i].wait_queue);
fs/squashfs/cache.c
260
entry->cache = cache;
fs/squashfs/cache.c
262
entry->data = kcalloc(cache->pages, sizeof(void *), GFP_KERNEL);
fs/squashfs/cache.c
268
for (j = 0; j < cache->pages; j++) {
fs/squashfs/cache.c
277
cache->pages, 0);
fs/squashfs/cache.c
284
return cache;
fs/squashfs/cache.c
287
squashfs_cache_delete(cache);
fs/squashfs/cache.c
53
struct squashfs_cache *cache, u64 block, int length)
fs/squashfs/cache.c
58
spin_lock(&cache->lock);
fs/squashfs/cache.c
61
for (i = cache->curr_blk, n = 0; n < cache->entries; n++) {
fs/squashfs/cache.c
62
if (cache->entry[i].block == block) {
fs/squashfs/cache.c
63
cache->curr_blk = i;
fs/squashfs/cache.c
66
i = (i + 1) % cache->entries;
fs/squashfs/cache.c
69
if (n == cache->entries) {
fs/squashfs/cache.c
74
if (cache->unused == 0) {
fs/squashfs/cache.c
75
cache->num_waiters++;
fs/squashfs/cache.c
76
spin_unlock(&cache->lock);
fs/squashfs/cache.c
77
wait_event(cache->wait_queue, cache->unused);
fs/squashfs/cache.c
78
spin_lock(&cache->lock);
fs/squashfs/cache.c
79
cache->num_waiters--;
fs/squashfs/cache.c
88
i = cache->next_blk;
fs/squashfs/cache.c
89
for (n = 0; n < cache->entries; n++) {
fs/squashfs/cache.c
90
if (cache->entry[i].refcount == 0)
fs/squashfs/cache.c
92
i = (i + 1) % cache->entries;
fs/squashfs/cache.c
95
cache->next_blk = (i + 1) % cache->entries;
fs/squashfs/cache.c
96
entry = &cache->entry[i];
fs/squashfs/squashfs_fs_sb.h
38
struct squashfs_cache *cache;
fs/squashfs/super.c
339
struct inode *cache = new_inode(sb);
fs/squashfs/super.c
341
if (cache == NULL) {
fs/squashfs/super.c
346
set_nlink(cache, 1);
fs/squashfs/super.c
347
cache->i_size = OFFSET_MAX;
fs/squashfs/super.c
348
mapping_set_gfp_mask(cache->i_mapping, GFP_NOFS);
fs/squashfs/super.c
350
msblk->cache_mapping = cache->i_mapping;
fs/xfs/libxfs/xfs_btree.h
675
struct kmem_cache *cache)
fs/xfs/libxfs/xfs_btree.h
683
cur = kmem_cache_zalloc(cache,
fs/xfs/libxfs/xfs_btree.h
689
cur->bc_cache = cache;
include/acpi/acpiosxf.h
207
acpi_status acpi_os_delete_cache(acpi_cache_t * cache);
include/acpi/acpiosxf.h
211
acpi_status acpi_os_purge_cache(acpi_cache_t * cache);
include/acpi/acpiosxf.h
215
void *acpi_os_acquire_object(acpi_cache_t * cache);
include/acpi/acpiosxf.h
219
acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object);
include/drm/drm_pagemap.h
170
struct drm_pagemap_cache *cache;
include/drm/drm_pagemap_util.h
60
int drm_pagemap_cache_lock_lookup(struct drm_pagemap_cache *cache);
include/drm/drm_pagemap_util.h
62
void drm_pagemap_cache_unlock_lookup(struct drm_pagemap_cache *cache);
include/drm/drm_pagemap_util.h
68
struct drm_pagemap *drm_pagemap_get_from_cache(struct drm_pagemap_cache *cache);
include/drm/drm_pagemap_util.h
70
void drm_pagemap_cache_set_pagemap(struct drm_pagemap_cache *cache, struct drm_pagemap *dpagemap);
include/drm/drm_pagemap_util.h
72
struct drm_pagemap *drm_pagemap_get_from_cache_if_active(struct drm_pagemap_cache *cache);
include/drm/ttm/ttm_resource.h
376
} cache;
include/linux/bch.h
52
int *cache;
include/linux/bio.h
679
struct bio_alloc_cache __percpu *cache;
include/linux/bpf_local_storage.h
140
struct bpf_local_storage_cache *cache,
include/linux/bpf_local_storage.h
156
sdata = rcu_dereference_check(local_storage->cache[smap->cache_idx],
include/linux/bpf_local_storage.h
177
struct bpf_local_storage_cache *cache);
include/linux/bpf_local_storage.h
98
struct bpf_local_storage_data __rcu *cache[BPF_LOCAL_STORAGE_CACHE_SIZE];
include/linux/bpf_mem_alloc.h
13
struct bpf_mem_cache __percpu *cache;
include/linux/firmware/cirrus/cs_dsp.h
299
u32 cache;
include/linux/firmware/cirrus/cs_dsp.h
99
void *cache;
include/linux/fscache-cache.h
161
static inline void fscache_count_object(struct fscache_cache *cache)
include/linux/fscache-cache.h
163
atomic_inc(&cache->object_count);
include/linux/fscache-cache.h
173
static inline void fscache_uncount_object(struct fscache_cache *cache)
include/linux/fscache-cache.h
175
if (atomic_dec_and_test(&cache->object_count))
include/linux/fscache-cache.h
186
static inline void fscache_wait_for_objects(struct fscache_cache *cache)
include/linux/fscache-cache.h
189
atomic_read(&cache->object_count) == 0);
include/linux/fscache-cache.h
91
extern void fscache_relinquish_cache(struct fscache_cache *cache);
include/linux/fscache-cache.h
92
extern int fscache_add_cache(struct fscache_cache *cache,
include/linux/fscache-cache.h
95
extern void fscache_withdraw_cache(struct fscache_cache *cache);
include/linux/fscache-cache.h
99
extern void fscache_io_error(struct fscache_cache *cache);
include/linux/fscache.h
82
struct fscache_cache *cache; /* The cache in which this resides */
include/linux/host1x.h
115
struct host1x_bo_cache cache;
include/linux/host1x.h
137
struct host1x_bo_cache *cache;
include/linux/host1x.h
182
struct host1x_bo_cache *cache);
include/linux/host1x.h
51
static inline void host1x_bo_cache_init(struct host1x_bo_cache *cache)
include/linux/host1x.h
53
INIT_LIST_HEAD(&cache->mappings);
include/linux/host1x.h
54
mutex_init(&cache->lock);
include/linux/host1x.h
57
static inline void host1x_bo_cache_destroy(struct host1x_bo_cache *cache)
include/linux/host1x.h
60
mutex_destroy(&cache->lock);
include/linux/kasan.h
137
void __kasan_unpoison_new_object(struct kmem_cache *cache, void *object);
include/linux/kasan.h
148
static __always_inline void kasan_unpoison_new_object(struct kmem_cache *cache,
include/linux/kasan.h
152
__kasan_unpoison_new_object(cache, object);
include/linux/kasan.h
155
void __kasan_poison_new_object(struct kmem_cache *cache, void *object);
include/linux/kasan.h
165
static __always_inline void kasan_poison_new_object(struct kmem_cache *cache,
include/linux/kasan.h
169
__kasan_poison_new_object(cache, object);
include/linux/kasan.h
172
void * __must_check __kasan_init_slab_obj(struct kmem_cache *cache,
include/linux/kasan.h
175
struct kmem_cache *cache, const void *object)
include/linux/kasan.h
178
return __kasan_init_slab_obj(cache, object);
include/linux/kasan.h
417
static inline void kasan_unpoison_new_object(struct kmem_cache *cache,
include/linux/kasan.h
419
static inline void kasan_poison_new_object(struct kmem_cache *cache,
include/linux/kasan.h
421
static inline void *kasan_init_slab_obj(struct kmem_cache *cache,
include/linux/kasan.h
491
size_t kasan_metadata_size(struct kmem_cache *cache, bool in_object);
include/linux/kasan.h
492
void kasan_cache_create(struct kmem_cache *cache, unsigned int *size,
include/linux/kasan.h
495
void kasan_cache_shrink(struct kmem_cache *cache);
include/linux/kasan.h
496
void kasan_cache_shutdown(struct kmem_cache *cache);
include/linux/kasan.h
502
static inline size_t kasan_metadata_size(struct kmem_cache *cache,
include/linux/kasan.h
508
static inline void kasan_cache_create(struct kmem_cache *cache,
include/linux/kasan.h
512
static inline void kasan_cache_shrink(struct kmem_cache *cache) {}
include/linux/kasan.h
513
static inline void kasan_cache_shutdown(struct kmem_cache *cache) {}
include/linux/lru_cache.h
238
extern struct lru_cache *lc_create(const char *name, struct kmem_cache *cache,
include/linux/mbcache.h
41
void mb_cache_destroy(struct mb_cache *cache);
include/linux/mbcache.h
43
int mb_cache_entry_create(struct mb_cache *cache, gfp_t mask, u32 key,
include/linux/mbcache.h
45
void __mb_cache_entry_free(struct mb_cache *cache,
include/linux/mbcache.h
48
static inline void mb_cache_entry_put(struct mb_cache *cache,
include/linux/mbcache.h
58
__mb_cache_entry_free(cache, entry);
include/linux/mbcache.h
61
struct mb_cache_entry *mb_cache_entry_delete_or_get(struct mb_cache *cache,
include/linux/mbcache.h
63
struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *cache, u32 key,
include/linux/mbcache.h
65
struct mb_cache_entry *mb_cache_entry_find_first(struct mb_cache *cache,
include/linux/mbcache.h
67
struct mb_cache_entry *mb_cache_entry_find_next(struct mb_cache *cache,
include/linux/mbcache.h
69
void mb_cache_entry_touch(struct mb_cache *cache,
include/linux/mlx5/driver.h
335
struct cmd_msg_cache cache[MLX5_NUM_COMMAND_CACHES];
include/linux/mroute_base.h
392
struct list_head *cache;
include/linux/mroute_base.h
423
it->cache = NULL;
include/linux/mroute_base.h
436
if (it->cache == &mrt->mfc_unres_queue)
include/linux/mroute_base.h
438
else if (it->cache == &mrt->mfc_cache_list)
include/linux/mtd/nand.h
1132
return !!nand->bbt.cache;
include/linux/mtd/nand.h
209
unsigned long *cache;
include/linux/netdevice.h
317
int (*cache)(const struct neighbour *neigh, struct hh_cache *hh, __be16 type);
include/linux/netfs.h
496
ctx->cache = NULL;
include/linux/netfs.h
532
return ctx->cache;
include/linux/netfs.h
62
struct fscache_cookie *cache;
include/linux/platform_data/mlxreg.h
178
u32 cache;
include/linux/power/bq27xxx_battery.h
62
struct bq27xxx_reg_cache cache;
include/linux/resctrl.h
327
struct resctrl_cache cache;
include/linux/resctrl.h
404
return BIT_MASK(r->cache.cbm_len) - 1;
include/linux/syscalls.h
720
asmlinkage long sys_getcpu(unsigned __user *cpu, unsigned __user *node, void __user *cache);
include/linux/unwind_deferred.h
50
if (unlikely(info->cache)) {
include/linux/unwind_deferred.h
51
info->cache->nr_entries = 0;
include/linux/unwind_deferred.h
52
info->cache->unwind_completed = 0;
include/linux/unwind_deferred_types.h
37
struct unwind_cache *cache;
include/net/9p/9p.h
557
struct kmem_cache *cache;
include/net/9p/client.h
205
unsigned int cache;
include/net/dst_cache.h
12
struct dst_cache_pcpu __percpu *cache;
include/net/dst_metadata.h
171
if (new_md->u.tun_info.dst_cache.cache) {
include/net/netfilter/nf_conntrack_ecache.h
119
if (local64_read(&e->timestamp) && READ_ONCE(e->cache) == 0)
include/net/netfilter/nf_conntrack_ecache.h
123
set_bit(event, &e->cache);
include/net/netfilter/nf_conntrack_ecache.h
23
unsigned long cache; /* bitops want long */
include/net/netlabel.h
197
struct netlbl_lsm_cache *cache;
include/net/netlabel.h
280
struct netlbl_lsm_cache *cache;
include/net/netlabel.h
282
cache = kzalloc_noprof(sizeof(*cache), flags);
include/net/netlabel.h
283
if (cache)
include/net/netlabel.h
284
refcount_set(&cache->refcount, 1);
include/net/netlabel.h
285
return cache;
include/net/netlabel.h
298
static inline void netlbl_secattr_cache_free(struct netlbl_lsm_cache *cache)
include/net/netlabel.h
300
if (!refcount_dec_and_test(&cache->refcount))
include/net/netlabel.h
303
if (cache->free)
include/net/netlabel.h
304
cache->free(cache->data);
include/net/netlabel.h
305
kfree(cache);
include/net/netlabel.h
369
netlbl_secattr_cache_free(secattr->cache);
include/net/page_pool/memory_provider.h
48
pool->alloc.cache[pool->alloc.count++] = netmem;
include/net/page_pool/types.h
58
netmem_ref cache[PP_ALLOC_CACHE_SIZE];
include/rdma/ib_verbs.h
2259
struct ib_port_cache cache;
include/soc/tegra/tegra-cbb.h
38
void tegra_cbb_print_cache(struct seq_file *file, u32 cache);
include/trace/events/bcache.h
429
TP_PROTO(struct cache *ca, size_t bucket),
include/trace/events/bcache.h
450
TP_PROTO(struct cache *ca, size_t bucket),
include/trace/events/bcache.h
468
TP_PROTO(struct cache *ca, unsigned reserve),
include/trace/events/fscache.h
219
__field(unsigned int, cache )
include/trace/events/fscache.h
225
__entry->cache = cache_debug_id;
include/trace/events/fscache.h
231
__entry->cache,
include/trace/events/fscache.h
328
__field(unsigned int, cache )
include/trace/events/fscache.h
335
__entry->cache = cache_debug_id;
include/trace/events/fscache.h
342
__entry->cache,
include/video/sticore.h
63
u32 cache : 1; /* map to data cache */
include/xen/grant_table.h
227
void gnttab_page_cache_init(struct gnttab_page_cache *cache);
include/xen/grant_table.h
228
int gnttab_page_cache_get(struct gnttab_page_cache *cache, struct page **page);
include/xen/grant_table.h
229
void gnttab_page_cache_put(struct gnttab_page_cache *cache, struct page **page,
include/xen/grant_table.h
231
void gnttab_page_cache_shrink(struct gnttab_page_cache *cache,
io_uring/alloc_cache.c
10
if (!cache->entries)
io_uring/alloc_cache.c
13
while ((entry = io_alloc_cache_get(cache)) != NULL)
io_uring/alloc_cache.c
16
kvfree(cache->entries);
io_uring/alloc_cache.c
17
cache->entries = NULL;
io_uring/alloc_cache.c
21
bool io_alloc_cache_init(struct io_alloc_cache *cache,
io_uring/alloc_cache.c
25
cache->entries = kvmalloc_array(max_nr, sizeof(void *), GFP_KERNEL);
io_uring/alloc_cache.c
26
if (!cache->entries)
io_uring/alloc_cache.c
29
cache->nr_cached = 0;
io_uring/alloc_cache.c
30
cache->max_cached = max_nr;
io_uring/alloc_cache.c
31
cache->elem_size = size;
io_uring/alloc_cache.c
32
cache->init_clear = init_bytes;
io_uring/alloc_cache.c
36
void *io_cache_alloc_new(struct io_alloc_cache *cache, gfp_t gfp)
io_uring/alloc_cache.c
40
obj = kmalloc(cache->elem_size, gfp);
io_uring/alloc_cache.c
41
if (obj && cache->init_clear)
io_uring/alloc_cache.c
42
memset(obj, 0, cache->init_clear);
io_uring/alloc_cache.c
5
void io_alloc_cache_free(struct io_alloc_cache *cache,
io_uring/alloc_cache.h
13
void io_alloc_cache_free(struct io_alloc_cache *cache,
io_uring/alloc_cache.h
15
bool io_alloc_cache_init(struct io_alloc_cache *cache,
io_uring/alloc_cache.h
19
void *io_cache_alloc_new(struct io_alloc_cache *cache, gfp_t gfp);
io_uring/alloc_cache.h
21
static inline bool io_alloc_cache_put(struct io_alloc_cache *cache,
io_uring/alloc_cache.h
24
if (cache->nr_cached < cache->max_cached) {
io_uring/alloc_cache.h
27
cache->entries[cache->nr_cached++] = entry;
io_uring/alloc_cache.h
33
static inline void *io_alloc_cache_get(struct io_alloc_cache *cache)
io_uring/alloc_cache.h
35
if (cache->nr_cached) {
io_uring/alloc_cache.h
36
void *entry = cache->entries[--cache->nr_cached];
io_uring/alloc_cache.h
44
kasan_mempool_unpoison_object(entry, cache->elem_size);
io_uring/alloc_cache.h
45
if (cache->init_clear)
io_uring/alloc_cache.h
46
memset(entry, 0, cache->init_clear);
io_uring/alloc_cache.h
54
static inline void *io_cache_alloc(struct io_alloc_cache *cache, gfp_t gfp)
io_uring/alloc_cache.h
58
obj = io_alloc_cache_get(cache);
io_uring/alloc_cache.h
61
return io_cache_alloc_new(cache, gfp);
io_uring/alloc_cache.h
64
static inline void io_cache_free(struct io_alloc_cache *cache, void *obj)
io_uring/alloc_cache.h
66
if (!io_alloc_cache_put(cache, obj))
io_uring/io_uring.h
350
static inline void *io_uring_alloc_async_data(struct io_alloc_cache *cache,
io_uring/io_uring.h
353
if (cache) {
io_uring/io_uring.h
354
req->async_data = io_cache_alloc(cache, GFP_KERNEL);
io_uring/zcrx.c
1092
netmem_ref *netmems = pp->alloc.cache;
kernel/bpf/bpf_local_storage.c
271
if (rcu_access_pointer(local_storage->cache[smap->cache_idx]) ==
kernel/bpf/bpf_local_storage.c
273
RCU_INIT_POINTER(local_storage->cache[smap->cache_idx], NULL);
kernel/bpf/bpf_local_storage.c
535
rcu_assign_pointer(local_storage->cache[smap->cache_idx], SDATA(selem));
kernel/bpf/bpf_local_storage.c
756
static u16 bpf_local_storage_cache_idx_get(struct bpf_local_storage_cache *cache)
kernel/bpf/bpf_local_storage.c
761
spin_lock(&cache->idx_lock);
kernel/bpf/bpf_local_storage.c
764
if (cache->idx_usage_counts[i] < min_usage) {
kernel/bpf/bpf_local_storage.c
765
min_usage = cache->idx_usage_counts[i];
kernel/bpf/bpf_local_storage.c
773
cache->idx_usage_counts[res]++;
kernel/bpf/bpf_local_storage.c
775
spin_unlock(&cache->idx_lock);
kernel/bpf/bpf_local_storage.c
780
static void bpf_local_storage_cache_idx_free(struct bpf_local_storage_cache *cache,
kernel/bpf/bpf_local_storage.c
783
spin_lock(&cache->idx_lock);
kernel/bpf/bpf_local_storage.c
784
cache->idx_usage_counts[idx]--;
kernel/bpf/bpf_local_storage.c
785
spin_unlock(&cache->idx_lock);
kernel/bpf/bpf_local_storage.c
860
struct bpf_local_storage_cache *cache,
kernel/bpf/bpf_local_storage.c
899
smap->cache_idx = bpf_local_storage_cache_idx_get(cache);
kernel/bpf/bpf_local_storage.c
909
struct bpf_local_storage_cache *cache)
kernel/bpf/bpf_local_storage.c
917
bpf_local_storage_cache_idx_free(cache, smap->cache_idx);
kernel/bpf/btf.c
9186
struct bpf_cand_cache **cache,
kernel/bpf/btf.c
9193
cc = cache[i];
kernel/bpf/btf.c
9223
struct bpf_cand_cache **cache,
kernel/bpf/btf.c
9226
struct bpf_cand_cache *cc = cache[hash_cands(cands) % cache_size];
kernel/bpf/btf.c
9240
struct bpf_cand_cache **cache,
kernel/bpf/btf.c
9243
struct bpf_cand_cache **cc = &cache[hash_cands(cands) % cache_size], *new_cands;
kernel/bpf/btf.c
9268
static void __purge_cand_cache(struct btf *btf, struct bpf_cand_cache **cache,
kernel/bpf/btf.c
9275
cc = cache[i];
kernel/bpf/btf.c
9284
cache[i] = NULL;
kernel/bpf/btf.c
9293
cache[i] = NULL;
kernel/bpf/memalloc.c
1035
if (ma->cache) {
kernel/bpf/memalloc.c
1037
c = per_cpu_ptr(ma->cache, cpu);
kernel/bpf/memalloc.c
1046
c = &cc->cache[i];
kernel/bpf/memalloc.c
125
struct bpf_mem_cache cache[NUM_CACHES];
kernel/bpf/memalloc.c
552
ma->cache = pc;
kernel/bpf/memalloc.c
566
c = &cc->cache[i];
kernel/bpf/memalloc.c
615
c = &cc->cache[i];
kernel/bpf/memalloc.c
668
if (ma->cache) {
kernel/bpf/memalloc.c
670
c = per_cpu_ptr(ma->cache, cpu);
kernel/bpf/memalloc.c
678
c = &cc->cache[i];
kernel/bpf/memalloc.c
691
free_percpu(ma->cache);
kernel/bpf/memalloc.c
693
ma->cache = NULL;
kernel/bpf/memalloc.c
755
if (ma->cache) {
kernel/bpf/memalloc.c
758
c = per_cpu_ptr(ma->cache, cpu);
kernel/bpf/memalloc.c
773
c = &cc->cache[i];
kernel/bpf/memalloc.c
910
ret = unit_alloc(this_cpu_ptr(ma->caches)->cache + idx);
kernel/bpf/memalloc.c
927
unit_free(this_cpu_ptr(ma->caches)->cache + idx, ptr);
kernel/bpf/memalloc.c
943
unit_free_rcu(this_cpu_ptr(ma->caches)->cache + idx, ptr);
kernel/bpf/memalloc.c
950
ret = unit_alloc(this_cpu_ptr(ma->cache));
kernel/bpf/memalloc.c
959
unit_free(this_cpu_ptr(ma->cache), ptr);
kernel/bpf/memalloc.c
967
unit_free_rcu(this_cpu_ptr(ma->cache), ptr);
kernel/bpf/memalloc.c
997
c = this_cpu_ptr(ma->cache);
kernel/kprobes.c
189
kip->cache = c;
kernel/kprobes.c
220
kip->cache->sym);
kernel/kprobes.c
223
kip->cache->free(kip->insns);
kernel/kprobes.c
95
struct kprobe_insn_cache *cache;
kernel/scs.c
100
cache[i] = NULL;
kernel/scs.c
96
void **cache = per_cpu_ptr(scs_cache, cpu);
kernel/scs.c
99
vfree(cache[i]);
kernel/seccomp.c
229
struct action_cache cache;
kernel/seccomp.c
2557
f->cache.allow_native,
kernel/seccomp.c
2562
f->cache.allow_compat,
kernel/seccomp.c
371
const struct action_cache *cache = &sfilter->cache;
kernel/seccomp.c
375
return seccomp_cache_check_allow_bitmap(cache->allow_native,
kernel/seccomp.c
380
return seccomp_cache_check_allow_bitmap(cache->allow_native,
kernel/seccomp.c
384
return seccomp_cache_check_allow_bitmap(cache->allow_compat,
kernel/seccomp.c
891
struct action_cache *cache = &sfilter->cache;
kernel/seccomp.c
893
sfilter->prev ? &sfilter->prev->cache : NULL;
kernel/seccomp.c
895
seccomp_cache_prepare_bitmap(sfilter, cache->allow_native,
kernel/seccomp.c
901
seccomp_cache_prepare_bitmap(sfilter, cache->allow_compat,
kernel/time/posix-timers.c
50
struct kmem_cache *cache;
kernel/time/posix-timers.c
55
#define posix_timers_cache (__timer_data.cache)
kernel/unwind/deferred.c
114
struct unwind_cache *cache;
kernel/unwind/deferred.c
122
if (!info->cache) {
kernel/unwind/deferred.c
123
info->cache = kzalloc_flex(*cache, entries, UNWIND_MAX_ENTRIES);
kernel/unwind/deferred.c
124
if (!info->cache)
kernel/unwind/deferred.c
128
cache = info->cache;
kernel/unwind/deferred.c
129
trace->entries = cache->entries;
kernel/unwind/deferred.c
130
trace->nr = cache->nr_entries;
kernel/unwind/deferred.c
140
cache->nr_entries = trace->nr;
kernel/unwind/deferred.c
171
if (info->cache)
kernel/unwind/deferred.c
172
bits &= ~(info->cache->unwind_completed);
kernel/unwind/deferred.c
181
if (info->cache)
kernel/unwind/deferred.c
182
info->cache->unwind_completed |= BIT(work->bit);
kernel/unwind/deferred.c
327
if (t->unwind_info.cache)
kernel/unwind/deferred.c
328
clear_bit(bit, &t->unwind_info.cache->unwind_completed);
kernel/unwind/deferred.c
363
kfree(info->cache);
lib/bch.c
1339
bch->cache = bch_alloc(2*t*sizeof(*bch->cache), &err);
lib/bch.c
1389
kfree(bch->cache);
lib/bch.c
754
rep = bch->cache;
lib/bch.c
834
gf_poly_logrep(bch, f, bch->cache);
lib/bch.c
849
gf_poly_mod(bch, z, f, bch->cache);
lib/bch.c
945
gf_poly_logrep(bch, p, bch->cache);
lib/bch.c
946
bch->cache[p->deg] = 0;
lib/bch.c
952
m = bch->cache[j];
lib/debugobjects.c
1447
static bool __init debug_objects_replace_static_objects(struct kmem_cache *cache)
lib/debugobjects.c
1456
if (!kmem_alloc_batch(&objects, cache, GFP_KERNEL))
lib/debugobjects.c
1481
kmem_cache_free(cache, obj);
lib/debugobjects.c
1494
struct kmem_cache *cache;
lib/debugobjects.c
1503
cache = kmem_cache_create("debug_objects_cache", sizeof (struct debug_obj), 0,
lib/debugobjects.c
1506
if (!cache || !debug_objects_replace_static_objects(cache)) {
lib/debugobjects.c
1522
obj_cache = cache;
lib/debugobjects.c
365
static bool kmem_alloc_batch(struct hlist_head *head, struct kmem_cache *cache, gfp_t gfp)
lib/debugobjects.c
371
obj = kmem_cache_zalloc(cache, gfp);
lib/lru_cache.c
118
lc->lc_cache = cache;
lib/lru_cache.c
124
void *p = kmem_cache_alloc(cache, GFP_KERNEL);
lib/lru_cache.c
141
kmem_cache_free(cache, p - e_off);
lib/lru_cache.c
77
struct lru_cache *lc_create(const char *name, struct kmem_cache *cache,
lib/lru_cache.c
85
unsigned cache_obj_size = kmem_cache_size(cache);
lib/zstd/compress/zstd_lazy.c
866
U32 ZSTD_row_nextCachedHash(U32* cache, U32 const* hashTable,
lib/zstd/compress/zstd_lazy.c
875
{ U32 const hash = cache[idx & ZSTD_ROW_HASH_CACHE_MASK];
lib/zstd/compress/zstd_lazy.c
876
cache[idx & ZSTD_ROW_HASH_CACHE_MASK] = newHash;
mm/kasan/common.c
166
void __kasan_unpoison_new_object(struct kmem_cache *cache, void *object)
mm/kasan/common.c
168
kasan_unpoison(object, cache->object_size, false);
mm/kasan/common.c
171
void __kasan_poison_new_object(struct kmem_cache *cache, void *object)
mm/kasan/common.c
173
kasan_poison(object, round_up(cache->object_size, KASAN_GRANULE_SIZE),
mm/kasan/common.c
187
static inline u8 assign_tag(struct kmem_cache *cache,
mm/kasan/common.c
197
if (!cache->ctor && !(cache->flags & SLAB_TYPESAFE_BY_RCU))
mm/kasan/common.c
208
void * __must_check __kasan_init_slab_obj(struct kmem_cache *cache,
mm/kasan/common.c
213
kasan_init_object_meta(cache, object);
mm/kasan/common.c
216
object = set_tag(object, assign_tag(cache, object, true));
mm/kasan/common.c
222
static bool check_slab_allocation(struct kmem_cache *cache, void *object,
mm/kasan/common.c
229
if (unlikely(nearest_obj(cache, virt_to_slab(object), object) != object)) {
mm/kasan/common.c
242
static inline void poison_slab_object(struct kmem_cache *cache, void *object,
mm/kasan/common.c
249
kasan_poison(object, round_up(cache->object_size, KASAN_GRANULE_SIZE),
mm/kasan/common.c
253
kasan_save_free_info(cache, tagged_object);
mm/kasan/common.c
256
bool __kasan_slab_pre_free(struct kmem_cache *cache, void *object,
mm/kasan/common.c
261
return check_slab_allocation(cache, object, ip);
mm/kasan/common.c
264
bool __kasan_slab_free(struct kmem_cache *cache, void *object, bool init,
mm/kasan/common.c
285
poison_slab_object(cache, object, init);
mm/kasan/common.c
295
if (kasan_quarantine_put(cache, object))
mm/kasan/common.c
329
static inline void unpoison_slab_object(struct kmem_cache *cache, void *object,
mm/kasan/common.c
336
kasan_unpoison(object, cache->object_size, init);
mm/kasan/common.c
339
if (kasan_stack_collection_enabled() && !is_kmalloc_cache(cache))
mm/kasan/common.c
340
kasan_save_alloc_info(cache, object, flags);
mm/kasan/common.c
343
void * __must_check __kasan_slab_alloc(struct kmem_cache *cache,
mm/kasan/common.c
362
tag = assign_tag(cache, object, false);
mm/kasan/common.c
366
unpoison_slab_object(cache, tagged_object, flags, init);
mm/kasan/common.c
371
static inline void poison_kmalloc_redzone(struct kmem_cache *cache,
mm/kasan/common.c
388
redzone_end = round_up((unsigned long)(object + cache->object_size),
mm/kasan/common.c
397
if (kasan_stack_collection_enabled() && is_kmalloc_cache(cache))
mm/kasan/common.c
398
kasan_save_alloc_info(cache, (void *)object, flags);
mm/kasan/common.c
402
void * __must_check __kasan_kmalloc(struct kmem_cache *cache, const void *object,
mm/kasan/common.c
415
poison_kmalloc_redzone(cache, object, size, flags);
mm/kasan/generic.c
215
void kasan_cache_shrink(struct kmem_cache *cache)
mm/kasan/generic.c
217
kasan_quarantine_remove_cache(cache);
mm/kasan/generic.c
220
void kasan_cache_shutdown(struct kmem_cache *cache)
mm/kasan/generic.c
222
if (!__kmem_cache_empty(cache))
mm/kasan/generic.c
223
kasan_quarantine_remove_cache(cache);
mm/kasan/generic.c
364
void kasan_cache_create(struct kmem_cache *cache, unsigned int *size,
mm/kasan/generic.c
387
cache->kasan_info.alloc_meta_offset = *size;
mm/kasan/generic.c
392
cache->kasan_info.alloc_meta_offset = 0;
mm/kasan/generic.c
398
orig_alloc_meta_offset = cache->kasan_info.alloc_meta_offset;
mm/kasan/generic.c
410
if ((cache->flags & SLAB_TYPESAFE_BY_RCU) || cache->ctor ||
mm/kasan/generic.c
411
slub_debug_orig_size(cache)) {
mm/kasan/generic.c
412
cache->kasan_info.free_meta_offset = *size;
mm/kasan/generic.c
421
if (sizeof(struct kasan_free_meta) <= cache->object_size) {
mm/kasan/generic.c
435
cache->object_size;
mm/kasan/generic.c
437
if (cache->kasan_info.alloc_meta_offset != 0)
mm/kasan/generic.c
438
cache->kasan_info.alloc_meta_offset += rem_free_meta_size;
mm/kasan/generic.c
446
cache->kasan_info.free_meta_offset = *size;
mm/kasan/generic.c
452
cache->kasan_info.free_meta_offset = KASAN_NO_FREE_META;
mm/kasan/generic.c
453
cache->kasan_info.alloc_meta_offset = orig_alloc_meta_offset;
mm/kasan/generic.c
458
optimal_size = cache->object_size + optimal_redzone(cache->object_size);
mm/kasan/generic.c
467
struct kasan_alloc_meta *kasan_get_alloc_meta(struct kmem_cache *cache,
mm/kasan/generic.c
470
if (!cache->kasan_info.alloc_meta_offset)
mm/kasan/generic.c
472
return (void *)object + cache->kasan_info.alloc_meta_offset;
mm/kasan/generic.c
475
struct kasan_free_meta *kasan_get_free_meta(struct kmem_cache *cache,
mm/kasan/generic.c
479
if (cache->kasan_info.free_meta_offset == KASAN_NO_FREE_META)
mm/kasan/generic.c
481
return (void *)object + cache->kasan_info.free_meta_offset;
mm/kasan/generic.c
484
void kasan_init_object_meta(struct kmem_cache *cache, const void *object)
mm/kasan/generic.c
488
alloc_meta = kasan_get_alloc_meta(cache, object);
mm/kasan/generic.c
517
size_t kasan_metadata_size(struct kmem_cache *cache, bool in_object)
mm/kasan/generic.c
519
struct kasan_cache *info = &cache->kasan_info;
mm/kasan/generic.c
542
struct kmem_cache *cache;
mm/kasan/generic.c
549
cache = slab->slab_cache;
mm/kasan/generic.c
550
object = nearest_obj(cache, slab, addr);
mm/kasan/generic.c
551
alloc_meta = kasan_get_alloc_meta(cache, object);
mm/kasan/generic.c
559
void kasan_save_alloc_info(struct kmem_cache *cache, void *object, gfp_t flags)
mm/kasan/generic.c
563
alloc_meta = kasan_get_alloc_meta(cache, object);
mm/kasan/generic.c
573
void kasan_save_free_info(struct kmem_cache *cache, void *object)
mm/kasan/generic.c
577
free_meta = kasan_get_free_meta(cache, object);
mm/kasan/kasan.h
218
struct kmem_cache *cache;
mm/kasan/kasan.h
359
size_t kasan_get_alloc_size(void *object, struct kmem_cache *cache);
mm/kasan/kasan.h
376
void kasan_print_aux_stacks(struct kmem_cache *cache, const void *object);
mm/kasan/kasan.h
378
static inline void kasan_print_aux_stacks(struct kmem_cache *cache, const void *object) { }
mm/kasan/kasan.h
388
struct kasan_alloc_meta *kasan_get_alloc_meta(struct kmem_cache *cache,
mm/kasan/kasan.h
390
struct kasan_free_meta *kasan_get_free_meta(struct kmem_cache *cache,
mm/kasan/kasan.h
392
void kasan_init_object_meta(struct kmem_cache *cache, const void *object);
mm/kasan/kasan.h
394
static inline void kasan_init_object_meta(struct kmem_cache *cache, const void *object) { }
mm/kasan/kasan.h
400
void kasan_save_alloc_info(struct kmem_cache *cache, void *object, gfp_t flags);
mm/kasan/kasan.h
402
void kasan_save_free_info(struct kmem_cache *cache, void *object);
mm/kasan/kasan.h
405
bool kasan_quarantine_put(struct kmem_cache *cache, void *object);
mm/kasan/kasan.h
407
void kasan_quarantine_remove_cache(struct kmem_cache *cache);
mm/kasan/kasan.h
409
static inline bool kasan_quarantine_put(struct kmem_cache *cache, void *object) { return false; }
mm/kasan/kasan.h
411
static inline void kasan_quarantine_remove_cache(struct kmem_cache *cache) { }
mm/kasan/kasan_test_c.c
1024
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1026
cache = kmem_cache_create("test_cache", size, 0, 0, NULL);
mm/kasan/kasan_test_c.c
1027
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1029
p = kmem_cache_alloc(cache, GFP_KERNEL);
mm/kasan/kasan_test_c.c
1032
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1038
kmem_cache_free(cache, p);
mm/kasan/kasan_test_c.c
1039
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1046
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1048
cache = kmem_cache_create("test_cache", size, 0, 0, NULL);
mm/kasan/kasan_test_c.c
1049
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1051
p = kmem_cache_alloc(cache, GFP_KERNEL);
mm/kasan/kasan_test_c.c
1054
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1058
kmem_cache_free(cache, p);
mm/kasan/kasan_test_c.c
1059
KUNIT_EXPECT_KASAN_FAIL(test, kmem_cache_free(cache, p));
mm/kasan/kasan_test_c.c
1060
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1067
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1069
cache = kmem_cache_create("test_cache", size, 0, SLAB_TYPESAFE_BY_RCU,
mm/kasan/kasan_test_c.c
1071
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1073
p = kmem_cache_alloc(cache, GFP_KERNEL);
mm/kasan/kasan_test_c.c
1076
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1081
KUNIT_EXPECT_KASAN_FAIL(test, kmem_cache_free(cache, p + 1));
mm/kasan/kasan_test_c.c
1087
kmem_cache_free(cache, p);
mm/kasan/kasan_test_c.c
1089
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1096
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1100
cache = kmem_cache_create("test_cache", size, 0, SLAB_TYPESAFE_BY_RCU,
mm/kasan/kasan_test_c.c
1102
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1104
p = kmem_cache_alloc(cache, GFP_KERNEL);
mm/kasan/kasan_test_c.c
1107
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1115
kmem_cache_free(cache, p);
mm/kasan/kasan_test_c.c
1134
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1146
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1150
cache = kmem_cache_create("test_cache", 16, 0, SLAB_TYPESAFE_BY_RCU,
mm/kasan/kasan_test_c.c
1152
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1155
p = kmem_cache_alloc(cache, GFP_KERNEL);
mm/kasan/kasan_test_c.c
1161
kmem_cache_free(cache, p);
mm/kasan/kasan_test_c.c
1162
p2 = kmem_cache_alloc(cache, GFP_KERNEL);
mm/kasan/kasan_test_c.c
1169
kmem_cache_free(cache, p2);
mm/kasan/kasan_test_c.c
1173
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1178
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1180
cache = kmem_cache_create("test_cache", 200, 0, SLAB_NO_MERGE, NULL);
mm/kasan/kasan_test_c.c
1181
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1182
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1183
KUNIT_EXPECT_KASAN_FAIL(test, kmem_cache_destroy(cache));
mm/kasan/kasan_test_c.c
1191
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1193
cache = kmem_cache_create("test_cache", size, 0, SLAB_ACCOUNT, NULL);
mm/kasan/kasan_test_c.c
1194
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1201
p = kmem_cache_alloc(cache, GFP_KERNEL);
mm/kasan/kasan_test_c.c
1205
kmem_cache_free(cache, p);
mm/kasan/kasan_test_c.c
1210
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1215
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1221
cache = kmem_cache_create("test_cache", size, 0, 0, NULL);
mm/kasan/kasan_test_c.c
1222
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1224
ret = kmem_cache_alloc_bulk(cache, GFP_KERNEL, ARRAY_SIZE(p), (void **)&p);
mm/kasan/kasan_test_c.c
1227
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1234
kmem_cache_free_bulk(cache, ARRAY_SIZE(p), (void **)&p);
mm/kasan/kasan_test_c.c
1235
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1262
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1266
cache = kmem_cache_create("test_cache", size, 0, 0, NULL);
mm/kasan/kasan_test_c.c
1267
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
mm/kasan/kasan_test_c.c
1270
ret = mempool_init_slab_pool(pool, pool_size, cache);
mm/kasan/kasan_test_c.c
1278
return cache;
mm/kasan/kasan_test_c.c
1348
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1350
cache = mempool_prepare_slab(test, &pool, size);
mm/kasan/kasan_test_c.c
1355
kmem_cache_destroy(cache);
mm/kasan/kasan_test_c.c
1411
struct kmem_cache *cache;
mm/kasan/kasan_test_c.c
1413
cache = mempool_prepare_slab(test, &pool, size);
mm/kasan/kasan_test_c.c
1418
kmem_cache_destroy(cache);
mm/kasan/quarantine.c
134
static void *qlink_to_object(struct qlist_node *qlink, struct kmem_cache *cache)
mm/kasan/quarantine.c
140
return ((void *)free_info) - cache->kasan_info.free_meta_offset;
mm/kasan/quarantine.c
143
static void qlink_free(struct qlist_node *qlink, struct kmem_cache *cache)
mm/kasan/quarantine.c
145
void *object = qlink_to_object(qlink, cache);
mm/kasan/quarantine.c
146
struct kasan_free_meta *free_meta = kasan_get_free_meta(cache, object);
mm/kasan/quarantine.c
159
if (slab_want_init_on_free(cache) &&
mm/kasan/quarantine.c
160
cache->kasan_info.free_meta_offset == 0)
mm/kasan/quarantine.c
163
___cache_free(cache, object, _THIS_IP_);
mm/kasan/quarantine.c
166
static void qlist_free_all(struct qlist_head *q, struct kmem_cache *cache)
mm/kasan/quarantine.c
176
cache ? cache : qlink_to_cache(qlink);
mm/kasan/quarantine.c
185
bool kasan_quarantine_put(struct kmem_cache *cache, void *object)
mm/kasan/quarantine.c
190
struct kasan_free_meta *meta = kasan_get_free_meta(cache, object);
mm/kasan/quarantine.c
214
qlist_put(q, &meta->quarantine_link, cache->size);
mm/kasan/quarantine.c
292
struct kmem_cache *cache)
mm/kasan/quarantine.c
305
if (obj_cache == cache)
mm/kasan/quarantine.c
316
struct kmem_cache *cache = arg;
mm/kasan/quarantine.c
322
qlist_move_cache(q, &sq->qlist, cache);
mm/kasan/quarantine.c
342
void kasan_quarantine_remove_cache(struct kmem_cache *cache)
mm/kasan/quarantine.c
356
on_each_cpu(per_cpu_remove_cache, cache, 1);
mm/kasan/quarantine.c
361
qlist_move_cache(&sq->qlist, &to_free, cache);
mm/kasan/quarantine.c
364
qlist_free_all(&to_free, cache);
mm/kasan/quarantine.c
370
qlist_move_cache(&global_quarantine[i], &to_free, cache);
mm/kasan/quarantine.c
378
qlist_free_all(&to_free, cache);
mm/kasan/report.c
302
info->object, info->cache->name, info->cache->object_size);
mm/kasan/report.c
347
kasan_print_aux_stacks(info->cache, info->object);
mm/kasan/report.c
381
if (info->cache && info->object) {
mm/kasan/report.c
502
info->cache = slab->slab_cache;
mm/kasan/report.c
503
info->object = nearest_obj(info->cache, slab, addr);
mm/kasan/report.c
506
info->alloc_size = kasan_get_alloc_size(info->object, info->cache);
mm/kasan/report.c
509
info->alloc_size = info->cache->object_size;
mm/kasan/report.c
511
info->cache = info->object = NULL;
mm/kasan/report_generic.c
168
if (!info->cache || !info->object)
mm/kasan/report_generic.c
171
alloc_meta = kasan_get_alloc_meta(info->cache, info->object);
mm/kasan/report_generic.c
178
free_meta = kasan_get_free_meta(info->cache, info->object);
mm/kasan/report_generic.c
189
void kasan_print_aux_stacks(struct kmem_cache *cache, const void *object)
mm/kasan/report_generic.c
193
alloc_meta = kasan_get_alloc_meta(cache, object);
mm/kasan/report_generic.c
46
size_t kasan_get_alloc_size(void *object, struct kmem_cache *cache)
mm/kasan/report_generic.c
61
while (size < cache->object_size) {
mm/kasan/report_generic.c
71
return cache->object_size;
mm/kasan/report_hw_tags.c
30
size_t kasan_get_alloc_size(void *object, struct kmem_cache *cache)
mm/kasan/report_hw_tags.c
45
while (size < cache->object_size) {
mm/kasan/report_hw_tags.c
54
return cache->object_size;
mm/kasan/report_sw_tags.c
48
size_t kasan_get_alloc_size(void *object, struct kmem_cache *cache)
mm/kasan/report_sw_tags.c
63
while (size < cache->object_size) {
mm/kasan/report_sw_tags.c
71
return cache->object_size;
mm/kasan/report_tags.c
37
if ((!info->cache || !info->object) && !info->bug_type) {
mm/kasan/report_tags.c
63
info->cache->object_size != entry->size)
mm/kasan/tags.c
128
entry->size = cache->object_size;
mm/kasan/tags.c
140
void kasan_save_alloc_info(struct kmem_cache *cache, void *object, gfp_t flags)
mm/kasan/tags.c
142
save_stack_info(cache, object, flags, false);
mm/kasan/tags.c
145
void kasan_save_free_info(struct kmem_cache *cache, void *object)
mm/kasan/tags.c
147
save_stack_info(cache, object, 0, true);
mm/kasan/tags.c
97
static void save_stack_info(struct kmem_cache *cache, void *object,
mm/kfence/core.c
1098
if (READ_ONCE(meta->cache) != s || !kfence_obj_allocated(meta))
mm/kfence/core.c
1102
in_use = meta->cache == s && kfence_obj_allocated(meta);
mm/kfence/core.c
1128
if (READ_ONCE(meta->cache) != s || READ_ONCE(meta->state) != KFENCE_OBJECT_FREED)
mm/kfence/core.c
1132
if (meta->cache == s && meta->state == KFENCE_OBJECT_FREED)
mm/kfence/core.c
1133
meta->cache = NULL;
mm/kfence/core.c
1251
if (unlikely(meta->cache && (meta->cache->flags & SLAB_TYPESAFE_BY_RCU))) {
mm/kfence/core.c
418
static void *kfence_guarded_alloc(struct kmem_cache *cache, size_t size, gfp_t gfp,
mm/kfence/core.c
476
meta->addr = ALIGN_DOWN(meta->addr, cache->align);
mm/kfence/core.c
484
WRITE_ONCE(meta->cache, cache);
mm/kfence/core.c
493
slab->slab_cache = cache;
mm/kfence/core.c
504
if (unlikely(slab_want_init_on_alloc(gfp, cache)))
mm/kfence/core.c
506
if (cache->ctor)
mm/kfence/core.c
507
cache->ctor(addr);
mm/kfence/core.c
553
init = slab_want_init_on_free(meta->cache);
mm/kfence/kfence.h
90
struct kmem_cache *cache;
mm/kfence/report.c
140
const struct kmem_cache *const cache = meta->cache;
mm/kfence/report.c
151
size, (cache && cache->name) ? cache->name : "<destroyed>");
mm/kfence/report.c
320
kpp->kp_slab_cache = meta->cache;
mm/mm_slot.h
24
static inline void *mm_slot_alloc(struct kmem_cache *cache)
mm/mm_slot.h
26
if (!cache) /* initialization failed */
mm/mm_slot.h
28
return kmem_cache_zalloc(cache, GFP_KERNEL);
mm/mm_slot.h
31
static inline void mm_slot_free(struct kmem_cache *cache, void *objp)
mm/mm_slot.h
33
kmem_cache_free(cache, objp);
mm/slab.h
279
static inline void *nearest_obj(struct kmem_cache *cache,
mm/slab.h
282
void *object = x - (x - slab_address(slab)) % cache->size;
mm/slab.h
284
(slab->objects - 1) * cache->size;
mm/slab.h
287
result = fixup_red_left(cache, result);
mm/slab.h
292
static inline unsigned int __obj_to_index(const struct kmem_cache *cache,
mm/slab.h
296
cache->reciprocal_size);
mm/slab.h
299
static inline unsigned int obj_to_index(const struct kmem_cache *cache,
mm/slab.h
304
return __obj_to_index(cache, slab_address(slab), obj);
mm/slab.h
307
static inline int objs_per_slab(const struct kmem_cache *cache,
mm/slab.h
660
void ___cache_free(struct kmem_cache *cache, void *x, unsigned long addr);
mm/slub.c
2769
sheaf->cache = s;
mm/slub.c
2974
s = sheaf->cache;
mm/slub.c
414
struct kmem_cache *cache;
mm/slub.c
4977
sheaf->cache = s;
mm/slub.c
5798
s = sheaf->cache;
mm/slub.c
6238
void ___cache_free(struct kmem_cache *cache, void *x, unsigned long addr)
mm/slub.c
6240
__slab_free(cache, virt_to_slab(x), x, x, 1, addr);
mm/slub.c
6241
stat(cache, FREE_SLOWPATH);
net/9p/client.c
101
fc->cache = c->fcall_cache;
net/9p/client.c
104
fc->cache = NULL;
net/9p/client.c
111
fc->cache = NULL;
net/9p/client.c
129
if (fc->cache)
net/9p/client.c
130
kmem_cache_free(fc->cache, fc->sdata);
net/bluetooth/hci_core.c
154
struct discovery_state *cache = &hdev->discovery;
net/bluetooth/hci_core.c
157
list_for_each_entry_safe(p, n, &cache->all, all) {
net/bluetooth/hci_core.c
162
INIT_LIST_HEAD(&cache->unknown);
net/bluetooth/hci_core.c
163
INIT_LIST_HEAD(&cache->resolve);
net/bluetooth/hci_core.c
169
struct discovery_state *cache = &hdev->discovery;
net/bluetooth/hci_core.c
172
BT_DBG("cache %p, %pMR", cache, bdaddr);
net/bluetooth/hci_core.c
174
list_for_each_entry(e, &cache->all, all) {
net/bluetooth/hci_core.c
185
struct discovery_state *cache = &hdev->discovery;
net/bluetooth/hci_core.c
188
BT_DBG("cache %p, %pMR", cache, bdaddr);
net/bluetooth/hci_core.c
190
list_for_each_entry(e, &cache->unknown, list) {
net/bluetooth/hci_core.c
202
struct discovery_state *cache = &hdev->discovery;
net/bluetooth/hci_core.c
205
BT_DBG("cache %p bdaddr %pMR state %d", cache, bdaddr, state);
net/bluetooth/hci_core.c
207
list_for_each_entry(e, &cache->resolve, list) {
net/bluetooth/hci_core.c
220
struct discovery_state *cache = &hdev->discovery;
net/bluetooth/hci_core.c
221
struct list_head *pos = &cache->resolve;
net/bluetooth/hci_core.c
226
list_for_each_entry(p, &cache->resolve, list) {
net/bluetooth/hci_core.c
239
struct discovery_state *cache = &hdev->discovery;
net/bluetooth/hci_core.c
243
BT_DBG("cache %p, %pMR", cache, &data->bdaddr);
net/bluetooth/hci_core.c
271
list_add(&ie->all, &cache->all);
net/bluetooth/hci_core.c
277
list_add(&ie->list, &cache->unknown);
net/bluetooth/hci_core.c
289
cache->timestamp = jiffies;
net/bluetooth/hci_core.c
300
struct discovery_state *cache = &hdev->discovery;
net/bluetooth/hci_core.c
305
list_for_each_entry(e, &cache->all, all) {
net/bluetooth/hci_core.c
322
BT_DBG("cache %p, copied %d", cache, copied);
net/bluetooth/hci_debugfs.c
363
struct discovery_state *cache = &hdev->discovery;
net/bluetooth/hci_debugfs.c
368
list_for_each_entry(e, &cache->all, all) {
net/core/dst_cache.c
108
if (!dst_cache->cache)
net/core/dst_cache.c
111
local_lock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
112
idst = this_cpu_ptr(dst_cache->cache);
net/core/dst_cache.c
115
local_unlock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
125
if (!dst_cache->cache)
net/core/dst_cache.c
128
local_lock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
130
idst = this_cpu_ptr(dst_cache->cache);
net/core/dst_cache.c
134
local_unlock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
144
if (!dst_cache->cache)
net/core/dst_cache.c
147
local_lock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
149
idst = this_cpu_ptr(dst_cache->cache);
net/core/dst_cache.c
152
local_unlock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
157
local_unlock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
167
dst_cache->cache = alloc_percpu_gfp(struct dst_cache_pcpu,
net/core/dst_cache.c
169
if (!dst_cache->cache)
net/core/dst_cache.c
172
local_lock_init(&per_cpu_ptr(dst_cache->cache, i)->bh_lock);
net/core/dst_cache.c
183
if (!dst_cache->cache)
net/core/dst_cache.c
187
dst_release(per_cpu_ptr(dst_cache->cache, i)->dst);
net/core/dst_cache.c
189
free_percpu(dst_cache->cache);
net/core/dst_cache.c
197
if (!dst_cache->cache)
net/core/dst_cache.c
202
struct dst_cache_pcpu *idst = per_cpu_ptr(dst_cache->cache, i);
net/core/dst_cache.c
71
if (!dst_cache->cache)
net/core/dst_cache.c
74
local_lock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
75
dst = dst_cache_per_cpu_get(dst_cache, this_cpu_ptr(dst_cache->cache));
net/core/dst_cache.c
76
local_unlock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
86
if (!dst_cache->cache)
net/core/dst_cache.c
89
local_lock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
90
idst = this_cpu_ptr(dst_cache->cache);
net/core/dst_cache.c
93
local_unlock_nested_bh(&dst_cache->cache->bh_lock);
net/core/dst_cache.c
98
local_unlock_nested_bh(&dst_cache->cache->bh_lock);
net/core/neighbour.c
1593
dev->header_ops->cache(n, hh, prot);
net/core/neighbour.c
1609
if (dev->header_ops->cache && !READ_ONCE(neigh->hh.hh_len))
net/core/page_pool.c
1149
netmem = pool->alloc.cache[--pool->alloc.count];
net/core/page_pool.c
1322
netmem = pool->alloc.cache[--pool->alloc.count];
net/core/page_pool.c
407
pool->alloc.cache[pool->alloc.count++] = netmem;
net/core/page_pool.c
423
netmem = pool->alloc.cache[--pool->alloc.count];
net/core/page_pool.c
438
netmem = pool->alloc.cache[--pool->alloc.count];
net/core/page_pool.c
611
return pool->alloc.cache[--pool->alloc.count];
net/core/page_pool.c
614
memset(&pool->alloc.cache, 0, sizeof(void *) * bulk);
net/core/page_pool.c
617
(struct page **)pool->alloc.cache);
net/core/page_pool.c
625
netmem = pool->alloc.cache[i];
net/core/page_pool.c
632
pool->alloc.cache[pool->alloc.count++] = netmem;
net/core/page_pool.c
641
netmem = pool->alloc.cache[--pool->alloc.count];
net/core/page_pool.c
808
pool->alloc.cache[pool->alloc.count++] = netmem;
net/core/skbuff.c
676
struct kmem_cache *cache;
net/core/skbuff.c
683
cache = net_hotdata.skbuff_fclone_cache;
net/core/skbuff.c
686
cache = net_hotdata.skbuff_cache;
net/core/skbuff.c
702
skb = kmem_cache_alloc_node(cache, gfp_mask & ~GFP_DMA, node);
net/core/skbuff.c
741
kmem_cache_free(cache, skb);
net/ethernet/eth.c
331
.cache = eth_header_cache,
net/ipv4/arp.c
282
if (dev->header_ops->cache)
net/ipv4/cipso_ipv4.c
253
secattr->cache = entry->lsm_data;
net/ipv4/cipso_ipv4.c
320
refcount_inc(&secattr->cache->refcount);
net/ipv4/cipso_ipv4.c
321
entry->lsm_data = secattr->cache;
net/ipv4/ipmr.c
109
struct mfc_cache *cache, int local);
net/ipv4/ipmr.c
1300
struct mfc_cache *cache;
net/ipv4/ipmr.c
1324
cache = (struct mfc_cache *)c;
net/ipv4/ipmr.c
1325
call_ipmr_mfc_entry_notifiers(net, FIB_EVENT_ENTRY_DEL, cache,
net/ipv4/ipmr.c
1327
mroute_netlink_event(mrt, cache, RTM_DELROUTE);
net/ipv4/ipmr.c
1337
cache = (struct mfc_cache *)c;
net/ipv4/ipmr.c
1338
mroute_netlink_event(mrt, cache, RTM_DELROUTE);
net/ipv4/ipmr.c
1339
ipmr_destroy_unres(mrt, cache);
net/ipv4/ipmr.c
2146
struct mfc_cache *cache;
net/ipv4/ipmr.c
2199
cache = ipmr_cache_find(mrt, ip_hdr(skb)->saddr, ip_hdr(skb)->daddr);
net/ipv4/ipmr.c
2200
if (!cache) {
net/ipv4/ipmr.c
2204
cache = ipmr_cache_find_any(mrt, ip_hdr(skb)->daddr,
net/ipv4/ipmr.c
2209
if (!cache) {
net/ipv4/ipmr.c
2227
ip_mr_forward(net, mrt, dev, skb, cache, local);
net/ipv4/ipmr.c
2298
struct mfc_cache *cache;
net/ipv4/ipmr.c
2318
cache = ipmr_cache_find(mrt, ip_hdr(skb)->saddr, ip_hdr(skb)->daddr);
net/ipv4/ipmr.c
2319
if (!cache) {
net/ipv4/ipmr.c
2322
cache = ipmr_cache_find_any(mrt, ip_hdr(skb)->daddr,
net/ipv4/ipmr.c
2327
if (!cache) {
net/ipv4/ipmr.c
2334
vif = cache->_c.mfc_parent;
net/ipv4/ipmr.c
2338
ip_mr_output_finish(net, mrt, dev, skb, cache);
net/ipv4/ipmr.c
2405
struct mfc_cache *cache;
net/ipv4/ipmr.c
2416
cache = ipmr_cache_find(mrt, saddr, daddr);
net/ipv4/ipmr.c
2417
if (!cache && skb->dev) {
net/ipv4/ipmr.c
2421
cache = ipmr_cache_find_any(mrt, daddr, vif);
net/ipv4/ipmr.c
2423
if (!cache) {
net/ipv4/ipmr.c
2456
err = mr_fill_mroute(mrt, skb, &cache->_c, rtm);
net/ipv4/ipmr.c
2685
struct mfc_cache *cache;
net/ipv4/ipmr.c
2707
cache = ipmr_cache_find(mrt, src, grp);
net/ipv4/ipmr.c
2709
if (!cache) {
net/ipv4/ipmr.c
2721
nlh->nlmsg_seq, cache,
net/ipv4/ipmr.c
3148
if (it->cache != &mrt->mfc_unres_queue) {
net/ipv4/ipmr.c
806
static void ipmr_update_thresholds(struct mr_table *mrt, struct mr_mfc *cache,
net/ipv4/ipmr.c
811
cache->mfc_un.res.minvif = MAXVIFS;
net/ipv4/ipmr.c
812
cache->mfc_un.res.maxvif = 0;
net/ipv4/ipmr.c
813
memset(cache->mfc_un.res.ttls, 255, MAXVIFS);
net/ipv4/ipmr.c
818
cache->mfc_un.res.ttls[vifi] = ttls[vifi];
net/ipv4/ipmr.c
819
if (cache->mfc_un.res.minvif > vifi)
net/ipv4/ipmr.c
820
cache->mfc_un.res.minvif = vifi;
net/ipv4/ipmr.c
821
if (cache->mfc_un.res.maxvif <= vifi)
net/ipv4/ipmr.c
822
cache->mfc_un.res.maxvif = vifi + 1;
net/ipv4/ipmr.c
825
WRITE_ONCE(cache->mfc_un.res.lastuse, jiffies);
net/ipv4/ipmr_base.c
154
it->cache = &mrt->mfc_cache_list;
net/ipv4/ipmr_base.c
161
it->cache = &mrt->mfc_unres_queue;
net/ipv4/ipmr_base.c
162
list_for_each_entry(mfc, it->cache, list)
net/ipv4/ipmr_base.c
167
it->cache = NULL;
net/ipv4/ipmr_base.c
185
if (c->list.next != it->cache)
net/ipv4/ipmr_base.c
188
if (it->cache == &mrt->mfc_unres_queue)
net/ipv4/ipmr_base.c
193
it->cache = &mrt->mfc_unres_queue;
net/ipv4/ipmr_base.c
196
if (!list_empty(it->cache))
net/ipv4/ipmr_base.c
197
return list_first_entry(it->cache, struct mr_mfc, list);
net/ipv4/ipmr_base.c
201
it->cache = NULL;
net/ipv4/tcp_input.c
2214
static int tcp_sack_cache_ok(const struct tcp_sock *tp, const struct tcp_sack_block *cache)
net/ipv4/tcp_input.c
2216
return cache < tp->recv_sack_cache + ARRAY_SIZE(tp->recv_sack_cache);
net/ipv4/tcp_input.c
2228
struct tcp_sack_block *cache;
net/ipv4/tcp_input.c
2316
cache = tp->recv_sack_cache + ARRAY_SIZE(tp->recv_sack_cache);
net/ipv4/tcp_input.c
2318
cache = tp->recv_sack_cache;
net/ipv4/tcp_input.c
2320
while (tcp_sack_cache_ok(tp, cache) && !cache->start_seq &&
net/ipv4/tcp_input.c
2321
!cache->end_seq)
net/ipv4/tcp_input.c
2322
cache++;
net/ipv4/tcp_input.c
2335
while (tcp_sack_cache_ok(tp, cache) &&
net/ipv4/tcp_input.c
2336
!before(start_seq, cache->end_seq))
net/ipv4/tcp_input.c
2337
cache++;
net/ipv4/tcp_input.c
2340
if (tcp_sack_cache_ok(tp, cache) && !dup_sack &&
net/ipv4/tcp_input.c
2341
after(end_seq, cache->start_seq)) {
net/ipv4/tcp_input.c
2344
if (before(start_seq, cache->start_seq)) {
net/ipv4/tcp_input.c
2349
cache->start_seq,
net/ipv4/tcp_input.c
2354
if (!after(end_seq, cache->end_seq))
net/ipv4/tcp_input.c
2359
cache->end_seq);
net/ipv4/tcp_input.c
2362
if (tcp_highest_sack_seq(tp) == cache->end_seq) {
net/ipv4/tcp_input.c
2367
cache++;
net/ipv4/tcp_input.c
2371
skb = tcp_sacktag_skip(skb, sk, cache->end_seq);
net/ipv4/tcp_input.c
2373
cache++;
net/ipv6/calipso.c
219
secattr->cache = entry->lsm_data;
net/ipv6/calipso.c
287
refcount_inc(&secattr->cache->refcount);
net/ipv6/calipso.c
288
entry->lsm_data = secattr->cache;
net/ipv6/ioam6_iptunnel.c
169
err = dst_cache_init(&ilwt->cache, GFP_ATOMIC);
net/ipv6/ioam6_iptunnel.c
234
dst_cache_destroy(&ilwt->cache);
net/ipv6/ioam6_iptunnel.c
357
dst = dst_cache_get(&ilwt->cache);
net/ipv6/ioam6_iptunnel.c
39
struct dst_cache cache;
net/ipv6/ioam6_iptunnel.c
431
dst_cache_set_ip6(&ilwt->cache,
net/ipv6/ioam6_iptunnel.c
434
dst_cache_set_ip6(&ilwt->cache, dst, &fl6.saddr);
net/ipv6/ioam6_iptunnel.c
465
dst_cache_destroy(&ioam6_lwt_state(lwt)->cache);
net/ipv6/ip6mr.c
2306
struct mfc6_cache *cache;
net/ipv6/ip6mr.c
2331
cache = ip6mr_cache_find(mrt,
net/ipv6/ip6mr.c
2333
if (!cache) {
net/ipv6/ip6mr.c
2337
cache = ip6mr_cache_find_any(mrt,
net/ipv6/ip6mr.c
2345
if (!cache) {
net/ipv6/ip6mr.c
2358
ip6_mr_forward(net, mrt, dev, skb, cache);
net/ipv6/ip6mr.c
2370
struct mfc6_cache *cache;
net/ipv6/ip6mr.c
2388
cache = ip6mr_cache_find(mrt,
net/ipv6/ip6mr.c
2390
if (!cache) {
net/ipv6/ip6mr.c
2393
cache = ip6mr_cache_find_any(mrt,
net/ipv6/ip6mr.c
2399
if (!cache) {
net/ipv6/ip6mr.c
2407
vif = cache->_c.mfc_parent;
net/ipv6/ip6mr.c
2411
ip6_mr_output_finish(net, mrt, dev, skb, cache);
net/ipv6/ip6mr.c
2423
struct mfc6_cache *cache;
net/ipv6/ip6mr.c
2433
cache = ip6mr_cache_find(mrt, &rt->rt6i_src.addr, &rt->rt6i_dst.addr);
net/ipv6/ip6mr.c
2434
if (!cache && skb->dev) {
net/ipv6/ip6mr.c
2438
cache = ip6mr_cache_find_any(mrt, &rt->rt6i_dst.addr,
net/ipv6/ip6mr.c
2442
if (!cache) {
net/ipv6/ip6mr.c
2485
err = mr_fill_mroute(mrt, skb, &cache->_c, rtm);
net/ipv6/ip6mr.c
2696
struct mfc6_cache *cache;
net/ipv6/ip6mr.c
2720
cache = ip6mr_cache_find(mrt, &src, &grp);
net/ipv6/ip6mr.c
2722
if (!cache) {
net/ipv6/ip6mr.c
2732
nlh->nlmsg_seq, cache, RTM_NEWROUTE, 0);
net/ipv6/ip6mr.c
511
if (it->cache != &mrt->mfc_unres_queue) {
net/ipv6/ip6mr.c
858
struct mr_mfc *cache,
net/ipv6/ip6mr.c
863
cache->mfc_un.res.minvif = MAXMIFS;
net/ipv6/ip6mr.c
864
cache->mfc_un.res.maxvif = 0;
net/ipv6/ip6mr.c
865
memset(cache->mfc_un.res.ttls, 255, MAXMIFS);
net/ipv6/ip6mr.c
870
cache->mfc_un.res.ttls[vifi] = ttls[vifi];
net/ipv6/ip6mr.c
871
if (cache->mfc_un.res.minvif > vifi)
net/ipv6/ip6mr.c
872
cache->mfc_un.res.minvif = vifi;
net/ipv6/ip6mr.c
873
if (cache->mfc_un.res.maxvif <= vifi)
net/ipv6/ip6mr.c
874
cache->mfc_un.res.maxvif = vifi + 1;
net/ipv6/ip6mr.c
877
WRITE_ONCE(cache->mfc_un.res.lastuse, jiffies);
net/ipv6/ip6mr.c
92
struct mfc6_cache *cache);
net/ipv6/ndisc.c
360
if (dev->header_ops->cache)
net/ipv6/rpl_iptunnel.c
105
err = dst_cache_init(&rlwt->cache, GFP_ATOMIC);
net/ipv6/rpl_iptunnel.c
124
dst_cache_destroy(&rpl_lwt_lwtunnel(lwt)->cache);
net/ipv6/rpl_iptunnel.c
20
struct dst_cache cache;
net/ipv6/rpl_iptunnel.c
214
dst = dst_cache_get(&rlwt->cache);
net/ipv6/rpl_iptunnel.c
241
dst_cache_set_ip6(&rlwt->cache, dst, &fl6.saddr);
net/ipv6/rpl_iptunnel.c
279
dst = dst_cache_get(&rlwt->cache);
net/ipv6/rpl_iptunnel.c
295
dst_cache_set_ip6(&rlwt->cache, dst,
net/mac80211/ieee80211_i.h
2841
void ieee80211_init_frag_cache(struct ieee80211_fragment_cache *cache);
net/mac80211/ieee80211_i.h
2842
void ieee80211_destroy_frag_cache(struct ieee80211_fragment_cache *cache);
net/mac80211/mesh_pathtbl.c
425
static void mesh_fast_tx_entry_free(struct mesh_tx_cache *cache,
net/mac80211/mesh_pathtbl.c
429
rhashtable_remove_fast(&cache->rht, &entry->rhash, fast_tx_rht_params);
net/mac80211/mesh_pathtbl.c
438
struct mesh_tx_cache *cache;
net/mac80211/mesh_pathtbl.c
440
cache = &sdata->u.mesh.tx_cache;
net/mac80211/mesh_pathtbl.c
441
entry = rhashtable_lookup(&cache->rht, key, fast_tx_rht_params);
net/mac80211/mesh_pathtbl.c
447
spin_lock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
448
entry = rhashtable_lookup(&cache->rht, key, fast_tx_rht_params);
net/mac80211/mesh_pathtbl.c
450
mesh_fast_tx_entry_free(cache, entry);
net/mac80211/mesh_pathtbl.c
451
spin_unlock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
471
struct mesh_tx_cache *cache;
net/mac80211/mesh_pathtbl.c
485
cache = &sdata->u.mesh.tx_cache;
net/mac80211/mesh_pathtbl.c
486
if (atomic_read(&cache->rht.nelems) >= MESH_FAST_TX_CACHE_MAX_SIZE)
net/mac80211/mesh_pathtbl.c
55
struct mesh_tx_cache *cache;
net/mac80211/mesh_pathtbl.c
57
cache = &sdata->u.mesh.tx_cache;
net/mac80211/mesh_pathtbl.c
579
spin_lock(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
58
rhashtable_free_and_destroy(&cache->rht,
net/mac80211/mesh_pathtbl.c
580
prev = rhashtable_lookup_get_insert_fast(&cache->rht,
net/mac80211/mesh_pathtbl.c
593
rhashtable_replace_fast(&cache->rht, &prev->rhash,
net/mac80211/mesh_pathtbl.c
599
hlist_add_head(&entry->walk_list, &cache->walk_head);
net/mac80211/mesh_pathtbl.c
602
spin_unlock(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
610
struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
net/mac80211/mesh_pathtbl.c
614
if (atomic_read(&cache->rht.nelems) < MESH_FAST_TX_CACHE_THRESHOLD_SIZE)
net/mac80211/mesh_pathtbl.c
617
spin_lock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
618
hlist_for_each_entry_safe(entry, n, &cache->walk_head, walk_list)
net/mac80211/mesh_pathtbl.c
620
mesh_fast_tx_entry_free(cache, entry);
net/mac80211/mesh_pathtbl.c
621
spin_unlock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
627
struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
net/mac80211/mesh_pathtbl.c
631
spin_lock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
632
hlist_for_each_entry_safe(entry, n, &cache->walk_head, walk_list)
net/mac80211/mesh_pathtbl.c
634
mesh_fast_tx_entry_free(cache, entry);
net/mac80211/mesh_pathtbl.c
635
spin_unlock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
64
struct mesh_tx_cache *cache;
net/mac80211/mesh_pathtbl.c
641
struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
net/mac80211/mesh_pathtbl.c
645
spin_lock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
646
hlist_for_each_entry_safe(entry, n, &cache->walk_head, walk_list)
net/mac80211/mesh_pathtbl.c
648
mesh_fast_tx_entry_free(cache, entry);
net/mac80211/mesh_pathtbl.c
649
spin_unlock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
655
struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache;
net/mac80211/mesh_pathtbl.c
66
cache = &sdata->u.mesh.tx_cache;
net/mac80211/mesh_pathtbl.c
661
spin_lock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
664
entry = rhashtable_lookup_fast(&cache->rht, &key, fast_tx_rht_params);
net/mac80211/mesh_pathtbl.c
666
mesh_fast_tx_entry_free(cache, entry);
net/mac80211/mesh_pathtbl.c
668
spin_unlock_bh(&cache->walk_lock);
net/mac80211/mesh_pathtbl.c
67
rhashtable_init(&cache->rht, &fast_tx_rht_params);
net/mac80211/mesh_pathtbl.c
68
INIT_HLIST_HEAD(&cache->walk_head);
net/mac80211/mesh_pathtbl.c
69
spin_lock_init(&cache->walk_lock);
net/mac80211/rx.c
2250
void ieee80211_init_frag_cache(struct ieee80211_fragment_cache *cache)
net/mac80211/rx.c
2254
for (i = 0; i < ARRAY_SIZE(cache->entries); i++)
net/mac80211/rx.c
2255
skb_queue_head_init(&cache->entries[i].skb_list);
net/mac80211/rx.c
2258
void ieee80211_destroy_frag_cache(struct ieee80211_fragment_cache *cache)
net/mac80211/rx.c
2262
for (i = 0; i < ARRAY_SIZE(cache->entries); i++)
net/mac80211/rx.c
2263
__skb_queue_purge(&cache->entries[i].skb_list);
net/mac80211/rx.c
2267
ieee80211_reassemble_add(struct ieee80211_fragment_cache *cache,
net/mac80211/rx.c
2273
entry = &cache->entries[cache->next++];
net/mac80211/rx.c
2274
if (cache->next >= IEEE80211_FRAGMENT_MAX)
net/mac80211/rx.c
2275
cache->next = 0;
net/mac80211/rx.c
2292
ieee80211_reassemble_find(struct ieee80211_fragment_cache *cache,
net/mac80211/rx.c
2299
idx = cache->next;
net/mac80211/rx.c
2308
entry = &cache->entries[idx];
net/mac80211/rx.c
2349
struct ieee80211_fragment_cache *cache = &rx->sdata->frags;
net/mac80211/rx.c
2368
cache = &rx->sta->frags;
net/mac80211/rx.c
2391
entry = ieee80211_reassemble_add(cache, frag, seq,
net/mac80211/rx.c
2425
entry = ieee80211_reassemble_find(cache, frag, seq,
net/netfilter/nf_conntrack_ecache.c
227
events = xchg(&e->cache, 0);
net/openvswitch/conntrack.c
995
struct nf_conntrack_ecache *cache = nf_ct_ecache_find(ct);
net/openvswitch/conntrack.c
997
if (cache)
net/openvswitch/conntrack.c
998
cache->ctmask = info->eventmask;
net/openvswitch/flow_table.c
359
struct mask_cache_entry __percpu *cache = NULL;
net/openvswitch/flow_table.c
375
cache = __alloc_percpu(array_size(sizeof(struct mask_cache_entry),
net/openvswitch/flow_table.c
378
if (!cache) {
net/openvswitch/flow_table.c
384
new->mask_cache = cache;
net/openvswitch/flow_table.c
799
u32 cache = 0;
net/openvswitch/flow_table.c
801
return flow_lookup(tbl, ti, ma, key, n_mask_hit, &cache,
net/rds/ib_recv.c
102
static int rds_ib_recv_alloc_cache(struct rds_ib_refill_cache *cache, gfp_t gfp)
net/rds/ib_recv.c
107
cache->percpu = alloc_percpu_gfp(struct rds_ib_cache_head, gfp);
net/rds/ib_recv.c
108
if (!cache->percpu)
net/rds/ib_recv.c
112
head = per_cpu_ptr(cache->percpu, cpu);
net/rds/ib_recv.c
116
cache->xfer = NULL;
net/rds/ib_recv.c
117
cache->ready = NULL;
net/rds/ib_recv.c
136
static void rds_ib_cache_splice_all_lists(struct rds_ib_refill_cache *cache,
net/rds/ib_recv.c
143
head = per_cpu_ptr(cache->percpu, cpu);
net/rds/ib_recv.c
150
if (cache->ready) {
net/rds/ib_recv.c
151
list_splice_entire_tail(cache->ready, caller_list);
net/rds/ib_recv.c
152
cache->ready = NULL;
net/rds/ib_recv.c
188
struct rds_ib_refill_cache *cache);
net/rds/ib_recv.c
189
static struct list_head *rds_ib_recv_cache_get(struct rds_ib_refill_cache *cache);
net/rds/ib_recv.c
480
struct rds_ib_refill_cache *cache)
net/rds/ib_recv.c
487
chpfirst = __this_cpu_read(cache->percpu->first);
net/rds/ib_recv.c
493
__this_cpu_write(cache->percpu->first, new_item);
net/rds/ib_recv.c
494
__this_cpu_inc(cache->percpu->count);
net/rds/ib_recv.c
496
if (__this_cpu_read(cache->percpu->count) < RDS_IB_RECYCLE_BATCH_COUNT)
net/rds/ib_recv.c
506
old = xchg(&cache->xfer, NULL);
net/rds/ib_recv.c
509
old = cmpxchg(&cache->xfer, NULL, chpfirst);
net/rds/ib_recv.c
513
__this_cpu_write(cache->percpu->first, NULL);
net/rds/ib_recv.c
514
__this_cpu_write(cache->percpu->count, 0);
net/rds/ib_recv.c
519
static struct list_head *rds_ib_recv_cache_get(struct rds_ib_refill_cache *cache)
net/rds/ib_recv.c
521
struct list_head *head = cache->ready;
net/rds/ib_recv.c
525
cache->ready = head->next;
net/rds/ib_recv.c
528
cache->ready = NULL;
net/rds/ib_recv.c
89
static void rds_ib_cache_xfer_to_ready(struct rds_ib_refill_cache *cache)
net/rds/ib_recv.c
93
tmp = xchg(&cache->xfer, NULL);
net/rds/ib_recv.c
95
if (cache->ready)
net/rds/ib_recv.c
96
list_splice_entire_tail(tmp, cache->ready);
net/rds/ib_recv.c
98
cache->ready = tmp;
net/sunrpc/auth.c
378
rpcauth_clear_credcache(struct rpc_cred_cache *cache)
net/sunrpc/auth.c
383
unsigned int hashsize = 1U << cache->hashbits;
net/sunrpc/auth.c
387
spin_lock(&cache->lock);
net/sunrpc/auth.c
389
head = &cache->hashtable[i];
net/sunrpc/auth.c
398
spin_unlock(&cache->lock);
net/sunrpc/auth.c
409
struct rpc_cred_cache *cache = auth->au_credcache;
net/sunrpc/auth.c
411
if (cache) {
net/sunrpc/auth.c
413
rpcauth_clear_credcache(cache);
net/sunrpc/auth.c
414
kfree(cache->hashtable);
net/sunrpc/auth.c
415
kfree(cache);
net/sunrpc/auth.c
518
struct rpc_cred_cache *cache = auth->au_credcache;
net/sunrpc/auth.c
523
nr = auth->au_ops->hash_cred(acred, cache->hashbits);
net/sunrpc/auth.c
526
hlist_for_each_entry_rcu(entry, &cache->hashtable[nr], cr_hash) {
net/sunrpc/auth.c
544
spin_lock(&cache->lock);
net/sunrpc/auth.c
545
hlist_for_each_entry(entry, &cache->hashtable[nr], cr_hash) {
net/sunrpc/auth.c
556
hlist_add_head_rcu(&cred->cr_hash, &cache->hashtable[nr]);
net/sunrpc/auth.c
559
spin_unlock(&cache->lock);
net/tipc/monitor.c
273
struct tipc_mon_domain *cache = &mon->cache;
net/tipc/monitor.c
293
cache->members[i] = mon_cpu_to_le32(peer->addr);
net/tipc/monitor.c
299
cache->len = mon_cpu_to_le16(dom->len);
net/tipc/monitor.c
300
cache->gen = mon_cpu_to_le16(dom->gen);
net/tipc/monitor.c
301
cache->member_cnt = mon_cpu_to_le16(member_cnt);
net/tipc/monitor.c
302
cache->up_map = mon_cpu_to_le64(dom->up_map);
net/tipc/monitor.c
592
len = mon_le16_to_cpu(mon->cache.len);
net/tipc/monitor.c
594
memcpy(data, &mon->cache, len);
net/tipc/monitor.c
92
struct tipc_mon_domain cache;
net/tipc/udp_media.c
172
struct udp_media_addr *dst, struct dst_cache *cache)
net/tipc/udp_media.c
178
ndst = dst_cache_get(cache);
net/tipc/udp_media.c
194
dst_cache_set_ip4(cache, &rt->dst, fl.saddr);
net/tipc/udp_media.c
217
dst_cache_set_ip6(cache, ndst, &fl6.saddr);
scripts/gendwarfksyms/cache.c
14
void cache_set(struct cache *cache, unsigned long key, int value)
scripts/gendwarfksyms/cache.c
21
hash_add(cache->cache, &ci->hash, hash_32(key));
scripts/gendwarfksyms/cache.c
24
int cache_get(struct cache *cache, unsigned long key)
scripts/gendwarfksyms/cache.c
28
hash_for_each_possible(cache->cache, ci, hash, hash_32(key)) {
scripts/gendwarfksyms/cache.c
36
void cache_init(struct cache *cache)
scripts/gendwarfksyms/cache.c
38
hash_init(cache->cache);
scripts/gendwarfksyms/cache.c
41
void cache_free(struct cache *cache)
scripts/gendwarfksyms/cache.c
46
hash_for_each_safe(cache->cache, ci, tmp, hash) {
scripts/gendwarfksyms/cache.c
50
hash_init(cache->cache);
scripts/gendwarfksyms/dwarf.c
1004
static int __process_variable(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
1007
process(cache, "variable ");
scripts/gendwarfksyms/dwarf.c
1008
process_type_attr(state, cache, die);
scripts/gendwarfksyms/dwarf.c
1042
static int process_exported_symbols(struct state *unused, struct die *cache,
scripts/gendwarfksyms/dwarf.c
1053
NULL, cache, die, process_exported_symbols, match_all));
scripts/gendwarfksyms/dwarf.c
109
static struct cache srcfile_cache;
scripts/gendwarfksyms/dwarf.c
1108
struct die *cache;
scripts/gendwarfksyms/dwarf.c
1115
if (!__die_map_get((uintptr_t)die->addr, DIE_FQN, &cache))
scripts/gendwarfksyms/dwarf.c
1161
cache = die_map_get(die, DIE_FQN);
scripts/gendwarfksyms/dwarf.c
1163
cache->fqn = fqn;
scripts/gendwarfksyms/dwarf.c
1164
cache->state = DIE_FQN;
scripts/gendwarfksyms/dwarf.c
147
static bool is_kabi_definition(struct die *cache, Dwarf_Die *die)
scripts/gendwarfksyms/dwarf.c
154
if (kabi_is_declonly(cache->fqn))
scripts/gendwarfksyms/dwarf.c
163
static void process(struct die *cache, const char *s)
scripts/gendwarfksyms/dwarf.c
176
if (cache)
scripts/gendwarfksyms/dwarf.c
177
die_debug_r("cache %p string '%s'", cache, s);
scripts/gendwarfksyms/dwarf.c
178
die_map_add_string(cache, s);
scripts/gendwarfksyms/dwarf.c
183
static void process_fmt(struct die *cache, const char *fmt, ...)
scripts/gendwarfksyms/dwarf.c
193
process(cache, buf);
scripts/gendwarfksyms/dwarf.c
197
static void update_fqn(struct die *cache, Dwarf_Die *die)
scripts/gendwarfksyms/dwarf.c
201
if (!cache->fqn) {
scripts/gendwarfksyms/dwarf.c
204
cache->fqn = xstrdup(fqn->fqn);
scripts/gendwarfksyms/dwarf.c
206
cache->fqn = "";
scripts/gendwarfksyms/dwarf.c
210
static void process_fqn(struct die *cache, Dwarf_Die *die)
scripts/gendwarfksyms/dwarf.c
212
update_fqn(cache, die);
scripts/gendwarfksyms/dwarf.c
213
if (*cache->fqn)
scripts/gendwarfksyms/dwarf.c
214
process(cache, " ");
scripts/gendwarfksyms/dwarf.c
215
process(cache, cache->fqn);
scripts/gendwarfksyms/dwarf.c
219
static void process_##attribute##_attr(struct die *cache, \
scripts/gendwarfksyms/dwarf.c
224
process_fmt(cache, " " #attribute "(%" PRIu64 ")", \
scripts/gendwarfksyms/dwarf.c
236
static void process_byte_size_attr(struct die *cache, Dwarf_Die *die)
scripts/gendwarfksyms/dwarf.c
242
if (stable && kabi_get_byte_size(cache->fqn, &override))
scripts/gendwarfksyms/dwarf.c
245
process_fmt(cache, " byte_size(%" PRIu64 ")", value);
scripts/gendwarfksyms/dwarf.c
266
int process_die_container(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
281
res = checkp(func(state, cache, &current));
scripts/gendwarfksyms/dwarf.c
300
static void process_type_attr(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
306
check(process_type(state, cache, &type));
scripts/gendwarfksyms/dwarf.c
311
process(cache, "base_type void");
scripts/gendwarfksyms/dwarf.c
314
static void process_list_comma(struct state *state, struct die *cache)
scripts/gendwarfksyms/dwarf.c
319
process(cache, " ,");
scripts/gendwarfksyms/dwarf.c
320
process_linebreak(cache, 0);
scripts/gendwarfksyms/dwarf.c
325
static void __process_list_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
336
process_list_comma(state, cache);
scripts/gendwarfksyms/dwarf.c
337
process(cache, type);
scripts/gendwarfksyms/dwarf.c
338
process_type_attr(state, cache, die);
scripts/gendwarfksyms/dwarf.c
343
process(cache, " ");
scripts/gendwarfksyms/dwarf.c
344
process(cache, name);
scripts/gendwarfksyms/dwarf.c
347
process_accessibility_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
348
process_bit_size_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
349
process_data_bit_offset_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
350
process_data_member_location_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
355
struct die *cache, Dwarf_Die *die) \
scripts/gendwarfksyms/dwarf.c
357
__process_list_type(state, cache, die, #type " "); \
scripts/gendwarfksyms/dwarf.c
364
static void __process_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
367
process(cache, type);
scripts/gendwarfksyms/dwarf.c
368
process_fqn(cache, die);
scripts/gendwarfksyms/dwarf.c
369
process(cache, " {");
scripts/gendwarfksyms/dwarf.c
370
process_linebreak(cache, 1);
scripts/gendwarfksyms/dwarf.c
371
process_type_attr(state, cache, die);
scripts/gendwarfksyms/dwarf.c
372
process_linebreak(cache, -1);
scripts/gendwarfksyms/dwarf.c
373
process(cache, "}");
scripts/gendwarfksyms/dwarf.c
374
process_byte_size_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
375
process_alignment_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
38
static void process_linebreak(struct die *cache, int n)
scripts/gendwarfksyms/dwarf.c
380
struct die *cache, Dwarf_Die *die) \
scripts/gendwarfksyms/dwarf.c
382
__process_type(state, cache, die, #type "_type"); \
scripts/gendwarfksyms/dwarf.c
398
static void process_subrange_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
404
process_fmt(cache, "[%" PRIu64 "]", count);
scripts/gendwarfksyms/dwarf.c
406
process_fmt(cache, "[%" PRIu64 "]", count + 1);
scripts/gendwarfksyms/dwarf.c
408
process(cache, "[]");
scripts/gendwarfksyms/dwarf.c
411
static void process_array_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
414
process(cache, "array_type");
scripts/gendwarfksyms/dwarf.c
416
check(process_die_container(state, cache, die, process_type,
scripts/gendwarfksyms/dwarf.c
418
process(cache, " {");
scripts/gendwarfksyms/dwarf.c
419
process_linebreak(cache, 1);
scripts/gendwarfksyms/dwarf.c
42
die_map_add_linebreak(cache, n);
scripts/gendwarfksyms/dwarf.c
420
process_type_attr(state, cache, die);
scripts/gendwarfksyms/dwarf.c
421
process_linebreak(cache, -1);
scripts/gendwarfksyms/dwarf.c
422
process(cache, "}");
scripts/gendwarfksyms/dwarf.c
425
static void __process_subroutine_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
428
process(cache, type);
scripts/gendwarfksyms/dwarf.c
429
process(cache, " (");
scripts/gendwarfksyms/dwarf.c
430
process_linebreak(cache, 1);
scripts/gendwarfksyms/dwarf.c
432
check(process_die_container(state, cache, die, process_type,
scripts/gendwarfksyms/dwarf.c
434
process_linebreak(cache, -1);
scripts/gendwarfksyms/dwarf.c
435
process(cache, ")");
scripts/gendwarfksyms/dwarf.c
436
process_linebreak(cache, 0);
scripts/gendwarfksyms/dwarf.c
438
process(cache, "-> ");
scripts/gendwarfksyms/dwarf.c
439
process_type_attr(state, cache, die);
scripts/gendwarfksyms/dwarf.c
442
static void process_subroutine_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
445
__process_subroutine_type(state, cache, die, "subroutine_type");
scripts/gendwarfksyms/dwarf.c
448
static void process_variant_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
451
process_list_comma(state, cache);
scripts/gendwarfksyms/dwarf.c
452
process(cache, "variant {");
scripts/gendwarfksyms/dwarf.c
453
process_linebreak(cache, 1);
scripts/gendwarfksyms/dwarf.c
454
check(process_die_container(state, cache, die, process_type,
scripts/gendwarfksyms/dwarf.c
456
process_linebreak(cache, -1);
scripts/gendwarfksyms/dwarf.c
457
process(cache, "}");
scripts/gendwarfksyms/dwarf.c
458
process_discr_value_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
461
static void process_variant_part_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
464
process_list_comma(state, cache);
scripts/gendwarfksyms/dwarf.c
465
process(cache, "variant_part {");
scripts/gendwarfksyms/dwarf.c
466
process_linebreak(cache, 1);
scripts/gendwarfksyms/dwarf.c
467
check(process_die_container(state, cache, die, process_type,
scripts/gendwarfksyms/dwarf.c
469
process_linebreak(cache, -1);
scripts/gendwarfksyms/dwarf.c
470
process(cache, "}");
scripts/gendwarfksyms/dwarf.c
667
static int ___process_structure_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
674
return check(process_type(state, cache, die));
scripts/gendwarfksyms/dwarf.c
676
return check(process_type(state, cache, die));
scripts/gendwarfksyms/dwarf.c
690
static void __process_structure_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
697
process(cache, type);
scripts/gendwarfksyms/dwarf.c
698
process_fqn(cache, die);
scripts/gendwarfksyms/dwarf.c
699
process(cache, " {");
scripts/gendwarfksyms/dwarf.c
700
process_linebreak(cache, 1);
scripts/gendwarfksyms/dwarf.c
702
expand = state->expand.expand && is_kabi_definition(cache, die);
scripts/gendwarfksyms/dwarf.c
705
state->expand.current_fqn = cache->fqn;
scripts/gendwarfksyms/dwarf.c
706
check(process_die_container(state, cache, die, process_func,
scripts/gendwarfksyms/dwarf.c
710
process_linebreak(cache, -1);
scripts/gendwarfksyms/dwarf.c
711
process(cache, "}");
scripts/gendwarfksyms/dwarf.c
714
process_byte_size_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
715
process_alignment_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
721
struct state *state, struct die *cache, Dwarf_Die *die) \
scripts/gendwarfksyms/dwarf.c
723
__process_structure_type(state, cache, die, \
scripts/gendwarfksyms/dwarf.c
732
static void process_union_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
741
check(process_type(state, cache, &placeholder));
scripts/gendwarfksyms/dwarf.c
745
__process_structure_type(state, cache, die, "union_type",
scripts/gendwarfksyms/dwarf.c
749
static void process_enumerator_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
758
update_fqn(cache, die);
scripts/gendwarfksyms/dwarf.c
761
cache->fqn))
scripts/gendwarfksyms/dwarf.c
765
state->expand.current_fqn, cache->fqn, &override);
scripts/gendwarfksyms/dwarf.c
769
process_list_comma(state, cache);
scripts/gendwarfksyms/dwarf.c
770
process(cache, "enumerator");
scripts/gendwarfksyms/dwarf.c
771
process_fqn(cache, die);
scripts/gendwarfksyms/dwarf.c
774
process(cache, " = ");
scripts/gendwarfksyms/dwarf.c
775
process_fmt(cache, "%" PRIu64, value);
scripts/gendwarfksyms/dwarf.c
779
static void process_enumeration_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
782
__process_structure_type(state, cache, die, "enumeration_type",
scripts/gendwarfksyms/dwarf.c
786
static void process_base_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
789
process(cache, "base_type");
scripts/gendwarfksyms/dwarf.c
790
process_fqn(cache, die);
scripts/gendwarfksyms/dwarf.c
791
process_byte_size_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
792
process_encoding_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
793
process_alignment_attr(cache, die);
scripts/gendwarfksyms/dwarf.c
796
static void process_unspecified_type(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
803
process(cache, "unspecified_type");
scripts/gendwarfksyms/dwarf.c
806
static void process_cached(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
812
list_for_each_entry(df, &cache->fragments, list) {
scripts/gendwarfksyms/dwarf.c
815
die_debug_b("cache %p STRING '%s'", cache,
scripts/gendwarfksyms/dwarf.c
827
cache, df->data.addr, dwarf_tag(&child));
scripts/gendwarfksyms/dwarf.c
864
process_##type##_type(state, cache, die); \
scripts/gendwarfksyms/dwarf.c
870
struct die *cache;
scripts/gendwarfksyms/dwarf.c
895
cache = die_map_get(die, want_state);
scripts/gendwarfksyms/dwarf.c
897
if (cache->state == want_state) {
scripts/gendwarfksyms/dwarf.c
899
die_state_name(cache->state));
scripts/gendwarfksyms/dwarf.c
901
process_cached(state, cache, die);
scripts/gendwarfksyms/dwarf.c
902
die_map_add_die(parent, cache);
scripts/gendwarfksyms/dwarf.c
909
die_state_name(cache->state), die_state_name(want_state));
scripts/gendwarfksyms/dwarf.c
946
die_debug_r("parent %p cache %p die addr %p tag %x", parent, cache,
scripts/gendwarfksyms/dwarf.c
950
cache->tag = tag;
scripts/gendwarfksyms/dwarf.c
951
cache->state = want_state;
scripts/gendwarfksyms/dwarf.c
952
die_map_add_die(parent, cache);
scripts/gendwarfksyms/dwarf.c
963
struct die *cache;
scripts/gendwarfksyms/dwarf.c
965
cache = die_map_get(die, DIE_SYMBOL);
scripts/gendwarfksyms/dwarf.c
967
if (cache->state != DIE_INCOMPLETE)
scripts/gendwarfksyms/dwarf.c
970
cache->tag = dwarf_tag(die);
scripts/gendwarfksyms/dwarf.c
971
return cache;
scripts/gendwarfksyms/dwarf.c
977
struct die *cache;
scripts/gendwarfksyms/dwarf.c
981
cache = get_symbol_cache(state, die);
scripts/gendwarfksyms/dwarf.c
982
if (!cache)
scripts/gendwarfksyms/dwarf.c
986
check(process_func(state, cache, die));
scripts/gendwarfksyms/dwarf.c
987
cache->state = DIE_SYMBOL;
scripts/gendwarfksyms/dwarf.c
992
static int __process_subprogram(struct state *state, struct die *cache,
scripts/gendwarfksyms/dwarf.c
995
__process_subroutine_type(state, cache, die, "subprogram");
scripts/gendwarfksyms/gendwarfksyms.h
211
HASHTABLE_DECLARE(cache, 1 << CACHE_HASH_BITS);
scripts/gendwarfksyms/gendwarfksyms.h
214
void cache_set(struct cache *cache, unsigned long key, int value);
scripts/gendwarfksyms/gendwarfksyms.h
215
int cache_get(struct cache *cache, unsigned long key);
scripts/gendwarfksyms/gendwarfksyms.h
216
void cache_init(struct cache *cache);
scripts/gendwarfksyms/gendwarfksyms.h
217
void cache_free(struct cache *cache);
scripts/gendwarfksyms/gendwarfksyms.h
219
static inline void cache_mark_expanded(struct cache *cache, void *addr)
scripts/gendwarfksyms/gendwarfksyms.h
221
cache_set(cache, (unsigned long)addr, 1);
scripts/gendwarfksyms/gendwarfksyms.h
224
static inline bool cache_was_expanded(struct cache *cache, void *addr)
scripts/gendwarfksyms/gendwarfksyms.h
226
return cache_get(cache, (unsigned long)addr) == 1;
scripts/gendwarfksyms/gendwarfksyms.h
253
struct cache expansion_cache;
scripts/gendwarfksyms/gendwarfksyms.h
259
typedef int (*die_callback_t)(struct state *state, struct die *cache,
scripts/gendwarfksyms/gendwarfksyms.h
264
int process_die_container(struct state *state, struct die *cache,
scripts/gendwarfksyms/types.c
15
static struct cache expansion_cache;
scripts/gendwarfksyms/types.c
293
static char *get_type_name(struct die *cache)
scripts/gendwarfksyms/types.c
299
if (cache->state == DIE_INCOMPLETE) {
scripts/gendwarfksyms/types.c
300
warn("found incomplete cache entry: %p", cache);
scripts/gendwarfksyms/types.c
303
if (cache->state == DIE_SYMBOL || cache->state == DIE_FQN)
scripts/gendwarfksyms/types.c
305
if (!cache->fqn || !*cache->fqn)
scripts/gendwarfksyms/types.c
308
prefix = get_type_prefix(cache->tag);
scripts/gendwarfksyms/types.c
313
quote = strstr(cache->fqn, " ") ? "'" : "";
scripts/gendwarfksyms/types.c
316
if (asprintf(&name, "%c#%s%s%s", prefix, quote, cache->fqn, quote) < 0)
scripts/gendwarfksyms/types.c
317
error("asprintf failed for '%s'", cache->fqn);
scripts/gendwarfksyms/types.c
359
static void __type_expand(struct die *cache, struct type_expansion *type)
scripts/gendwarfksyms/types.c
365
list_for_each_entry(df, &cache->fragments, list) {
scripts/gendwarfksyms/types.c
391
if (list_is_last(&df->list, &cache->fragments) ||
scripts/gendwarfksyms/types.c
397
error("empty die_fragment in %p", cache);
scripts/gendwarfksyms/types.c
402
static void type_expand(const char *name, struct die *cache,
scripts/gendwarfksyms/types.c
412
__type_expand(cache, type);
scripts/gendwarfksyms/types.c
483
static void expand_type(struct die *cache, void *arg)
scripts/gendwarfksyms/types.c
488
if (cache->mapped)
scripts/gendwarfksyms/types.c
491
cache->mapped = true;
scripts/gendwarfksyms/types.c
497
if (cache->state == DIE_UNEXPANDED &&
scripts/gendwarfksyms/types.c
498
!__die_map_get(cache->addr, DIE_COMPLETE, &cache)) {
scripts/gendwarfksyms/types.c
499
if (cache->mapped)
scripts/gendwarfksyms/types.c
502
cache->mapped = true;
scripts/gendwarfksyms/types.c
505
name = get_type_name(cache);
scripts/gendwarfksyms/types.c
511
type_expand(name, cache, &type);
scripts/gendwarfksyms/types.c
521
struct die *cache;
scripts/gendwarfksyms/types.c
531
if (__die_map_get(sym->die_addr, DIE_SYMBOL, &cache))
scripts/gendwarfksyms/types.c
534
type_expand(sym->name, cache, &type);
security/apparmor/lsm.c
2148
struct aa_local_cache *cache;
security/apparmor/lsm.c
2153
cache = get_cpu_ptr(&aa_local_buffers);
security/apparmor/lsm.c
2154
if (!list_empty(&cache->head)) {
security/apparmor/lsm.c
2155
aa_buf = list_first_entry(&cache->head, union aa_buffer, list);
security/apparmor/lsm.c
2157
if (cache->hold)
security/apparmor/lsm.c
2158
cache->hold--;
security/apparmor/lsm.c
2159
cache->count--;
security/apparmor/lsm.c
2173
cache = get_cpu_ptr(&aa_local_buffers);
security/apparmor/lsm.c
2174
cache_hold_inc(&cache->hold);
security/apparmor/lsm.c
2216
struct aa_local_cache *cache;
security/apparmor/lsm.c
2222
cache = get_cpu_ptr(&aa_local_buffers);
security/apparmor/lsm.c
2223
if (!cache->hold) {
security/apparmor/lsm.c
2234
cache = get_cpu_ptr(&aa_local_buffers);
security/apparmor/lsm.c
2235
cache_hold_inc(&cache->hold);
security/apparmor/lsm.c
2239
list_add(&aa_buf->list, &cache->head);
security/apparmor/lsm.c
2240
cache->count++;
security/selinux/ss/services.c
3850
secattr->cache = netlbl_secattr_cache_alloc(GFP_ATOMIC);
security/selinux/ss/services.c
3851
if (secattr->cache == NULL) {
security/selinux/ss/services.c
3857
secattr->cache->free = kfree;
security/selinux/ss/services.c
3858
secattr->cache->data = sid_cache;
security/selinux/ss/services.c
3900
*sid = *(u32 *)secattr->cache->data;
security/selinux/ss/sidtab.c
512
kfree(rcu_dereference_raw(entry->cache));
security/selinux/ss/sidtab.c
566
struct sidtab_str_cache *cache, *victim = NULL;
security/selinux/ss/sidtab.c
575
cache = rcu_dereference_protected(entry->cache,
security/selinux/ss/sidtab.c
577
if (cache) {
security/selinux/ss/sidtab.c
579
list_move(&cache->lru_member, &s->cache_lru_list);
security/selinux/ss/sidtab.c
583
cache = kmalloc_flex(*cache, str, str_len, GFP_ATOMIC);
security/selinux/ss/sidtab.c
584
if (!cache)
security/selinux/ss/sidtab.c
592
rcu_assign_pointer(victim->parent->cache, NULL);
security/selinux/ss/sidtab.c
596
cache->parent = entry;
security/selinux/ss/sidtab.c
597
cache->len = str_len;
security/selinux/ss/sidtab.c
598
memcpy(cache->str, str, str_len);
security/selinux/ss/sidtab.c
599
list_add(&cache->lru_member, &s->cache_lru_list);
security/selinux/ss/sidtab.c
601
rcu_assign_pointer(entry->cache, cache);
security/selinux/ss/sidtab.c
611
struct sidtab_str_cache *cache;
security/selinux/ss/sidtab.c
619
cache = rcu_dereference(entry->cache);
security/selinux/ss/sidtab.c
620
if (!cache) {
security/selinux/ss/sidtab.c
623
*out_len = cache->len;
security/selinux/ss/sidtab.c
625
*out = kmemdup(cache->str, cache->len, GFP_ATOMIC);
security/selinux/ss/sidtab.c
94
isid->entry.cache = NULL;
security/selinux/ss/sidtab.h
26
struct sidtab_str_cache __rcu *cache;
security/smack/smack_access.c
553
skp->smk_netlabel.cache = netlbl_secattr_cache_alloc(GFP_ATOMIC);
security/smack/smack_access.c
554
if (skp->smk_netlabel.cache != NULL) {
security/smack/smack_access.c
556
skp->smk_netlabel.cache->free = NULL;
security/smack/smack_access.c
557
skp->smk_netlabel.cache->data = skp;
security/smack/smack_lsm.c
4082
return (struct smack_known *)sap->cache->data;
sound/aoa/codecs/onyx.c
48
u8 cache[16];
sound/aoa/codecs/onyx.c
575
regs[i] = onyx->cache[register_map[i]-FIRSTREGISTER];
sound/aoa/codecs/onyx.c
71
*value = onyx->cache[reg-FIRSTREGISTER];
sound/aoa/codecs/onyx.c
80
onyx->cache[ONYX_REG_CONTROL-FIRSTREGISTER] = *value;
sound/aoa/codecs/onyx.c
90
onyx->cache[reg-FIRSTREGISTER] = value;
sound/firewire/amdtp-stream.c
1603
if (cached_cycles > tx->ctx_data.tx.cache.size / 2)
sound/firewire/amdtp-stream.c
1735
s->ctx_data.tx.cache.size = max_t(unsigned int, s->syt_interval * 2,
sound/firewire/amdtp-stream.c
1737
s->ctx_data.tx.cache.pos = 0;
sound/firewire/amdtp-stream.c
1738
s->ctx_data.tx.cache.descs = kzalloc_objs(*s->ctx_data.tx.cache.descs,
sound/firewire/amdtp-stream.c
1739
s->ctx_data.tx.cache.size);
sound/firewire/amdtp-stream.c
1740
if (!s->ctx_data.tx.cache.descs) {
sound/firewire/amdtp-stream.c
1842
kfree(s->ctx_data.tx.cache.descs);
sound/firewire/amdtp-stream.c
1934
kfree(s->ctx_data.tx.cache.descs);
sound/firewire/amdtp-stream.c
496
const unsigned int cache_size = s->ctx_data.tx.cache.size;
sound/firewire/amdtp-stream.c
497
unsigned int cycles = s->ctx_data.tx.cache.pos;
sound/firewire/amdtp-stream.c
509
const unsigned int cache_size = s->ctx_data.tx.cache.size;
sound/firewire/amdtp-stream.c
510
struct seq_desc *cache = s->ctx_data.tx.cache.descs;
sound/firewire/amdtp-stream.c
511
unsigned int cache_pos = s->ctx_data.tx.cache.pos;
sound/firewire/amdtp-stream.c
516
struct seq_desc *dst = cache + cache_pos;
sound/firewire/amdtp-stream.c
528
s->ctx_data.tx.cache.pos = cache_pos;
sound/firewire/amdtp-stream.c
546
const struct seq_desc *cache = target->ctx_data.tx.cache.descs;
sound/firewire/amdtp-stream.c
547
const unsigned int cache_size = target->ctx_data.tx.cache.size;
sound/firewire/amdtp-stream.c
552
descs[pos] = cache[cache_pos];
sound/firewire/amdtp-stream.c
574
const unsigned int cache_size = tx->ctx_data.tx.cache.size;
sound/firewire/amdtp-stream.h
155
} cache;
sound/firewire/motu/amdtp-motu.c
303
static void cache_event_offsets(struct amdtp_motu_cache *cache, const __be32 *buf,
sound/firewire/motu/amdtp-motu.c
306
unsigned int *event_offsets = cache->event_offsets;
sound/firewire/motu/amdtp-motu.c
307
const unsigned int cache_size = cache->size;
sound/firewire/motu/amdtp-motu.c
308
unsigned int cache_tail = cache->tail;
sound/firewire/motu/amdtp-motu.c
309
unsigned int base_tick = cache->tx_cycle_count * TICKS_PER_CYCLE;
sound/firewire/motu/amdtp-motu.c
327
cache->tail = cache_tail;
sound/firewire/motu/amdtp-motu.c
328
cache->tx_cycle_count = (cache->tx_cycle_count + 1) % CYCLES_PER_SECOND;
sound/firewire/motu/amdtp-motu.c
340
if (p->cache->tx_cycle_count == UINT_MAX)
sound/firewire/motu/amdtp-motu.c
341
p->cache->tx_cycle_count = (s->domain->processing_cycle.tx_start % CYCLES_PER_SECOND);
sound/firewire/motu/amdtp-motu.c
348
cache_event_offsets(p->cache, buf, data_blocks, s->data_block_quadlets);
sound/firewire/motu/amdtp-motu.c
373
static void write_sph(struct amdtp_motu_cache *cache, __be32 *buffer, unsigned int data_blocks,
sound/firewire/motu/amdtp-motu.c
376
unsigned int *event_offsets = cache->event_offsets;
sound/firewire/motu/amdtp-motu.c
377
const unsigned int cache_size = cache->size;
sound/firewire/motu/amdtp-motu.c
378
unsigned int cache_head = cache->head;
sound/firewire/motu/amdtp-motu.c
379
unsigned int base_tick = cache->rx_cycle_count * TICKS_PER_CYCLE;
sound/firewire/motu/amdtp-motu.c
391
cache->head = cache_head;
sound/firewire/motu/amdtp-motu.c
392
cache->rx_cycle_count = (cache->rx_cycle_count + 1) % CYCLES_PER_SECOND;
sound/firewire/motu/amdtp-motu.c
403
if (p->cache->rx_cycle_count == UINT_MAX)
sound/firewire/motu/amdtp-motu.c
404
p->cache->rx_cycle_count = (s->domain->processing_cycle.rx_start % CYCLES_PER_SECOND);
sound/firewire/motu/amdtp-motu.c
421
write_sph(p->cache, buf, data_blocks, s->data_block_quadlets);
sound/firewire/motu/amdtp-motu.c
436
const struct snd_motu_spec *spec, struct amdtp_motu_cache *cache)
sound/firewire/motu/amdtp-motu.c
45
struct amdtp_motu_cache *cache;
sound/firewire/motu/amdtp-motu.c
482
p->cache = cache;
sound/firewire/motu/motu-stream.c
156
kfree(motu->cache.event_offsets);
sound/firewire/motu/motu-stream.c
157
motu->cache.event_offsets = NULL;
sound/firewire/motu/motu-stream.c
188
motu->cache.size = motu->tx_stream.syt_interval * frames_per_buffer;
sound/firewire/motu/motu-stream.c
189
motu->cache.event_offsets = kcalloc(motu->cache.size, sizeof(*motu->cache.event_offsets),
sound/firewire/motu/motu-stream.c
191
if (!motu->cache.event_offsets) {
sound/firewire/motu/motu-stream.c
285
motu->cache.tail = 0;
sound/firewire/motu/motu-stream.c
286
motu->cache.tx_cycle_count = UINT_MAX;
sound/firewire/motu/motu-stream.c
287
motu->cache.head = 0;
sound/firewire/motu/motu-stream.c
288
motu->cache.rx_cycle_count = UINT_MAX;
sound/firewire/motu/motu-stream.c
327
kfree(motu->cache.event_offsets);
sound/firewire/motu/motu-stream.c
328
motu->cache.event_offsets = NULL;
sound/firewire/motu/motu-stream.c
350
err = amdtp_motu_init(s, motu->unit, dir, motu->spec, &motu->cache);
sound/firewire/motu/motu.h
151
struct amdtp_motu_cache *cache);
sound/firewire/motu/motu.h
81
struct amdtp_motu_cache cache;
sound/pci/emu10k1/emumixer.c
769
unsigned int val, cache;
sound/pci/emu10k1/emumixer.c
773
cache = emu->emu1010.adc_pads;
sound/pci/emu10k1/emumixer.c
775
cache = cache | mask;
sound/pci/emu10k1/emumixer.c
777
cache = cache & ~mask;
sound/pci/emu10k1/emumixer.c
778
change = (cache != emu->emu1010.adc_pads);
sound/pci/emu10k1/emumixer.c
780
snd_emu1010_fpga_write_lock(emu, EMU_HANA_ADC_PADS, cache );
sound/pci/emu10k1/emumixer.c
781
emu->emu1010.adc_pads = cache;
sound/pci/emu10k1/emumixer.c
827
unsigned int val, cache;
sound/pci/emu10k1/emumixer.c
831
cache = emu->emu1010.dac_pads;
sound/pci/emu10k1/emumixer.c
833
cache = cache | mask;
sound/pci/emu10k1/emumixer.c
835
cache = cache & ~mask;
sound/pci/emu10k1/emumixer.c
836
change = (cache != emu->emu1010.dac_pads);
sound/pci/emu10k1/emumixer.c
838
snd_emu1010_fpga_write_lock(emu, EMU_HANA_DAC_PADS, cache );
sound/pci/emu10k1/emumixer.c
839
emu->emu1010.dac_pads = cache;
sound/pci/rme9652/hdsp.c
694
const u32 *cache;
sound/pci/rme9652/hdsp.c
697
cache = hdsp->fw_uploaded;
sound/pci/rme9652/hdsp.c
701
cache = (u32 *)hdsp->firmware->data;
sound/pci/rme9652/hdsp.c
702
if (!cache)
sound/pci/rme9652/hdsp.c
723
hdsp_write(hdsp, HDSP_fifoData, cache[i]);
sound/soc/codecs/idt821034.c
126
conf = IDT821034_MODE_CODEC(ch) | idt821034->cache.codec_conf;
sound/soc/codecs/idt821034.c
131
idt821034->cache.ch[ch].rx_slot);
sound/soc/codecs/idt821034.c
138
idt821034->cache.ch[ch].tx_slot);
sound/soc/codecs/idt821034.c
148
idt821034->cache.ch[ch].power = power;
sound/soc/codecs/idt821034.c
155
return idt821034->cache.ch[ch].power;
sound/soc/codecs/idt821034.c
180
if (idt821034->cache.ch[0].power & IDT821034_CONF_PWRUP_RX) {
sound/soc/codecs/idt821034.c
182
ts = idt821034->cache.ch[0].rx_slot;
sound/soc/codecs/idt821034.c
183
} else if (idt821034->cache.ch[0].power & IDT821034_CONF_PWRUP_TX) {
sound/soc/codecs/idt821034.c
185
ts = idt821034->cache.ch[0].tx_slot;
sound/soc/codecs/idt821034.c
195
idt821034->cache.codec_conf = codec_conf;
sound/soc/codecs/idt821034.c
201
return idt821034->cache.codec_conf;
sound/soc/codecs/idt821034.c
215
conf = IDT821034_MODE_CODEC(ch) | idt821034->cache.codec_conf;
sound/soc/codecs/idt821034.c
218
if (idt821034->cache.ch[ch].power & IDT821034_CONF_PWRUP_RX) {
sound/soc/codecs/idt821034.c
225
idt821034->cache.ch[ch].rx_slot = ts_num;
sound/soc/codecs/idt821034.c
228
if (idt821034->cache.ch[ch].power & IDT821034_CONF_PWRUP_TX) {
sound/soc/codecs/idt821034.c
235
idt821034->cache.ch[ch].tx_slot = ts_num;
sound/soc/codecs/idt821034.c
253
ret = idt821034_2x8bit_write(idt821034, conf, idt821034->cache.ch[ch].slic_control);
sound/soc/codecs/idt821034.c
257
idt821034->cache.ch[ch].slic_conf = slic_dir;
sound/soc/codecs/idt821034.c
264
return idt821034->cache.ch[ch].slic_conf;
sound/soc/codecs/idt821034.c
283
conf = IDT821034_MODE_SLIC(ch) | idt821034->cache.ch[ch].slic_conf;
sound/soc/codecs/idt821034.c
288
idt821034->cache.ch[ch].slic_control = slic_raw;
sound/soc/codecs/idt821034.c
294
return idt821034->cache.ch[ch].slic_control;
sound/soc/codecs/idt821034.c
314
val = IDT821034_MODE_SLIC(ch) | idt821034->cache.ch[ch].slic_conf;
sound/soc/codecs/idt821034.c
319
ret = idt821034_8bit_read(idt821034, idt821034->cache.ch[ch].slic_control, slic_raw);
sound/soc/codecs/idt821034.c
39
} cache;
sound/soc/codecs/max98373-i2c.c
482
regmap_read(max98373->regmap, max98373->cache[i].reg, &max98373->cache[i].val);
sound/soc/codecs/max98373-i2c.c
545
max98373->cache = devm_kcalloc(&i2c->dev, max98373->cache_num,
sound/soc/codecs/max98373-i2c.c
546
sizeof(*max98373->cache),
sound/soc/codecs/max98373-i2c.c
548
if (!max98373->cache) {
sound/soc/codecs/max98373-i2c.c
554
max98373->cache[i].reg = max98373_i2c_cache_reg[i];
sound/soc/codecs/max98373-sdw.c
256
regmap_read(max98373->regmap, max98373->cache[i].reg, &max98373->cache[i].val);
sound/soc/codecs/max98373-sdw.c
747
max98373->cache = devm_kcalloc(dev, max98373->cache_num,
sound/soc/codecs/max98373-sdw.c
748
sizeof(*max98373->cache),
sound/soc/codecs/max98373-sdw.c
750
if (!max98373->cache)
sound/soc/codecs/max98373-sdw.c
754
max98373->cache[i].reg = max98373_sdw_cache_reg[i];
sound/soc/codecs/max98373.c
189
if (mc->reg == max98373->cache[i].reg) {
sound/soc/codecs/max98373.c
190
ucontrol->value.integer.value[0] = max98373->cache[i].val;
sound/soc/codecs/max98373.h
224
struct max98373_cache *cache;
sound/soc/codecs/peb2466.c
1669
unsigned int *cache;
sound/soc/codecs/peb2466.c
1673
cache = &peb2466->gpio.cache.xr0;
sound/soc/codecs/peb2466.c
1676
cache = &peb2466->gpio.cache.xr1;
sound/soc/codecs/peb2466.c
1679
cache = &peb2466->gpio.cache.xr2;
sound/soc/codecs/peb2466.c
1682
cache = &peb2466->gpio.cache.xr3;
sound/soc/codecs/peb2466.c
1685
cache = NULL;
sound/soc/codecs/peb2466.c
1688
return cache;
sound/soc/codecs/peb2466.c
1695
unsigned int *cache;
sound/soc/codecs/peb2466.c
1707
cache = peb2466_chip_gpio_get_cache(peb2466, xr_reg);
sound/soc/codecs/peb2466.c
1708
if (!cache) {
sound/soc/codecs/peb2466.c
1713
tmp = *cache;
sound/soc/codecs/peb2466.c
1721
*cache = tmp;
sound/soc/codecs/peb2466.c
1767
unsigned int *cache;
sound/soc/codecs/peb2466.c
1790
cache = peb2466_chip_gpio_get_cache(peb2466, xr_reg);
sound/soc/codecs/peb2466.c
1791
if (!cache)
sound/soc/codecs/peb2466.c
1793
val = *cache;
sound/soc/codecs/peb2466.c
1921
peb2466->gpio.cache.xr0 = 0;
sound/soc/codecs/peb2466.c
1922
peb2466->gpio.cache.xr1 = 0;
sound/soc/codecs/peb2466.c
1923
peb2466->gpio.cache.xr2 = 0;
sound/soc/codecs/peb2466.c
1924
peb2466->gpio.cache.xr3 = 0;
sound/soc/codecs/peb2466.c
63
} cache;
sound/soc/codecs/sigmadsp.c
146
memcpy(ctrl->cache, data, ctrl->num_bytes);
sound/soc/codecs/sigmadsp.c
166
ret = sigmadsp_read(sigmadsp, ctrl->addr, ctrl->cache,
sound/soc/codecs/sigmadsp.c
173
memcpy(ucontrol->value.bytes.data, ctrl->cache,
sound/soc/codecs/sigmadsp.c
38
uint8_t cache[];
sound/soc/codecs/sigmadsp.c
682
sigmadsp_ctrl_write(sigmadsp, ctrl, ctrl->cache);
sound/soc/codecs/tlv320dac33.c
163
u8 *cache = dac33->reg_cache;
sound/soc/codecs/tlv320dac33.c
167
return cache[reg];
sound/soc/codecs/tlv320dac33.c
174
u8 *cache = dac33->reg_cache;
sound/soc/codecs/tlv320dac33.c
178
cache[reg] = value;
sound/soc/codecs/tscs454.c
320
coeff_ram = tscs454->dac_ram.cache;
sound/soc/codecs/tscs454.c
323
coeff_ram = tscs454->spk_ram.cache;
sound/soc/codecs/tscs454.c
326
coeff_ram = tscs454->sub_ram.cache;
sound/soc/codecs/tscs454.c
407
coeff_ram = tscs454->dac_ram.cache;
sound/soc/codecs/tscs454.c
414
coeff_ram = tscs454->spk_ram.cache;
sound/soc/codecs/tscs454.c
421
coeff_ram = tscs454->sub_ram.cache;
sound/soc/codecs/tscs454.c
470
ret = write_coeff_ram(component, tscs454->dac_ram.cache,
sound/soc/codecs/tscs454.c
482
ret = write_coeff_ram(component, tscs454->spk_ram.cache,
sound/soc/codecs/tscs454.c
494
ret = write_coeff_ram(component, tscs454->sub_ram.cache,
sound/soc/codecs/tscs454.c
71
u8 cache[COEFF_RAM_SIZE];
sound/soc/codecs/tscs454.c
76
static inline void init_coeff_ram_cache(u8 *cache)
sound/soc/codecs/tscs454.c
86
cache[((norm_addrs[i] + 1) * COEFF_SIZE) - 1] = 0x40;
sound/soc/codecs/tscs454.c
91
init_coeff_ram_cache(ram->cache);
sound/soc/codecs/uda1380.c
138
u16 *cache = uda1380->reg_cache;
sound/soc/codecs/uda1380.c
143
data[1] = (cache[reg] & 0xff00) >> 8;
sound/soc/codecs/uda1380.c
144
data[2] = cache[reg] & 0x00ff;
sound/soc/codecs/uda1380.c
65
u16 *cache = uda1380->reg_cache;
sound/soc/codecs/uda1380.c
71
return cache[reg];
sound/soc/codecs/uda1380.c
81
u16 *cache = uda1380->reg_cache;
sound/soc/codecs/uda1380.c
85
if ((reg >= 0x10) && (cache[reg] != value))
sound/soc/codecs/uda1380.c
87
cache[reg] = value;
sound/soc/codecs/wm_adsp.c
478
ret = cs_dsp_coeff_read_ctrl(cs_ctl, 0, cs_ctl->cache, size);
sound/soc/codecs/wm_adsp.c
480
if (!ret && copy_to_user(bytes, cs_ctl->cache, size))
sound/soc/codecs/wm_hubs.c
153
struct wm_hubs_dcs_cache *cache;
sound/soc/codecs/wm_hubs.c
162
list_for_each_entry(cache, &hubs->dcs_cache, list) {
sound/soc/codecs/wm_hubs.c
163
if (cache->left != left || cache->right != right)
sound/soc/codecs/wm_hubs.c
166
*entry = cache;
sound/soc/codecs/wm_hubs.c
176
struct wm_hubs_dcs_cache *cache;
sound/soc/codecs/wm_hubs.c
181
cache = devm_kzalloc(component->dev, sizeof(*cache), GFP_KERNEL);
sound/soc/codecs/wm_hubs.c
182
if (!cache)
sound/soc/codecs/wm_hubs.c
185
cache->left = snd_soc_component_read(component, WM8993_LEFT_OUTPUT_VOLUME);
sound/soc/codecs/wm_hubs.c
186
cache->left &= WM8993_HPOUT1L_VOL_MASK;
sound/soc/codecs/wm_hubs.c
188
cache->right = snd_soc_component_read(component, WM8993_RIGHT_OUTPUT_VOLUME);
sound/soc/codecs/wm_hubs.c
189
cache->right &= WM8993_HPOUT1R_VOL_MASK;
sound/soc/codecs/wm_hubs.c
191
cache->dcs_cfg = dcs_cfg;
sound/soc/codecs/wm_hubs.c
193
list_add_tail(&cache->list, &hubs->dcs_cache);
sound/soc/codecs/wm_hubs.c
245
struct wm_hubs_dcs_cache *cache;
sound/soc/codecs/wm_hubs.c
261
wm_hubs_dcs_cache_get(component, &cache)) {
sound/soc/codecs/wm_hubs.c
263
cache->dcs_cfg, cache->left, cache->right);
sound/soc/codecs/wm_hubs.c
264
snd_soc_component_write(component, dcs_reg, cache->dcs_cfg);
tools/include/linux/slab.h
132
struct kmem_cache *cache;
tools/lib/bpf/features.c
651
bool feat_supported(struct kern_feature_cache *cache, enum kern_feature_id feat_id)
tools/lib/bpf/features.c
657
if (!cache)
tools/lib/bpf/features.c
658
cache = &feature_cache;
tools/lib/bpf/features.c
660
if (READ_ONCE(cache->res[feat_id]) == FEAT_UNKNOWN) {
tools/lib/bpf/features.c
661
ret = feat->probe(cache->token_fd);
tools/lib/bpf/features.c
663
WRITE_ONCE(cache->res[feat_id], FEAT_SUPPORTED);
tools/lib/bpf/features.c
665
WRITE_ONCE(cache->res[feat_id], FEAT_MISSING);
tools/lib/bpf/features.c
669
WRITE_ONCE(cache->res[feat_id], FEAT_MISSING);
tools/lib/bpf/features.c
673
return READ_ONCE(cache->res[feat_id]) == FEAT_SUPPORTED;
tools/lib/bpf/libbpf_internal.h
411
bool feat_supported(struct kern_feature_cache *cache, enum kern_feature_id feat_id);
tools/lib/perf/include/perf/cpumap.h
16
int cache;
tools/perf/builtin-probe.c
416
struct probe_cache *cache;
tools/perf/builtin-probe.c
429
cache = probe_cache__new(nd->s, NULL);
tools/perf/builtin-probe.c
430
if (!cache)
tools/perf/builtin-probe.c
432
if (probe_cache__filter_purge(cache, filter) < 0 ||
tools/perf/builtin-probe.c
433
probe_cache__commit(cache) < 0)
tools/perf/builtin-probe.c
435
probe_cache__delete(cache);
tools/perf/builtin-probe.c
452
if (probe_conf.cache)
tools/perf/builtin-probe.c
599
OPT_BOOLEAN(0, "cache", &probe_conf.cache, "Manipulate probe cache"),
tools/perf/builtin-stat.c
1261
opt_aggr_mode->cache = true;
tools/perf/builtin-stat.c
1298
static int cpu__get_cache_details(struct perf_cpu cpu, struct perf_cache *cache)
tools/perf/builtin-stat.c
1305
cache->cache_lvl = (cache_level > MAX_CACHE_LVL) ? 0 : cache_level;
tools/perf/builtin-stat.c
1306
cache->cache = -1;
tools/perf/builtin-stat.c
1336
cache->cache_lvl = caches[max_level_index].level;
tools/perf/builtin-stat.c
1337
cache->cache = cpu__get_cache_id_from_map(cpu, caches[max_level_index].map);
tools/perf/builtin-stat.c
1346
cache->cache_lvl = cache_level;
tools/perf/builtin-stat.c
1347
cache->cache = cpu__get_cache_id_from_map(cpu, caches[i].map);
tools/perf/builtin-stat.c
1373
struct perf_cache cache;
tools/perf/builtin-stat.c
1379
ret = cpu__get_cache_details(cpu, &cache);
tools/perf/builtin-stat.c
1383
id.cache_lvl = cache.cache_lvl;
tools/perf/builtin-stat.c
1384
id.cache = cache.cache;
tools/perf/builtin-stat.c
163
bool node, socket, die, cluster, cache, core, thread, no_aggr;
tools/perf/builtin-stat.c
1658
id->cache = -1;
tools/perf/builtin-stat.c
1681
id->cache = cpu__get_cache_id_from_map(cpu, caches[i].map);
tools/perf/builtin-stat.c
179
if (opt_mode->cache)
tools/perf/tests/sdt.c
62
struct probe_cache *cache = probe_cache__new(target, NULL);
tools/perf/tests/sdt.c
65
if (!cache) {
tools/perf/tests/sdt.c
70
if (!probe_cache__find_by_name(cache, group, event)) {
tools/perf/tests/sdt.c
74
probe_cache__delete(cache);
tools/perf/ui/browsers/hists.c
1288
__HPP_COLOR_MEM_STAT_FN(cache, CACHE)
tools/perf/ui/hist.c
656
HPP_MEM_STAT_FNS(cache, CACHE)
tools/perf/ui/hist.c
764
HPP__MEM_STAT_PRINT_FNS("Cache", cache, CACHE),
tools/perf/util/build-id.c
556
struct probe_cache *cache;
tools/perf/util/build-id.c
560
cache = probe_cache__new(sbuild_id, nsi);
tools/perf/util/build-id.c
561
if (!cache)
tools/perf/util/build-id.c
565
ret = probe_cache__scan_sdt(cache, realname);
tools/perf/util/build-id.c
569
if (probe_cache__commit(cache) < 0)
tools/perf/util/build-id.c
572
probe_cache__delete(cache);
tools/perf/util/cpumap.c
245
else if (a->cache != b->cache)
tools/perf/util/cpumap.c
246
return a->cache - b->cache;
tools/perf/util/cpumap.c
741
a->cache == b->cache &&
tools/perf/util/cpumap.c
754
a->cache == -1 &&
tools/perf/util/cpumap.c
768
.cache = -1,
tools/perf/util/cpumap.h
30
int cache;
tools/perf/util/dso.c
1014
struct dso_cache *cache;
tools/perf/util/dso.c
1017
cache = zalloc(sizeof(*cache) + DSO__DATA_CACHE_SIZE);
tools/perf/util/dso.c
1018
if (!cache) {
tools/perf/util/dso.c
1024
*ret = bpf_read(dso, cache_offset, cache->data);
tools/perf/util/dso.c
1030
*ret = file_read(dso, machine, cache_offset, cache->data);
tools/perf/util/dso.c
1033
free(cache);
tools/perf/util/dso.c
1037
cache->offset = cache_offset;
tools/perf/util/dso.c
1038
cache->size = *ret;
tools/perf/util/dso.c
1040
old = dso_cache__insert(dso, cache);
tools/perf/util/dso.c
1043
free(cache);
tools/perf/util/dso.c
1044
cache = old;
tools/perf/util/dso.c
1047
return cache;
tools/perf/util/dso.c
1055
struct dso_cache *cache = __dso_cache__find(dso, offset);
tools/perf/util/dso.c
1057
return cache ? cache : dso_cache__populate(dso, machine, offset, ret);
tools/perf/util/dso.c
1063
struct dso_cache *cache;
tools/perf/util/dso.c
1066
cache = dso_cache__find(dso, machine, offset, &ret);
tools/perf/util/dso.c
1067
if (!cache)
tools/perf/util/dso.c
1070
return dso_cache__memcpy(cache, offset, data, size, out);
tools/perf/util/dso.c
1654
data->cache = RB_ROOT;
tools/perf/util/dso.c
897
struct rb_root *root = &dso__data(dso)->cache;
tools/perf/util/dso.c
902
struct dso_cache *cache;
tools/perf/util/dso.c
904
cache = rb_entry(next, struct dso_cache, rb_node);
tools/perf/util/dso.c
905
next = rb_next(&cache->rb_node);
tools/perf/util/dso.c
906
rb_erase(&cache->rb_node, root);
tools/perf/util/dso.c
907
free(cache);
tools/perf/util/dso.c
914
const struct rb_root *root = &dso__data(dso)->cache;
tools/perf/util/dso.c
917
struct dso_cache *cache;
tools/perf/util/dso.c
923
cache = rb_entry(parent, struct dso_cache, rb_node);
tools/perf/util/dso.c
924
end = cache->offset + DSO__DATA_CACHE_SIZE;
tools/perf/util/dso.c
926
if (offset < cache->offset)
tools/perf/util/dso.c
931
return cache;
tools/perf/util/dso.c
940
struct rb_root *root = &dso__data(dso)->cache;
tools/perf/util/dso.c
943
struct dso_cache *cache;
tools/perf/util/dso.c
951
cache = rb_entry(parent, struct dso_cache, rb_node);
tools/perf/util/dso.c
952
end = cache->offset + DSO__DATA_CACHE_SIZE;
tools/perf/util/dso.c
954
if (offset < cache->offset)
tools/perf/util/dso.c
965
cache = NULL;
tools/perf/util/dso.c
968
return cache;
tools/perf/util/dso.c
971
static ssize_t dso_cache__memcpy(struct dso_cache *cache, u64 offset, u8 *data,
tools/perf/util/dso.c
974
u64 cache_offset = offset - cache->offset;
tools/perf/util/dso.c
975
u64 cache_size = min(cache->size - cache_offset, size);
tools/perf/util/dso.c
978
memcpy(data, cache->data + cache_offset, cache_size);
tools/perf/util/dso.c
980
memcpy(cache->data + cache_offset, data, cache_size);
tools/perf/util/dso.h
227
struct rb_root cache;
tools/perf/util/dso.h
411
static inline void dso__set_auxtrace_cache(struct dso *dso, struct auxtrace_cache *cache)
tools/perf/util/dso.h
413
RC_CHK_ACCESS(dso)->auxtrace_cache = cache;
tools/perf/util/env.c
584
void cpu_cache_level__free(struct cpu_cache_level *cache)
tools/perf/util/env.c
586
zfree(&cache->type);
tools/perf/util/env.c
587
zfree(&cache->map);
tools/perf/util/env.c
588
zfree(&cache->size);
tools/perf/util/env.h
187
void cpu_cache_level__free(struct cpu_cache_level *cache);
tools/perf/util/header.c
1140
static int cpu_cache_level__read(struct cpu_cache_level *cache, u32 cpu, u16 level)
tools/perf/util/header.c
1153
if (sysfs__read_int(file, (int *) &cache->level))
tools/perf/util/header.c
1157
if (sysfs__read_int(file, (int *) &cache->line_size))
tools/perf/util/header.c
1161
if (sysfs__read_int(file, (int *) &cache->sets))
tools/perf/util/header.c
1165
if (sysfs__read_int(file, (int *) &cache->ways))
tools/perf/util/header.c
1169
if (sysfs__read_str(file, &cache->type, &len))
tools/perf/util/header.c
1172
cache->type[len] = 0;
tools/perf/util/header.c
1173
cache->type = strim(cache->type);
tools/perf/util/header.c
1176
if (sysfs__read_str(file, &cache->size, &len)) {
tools/perf/util/header.c
1177
zfree(&cache->type);
tools/perf/util/header.c
1181
cache->size[len] = 0;
tools/perf/util/header.c
1182
cache->size = strim(cache->size);
tools/perf/util/header.c
1185
if (sysfs__read_str(file, &cache->map, &len)) {
tools/perf/util/header.c
1186
zfree(&cache->size);
tools/perf/util/header.c
1187
zfree(&cache->type);
tools/perf/util/header.c
1191
cache->map[len] = 0;
tools/perf/util/header.c
1192
cache->map = strim(cache->map);
tools/perf/util/header.c
3750
FEAT_OPN(CACHE, cache, true),
tools/perf/util/ordered-events.c
102
struct list_head *cache = &oe->cache;
tools/perf/util/ordered-events.c
140
if (!list_empty(cache)) {
tools/perf/util/ordered-events.c
141
new = list_entry(cache->next, struct ordered_event, list);
tools/perf/util/ordered-events.c
188
list_move(&event->list, &oe->cache);
tools/perf/util/ordered-events.c
365
INIT_LIST_HEAD(&oe->cache);
tools/perf/util/ordered-events.h
43
struct list_head cache;
tools/perf/util/probe-event.c
2757
if (probe_conf.cache)
tools/perf/util/probe-event.c
2988
struct probe_cache *cache = NULL;
tools/perf/util/probe-event.c
3033
if (ret == 0 && probe_conf.cache) {
tools/perf/util/probe-event.c
3034
cache = probe_cache__new(pev->target, pev->nsi);
tools/perf/util/probe-event.c
3035
if (!cache ||
tools/perf/util/probe-event.c
3036
probe_cache__add_entry(cache, pev, tevs, ntevs) < 0 ||
tools/perf/util/probe-event.c
3037
probe_cache__commit(cache) < 0)
tools/perf/util/probe-event.c
3039
probe_cache__delete(cache);
tools/perf/util/probe-event.c
3437
struct probe_cache *cache;
tools/perf/util/probe-event.c
3443
cache = probe_cache__new(target, pev->nsi);
tools/perf/util/probe-event.c
3445
if (!cache)
tools/perf/util/probe-event.c
3448
for_each_probe_cache_entry(entry, cache) {
tools/perf/util/probe-event.c
3462
probe_cache__delete(cache);
tools/perf/util/probe-event.c
3520
struct probe_cache *cache;
tools/perf/util/probe-event.c
3533
cache = probe_cache__new(pev->target, pev->nsi);
tools/perf/util/probe-event.c
3534
if (!cache)
tools/perf/util/probe-event.c
3537
entry = probe_cache__find(cache, pev);
tools/perf/util/probe-event.c
3570
probe_cache__delete(cache);
tools/perf/util/probe-event.h
17
bool cache;
tools/perf/util/s390-sample-raw.c
179
static struct hashmap *cache;
tools/perf/util/s390-sample-raw.c
191
if (cache_pmu == pmu && hashmap__find(cache, cache_key, &result))
tools/perf/util/s390-sample-raw.c
205
cache = tmp;
tools/perf/util/s390-sample-raw.c
214
hashmap__set(cache, cache_key, new_value, /*old_key=*/NULL, &old_value);
tools/perf/util/stat-display.c
270
id.socket, id.die, id.cache_lvl, id.cache);
tools/perf/util/stat-display.c
323
id.socket, id.die, id.cache_lvl, id.cache, sep, aggr_nr, sep);
tools/perf/util/stat-display.c
374
id.socket, id.die, id.cache_lvl, id.cache, aggr_nr);
tools/testing/selftests/iommu/iommufd_utils.h
289
.cache = expected, \
tools/testing/selftests/powerpc/pmu/sampling_tests/mmcr1_sel_unit_cache_test.c
66
FAIL_IF(EV_CODE_EXTRACT(event.attr.config, cache) !=
tools/testing/selftests/vDSO/vdso_test_correctness.c
147
void* cache)
tools/testing/selftests/vDSO/vdso_test_correctness.c
149
return syscall(__NR_getcpu, cpu, node, cache);
tools/testing/selftests/x86/test_vsyscall.c
106
void* cache)
tools/testing/selftests/x86/test_vsyscall.c
108
return syscall(SYS_getcpu, cpu, node, cache);
tools/testing/shared/linux.c
272
sheaf->cache = s;