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>
This commit is contained in:
parent
db7dabf707
commit
b105ad8a78
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue