Lines Matching defs:cache
739 struct ghes_estatus_cache *cache;
745 cache = rcu_dereference(ghes_estatus_caches[i]);
746 if (cache == NULL)
748 if (len != cache->estatus_len)
750 cache_estatus = GHES_ESTATUS_FROM_CACHE(cache);
753 atomic_inc(&cache->count);
755 if (now - cache->time_in < GHES_ESTATUS_IN_CACHE_MAX_NSEC)
769 struct ghes_estatus_cache *cache;
779 cache = (void *)gen_pool_alloc(ghes_estatus_pool, cache_len);
780 if (!cache) {
784 cache_estatus = GHES_ESTATUS_FROM_CACHE(cache);
786 cache->estatus_len = len;
787 atomic_set(&cache->count, 0);
788 cache->generic = generic;
789 cache->time_in = sched_clock();
790 return cache;
793 static void ghes_estatus_cache_free(struct ghes_estatus_cache *cache)
797 len = cper_estatus_len(GHES_ESTATUS_FROM_CACHE(cache));
799 gen_pool_free(ghes_estatus_pool, (unsigned long)cache, len);
805 struct ghes_estatus_cache *cache;
807 cache = container_of(head, struct ghes_estatus_cache, rcu);
808 ghes_estatus_cache_free(cache);
817 struct ghes_estatus_cache *cache, *slot_cache = NULL, *new_cache;
825 cache = rcu_dereference(ghes_estatus_caches[i]);
826 if (cache == NULL) {
831 duration = now - cache->time_in;
834 slot_cache = cache;
837 count = atomic_read(&cache->count);
843 slot_cache = cache;