mirror of https://gitee.com/openkylin/linux.git
staging: comedi: ni_nio_common: don't write non-existing caldac's
ni_write_caldac() checks the boardinfo 'caldac' array to determine what caldac is used for a given 'addr'. It then calculates the 'bitstring' and number of 'bits' used to write a value to that caldac address. After checking the caldac array, if the number of bits is 0 there is no caldac associated with the address. If this happens we shouldn't try writing to the non-existing caldac. Reported-by: coverity (CID 1192116) 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>
This commit is contained in:
parent
b3ab6fbfd8
commit
accb298fb2
|
@ -4355,6 +4355,10 @@ static void ni_write_caldac(struct comedi_device *dev, int addr, int val)
|
|||
addr -= caldacs[type].n_chans;
|
||||
}
|
||||
|
||||
/* bits will be 0 if there is no caldac for the given addr */
|
||||
if (bits == 0)
|
||||
return;
|
||||
|
||||
for (bit = 1 << (bits - 1); bit; bit >>= 1) {
|
||||
ni_writeb(dev, ((bit & bitstring) ? 0x02 : 0), Serial_Command);
|
||||
udelay(1);
|
||||
|
|
Loading…
Reference in New Issue