The 'attached' flag in the private data is set after the comedi_driver
(*auto_attach) function has completed successfully.
The only places it's checked are in rudimentary_check(), which does
some basic sanity checks before doing any of the subdevice operations,
and vmk80xx_auto_attach(), which is the comedi_driver (*auto_attach)
function.
The (*auto_attach) function can only be called as the result of a
successfull usb_driver (*probe). Part of the probe is to locate a
free slot in the static private data array. All free slots are
initialized to '0' so the 'attached' flag will always be cleared.
Remove the unneccessary 'attached' flag in the private data.
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>
unsigned char *usb_rx_buf;
unsigned char *usb_tx_buf;
unsigned long flags;
- int attached;
};
static struct vmk80xx_private vmb[VMK80XX_MAX_BOARDS];
{
if (!devpriv)
return -EFAULT;
- if (!devpriv->attached)
- return -ENODEV;
if (dir & DIR_IN) {
if (test_bit(TRANS_IN_BUSY, &devpriv->flags))
return -EBUSY;
s->insn_write = vmk80xx_pwm_winsn;
}
- devpriv->attached = 1;
-
up(&devpriv->limit_sem);
return 0;
break;
if (i == VMK80XX_MAX_BOARDS)
ret = -ENODEV;
- else if (vmb[i].attached)
- ret = -EBUSY;
else
ret = vmk80xx_attach_common(dev, &vmb[i]);
mutex_unlock(&glb_mutex);