static void _usb_async_cleanup(struct ftdi_context *ftdi, int wait_for_more, int timeout_msec)
{
struct timeval tv;
- struct usbdevfs_urb *urb=NULL;
+ struct usbdevfs_urb *urb;
int ret;
fd_set writefds;
int keep_going=0;
do
{
+ ret = -1;
+ urb = NULL;
+
while (_usb_get_async_urbs_pending(ftdi)
&& (ret = ioctl(ftdi->usb_dev->fd, USBDEVFS_REAPURBNDELAY, &urb)) == -1
&& errno == EAGAIN)
urb->usercontext = FTDI_URB_USERCONTEXT_COOKIE;
/* try to get more urbs that are ready now, but don't wait anymore */
- urb=NULL;
keep_going=1;
}
else