staging: comedi: ni_mio_common: fix local var for 32-bit read
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Mon, 25 Aug 2014 22:23:50 +0000 (15:23 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 30 Aug 2014 20:20:51 +0000 (13:20 -0700)
The local variable 'd' is used to read a 32-bit register. One branch of
the code shifts the register value 16 bits to the right to get the high
16-bits. Change the type of the local variable so that this shift works
correctly.

Reported by: coverity
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/ni_mio_common.c

index 8b3ba40cb74ca0b302bfaf823aaac427e07b401b..c42ba22b91d29bf4356cc43c45cf0c779ada9954 100644 (file)
@@ -2108,7 +2108,7 @@ static int ni_ai_insn_read(struct comedi_device *dev,
        unsigned int mask = (s->maxdata + 1) >> 1;
        int i, n;
        unsigned signbits;
-       unsigned short d;
+       unsigned int d;
        unsigned long dl;
 
        ni_load_channelgain_list(dev, s, 1, &insn->chanspec);