Safe to call usb_kill_urb() against valid URB that hasn't been submitted?

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

 



Hi there,

I've got a driver which maintains a pool of URBs, properly created via
usb_alloc_urb().  Separately I have a cleanup function which destroys
the pool by looping through the list and calling usb_kill_urb(),
freeing the urb->transfer_buffer, and then calling usb_free_urb().

There are some edge cases where not all of the URBs may be in a
submitted state when calling the cleanup function.  Could this cause a
problem?  Is it legal to call usb_kill_urb() against a URB that hasn't
had usb_submit_urb() called against it (or where the URB had been
submitted but it has already completed and wasn't resubmitted)?

I can certainly add additional logic to keep track of exactly which
URBs in the pool are in a submitted state (so I call usb_kill_urb()
against only submitted URBs but usb_free_urb against all URBs), but I
would obviously prefer to avoid the headache and risk of additional
bugs if it isn't necessary.

Thanks,

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux