Received: by 10.213.65.68 with SMTP id h4csp263332imn; Fri, 23 Mar 2018 04:13:32 -0700 (PDT) X-Google-Smtp-Source: AG47ELs89jU5cfMyjvHEsURmMxeTOyQW8bJNxr+eGYyv0wdt/7Mk826thJSpYpeBUSzquxMUQrr4 X-Received: by 2002:a17:902:8bc2:: with SMTP id r2-v6mr18596706plo.169.1521803612121; Fri, 23 Mar 2018 04:13:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521803612; cv=none; d=google.com; s=arc-20160816; b=hr1uTfZI1crtmrj7+Vv1SZPhSb9773tCXdcuiz7h9VlHK2KXkzSbegTP5SN5dwx6XH dY5tbbMdxHGcTs0JT50SNQURnZI9DNb+si4W7hG4xZwrBPv16pR3pzVw+AWyL8s5DGgB abV81p2qm4kwBCEDdEyjdS2lHZEvQ6Twl8EARo5GTDLNQNzR/Xcii/vQU/9brkG15FDJ Y2UMad6rTGo39Fa99Oy6pMgYqGO4OGyRCi0HtdXujsr9KdUvs1SKuwnIJYBVBjg97hgc +NIgenMRg/559CKN4e2yVdqCL2O5Oo1BxBYP5MqRqZsd8z/O7hySkr3bjCnfKIvWj0/o IHIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=+S2gLYotMX6qHHEmQLpVwKocnF/qz6zfzbnS/8Htwxo=; b=C7/CVLn4Dj83h10++/YXabe+dD5TuQRrZk1VvhE/p7SJN0dfk4h6trnVyc1tn3VOAz dkSrBYA8/5Yr64zsAXE3Z34W7a91xRRNrtDrqyewoxSOuYvmUDUnNeyG8p8DXj0gKyIa uwvxvQ4q1FrfunSUc3vBVFkw4q7+evBGUBaNAvgIcONqBqdBqztrczsWTlCv4kkdPadG 6RB6mTfcEyZFykioiRKdV09S4wukw38nVjj6pDUdTsDuuN+7FC5BZk28FkZ60dsf/+eY 9c1PvKogn8lehGaBlq6JxnBivNOrYVufCl7RsoV40krm1gvHC8rhgMIPm4LdVdsimrzk M+qg== ARC-Authentication-Results: i=1; mx.google.com; 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 e16si6740338pfd.6.2018.03.23.04.13.17; Fri, 23 Mar 2018 04:13:32 -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; 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 S932813AbeCWKKt (ORCPT + 99 others); Fri, 23 Mar 2018 06:10:49 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:43188 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932799AbeCWKKq (ORCPT ); Fri, 23 Mar 2018 06:10:46 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 62858BD4; Fri, 23 Mar 2018 10:10:44 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Moritz Fischer , Alexandre Belloni , Sasha Levin Subject: [PATCH 4.9 129/177] rtc: ds1374: wdt: Fix issue with timeout scaling from secs to wdt ticks Date: Fri, 23 Mar 2018 10:54:17 +0100 Message-Id: <20180323094210.918293118@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180323094205.090519271@linuxfoundation.org> References: <20180323094205.090519271@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Moritz Fischer [ Upstream commit 453d0744f6c6ca3f9749b8c57c2e85b5b9f52514 ] The issue is that the internal counter that triggers the watchdog reset is actually running at 4096 Hz instead of 1Hz, therefore the value given by userland (in sec) needs to be multiplied by 4096 to get the correct behavior. Fixes: 920f91e50c5b ("drivers/rtc/rtc-ds1374.c: add watchdog support") Signed-off-by: Moritz Fischer Signed-off-by: Alexandre Belloni Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/rtc/rtc-ds1374.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) --- a/drivers/rtc/rtc-ds1374.c +++ b/drivers/rtc/rtc-ds1374.c @@ -527,6 +527,10 @@ static long ds1374_wdt_ioctl(struct file if (get_user(new_margin, (int __user *)arg)) return -EFAULT; + /* the hardware's tick rate is 4096 Hz, so + * the counter value needs to be scaled accordingly + */ + new_margin <<= 12; if (new_margin < 1 || new_margin > 16777216) return -EINVAL; @@ -535,7 +539,8 @@ static long ds1374_wdt_ioctl(struct file ds1374_wdt_ping(); /* fallthrough */ case WDIOC_GETTIMEOUT: - return put_user(wdt_margin, (int __user *)arg); + /* when returning ... inverse is true */ + return put_user((wdt_margin >> 12), (int __user *)arg); case WDIOC_SETOPTIONS: if (copy_from_user(&options, (int __user *)arg, sizeof(int))) return -EFAULT;