On Wed, May 16, 2012 at 5:56 AM, Anton Vorontsov anton.vorontsov@linaro.org wrote:
This is all straightforward: we just use the last region for console logging. If there's just one region, we fall-back to the old behaviour: just a oops/dumps logging.
Signed-off-by: Anton Vorontsov anton.vorontsov@linaro.org
fs/pstore/ram.c | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-)
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index 9123cce..54213eb 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c [...] @@ -142,7 +148,12 @@ static int ramoops_pstore_write(enum pstore_type_id type, struct persistent_ram_zone *prz = cxt->przs[cxt->count]; size_t hlen;
- /* Currently ramoops is designed to only store dmesg dumps. */
- if (type == PSTORE_TYPE_CONSOLE) {
- if (!cxt->cprz)
- return -ENOMEM;
- persistent_ram_write(cxt->cprz, cxt->pstore.buf, size);
- }
if (type != PSTORE_TYPE_DMESG) return -EINVAL;
Doesn't this mean that type == PSTORE_TYPE_CONSOLE will write to the ram, but then fail with -EINVAL?
-Kees