|
@@ -816,17 +816,14 @@ static int ramoops_probe(struct platform_device *pdev)
|
|
|
|
|
|
cxt->pstore.data = cxt;
|
|
|
/*
|
|
|
- * Console can handle any buffer size, so prefer LOG_LINE_MAX. If we
|
|
|
- * have to handle dumps, we must have at least record_size buffer. And
|
|
|
- * for ftrace, bufsize is irrelevant (if bufsize is 0, buf will be
|
|
|
- * ZERO_SIZE_PTR).
|
|
|
+ * Since bufsize is only used for dmesg crash dumps, it
|
|
|
+ * must match the size of the dprz record (after PRZ header
|
|
|
+ * and ECC bytes have been accounted for).
|
|
|
*/
|
|
|
- if (cxt->console_size)
|
|
|
- cxt->pstore.bufsize = 1024; /* LOG_LINE_MAX */
|
|
|
- cxt->pstore.bufsize = max(cxt->record_size, cxt->pstore.bufsize);
|
|
|
- cxt->pstore.buf = kmalloc(cxt->pstore.bufsize, GFP_KERNEL);
|
|
|
+ cxt->pstore.bufsize = cxt->dprzs[0]->buffer_size;
|
|
|
+ cxt->pstore.buf = kzalloc(cxt->pstore.bufsize, GFP_KERNEL);
|
|
|
if (!cxt->pstore.buf) {
|
|
|
- pr_err("cannot allocate pstore buffer\n");
|
|
|
+ pr_err("cannot allocate pstore crash dump buffer\n");
|
|
|
err = -ENOMEM;
|
|
|
goto fail_clear;
|
|
|
}
|