Loading drivers/ras/cec.c +31 −6 Original line number Diff line number Diff line Loading @@ -276,11 +276,39 @@ static u64 __maybe_unused del_lru_elem(void) return pfn; } static bool sanity_check(struct ce_array *ca) { bool ret = false; u64 prev = 0; int i; for (i = 0; i < ca->n; i++) { u64 this = PFN(ca->array[i]); if (WARN(prev > this, "prev: 0x%016llx <-> this: 0x%016llx\n", prev, this)) ret = true; prev = this; } if (!ret) return ret; pr_info("Sanity check dump:\n{ n: %d\n", ca->n); for (i = 0; i < ca->n; i++) { u64 this = PFN(ca->array[i]); pr_info(" %03d: [%016llx|%03llx]\n", i, this, FULL_COUNT(ca->array[i])); } pr_info("}\n"); return ret; } int cec_add_elem(u64 pfn) { struct ce_array *ca = &ce_arr; unsigned int to; unsigned int to = 0; int count, ret = 0; /* Loading Loading @@ -345,6 +373,8 @@ int cec_add_elem(u64 pfn) if (ca->decay_count >= CLEAN_ELEMS) do_spring_cleaning(ca); WARN_ON_ONCE(sanity_check(ca)); unlock: mutex_unlock(&ce_mutex); Loading Loading @@ -402,7 +432,6 @@ DEFINE_DEBUGFS_ATTRIBUTE(count_threshold_ops, u64_get, count_threshold_set, "%ll static int array_dump(struct seq_file *m, void *v) { struct ce_array *ca = &ce_arr; u64 prev = 0; int i; mutex_lock(&ce_mutex); Loading @@ -412,10 +441,6 @@ static int array_dump(struct seq_file *m, void *v) u64 this = PFN(ca->array[i]); seq_printf(m, " %03d: [%016llx|%03llx]\n", i, this, FULL_COUNT(ca->array[i])); WARN_ON(prev > this); prev = this; } seq_printf(m, "}\n"); Loading Loading
drivers/ras/cec.c +31 −6 Original line number Diff line number Diff line Loading @@ -276,11 +276,39 @@ static u64 __maybe_unused del_lru_elem(void) return pfn; } static bool sanity_check(struct ce_array *ca) { bool ret = false; u64 prev = 0; int i; for (i = 0; i < ca->n; i++) { u64 this = PFN(ca->array[i]); if (WARN(prev > this, "prev: 0x%016llx <-> this: 0x%016llx\n", prev, this)) ret = true; prev = this; } if (!ret) return ret; pr_info("Sanity check dump:\n{ n: %d\n", ca->n); for (i = 0; i < ca->n; i++) { u64 this = PFN(ca->array[i]); pr_info(" %03d: [%016llx|%03llx]\n", i, this, FULL_COUNT(ca->array[i])); } pr_info("}\n"); return ret; } int cec_add_elem(u64 pfn) { struct ce_array *ca = &ce_arr; unsigned int to; unsigned int to = 0; int count, ret = 0; /* Loading Loading @@ -345,6 +373,8 @@ int cec_add_elem(u64 pfn) if (ca->decay_count >= CLEAN_ELEMS) do_spring_cleaning(ca); WARN_ON_ONCE(sanity_check(ca)); unlock: mutex_unlock(&ce_mutex); Loading Loading @@ -402,7 +432,6 @@ DEFINE_DEBUGFS_ATTRIBUTE(count_threshold_ops, u64_get, count_threshold_set, "%ll static int array_dump(struct seq_file *m, void *v) { struct ce_array *ca = &ce_arr; u64 prev = 0; int i; mutex_lock(&ce_mutex); Loading @@ -412,10 +441,6 @@ static int array_dump(struct seq_file *m, void *v) u64 this = PFN(ca->array[i]); seq_printf(m, " %03d: [%016llx|%03llx]\n", i, this, FULL_COUNT(ca->array[i])); WARN_ON(prev > this); prev = this; } seq_printf(m, "}\n"); Loading