staging: comedi: ni_usb6501: Call mutex_destroy() on private mutex
authorIan Abbott <abbotti@mev.co.uk>
Wed, 17 Apr 2019 15:32:49 +0000 (16:32 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Apr 2019 12:59:37 +0000 (14:59 +0200)
`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: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/ni_usb6501.c

index 808ed92..0e38f69 100644 (file)
@@ -564,14 +564,12 @@ static void ni6501_detach(struct comedi_device *dev)
        if (!devpriv)
                return;
 
-       mutex_lock(&devpriv->mut);
+       mutex_destroy(&devpriv->mut);
 
        usb_set_intfdata(intf, NULL);
 
        kfree(devpriv->usb_rx_buf);
        kfree(devpriv->usb_tx_buf);
-
-       mutex_unlock(&devpriv->mut);
 }
 
 static struct comedi_driver ni6501_driver = {