From: Ian Abbott Date: Mon, 7 Oct 2013 14:51:58 +0000 (+0100) Subject: staging: comedi: avoid memleak for subdevice private X-Git-Tag: omap-for-v3.13/fixes-for-merge-window-take2~62^2~417 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67aa4acbc97f6a55b328e4e2305ef19cbe949d85;p=pandora-kernel.git 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 Cc: # 3.11.y Signed-off-by: Greg Kroah-Hartman --- Reading git-diff-tree failed