INIT_LIST_HEAD(&bank_error->node);
memcpy(&bank_error->info, info, sizeof(*info));
- mutex_lock(&aerr->lock);
+ spin_lock(&aerr->lock);
list_add_tail(&bank_error->node, &aerr->list);
- mutex_unlock(&aerr->lock);
+ spin_unlock(&aerr->lock);
return bank_error;
}
struct aca_bank_info *tmp_info;
bool found = false;
- mutex_lock(&aerr->lock);
+ spin_lock(&aerr->lock);
list_for_each_entry(bank_error, &aerr->list, node) {
tmp_info = &bank_error->info;
if (tmp_info->socket_id == info->socket_id &&
}
out_unlock:
- mutex_unlock(&aerr->lock);
+ spin_unlock(&aerr->lock);
return found ? bank_error : NULL;
}
struct aca_error *aerr = &error_cache->errors[type];
struct aca_bank_error *bank_error, *tmp;
- mutex_lock(&aerr->lock);
+ spin_lock(&aerr->lock);
if (list_empty(&aerr->list))
goto out_unlock;
}
out_unlock:
- mutex_unlock(&aerr->lock);
+ spin_unlock(&aerr->lock);
return 0;
}
static void aca_error_init(struct aca_error *aerr, enum aca_error_type type)
{
- mutex_init(&aerr->lock);
+ spin_lock_init(&aerr->lock);
INIT_LIST_HEAD(&aerr->list);
aerr->type = type;
aerr->nr_errors = 0;
{
struct aca_bank_error *bank_error, *tmp;
- mutex_lock(&aerr->lock);
+ spin_lock(&aerr->lock);
list_for_each_entry_safe(bank_error, tmp, &aerr->list, node)
aca_bank_error_remove(aerr, bank_error);
-
- mutex_destroy(&aerr->lock);
+ spin_unlock(&aerr->lock);
}
static void aca_fini_error_cache(struct aca_handle *handle)