Lines Matching defs:cache
774 struct ghes_estatus_cache *cache;
780 cache = rcu_dereference(ghes_estatus_caches[i]);
781 if (cache == NULL)
783 if (len != cache->estatus_len)
785 cache_estatus = GHES_ESTATUS_FROM_CACHE(cache);
788 atomic_inc(&cache->count);
790 if (now - cache->time_in < GHES_ESTATUS_IN_CACHE_MAX_NSEC)
804 struct ghes_estatus_cache *cache;
814 cache = (void *)gen_pool_alloc(ghes_estatus_pool, cache_len);
815 if (!cache) {
819 cache_estatus = GHES_ESTATUS_FROM_CACHE(cache);
821 cache->estatus_len = len;
822 atomic_set(&cache->count, 0);
823 cache->generic = generic;
824 cache->time_in = sched_clock();
825 return cache;
830 struct ghes_estatus_cache *cache;
833 cache = container_of(head, struct ghes_estatus_cache, rcu);
834 len = cper_estatus_len(GHES_ESTATUS_FROM_CACHE(cache));
836 gen_pool_free(ghes_estatus_pool, (unsigned long)cache, len);
845 struct ghes_estatus_cache *cache, *new_cache;
856 cache = rcu_dereference(ghes_estatus_caches[i]);
857 if (cache == NULL) {
861 duration = now - cache->time_in;
866 count = atomic_read(&cache->count);
879 * running on another CPU will see the updated cache fields if
889 * drop the other item anyway: this may cause a false cache