diff options
author | Ian Abbott <[email protected]> | 2021-02-23 14:30:44 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <[email protected]> | 2021-03-10 09:23:29 +0100 |
commit | b2e78630f733a76508b53ba680528ca39c890e82 (patch) | |
tree | c21d14fa5d939972678a3d06b4ec849e7557b1ab /lib/mpi/mpiutil.c | |
parent | ac0bbf55ed3be75fde1f8907e91ecd2fd589bde3 (diff) |
staging: comedi: adv_pci1710: Fix endian problem for AI command data
The analog input subdevice supports Comedi asynchronous commands that
use Comedi's 16-bit sample format. However, the calls to
`comedi_buf_write_samples()` are passing the address of a 32-bit integer
variable. On bigendian machines, this will copy 2 bytes from the wrong
end of the 32-bit value. Fix it by changing the type of the variables
holding the sample value to `unsigned short`. The type of the `val`
parameter of `pci1710_ai_read_sample()` is changed to `unsigned short *`
accordingly. The type of the `val` variable in `pci1710_ai_insn_read()`
is also changed to `unsigned short` since its address is passed to
`pci1710_ai_read_sample()`.
Fixes: a9c3a015c12f ("staging: comedi: adv_pci1710: use comedi_buf_write_samples()")
Cc: <[email protected]> # 4.0+
Signed-off-by: Ian Abbott <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'lib/mpi/mpiutil.c')
0 files changed, 0 insertions, 0 deletions