Received: by 10.223.185.116 with SMTP id b49csp4162936wrg; Tue, 13 Feb 2018 13:57:21 -0800 (PST) X-Google-Smtp-Source: AH8x227b1aq98gfNFqa2Fa2zVylGtgxUr68m4xGaRZbuR2e3wqN4isE7/WHakZL76vwnHjjyhQza X-Received: by 10.101.100.214 with SMTP id t22mr2116420pgv.333.1518559041615; Tue, 13 Feb 2018 13:57:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518559041; cv=none; d=google.com; s=arc-20160816; b=toNNkMBCOWSOelySaIFk7otIf7QZSvuOp+QXX32xHpsFwmHl9qva/29EnQUgRhwwL9 hsIpMYBmWEmOzkbxigZ9NNAnnHwsAB7LziKbC81KcRcBLLT0DW1+rZJFCmSXm+GwY0wt D6Z0irXuLZZ3y1u/Ui0NBtivb8c/Z+/NAe/9+poozdSydk/2Kg2FEj85yX8DhWUrSB/J LQ4uUSBbIvSVltXpR8QL4uY2eOWkpnHyTk+vb27nlp646fpscjZ6A3OocpcTzXY749wI XjRxZcidjPvPmDofaebtdLKcEABhVHNBSZKIiA3zjHztLdnCl1k21t5Tg63WurnrUzH3 DFUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=ap9RpE/q99NGirMg5SCS9df5A6iGcqO6ZnXp+L8792g=; b=enzjEb5nmCafAiDmmAVPXbvewb2uQ11ve3OiGFbV5w8/i7tmQvM2RPQ73CZcR3dtz0 SHic+0zDVRzqt+E5AAzDz9Sl73VUyAYlBA8LXihqwvV9EZF0j4P26juFtdFP3erLhwsZ Ccd7012RjpSMooUtS6OKoUgo6gxXZgjq0U7DHDNDAAunRKkHNwPcXq05bfhfcTjTrM9h EP50b5FI2FQR81ZLlYnGxw/jraGpKSDsC+oQJZ/z3yq/xTN6cLZ4J6Bq7dZFdUVf2D4R m47PwMzWH6OjAssbkBJnxYhsN4J2XTVK9Ln/6PM2407sFvNUgHMrkxnqzepM3AhhwC+p qc8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=McEWIVFu; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 90-v6si450329plb.428.2018.02.13.13.57.07; Tue, 13 Feb 2018 13:57:21 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=McEWIVFu; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965977AbeBMVzy (ORCPT + 99 others); Tue, 13 Feb 2018 16:55:54 -0500 Received: from mail-pl0-f67.google.com ([209.85.160.67]:42532 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965853AbeBMVzw (ORCPT ); Tue, 13 Feb 2018 16:55:52 -0500 Received: by mail-pl0-f67.google.com with SMTP id 31so1790083ple.9; Tue, 13 Feb 2018 13:55:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=ap9RpE/q99NGirMg5SCS9df5A6iGcqO6ZnXp+L8792g=; b=McEWIVFuUrCerWN1G1oL/MFkvMq4mlszCkt9DP0o9K8Ciz+BJYIkJFJe0AEp2rCXs6 YwHlq0hVZZKbNiPRl0XZnSu589TQCH3ZbCBIRquwDH65F2TkVMHDltXjjAXpXo4QarTs xZa3xK+bUodsmfYNeSjwv0pePuKw8QNvyidjF0bUfArpBqJMDZjWgTBESxVA35Wgi3P+ rRBDMItc0/xv9gK5WY84UAnTUFmyPpkeDVajZ1sIsgSj37vV+wJw0e5Q9Vv+2dXqGuCX FxPNDi6PlkTLTfuHzASePOMRa5jrS5NyjYW5QsLiyS3IoL6jjdDBMB9PL2julpeKCni1 +YQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=ap9RpE/q99NGirMg5SCS9df5A6iGcqO6ZnXp+L8792g=; b=r9/EiqRuzBzbbjPyjvsAPopYRS5VJfGSznGWFQdncR0ax95/eg9idGBX6wg0aKJ/Bf jHxoOOcU+ZGHPAIbAqxbML7BIqHufYim87zn7wQJCRNtmwnUQIzgn1PH0KGc+Wy+H94y CP4yuciG2zts7NQN8rNM+8X2dL863NMByr9oKay6YEleKChnLI/u0ZDh/d+G8Cp41AiO 4P1mZUdw0MFUF+DUZW2tgz0Rrqmopv2mbyXoBqqzKczMXO61RcNppJGdA49uYLRlpmn9 YMFUUUBertGOvGAWJw3eoFzGrQBTGqMvx8rVquxk48jAXVUdEMpnMAY4mjr+b1faMi8l ZsPw== X-Gm-Message-State: APf1xPCXEZwq4SeDnwdvPAiKqXPq+1dHvb4h4lqE767SkWVxEtjHBlsy 0fenaKHJSk6ZiMb4lPnBm/k= X-Received: by 2002:a17:902:47:: with SMTP id 65-v6mr2335130pla.194.1518558951731; Tue, 13 Feb 2018 13:55:51 -0800 (PST) Received: from localhost (108-223-40-66.lightspeed.sntcca.sbcglobal.net. [108.223.40.66]) by smtp.gmail.com with ESMTPSA id z90sm39537797pfd.78.2018.02.13.13.55.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Feb 2018 13:55:50 -0800 (PST) Date: Tue, 13 Feb 2018 13:55:49 -0800 From: Guenter Roeck To: Jerry Hoemann Cc: Marcus Folkesson , wim@linux-watchdog.org, linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, rwright@hpe.com, maurice.a.saldivar@hpe.com Subject: Re: [PATCH v2 06/11] watchdog/hpwdt: Modify to use watchdog core. Message-ID: <20180213215549.GA5241@roeck-us.net> References: <20180212052111.12010-1-jerry.hoemann@hpe.com> <20180212052111.12010-7-jerry.hoemann@hpe.com> <20180212090621.GA4513@gmail.com> <20180213213648.GB22295@anatevka.americas.hpqcorp.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180213213648.GB22295@anatevka.americas.hpqcorp.net> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 13, 2018 at 02:36:48PM -0700, Jerry Hoemann wrote: > > > Thanks for the review. Comments inline. > > On Mon, Feb 12, 2018 at 10:06:21AM +0100, Marcus Folkesson wrote: > > Hi Jerry, > > > > On Sun, Feb 11, 2018 at 10:21:06PM -0700, Jerry Hoemann wrote: > > > Follow Documentation/watchdog/convert_drivers_to_kernel_api.txt to > > > convert hpwdt from legacy watchdog driver to use the watchdog core. > > > > > > Removed functions: hpwdt_open, hpwdt_release, hpwdt_write, hpwdt_ioctl > > > Removed data structures: hpwdt_fops, hpwdt_miscdev, watchdog_device > > > Modified functions: hpwdt_start, hpwdt_stop, hpwdt_ping, hpwdt_gettimeleft > > > Added functions: hpwdt_settimeout > > > Added structures: watchdog_device > > > > > > Signed-off-by: Jerry Hoemann > > > > I think it would be better to use > > dev_emerg() > > dev_crit() > > dev_alert() > > dev_err() > > dev_warn() > > dev_notice() > > > > instead of pr_* functions now when we have a device to use. > > In general, is there something bad with using pr_debug, etc.,? > No, but it is desirable to use dev_ functions where possible. > When converting the driver over, I had many more debug messages being > printed from locations where I didn't have a valid device handle and > those needed to be done w/ the pr_.* functions. So, I just uniformally > used pr_.*. > > > > > -static int hpwdt_time_left(void) > > > +static unsigned int hpwdt_gettimeleft(struct watchdog_device *dev) > > > { > > > return TICKS_TO_SECS(ioread16(hpwdt_timer_reg)); > > > } > > > > > > +static int hpwdt_settimeout(struct watchdog_device *dev, unsigned int val) > > > +{ > > > + pr_debug("settimeout = %d\n", val); > > > > dev_dbg() > > I think you are proposing I do: > > dev_dbg(dev->parent, "settimeout = %d\n", val); > > This raises the issue that I didn't set parent and I believe I should have. > Correct. > > > > > > > > + > > > + soft_margin = dev->timeout = val; > > > > No need to update soft_margin > > I'd made the permission on the module parameters 0444 so that they > would show up in sysfs. I updated this value so that I could see > current value of timeout in sysfs. But, as Guenter points out in a > later review, these values are available in under CONFIG_WATCHDOG_SYSFS. > So, I'll remove. > > > > > + pr_debug("nmi: ulReason=%d, mynmi=0x%0x\n", ulReason, mynmi); > > > > dev_dbg() > > See above. > > > > > > retval = hpwdt_init_nmi_decoding(dev); > > > if (retval != 0) > > > goto error_init_nmi_decoding; > > > > > > - retval = misc_register(&hpwdt_miscdev); > > > + retval = watchdog_register_device(&hpwdt_dev); > > > if (retval < 0) { > > > - dev_warn(&dev->dev, > > > - "Unable to register miscdev on minor=%d (err=%d).\n", > > > - WATCHDOG_MINOR, retval); > > > - goto error_misc_register; > > > + dev_warn(&dev->dev, "Unable to register hpe watchdog (err=%d).\n", retval); > > > + goto error_wd_register; > > > + } > > > + > > > + watchdog_set_nowayout(&hpwdt_dev, nowayout); > > > + if (watchdog_init_timeout(&hpwdt_dev, soft_margin, NULL)) { > > > + dev_warn(&dev->dev, "Invalid soft_margin: %d. Using default\n", soft_margin); > > > + soft_margin = DEFAULT_MARGIN; > > > } > > > > In this case watchdog_init_timout() will: > > 1) Check if soft_margin is valid > > 2) if not, keep hpwdt_dev.timout intact (which is already set in > > declaration of hpwdt_dev) > > > > So we could remove the condition and only keep > > watchdog_init_timeout(&hpwdt_dev, soft_margin, NULL); > > > > > > Also, we need to set an invalid initial value for soft_margin to make > > the logic for watchdog_init_timeout work. > > > > i.e > > - static unsigned int soft_margin = DEFAULT_MARGIN; /* in seconds */ > > + static unsigned int soft_margin; > > > I don't see the core printing a warning message if an invalid value > is specified for soft_margin when loading the module. > > I don't mind the hpwdt module correcting an out of range parameter, but I > don't think it should do so siliently. > The point here is that setting soft_margin to 0 and setting the timeout in the watchdog_device structure to DEFAULT_MARGIN means that it is not necessary to override it on error. If you want to be verbose, you can still log a warning message if the timeout provided by the module parameter is wrong. Anyway, this driver will presumably never support devicetree, so the watchdog core will never read the timeout from there, and this is not a showstopper. Guenter