Re: [RESEND v4 2/6] remoteproc: debugfs: Add ability to boot remote processor using debugfs

From: Lee Jones
Date: Thu Dec 03 2015 - 07:26:46 EST


On Fri, 27 Nov 2015, Bjorn Andersson wrote:

> On Tue, Nov 24, 2015 at 5:14 AM, Lee Jones <lee.jones@xxxxxxxxxx> wrote:
> > This functionality is especially useful during the testing phase. When
> > used in conjunction with Mailbox's Test Framework we can trivially conduct
> > end-to-end testing i.e. boot co-processor, send and receive messages to
> > the co-processor, then shut it down again (repeat as required).
> >
>
> I want this too!
>
> > Signed-off-by: Ludovic Barre <ludovic.barre@xxxxxx>
> > Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
> > ---
> > drivers/remoteproc/remoteproc_debugfs.c | 34 +++++++++++++++++++++++++++++++++
> > 1 file changed, 34 insertions(+)
> >
> > diff --git a/drivers/remoteproc/remoteproc_debugfs.c b/drivers/remoteproc/remoteproc_debugfs.c
> > index 9d30809..8113c18 100644
> > --- a/drivers/remoteproc/remoteproc_debugfs.c
> > +++ b/drivers/remoteproc/remoteproc_debugfs.c
> > @@ -88,8 +88,42 @@ static ssize_t rproc_state_read(struct file *filp, char __user *userbuf,
> > return simple_read_from_buffer(userbuf, count, ppos, buf, i);
> > }
> >
> > +static ssize_t rproc_state_write(struct file *filp, const char __user *userbuf,
> > + size_t count, loff_t *ppos)
> > +{
> > + struct rproc *rproc = filp->private_data;
> > + char buf[10];
> > + int ret;
> > +
> > + if (count > sizeof(buf))
> > + return count;
> > +
> > + ret = copy_from_user(buf, userbuf, count);
> > + if (ret)
> > + return -EFAULT;
> > +
> > + if (buf[count - 1] == '\n')
> > + buf[count - 1] = '\0';
>
> I believe you can get here with count = 0.

I'm pretty sure you can't.

If you are sure that you can, if you can provide me with a way of
testing, I'd be happy to put in provisions.

> > +
> > + if (!strncmp(buf, "start", count)) {
> > + ret = rproc_boot(rproc);
> > + if (ret) {
> > + dev_err(&rproc->dev, "Boot failed: %d\n", ret);
> > + return ret;
> > + }
> > + } else if (!strncmp(buf, "stop", count)) {
> > + rproc_shutdown(rproc);
> > + } else {
> > + dev_err(&rproc->dev, "Unrecognised option: %s\n", buf);
>
> Unrecognized

What I have is correct.

> > + return -EINVAL;
> > + }
> > +
> > + return count;
> > +}
> > +
> > static const struct file_operations rproc_state_ops = {
> > .read = rproc_state_read,
> > + .write = rproc_state_write,
> > .open = simple_open,
> > .llseek = generic_file_llseek,
> > };
>
> Part of these nits
>
> Acked-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>

Thanks.

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/