aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/pstore/ram_core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/pstore/ram_core.c b/fs/pstore/ram_core.c
index 0306303be372..e5afa222c213 100644
--- a/fs/pstore/ram_core.c
+++ b/fs/pstore/ram_core.c
@@ -187,7 +187,8 @@ static int persistent_ram_init_ecc(struct persistent_ram_zone *prz,
187 prz->ecc_block_size = 128; 187 prz->ecc_block_size = 128;
188 prz->ecc_size = ecc_size; 188 prz->ecc_size = ecc_size;
189 189
190 ecc_blocks = DIV_ROUND_UP(prz->buffer_size, prz->ecc_block_size); 190 ecc_blocks = DIV_ROUND_UP(prz->buffer_size - prz->ecc_size,
191 prz->ecc_block_size + prz->ecc_size);
191 ecc_total = (ecc_blocks + 1) * prz->ecc_size; 192 ecc_total = (ecc_blocks + 1) * prz->ecc_size;
192 if (ecc_total >= prz->buffer_size) { 193 if (ecc_total >= prz->buffer_size) {
193 pr_err("%s: invalid ecc_size %u (total %zu, buffer size %zu)\n", 194 pr_err("%s: invalid ecc_size %u (total %zu, buffer size %zu)\n",