Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
@@ -4235,11 +4235,11 @@
int i;
struct ce_info *psimm = mem_ce_simm;
for (i = 0; i < mem_ce_simm_size; i++) {
if (psimm[i].leaky_bucket_cnt > 0)
- atomic_add_16(&psimm[i].leaky_bucket_cnt, -1);
+ atomic_dec_16(&psimm[i].leaky_bucket_cnt);
}
add_leaky_bucket_timeout();
}
static void
@@ -4380,24 +4380,24 @@
"on Memory Module %s\n", unum);
page_status = PR_MCE;
} else if (status & ECC_PERSISTENT) {
int new_value;
- new_value = atomic_add_16_nv(
- &psimm[i].leaky_bucket_cnt, 1);
+ new_value = atomic_inc_16_nv(
+ &psimm[i].leaky_bucket_cnt);
psimm[i].persistent_total++;
if (new_value > ecc_softerr_limit) {
cmn_err(CE_NOTE, "[AFT0] Most recent %d"
" soft errors from Memory Module"
" %s exceed threshold (N=%d,"
" T=%dh:%02dm) triggering page"
" retire", new_value, unum,
ecc_softerr_limit,
ecc_softerr_interval / 60,
ecc_softerr_interval % 60);
- atomic_add_16(
- &psimm[i].leaky_bucket_cnt, -1);
+ atomic_dec_16(
+ &psimm[i].leaky_bucket_cnt);
page_status = PR_MCE;
}
} else { /* Intermittent */
psimm[i].intermittent_total++;
}