diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2013-02-06 00:22:49 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-02-06 02:07:11 (GMT) |
commit | b105ad8a78456fbcdb81e98076e9c3813cdb0be0 (patch) | |
tree | 6374757862d20d9eb39ba6dd1177383ba0d6299a | |
parent | db7dabf707f1eb3c4288ca8bedd4b2aa6701ca7b (diff) | |
download | linux-fsl-qoriq-b105ad8a78456fbcdb81e98076e9c3813cdb0be0.tar.xz |
staging: comedi: vmk80xx: remove private data 'probed'
The 'probed' variable is used in the usb driver (*probe) to detect an
unused element in the static private data arry. This variable is then
set after the usb driver has completed its (*probe) before calling
comedi_usb_auto_config(). When the comedi core does the auto config
it will call the (*auto_attach) function, vmk80xx_auto_attach(), which
then locates the correct private data in the static array by checking
to see if it has been 'probed' and that the 'intf' variable matches
the usb_interface pointer for the usb device.
Now that the private data is clean after failed usb probes and disconnects
we don't have to worry about have a garbage 'intf' value in the private
data that might match.
Remove the 'probed' flag from the private data and just use the 'intf'
pointer to detect the match.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/comedi/drivers/vmk80xx.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/staging/comedi/drivers/vmk80xx.c b/drivers/staging/comedi/drivers/vmk80xx.c index e82319b..a9aa988 100644 --- a/drivers/staging/comedi/drivers/vmk80xx.c +++ b/drivers/staging/comedi/drivers/vmk80xx.c @@ -210,7 +210,6 @@ struct vmk80xx_private { unsigned char *usb_rx_buf; unsigned char *usb_tx_buf; unsigned long flags; - int probed; int attached; }; @@ -529,8 +528,6 @@ static int rudimentary_check(struct vmk80xx_private *devpriv, int dir) { if (!devpriv) return -EFAULT; - if (!devpriv->probed) - return -ENODEV; if (!devpriv->attached) return -ENODEV; if (dir & DIR_IN) { @@ -1299,7 +1296,7 @@ static int vmk80xx_auto_attach(struct comedi_device *dev, mutex_lock(&glb_mutex); for (i = 0; i < VMK80XX_MAX_BOARDS; i++) - if (vmb[i].probed && vmb[i].intf == intf) + if (vmb[i].intf == intf) break; if (i == VMK80XX_MAX_BOARDS) ret = -ENODEV; @@ -1361,7 +1358,7 @@ static int vmk80xx_usb_probe(struct usb_interface *intf, mutex_lock(&glb_mutex); for (i = 0; i < VMK80XX_MAX_BOARDS; i++) - if (!vmb[i].probed) + if (!vmb[i].intf) break; if (i == VMK80XX_MAX_BOARDS) { @@ -1409,8 +1406,6 @@ static int vmk80xx_usb_probe(struct usb_interface *intf, if (boardinfo->model == VMK8055_MODEL) vmk80xx_reset_device(devpriv); - devpriv->probed = 1; - mutex_unlock(&glb_mutex); comedi_usb_auto_config(intf, &vmk80xx_driver); |