Lines Matching defs:swhash
11024 find_swevent_head_rcu(struct swevent_htable *swhash, u64 type, u32 event_id)
11028 hlist = rcu_dereference(swhash->swevent_hlist);
11037 find_swevent_head(struct swevent_htable *swhash, struct perf_event *event)
11048 hlist = rcu_dereference_protected(swhash->swevent_hlist,
11061 struct swevent_htable *swhash = this_cpu_ptr(&swevent_htable);
11066 head = find_swevent_head_rcu(swhash, type, event_id);
11124 struct swevent_htable *swhash = this_cpu_ptr(&swevent_htable);
11135 head = find_swevent_head(swhash, event);
11162 swevent_hlist_deref(struct swevent_htable *swhash)
11164 return rcu_dereference_protected(swhash->swevent_hlist,
11165 lockdep_is_held(&swhash->hlist_mutex));
11168 static void swevent_hlist_release(struct swevent_htable *swhash)
11170 struct swevent_hlist *hlist = swevent_hlist_deref(swhash);
11175 RCU_INIT_POINTER(swhash->swevent_hlist, NULL);
11181 struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu);
11183 mutex_lock(&swhash->hlist_mutex);
11185 if (!--swhash->hlist_refcount)
11186 swevent_hlist_release(swhash);
11188 mutex_unlock(&swhash->hlist_mutex);
11201 struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu);
11204 mutex_lock(&swhash->hlist_mutex);
11205 if (!swevent_hlist_deref(swhash) &&
11214 rcu_assign_pointer(swhash->swevent_hlist, hlist);
11216 swhash->hlist_refcount++;
11218 mutex_unlock(&swhash->hlist_mutex);
15104 struct swevent_htable *swhash;
15117 swhash = &per_cpu(swevent_htable, cpu);
15118 mutex_init(&swhash->hlist_mutex);
15137 struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu);
15139 mutex_lock(&swhash->hlist_mutex);
15140 if (swhash->hlist_refcount > 0 && !swevent_hlist_deref(swhash)) {
15145 rcu_assign_pointer(swhash->swevent_hlist, hlist);
15147 mutex_unlock(&swhash->hlist_mutex);