1
0
Files
linux/drivers
Ian Abbott 67aa4acbc9 staging: comedi: avoid memleak for subdevice private
`comedi_alloc_spriv()` allocates private storage for a comedi subdevice
and sets the `SRF_FREE_SPRIV` flag in the `runflags` member of the
subdevice to allow the private storage to be automatically freed when
the comedi device is being cleaned up.  Unfortunately, the flag gets
clobbered by `do_cmd_ioctl()` which calls
`comedi_set_subdevice_runflags()` with a mask value `~0` and only the
`SRF_USER` and `SRF_RUNNING` flags set, all the other SRF flags being
cleared.

Change the calls to `comedi_set_subdevice_runflags()` that currently use
a mask value of `~0` to use a more relevant mask value.  For
`do_cmd_ioctl()`, the relevant SRF flags are `SRF_USER`, `SRF_ERROR` and
`SRF_RUNNING`.  (At one time, `SRF_RT` would be included in that set of
flags, but it is no longer used.)  For `comedi_alloc_spriv()` replace
the call to `comedi_set_subdevice_runflags()` with a simple
OR-assignment to avoid unnecessary use of a spin-lock.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Cc: <stable@vger.kernel.org> # 3.11.y
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-07 19:02:52 -07:00
..
2013-10-01 22:51:11 +02:00
2013-10-01 16:19:08 +01:00
2013-09-28 16:32:12 +02:00
2013-10-06 17:22:43 -07:00
2013-09-13 15:09:52 +02:00
2013-10-01 12:34:59 -04:00
2013-09-13 15:09:52 +02:00
2013-10-01 22:06:15 +01:00
2013-09-11 15:59:15 -07:00
2013-09-13 15:09:52 +02:00
2013-09-04 11:28:04 -06:00
2013-09-26 15:33:23 +03:00
2013-09-13 15:09:52 +02:00