Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756454AbbFCOuP (ORCPT ); Wed, 3 Jun 2015 10:50:15 -0400 Received: from mail.skyhub.de ([78.46.96.112]:44397 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754595AbbFCOuL (ORCPT ); Wed, 3 Jun 2015 10:50:11 -0400 Date: Wed, 3 Jun 2015 16:50:01 +0200 From: Borislav Petkov To: Aravind Gopalakrishnan Cc: dougthompson@xmission.com, mchehab@osg.samsung.com, linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org Subject: Re: [PATCH V2 3/9] edac, mce_amd_inj: Modify flags attrigute to use string arguments Message-ID: <20150603145001.GL4403@pd.tnic> References: <1433277362-10911-1-git-send-email-Aravind.Gopalakrishnan@amd.com> <1433277362-10911-4-git-send-email-Aravind.Gopalakrishnan@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1433277362-10911-4-git-send-email-Aravind.Gopalakrishnan@amd.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3041 Lines: 101 On Tue, Jun 02, 2015 at 03:35:56PM -0500, Aravind Gopalakrishnan wrote: > Use char values such as "hw" or "sw" to indicate the type of error > injection to be performed. > > Current flags attribute derives the meanings of values that can be > programmed into it from asm/mce.h. Moving to defined strings for the > atribute allows this module to be self sufficient and removes the > dependency. Also, we can introduce new flags as and when needed without > having to worry about conflicting with the flags already defined > in asm/mce.h > > Also, modify do_inject() to use the newly defined injection_type enum > to figure out the injection mechanism we need to use > > Suggested-by: Borislav Petkov > Signed-off-by: Aravind Gopalakrishnan > --- > drivers/edac/mce_amd_inj.c | 82 ++++++++++++++++++++++++++++++++++++++++------ > 1 file changed, 72 insertions(+), 10 deletions(-) ... > -static int flags_set(void *data, u64 val) > +static ssize_t flags_write(struct file *filp, const char __user *ubuf, > + size_t cnt, loff_t *ppos) > { > - struct mce *m = (struct mce *)data; > + char buf[MAX_FLAG_OPT_SIZE]; > + int err; > + size_t ret; > > - m->inject_flags = (u8)val; > - return 0; > + if (cnt > MAX_FLAG_OPT_SIZE) > + cnt = MAX_FLAG_OPT_SIZE; > + > + ret = cnt; > + > + if (copy_from_user(&buf, ubuf, cnt)) > + return -EFAULT; > + > + buf[cnt - 1] = 0; > + > + /* strip whitespaces.. */ > + strstrip(buf); Didn't your compiler trigger that: drivers/edac/mce_amd_inj.c: In function ‘flags_write’: drivers/edac/mce_amd_inj.c:146:2: warning: ignoring return value of ‘strstrip’, declared with attribute warn_unused_result [-Wunused-result] strstrip(buf); ^ ? Because it is a valid warning. You need to take the return value. I fixed it up like this: --- diff --git a/drivers/edac/mce_amd_inj.c b/drivers/edac/mce_amd_inj.c index c129a8da34b2..5c847fe6e9bd 100644 --- a/drivers/edac/mce_amd_inj.c +++ b/drivers/edac/mce_amd_inj.c @@ -128,7 +128,7 @@ static ssize_t flags_read(struct file *filp, char __user *ubuf, static ssize_t flags_write(struct file *filp, const char __user *ubuf, size_t cnt, loff_t *ppos) { - char buf[MAX_FLAG_OPT_SIZE]; + char buf[MAX_FLAG_OPT_SIZE], *__buf; int err; size_t ret; @@ -142,12 +142,12 @@ static ssize_t flags_write(struct file *filp, const char __user *ubuf, buf[cnt - 1] = 0; - /* strip whitespaces.. */ - strstrip(buf); + /* strip whitespace */ + __buf = strstrip(buf); - err = __set_inj(buf); + err = __set_inj(__buf); if (err) { - pr_err("%s: Invalid flags value: %s\n", __func__, buf); + pr_err("%s: Invalid flags value: %s\n", __func__, __buf); return err; } -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. -- -- 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/