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@xxxxxxxxxxxxxxxxxxx> Cc: Ian Abbott <abbotti@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/ni_mio_common.c b/drivers/staging/comedi/drivers/ni_mio_common.c index 8b3ba40..c42ba22 100644 --- a/drivers/staging/comedi/drivers/ni_mio_common.c +++ b/drivers/staging/comedi/drivers/ni_mio_common.c @@ -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); -- 2.0.3 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel