lkml.org 
[lkml]   [2015]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2] drivers/hwmon/ad7314.c: Do proper sign extension
On 01/22/2015 02:44 PM, Rasmus Villemoes wrote:
> The comment above (data << 2) >> 2 explains what the intention is: To
> use bit 13 of the 14-bit value data as the sign bit. However, this
> doesn't work due to C's promotion rules. data has type s16, but data
> << 2 has type int. To get sign extension, that expression would have
> to be cast back to an s16 before being shifted (at which point C's
> promotion rules would then kick in again and promote the left operand
> to int). As it stands, both expressions are no-ops for any value of
> data.
>
> Avoid these subtleties by using the existing API for
> this. sign_extend32 works equally well for 8 and 16 bit types.
>
> Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> ---

Good catch. Applied.

Thanks,
Guenter



\
 
 \ /
  Last update: 2015-01-23 00:41    [W:0.104 / U:0.716 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site