lkml.org 
[lkml]   [2009]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 10/47] w1: w1 temp calculation overflow fix
    2.6.27-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Ian Dall <ian@beware.dropbear.id.au>

    commit 507e2fbaaacb6f164b4125b87c5002f95143174b upstream.

    Addresses http://bugzilla.kernel.org/show_bug.cgi?id=12646

    When the temperature exceeds 32767 milli-degrees the temperature overflows
    to -32768 millidegrees. These are bothe well within the -55 - +125 degree
    range for the sensor.

    Fix overflow in left-shift of a u8.

    Signed-off-by: Ian Dall <ian@beware.dropbear.id.au>
    Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/w1/slaves/w1_therm.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/w1/slaves/w1_therm.c
    +++ b/drivers/w1/slaves/w1_therm.c
    @@ -113,7 +113,7 @@ static struct w1_therm_family_converter

    static inline int w1_DS18B20_convert_temp(u8 rom[9])
    {
    - s16 t = (rom[1] << 8) | rom[0];
    + int t = ((s16)rom[1] << 8) | rom[0];
    t = t*1000/16;
    return t;
    }


    \
     
     \ /
      Last update: 2009-02-14 02:07    [W:0.019 / U:0.148 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site