linux-mips
[Top] [All Lists]

[PATCH] TXx9: Fix possible overflow in clock calculations

To: linux-mips@linux-mips.org
Subject: [PATCH] TXx9: Fix possible overflow in clock calculations
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Fri, 3 Apr 2009 01:01:21 +0900
Cc: ralf@linux-mips.org
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
Addition of -fwrapv option in 2.6.29 discloses possible overflow with
signed arithmetics.  For example, result of "a * 6 / 12" (int a =
400000000) is 200000000 without -fwrapv but -157913941 with -fwrapv.

Change some variable to unsigned to avoid such overflows.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
---
 arch/mips/txx9/generic/setup_tx4927.c |    2 +-
 arch/mips/txx9/generic/setup_tx4938.c |    2 +-
 arch/mips/txx9/generic/setup_tx4939.c |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/mips/txx9/generic/setup_tx4927.c 
b/arch/mips/txx9/generic/setup_tx4927.c
index 778078a..6b681cd 100644
--- a/arch/mips/txx9/generic/setup_tx4927.c
+++ b/arch/mips/txx9/generic/setup_tx4927.c
@@ -89,7 +89,7 @@ void __init tx4927_setup(void)
 {
        int i;
        __u32 divmode;
-       int cpuclk = 0;
+       unsigned int cpuclk = 0;
        u64 ccfg;
 
        txx9_reg_res_init(TX4927_REV_PCODE(), TX4927_REG_BASE,
diff --git a/arch/mips/txx9/generic/setup_tx4938.c 
b/arch/mips/txx9/generic/setup_tx4938.c
index 5d2cbbf..b2b8529 100644
--- a/arch/mips/txx9/generic/setup_tx4938.c
+++ b/arch/mips/txx9/generic/setup_tx4938.c
@@ -94,7 +94,7 @@ void __init tx4938_setup(void)
 {
        int i;
        __u32 divmode;
-       int cpuclk = 0;
+       unsigned int cpuclk = 0;
        u64 ccfg;
 
        txx9_reg_res_init(TX4938_REV_PCODE(), TX4938_REG_BASE,
diff --git a/arch/mips/txx9/generic/setup_tx4939.c 
b/arch/mips/txx9/generic/setup_tx4939.c
index d48eee1..f0beba8 100644
--- a/arch/mips/txx9/generic/setup_tx4939.c
+++ b/arch/mips/txx9/generic/setup_tx4939.c
@@ -115,7 +115,7 @@ void __init tx4939_setup(void)
        int i;
        __u32 divmode;
        __u64 pcfg;
-       int cpuclk = 0;
+       unsigned int cpuclk = 0;
 
        txx9_reg_res_init(TX4939_REV_PCODE(), TX4939_REG_BASE,
                          TX4939_REG_SIZE);
-- 
1.5.6.3


<Prev in Thread] Current Thread [Next in Thread>