Files
linux/drivers
H Hartley Sweeten 1f5cc35915 staging: comedi: kcomedilib: fix a __user space access issue
The 'data' field in struct comedi_insn is an unsigned int __user *.
The comedi core copies this data to kernel space before passing it
on to a drivers insn_bits/insn_config method.

kcomedilib provides an interface for external kernel modules to
use the comedi drivers. This interface creates a comedi_insn
that is then passed to the comedi drivers insn_bits/insn_config
method. Unfortunately, kcomedilib is using the comedi_insn 'data'
field directly which results in some sparse warnings:

  warning: incorrect type in argument 4 (different address spaces)
     expected unsigned int *<noident>
     got unsigned int [noderef] <asn:1>*data

  warning: incorrect type in assignment (different address spaces)
     expected unsigned int [noderef] <asn:1>*[addressable] [assigned] data
     got unsigned int *<noident>

Fix this by passing the kernel data directly, as a separate parameter,
instead of trying to put in into the comedi_insn 'data' field. This is
how the comedi core handles the data from user space.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-09-21 09:26:20 -07:00
..
2012-08-02 13:51:46 -04:00
2012-08-17 09:21:35 +02:00
2012-08-13 10:15:22 +05:30
2012-07-29 21:11:05 -03:00
2012-09-16 17:17:25 -07:00
2012-08-13 14:34:02 +08:00
2012-09-04 13:58:11 -04:00
2012-09-13 16:37:52 -04:00
2012-07-09 16:42:24 -04:00
2012-08-28 10:08:31 +02:00
2012-09-06 09:22:02 -04:00
2012-07-31 08:16:22 -06:00
2012-07-31 08:16:22 -06:00