[PATCH 14/32] staging: comedi: vmk80xx: remove private data 'probed'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 drivers/staging/comedi/drivers/vmk80xx.c | 9 ++-------
 1 file 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);
-- 
1.8.1.1.293.gfe73786

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux