Commit 6e116744 authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman

staging: comedi: ni_usb6501: Call mutex_destroy() on private mutex

`ni6501_detach()` is the Comedi "detach" handler for the ni_usb6501
driver.  It is called when the private data for the device is about to
be freed.  The private data contains a mutex `devpriv->mut` that was
initialized when the private data was allocated.  Call `mutex_destroy()`
to mark it as invalid.

Also remove the calls to `mutex_lock()` and `mutex_unlock()` from
`ni6501_detach()`.  The only other locks of the mutex are by some of the
Comedi instruction handlers that cannot contend with the "detach"
handler for this mutex.
Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3c03c470
...@@ -564,14 +564,12 @@ static void ni6501_detach(struct comedi_device *dev) ...@@ -564,14 +564,12 @@ static void ni6501_detach(struct comedi_device *dev)
if (!devpriv) if (!devpriv)
return; return;
mutex_lock(&devpriv->mut); mutex_destroy(&devpriv->mut);
usb_set_intfdata(intf, NULL); usb_set_intfdata(intf, NULL);
kfree(devpriv->usb_rx_buf); kfree(devpriv->usb_rx_buf);
kfree(devpriv->usb_tx_buf); kfree(devpriv->usb_tx_buf);
mutex_unlock(&devpriv->mut);
} }
static struct comedi_driver ni6501_driver = { static struct comedi_driver ni6501_driver = {
......
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