1. 11 Oct, 2013 39 commits
  2. 08 Oct, 2013 1 commit
    • Ian Abbott's avatar
      staging: comedi: avoid memleak for subdevice private · 67aa4acb
      Ian Abbott authored
      `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: default avatarIan Abbott <abbotti@mev.co.uk>
      Cc: <stable@vger.kernel.org> # 3.11.y
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      67aa4acb