Commit b876e985 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: mite: cleanup mite_unsetup()

This function is only called by comedi drivers during the (*detach) of the
driver. After it is called mite_free() is always called to kfree the allocated
mite_struct pointer.

Rename this function to mite_detach() and merge the kfree() from mite_free()
into it.

Remove the unnecessary clearing of the mite variables since the mite pointer
is going to be kfree()'d anyway.

The mite_detach() function checks if the pointer is valid so remove the
unnecessary checks in the callers.

The check can also be removed in ni_660x since the ni_660x_free_mite_rings()
function does not actually need the 'mite' pointer.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 90866896
...@@ -173,25 +173,19 @@ int mite_setup(struct mite_struct *mite) ...@@ -173,25 +173,19 @@ int mite_setup(struct mite_struct *mite)
} }
EXPORT_SYMBOL_GPL(mite_setup); EXPORT_SYMBOL_GPL(mite_setup);
void mite_unsetup(struct mite_struct *mite) void mite_detach(struct mite_struct *mite)
{ {
/* unsigned long offset, start, length; */
if (!mite) if (!mite)
return; return;
if (mite->mite_io_addr) { if (mite->mite_io_addr)
iounmap(mite->mite_io_addr); iounmap(mite->mite_io_addr);
mite->mite_io_addr = NULL; if (mite->daq_io_addr)
}
if (mite->daq_io_addr) {
iounmap(mite->daq_io_addr); iounmap(mite->daq_io_addr);
mite->daq_io_addr = NULL;
} kfree(mite);
if (mite->mite_phys_addr)
mite->mite_phys_addr = 0;
} }
EXPORT_SYMBOL_GPL(mite_unsetup); EXPORT_SYMBOL_GPL(mite_detach);
struct mite_dma_descriptor_ring *mite_alloc_ring(struct mite_struct *mite) struct mite_dma_descriptor_ring *mite_alloc_ring(struct mite_struct *mite)
{ {
......
...@@ -65,14 +65,9 @@ struct mite_struct { ...@@ -65,14 +65,9 @@ struct mite_struct {
struct mite_struct *mite_alloc(struct pci_dev *pcidev); struct mite_struct *mite_alloc(struct pci_dev *pcidev);
static inline void mite_free(struct mite_struct *mite)
{
kfree(mite);
}
int mite_setup(struct mite_struct *mite); int mite_setup(struct mite_struct *mite);
int mite_setup2(struct mite_struct *mite, unsigned use_iodwbsr_1); int mite_setup2(struct mite_struct *mite, unsigned use_iodwbsr_1);
void mite_unsetup(struct mite_struct *mite); void mite_detach(struct mite_struct *mite);
struct mite_dma_descriptor_ring *mite_alloc_ring(struct mite_struct *mite); struct mite_dma_descriptor_ring *mite_alloc_ring(struct mite_struct *mite);
void mite_free_ring(struct mite_dma_descriptor_ring *ring); void mite_free_ring(struct mite_dma_descriptor_ring *ring);
struct mite_channel *mite_request_channel_in_range(struct mite_struct *mite, struct mite_channel *mite_request_channel_in_range(struct mite_struct *mite,
......
...@@ -716,12 +716,8 @@ static void ni_65xx_detach(struct comedi_device *dev) ...@@ -716,12 +716,8 @@ static void ni_65xx_detach(struct comedi_device *dev)
} }
if (dev->irq) if (dev->irq)
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
if (devpriv) { if (devpriv)
if (devpriv->mite) { mite_detach(devpriv->mite);
mite_unsetup(devpriv->mite);
mite_free(devpriv->mite);
}
}
comedi_pci_disable(dev); comedi_pci_disable(dev);
} }
......
...@@ -1195,11 +1195,8 @@ static void ni_660x_detach(struct comedi_device *dev) ...@@ -1195,11 +1195,8 @@ static void ni_660x_detach(struct comedi_device *dev)
if (devpriv) { if (devpriv) {
if (devpriv->counter_dev) if (devpriv->counter_dev)
ni_gpct_device_destroy(devpriv->counter_dev); ni_gpct_device_destroy(devpriv->counter_dev);
if (devpriv->mite) {
ni_660x_free_mite_rings(dev); ni_660x_free_mite_rings(dev);
mite_unsetup(devpriv->mite); mite_detach(devpriv->mite);
mite_free(devpriv->mite);
}
} }
comedi_pci_disable(dev); comedi_pci_disable(dev);
} }
......
...@@ -259,10 +259,8 @@ static void ni_670x_detach(struct comedi_device *dev) ...@@ -259,10 +259,8 @@ static void ni_670x_detach(struct comedi_device *dev)
if (s) if (s)
kfree(s->range_table_list); kfree(s->range_table_list);
} }
if (devpriv && devpriv->mite) { if (devpriv)
mite_unsetup(devpriv->mite); mite_detach(devpriv->mite);
mite_free(devpriv->mite);
}
comedi_pci_disable(dev); comedi_pci_disable(dev);
} }
......
...@@ -91,10 +91,8 @@ static void labpc_pci_detach(struct comedi_device *dev) ...@@ -91,10 +91,8 @@ static void labpc_pci_detach(struct comedi_device *dev)
{ {
struct labpc_private *devpriv = dev->private; struct labpc_private *devpriv = dev->private;
if (devpriv && devpriv->mite) { if (devpriv)
mite_unsetup(devpriv->mite); mite_detach(devpriv->mite);
mite_free(devpriv->mite);
}
if (dev->irq) if (dev->irq)
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
comedi_pci_disable(dev); comedi_pci_disable(dev);
......
...@@ -1046,10 +1046,7 @@ static void nidio_detach(struct comedi_device *dev) ...@@ -1046,10 +1046,7 @@ static void nidio_detach(struct comedi_device *dev)
mite_free_ring(devpriv->di_mite_ring); mite_free_ring(devpriv->di_mite_ring);
devpriv->di_mite_ring = NULL; devpriv->di_mite_ring = NULL;
} }
if (devpriv->mite) { mite_detach(devpriv->mite);
mite_unsetup(devpriv->mite);
mite_free(devpriv->mite);
}
} }
comedi_pci_disable(dev); comedi_pci_disable(dev);
} }
......
...@@ -1189,10 +1189,7 @@ static void pcimio_detach(struct comedi_device *dev) ...@@ -1189,10 +1189,7 @@ static void pcimio_detach(struct comedi_device *dev)
mite_free_ring(devpriv->cdo_mite_ring); mite_free_ring(devpriv->cdo_mite_ring);
mite_free_ring(devpriv->gpct_mite_ring[0]); mite_free_ring(devpriv->gpct_mite_ring[0]);
mite_free_ring(devpriv->gpct_mite_ring[1]); mite_free_ring(devpriv->gpct_mite_ring[1]);
if (devpriv->mite) { mite_detach(devpriv->mite);
mite_unsetup(devpriv->mite);
mite_free(devpriv->mite);
}
} }
comedi_pci_disable(dev); comedi_pci_disable(dev);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment