On Wed, May 16, 2012 at 09:45:35AM -0700, Kees Cook wrote:
> On Wed, May 16, 2012 at 5:56 AM, Anton Vorontsov
> <[email protected]> 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 <[email protected]>
> > ---
> >  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?

Right you are, there should be 'return 0' for TYPE_CONSOLE. It is
harmless tho (and unnoticeable, since we can't check return value of
the ->write() calback and print error, since this would recurse),
but I'll surely amend that.

Thanks!

-- 
Anton Vorontsov
Email: [email protected]
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to