Lines Matching refs:aerr
219 static struct aca_bank_error *new_bank_error(struct aca_error *aerr, struct aca_bank_info *info) in new_bank_error() argument
230 mutex_lock(&aerr->lock); in new_bank_error()
231 list_add_tail(&bank_error->node, &aerr->list); in new_bank_error()
232 mutex_unlock(&aerr->lock); in new_bank_error()
237 static struct aca_bank_error *find_bank_error(struct aca_error *aerr, struct aca_bank_info *info) in find_bank_error() argument
243 mutex_lock(&aerr->lock); in find_bank_error()
244 list_for_each_entry(bank_error, &aerr->list, node) { in find_bank_error()
254 mutex_unlock(&aerr->lock); in find_bank_error()
259 static void aca_bank_error_remove(struct aca_error *aerr, struct aca_bank_error *bank_error) in aca_bank_error_remove() argument
261 if (!aerr || !bank_error) in aca_bank_error_remove()
265 aerr->nr_errors--; in aca_bank_error_remove()
270 static struct aca_bank_error *get_bank_error(struct aca_error *aerr, struct aca_bank_info *info) in get_bank_error() argument
274 if (!aerr || !info) in get_bank_error()
277 bank_error = find_bank_error(aerr, info); in get_bank_error()
281 return new_bank_error(aerr, info); in get_bank_error()
289 struct aca_error *aerr; in aca_error_cache_log_bank_error() local
297 aerr = &error_cache->errors[type]; in aca_error_cache_log_bank_error()
298 bank_error = get_bank_error(aerr, info); in aca_error_cache_log_bank_error()
531 struct aca_error *aerr = &error_cache->errors[type]; in aca_log_aca_error() local
534 mutex_lock(&aerr->lock); in aca_log_aca_error()
536 if (list_empty(&aerr->list)) in aca_log_aca_error()
539 list_for_each_entry_safe(bank_error, tmp, &aerr->list, node) { in aca_log_aca_error()
541 aca_bank_error_remove(aerr, bank_error); in aca_log_aca_error()
545 mutex_unlock(&aerr->lock); in aca_log_aca_error()
604 static void aca_error_init(struct aca_error *aerr, enum aca_error_type type) in aca_error_init() argument
606 mutex_init(&aerr->lock); in aca_error_init()
607 INIT_LIST_HEAD(&aerr->list); in aca_error_init()
608 aerr->type = type; in aca_error_init()
609 aerr->nr_errors = 0; in aca_error_init()
621 static void aca_error_fini(struct aca_error *aerr) in aca_error_fini() argument
625 mutex_lock(&aerr->lock); in aca_error_fini()
626 if (list_empty(&aerr->list)) in aca_error_fini()
629 list_for_each_entry_safe(bank_error, tmp, &aerr->list, node) in aca_error_fini()
630 aca_bank_error_remove(aerr, bank_error); in aca_error_fini()
633 mutex_destroy(&aerr->lock); in aca_error_fini()