Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp7636695yba; Thu, 2 May 2019 13:26:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqwNnnSRcsjdAo3eMScrDZzakFqG4f3dUyQ/e+xeiOGxpzHaM5ny4dOgyOUav1npNYlWXEYL X-Received: by 2002:a17:902:3c5:: with SMTP id d63mr5704178pld.328.1556828793285; Thu, 02 May 2019 13:26:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556828793; cv=none; d=google.com; s=arc-20160816; b=K3DnJaLYpGJ6bJ8VGS0lF0jpv5qgVf5ObA1J4BLeBpfh9RrGpUGGq7aWvUEr2Pz9Iz ut4yAFJHBUUvzFyArsn4Az2sKHizQRqgIYJ+KCl+XLV3hE6tvUS2jcCZE+ceyqseaew6 eMMoFNA/Erw5d3NayDi9HCpQGgdZQDZKacNZJNLWhbxZ3FKk0SCCzC8owq528rfYiFgf sIGAqcA83rZncATigUeA3b6WOpAD2qmNQYC8hUF/qlt7iEt1ViHf7K7Z4efJ4TT8qU/P +DvrhqQ+D3BqXuG0zPr5Zn6TmDQksfmeum3r9X2+VMFj0SwqVzzEeugY0acTQzVCgkNq kapA== 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; bh=1kO1Q8xyPeInFEuVa9YrVjPZKrqRQhoH5hWqL6piNVQ=; b=QeY7tCD6BR0yVx6WIhX0cxDbWxGsLYQR+tzVsshEQLMABGOTGCmpLDYs8Z4bEJ3jrX y7lR5tGcNN2QwxZZUf+FyXvbPfmiJue7NsnBKjOf5h62MGmTa6cSl02yCLF30d9ALzvK lxd1n3x0jlMD+hRMlIRH6m0ObkeS/3r3/X3yMYioS6EXfGFMuczR8buw0oey2hxA1Z7s ruWSsb7bNZY7RNh8LhRJShSd4+ZLHjjosqDDpWyNJpvZnwAp34YG2BeTGcLInxj9Fq89 JsBo9TcLnYGLGy59JiLFJugy2ScACbiBzpvhhRziMrC4aY3im4NyZKrKVdQyMod6DdoN F3TA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=kY9LQyUG; 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 f3si151647plf.416.2019.05.02.13.26.18; Thu, 02 May 2019 13:26:33 -0700 (PDT) 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=kY9LQyUG; 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 S1726371AbfEBUXy (ORCPT + 99 others); Thu, 2 May 2019 16:23:54 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:46442 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725962AbfEBUXy (ORCPT ); Thu, 2 May 2019 16:23:54 -0400 Received: by mail-pg1-f195.google.com with SMTP id n2so1552210pgg.13; Thu, 02 May 2019 13:23:54 -0700 (PDT) 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=1kO1Q8xyPeInFEuVa9YrVjPZKrqRQhoH5hWqL6piNVQ=; b=kY9LQyUGqZ0FVr/++HvUx4Y7nQFfpaOv8Q7FRLpg2RY0aG5pNS01losjKp9fpNP90Z VgTVYGgsKsoaTcpQ/e4d5paVJ30k0qLBxIs0xZbbCm1zVwVvBMHvziwUl17b6rZBkVRf p526iPe00uoy3h30NHZUkqJ4LbvdULvtN+gFmBIiw63aSiTpVoqlWFRz4wyIGqGV6CwP mBQ2DLGmY00I6xkuj3qxlMgPF/Au6ThLvqDR6R8EhSe9OAlEe1v4WRHHWxMpuUCmYJwn MzXNdUJ0+ZWuXBrXm77sDeeIGFXUY1Ds85h2pvB96SnlvL38Nyb8iMHX5gooQwLCLb3s OaWA== 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=1kO1Q8xyPeInFEuVa9YrVjPZKrqRQhoH5hWqL6piNVQ=; b=hTfigpVDU+C6LK//YxdvmL7DZbS/HqBxrP03YvFBezZifhJ7DCJoVM43zPaiARbk8k a+FtzUTGi+YR0HX7wYN3Pf0f1+skK6CV4rgSf+JSamajmxnVOwcq8mBBsUh5WN++/lsh YVtKH6tTtXIehY+pzOu3cPqGREZgLATmLEIh/mSZJq2oCyGTveIU5wI2uwyiJXW5YdnP XcWQ2x0khU6iFE+stVUQ9KoWNJj4CDKLPDYMe5S9A+qZJUDnv2IkP3DzpaaetHaaoKbL o8oM1WMXF0dZ8UW3RHmBjrLjmvmZlZ9vafNIfawzLRIFgBG6w/MZCI3jmN8XOlyUvsGG 8wHA== X-Gm-Message-State: APjAAAVW5JL7ijjctQkkD92/qlMF0YeRyseVLGxr1kMK4R76LYJ8jngS J5XuTaMg3iIGvm4rwJjqhVs= X-Received: by 2002:a63:5014:: with SMTP id e20mr6075785pgb.2.1556828633822; Thu, 02 May 2019 13:23:53 -0700 (PDT) Received: from localhost ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id u5sm17161pfm.121.2019.05.02.13.23.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 02 May 2019 13:23:53 -0700 (PDT) Date: Thu, 2 May 2019 13:23:52 -0700 From: Guenter Roeck To: Ludovic Barre Cc: Wim Van Sebroeck , Rob Herring , Maxime Coquelin , Alexandre Torgue , linux-watchdog@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com Subject: Re: [PATCH V2 2/3] watchdog: stm32: update return values recommended by watchdog kernel api Message-ID: <20190502202352.GB27894@roeck-us.net> References: <1556806126-15890-1-git-send-email-ludovic.Barre@st.com> <1556806126-15890-3-git-send-email-ludovic.Barre@st.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1556806126-15890-3-git-send-email-ludovic.Barre@st.com> 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 Thu, May 02, 2019 at 04:08:45PM +0200, Ludovic Barre wrote: > From: Ludovic Barre > > This patch updates return values on watchdog-kernel-api.txt: > return 0 on succes, -EINVAL for "parameter out of range" > and -EIO for "could not write value to the watchdog". > > Signed-off-by: Ludovic Barre > --- > drivers/watchdog/stm32_iwdg.c | 21 +++++++++++++-------- > 1 file changed, 13 insertions(+), 8 deletions(-) > > diff --git a/drivers/watchdog/stm32_iwdg.c b/drivers/watchdog/stm32_iwdg.c > index e191bd8..f19a6d4 100644 > --- a/drivers/watchdog/stm32_iwdg.c > +++ b/drivers/watchdog/stm32_iwdg.c > @@ -81,7 +81,6 @@ static int stm32_iwdg_start(struct watchdog_device *wdd) > struct stm32_iwdg *wdt = watchdog_get_drvdata(wdd); > u32 val = FLAG_PVU | FLAG_RVU; > u32 reload; > - int ret; > > dev_dbg(wdd->parent, "%s\n", __func__); > > @@ -98,13 +97,11 @@ static int stm32_iwdg_start(struct watchdog_device *wdd) > reg_write(wdt->regs, IWDG_KR, KR_KEY_ENABLE); > > /* wait for the registers to be updated (max 100ms) */ > - ret = readl_relaxed_poll_timeout(wdt->regs + IWDG_SR, val, > - !(val & (FLAG_PVU | FLAG_RVU)), > - SLEEP_US, TIMEOUT_US); > - if (ret) { > - dev_err(wdd->parent, > - "Fail to set prescaler or reload registers\n"); > - return ret; > + if (readl_relaxed_poll_timeout(wdt->regs + IWDG_SR, val, > + !(val & (FLAG_PVU | FLAG_RVU)), > + SLEEP_US, TIMEOUT_US)) { > + dev_err(wdd->parent, "Fail to set prescaler, reload regs\n"); > + return -EIO; Please don't. Overriding error values tends to result in complaints by static analyzers, and we don't want to have to deal with those. > } > > /* reload watchdog */ > @@ -128,8 +125,16 @@ static int stm32_iwdg_ping(struct watchdog_device *wdd) > static int stm32_iwdg_set_timeout(struct watchdog_device *wdd, > unsigned int timeout) > { > + unsigned int tout = clamp(timeout, wdd->min_timeout, > + wdd->max_hw_heartbeat_ms / 1000); > + > dev_dbg(wdd->parent, "%s timeout: %d sec\n", __func__, timeout); > > + if (tout != timeout) { > + dev_err(wdd->parent, "parameter out of range\n"); > + return -EINVAL; > + } This is simply wrong. The whole point of max_hw_heartbeat_ms is to enable situations where the selected timeout is larger than the timeout supported by the hardware. In that situation, the kernel pings the hardware until the next ping from userspace is due. > + > wdd->timeout = timeout; > > if (watchdog_active(wdd)) > -- > 2.7.4 >