Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752780AbbKKOvu (ORCPT ); Wed, 11 Nov 2015 09:51:50 -0500 Received: from mail2.asahi-net.or.jp ([202.224.39.198]:53770 "EHLO mail2.asahi-net.or.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752327AbbKKOul (ORCPT ); Wed, 11 Nov 2015 09:50:41 -0500 From: Yoshinori Sato To: Daniel Lezcano , Thomas Gleixner Cc: Yoshinori Sato , linux-kernel@vger.kernel.org Subject: [PATCH 2/4] h8300: clocksource: Counter overflow fix Date: Wed, 11 Nov 2015 23:50:14 +0900 Message-Id: <1447253416-13892-3-git-send-email-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.6.1 In-Reply-To: <1447253416-13892-1-git-send-email-ysato@users.sourceforge.jp> References: <1447063614-4662-1-git-send-email-daniel.lezcano@linaro.org> <1447253416-13892-1-git-send-email-ysato@users.sourceforge.jp> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1182 Lines: 41 Signed-off-by: Yoshinori Sato --- drivers/clocksource/h8300_timer16.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/clocksource/h8300_timer16.c b/drivers/clocksource/h8300_timer16.c index 53daf6a..639acf3 100644 --- a/drivers/clocksource/h8300_timer16.c +++ b/drivers/clocksource/h8300_timer16.c @@ -32,8 +32,8 @@ struct timer16_priv { static unsigned long timer16_get_counter(struct timer16_priv *p) { - unsigned long v1, v2, v3; - int o1, o2; + unsigned short v1, v2, v3; + unsigned char o1, o2; o1 = ctrl_inb(p->mapcommon + TISRC) & p->ovf; @@ -47,8 +47,10 @@ static unsigned long timer16_get_counter(struct timer16_priv *p) } while (unlikely((o1 != o2) || (v1 > v2 && v1 < v3) || (v2 > v3 && v2 < v1) || (v3 > v1 && v3 < v2))); - v2 |= 0x10000; - return v2; + if (unlikely(!o1)) + return v2; + else + return v2 + 0x10000; } -- 2.6.1 -- 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/