From patchwork Mon Apr 18 00:21:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akinobu Mita X-Patchwork-Id: 611553 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-qk0-x23b.google.com (mail-qk0-x23b.google.com [IPv6:2607:f8b0:400d:c09::23b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qp83Y5bf9z9t3v for ; Mon, 18 Apr 2016 10:22:16 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b=uQtkpI8F; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=QMpwgcMO; dkim-atps=neutral Received: by mail-qk0-x23b.google.com with SMTP id u190sf41350872qkh.1 for ; Sun, 17 Apr 2016 17:22:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=sender:mime-version:from:to:cc:subject:date:message-id :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=LPgrsOdIZV3Zlmir8wE8o8Yrw+nguW46WAD2bh6o85o=; b=uQtkpI8FJP0OVw1WpFDLfnjU+6uWEPqIz76yR6JjJonZjg7N5F/9B1ZjdWC1+6Wcpc 17ZM7S0oGCmkvAInibFxh7ebAQl8WThhwA2X1m1OWcFCMS6pEO0H/+rQYI8xE8NQxt1c 1U7qXk+eEQSH9wzAlVaqShB9A2nhhmy0tLQKQnMjRdzmmWX0NFy0KFJ28G6UuJRyBCNS a34epCr27KB4Edc5f4xwdqPFTrjsCoubhHP/b11X1zXKfeUob9x4eqZD4M6cewd7OP+I krjQtCO6UjTFsKhx7XuwaPIqNSrR97AaJEf8oiAF44znvDE17Imu6JzotESk9T/+z+ML YqFg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:to:cc:subject:date:message-id:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=LPgrsOdIZV3Zlmir8wE8o8Yrw+nguW46WAD2bh6o85o=; b=QMpwgcMOylFAzDLvCKXrqjrjiwgUozeFxQDCVrIq2y7SdMv3VL5jmgE6zcr3k+dNX9 W7MMpEhsBUO8ta8OUiv5UiRpmarYCs1+OMwu/wVK6VM2K7REGDZXvBWo02Yx9ozxBujy FrBeNNsZuEeQpIfBkOgRbbqeg7NqkiqgwWePYOU0LCJ0N71upbf6H127oIsWxjypDmKa yH38iSsVlAHXgyEBU2TASL+hFSL6lpLxNNWGKSIRNoPp8MUniaK4xag3eeJXadyAH6bk kWlsT8F/y7diKyn7fA7QgIXCdsJBi2jmv7Cf12gXC72PdK5keBtBX7NPFqN0pRAbQ6t2 oiOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=sender:x-gm-message-state:mime-version:from:to:cc:subject:date :message-id:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:x-spam-checked-in-group :list-post:list-help:list-archive:list-subscribe:list-unsubscribe; bh=LPgrsOdIZV3Zlmir8wE8o8Yrw+nguW46WAD2bh6o85o=; b=BVzcstZvkTbONVcAcK/Q0B5Xpcxa/ueL9lyyXUimVV0L2CK6qZjNiBj71MVwVCcsUh Ycqxtgobgip2057ocmSsswHLAnrS7bq5bJDMwfuLt8CpH58a1RGXMaOU4zg0XkXbxAGr DfgNzggk3nygAR0zu3ey9n5f/z1xUdKG94g6kaTAva0rfMjJCdahEkvmLlZK+ad9JnZy w4V4C721I91G2vkD6GkpdR47aya+/D/GryA0glKDus2h1M/ew868EhTcT3RMkVbgG032 ydMUoc334/YDjulLbO5tyjJ4RTd80EotpMQHLV6gNaEpeKzQ5llRag3NrECtx/dvgJk+ fPNQ== Sender: rtc-linux@googlegroups.com X-Gm-Message-State: AOPr4FXu905JsXFCrnkmp5zcvK0P36v6/Qoo+6AZzKT9n3X2LUfswh07y4aXlw7Tisv+cA== X-Received: by 10.50.138.3 with SMTP id qm3mr143852igb.5.1460938933616; Sun, 17 Apr 2016 17:22:13 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: rtc-linux@googlegroups.com Received: by 10.107.7.156 with SMTP id g28ls944423ioi.17.gmail; Sun, 17 Apr 2016 17:22:13 -0700 (PDT) X-Received: by 10.66.80.130 with SMTP id r2mr8392160pax.42.1460938933129; Sun, 17 Apr 2016 17:22:13 -0700 (PDT) Received: from mail-pf0-x241.google.com (mail-pf0-x241.google.com. [2607:f8b0:400e:c00::241]) by gmr-mx.google.com with ESMTPS id d22si2149101pfd.0.2016.04.17.17.22.13 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Apr 2016 17:22:13 -0700 (PDT) Received-SPF: pass (google.com: domain of akinobu.mita@gmail.com designates 2607:f8b0:400e:c00::241 as permitted sender) client-ip=2607:f8b0:400e:c00::241; Received: by mail-pf0-x241.google.com with SMTP id d184so15317551pfc.1 for ; Sun, 17 Apr 2016 17:22:13 -0700 (PDT) X-Received: by 10.98.86.25 with SMTP id k25mr10680769pfb.164.1460938932987; Sun, 17 Apr 2016 17:22:12 -0700 (PDT) Received: from localhost.localdomain (KD113159139091.ppp-bb.dion.ne.jp. [113.159.139.91]) by smtp.gmail.com with ESMTPSA id lq10sm79152929pab.36.2016.04.17.17.22.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 17 Apr 2016 17:22:11 -0700 (PDT) From: Akinobu Mita To: rtc-linux@googlegroups.com Cc: Zhuang Yuyao , Akinobu Mita , Zhuang Yuyao , Michael Tatarinov , Alessandro Zummo , Alexandre Belloni Subject: [rtc-linux] [PATCH] rtc: ds1307: ds3231 temperature s16 overflow Date: Mon, 18 Apr 2016 09:21:42 +0900 Message-Id: <1460938902-3120-1-git-send-email-akinobu.mita@gmail.com> X-Mailer: git-send-email 2.5.0 X-Original-Sender: Akinobu.Mita@gmail.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com; spf=pass (google.com: domain of akinobu.mita@gmail.com designates 2607:f8b0:400e:c00::241 as permitted sender) smtp.mailfrom=akinobu.mita@gmail.com; dmarc=pass (p=NONE dis=NONE) header.from=gmail.com Reply-To: rtc-linux@googlegroups.com Precedence: list Mailing-list: list rtc-linux@googlegroups.com; contact rtc-linux+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: rtc-linux@googlegroups.com X-Google-Group-Id: 712029733259 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , From: Zhuang Yuyao while retrieving temperature from ds3231, the result may be overflow since s16 is too small for a multiplication with 250. ie. if temp_buf[0] == 0x2d, the result (s16 temp) will be negative. Signed-off-by: Akinobu Mita Cc: Zhuang Yuyao Cc: Zhuang Yuyao Cc: Michael Tatarinov Cc: Alessandro Zummo Cc: Alexandre Belloni --- drivers/rtc/rtc-ds1307.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c index cb0ffa8..90d1e5a 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c @@ -863,7 +863,7 @@ out: * A user-initiated temperature conversion is not started by this function, * so the temperature is updated once every 64 seconds. */ -static int ds3231_hwmon_read_temp(struct device *dev, s16 *mC) +static int ds3231_hwmon_read_temp(struct device *dev, s32 *mC) { struct ds1307 *ds1307 = dev_get_drvdata(dev); u8 temp_buf[2]; @@ -892,7 +892,7 @@ static ssize_t ds3231_hwmon_show_temp(struct device *dev, struct device_attribute *attr, char *buf) { int ret; - s16 temp; + s32 temp; ret = ds3231_hwmon_read_temp(dev, &temp); if (ret)