Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754891AbbK0RAv (ORCPT ); Fri, 27 Nov 2015 12:00:51 -0500 Received: from mail-lf0-f54.google.com ([209.85.215.54]:34430 "EHLO mail-lf0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754622AbbK0RAr (ORCPT ); Fri, 27 Nov 2015 12:00:47 -0500 MIME-Version: 1.0 In-Reply-To: <1448370862-19120-3-git-send-email-lee.jones@linaro.org> References: <1448370862-19120-1-git-send-email-lee.jones@linaro.org> <1448370862-19120-3-git-send-email-lee.jones@linaro.org> Date: Fri, 27 Nov 2015 09:00:46 -0800 Message-ID: Subject: Re: [RESEND v4 2/6] remoteproc: debugfs: Add ability to boot remote processor using debugfs From: Bjorn Andersson To: Lee Jones Cc: "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , kernel@stlinux.com, Maxime Coquelin , Ohad Ben-Cohen , "devicetree@vger.kernel.org" , Nathan_Lynch@mentor.com, Florian Fainelli , ludovic.barre@st.com, Suman Anna Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2660 Lines: 80 On Tue, Nov 24, 2015 at 5:14 AM, Lee Jones 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 > Signed-off-by: Lee Jones > --- > 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. > + > + 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 > + 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 Regards, Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/