diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2013-06-11 11:32:29 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-17 14:31:10 -0700 |
commit | 588ba6dc5fb4bdca47a3da38c2718fbb82d3eee1 (patch) | |
tree | 510ced4246ec45af6c448d51531865dd61a805b5 /drivers/staging/comedi/drivers/8255_pci.c | |
parent | Staging: silicom: move symbol exports beneath definitions in bpctl_mod.c (diff) | |
download | linux-dev-588ba6dc5fb4bdca47a3da38c2718fbb82d3eee1.tar.xz linux-dev-588ba6dc5fb4bdca47a3da38c2718fbb82d3eee1.zip |
staging: comedi: drivers: let core handle freeing s->private
Introduce a new subdevice runflags, SRF_FREE_SPRIV, and a new helper
function, comedi_set_spriv(), that the drivers can use to set the
comedi_subdevice private data pointer. The helper function will also
set SRF_FREE_SPRIV to allow the comedi core to automatically free the
subdevice private data during the cleanup_device() stage of the detach.
Currently s->private is only allocated by the 8255, addi_watchdog,
amplc_dio200_common, and ni_65xx drivers. All users of those drivers
can then have the comedi_spriv_free() calls removed and in many cases
the (*detach) can then simply be the appropriate comedi core provided
function.
The ni_65xx driver uses a helper function, ni_65xx_alloc_subdevice_private(),
to allocate the private data. Refactor the function to return an errno
or call comedi_set_spriv() instead of returning a pointer to the private
data and requiring the caller to handle it.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/8255_pci.c')
-rw-r--r-- | drivers/staging/comedi/drivers/8255_pci.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/staging/comedi/drivers/8255_pci.c b/drivers/staging/comedi/drivers/8255_pci.c index 1117b61da3af..3d3547c19480 100644 --- a/drivers/staging/comedi/drivers/8255_pci.c +++ b/drivers/staging/comedi/drivers/8255_pci.c @@ -238,10 +238,7 @@ static int pci_8255_auto_attach(struct comedi_device *dev, static void pci_8255_detach(struct comedi_device *dev) { struct pci_8255_private *devpriv = dev->private; - int i; - for (i = 0; i < dev->n_subdevices; i++) - comedi_spriv_free(dev, i); if (devpriv && devpriv->mmio_base) iounmap(devpriv->mmio_base); comedi_pci_disable(dev); |