Lines Matching refs:aerr
217 static struct aca_bank_error *new_bank_error(struct aca_error *aerr, struct aca_bank_info *info) in new_bank_error() argument
228 mutex_lock(&aerr->lock); in new_bank_error()
229 list_add_tail(&bank_error->node, &aerr->list); in new_bank_error()
230 mutex_unlock(&aerr->lock); in new_bank_error()
235 static struct aca_bank_error *find_bank_error(struct aca_error *aerr, struct aca_bank_info *info) in find_bank_error() argument
241 mutex_lock(&aerr->lock); in find_bank_error()
242 list_for_each_entry(bank_error, &aerr->list, node) { in find_bank_error()
252 mutex_unlock(&aerr->lock); in find_bank_error()
257 static void aca_bank_error_remove(struct aca_error *aerr, struct aca_bank_error *bank_error) in aca_bank_error_remove() argument
259 if (!aerr || !bank_error) in aca_bank_error_remove()
263 aerr->nr_errors--; in aca_bank_error_remove()
268 static struct aca_bank_error *get_bank_error(struct aca_error *aerr, struct aca_bank_info *info) in get_bank_error() argument
272 if (!aerr || !info) in get_bank_error()
275 bank_error = find_bank_error(aerr, info); in get_bank_error()
279 return new_bank_error(aerr, info); in get_bank_error()
287 struct aca_error *aerr; in aca_error_cache_log_bank_error() local
295 aerr = &error_cache->errors[type]; in aca_error_cache_log_bank_error()
296 bank_error = get_bank_error(aerr, info); in aca_error_cache_log_bank_error()
477 struct aca_error *aerr = &error_cache->errors[type]; in aca_log_aca_error() local
480 mutex_lock(&aerr->lock); in aca_log_aca_error()
482 if (list_empty(&aerr->list)) in aca_log_aca_error()
485 list_for_each_entry_safe(bank_error, tmp, &aerr->list, node) { in aca_log_aca_error()
487 aca_bank_error_remove(aerr, bank_error); in aca_log_aca_error()
491 mutex_unlock(&aerr->lock); in aca_log_aca_error()
546 static void aca_error_init(struct aca_error *aerr, enum aca_error_type type) in aca_error_init() argument
548 mutex_init(&aerr->lock); in aca_error_init()
549 INIT_LIST_HEAD(&aerr->list); in aca_error_init()
550 aerr->type = type; in aca_error_init()
551 aerr->nr_errors = 0; in aca_error_init()
563 static void aca_error_fini(struct aca_error *aerr) in aca_error_fini() argument
567 mutex_lock(&aerr->lock); in aca_error_fini()
568 if (list_empty(&aerr->list)) in aca_error_fini()
571 list_for_each_entry_safe(bank_error, tmp, &aerr->list, node) in aca_error_fini()
572 aca_bank_error_remove(aerr, bank_error); in aca_error_fini()
575 mutex_destroy(&aerr->lock); in aca_error_fini()