/* Detach an urb_link from a list, and set it up as a single element list, so no dangling pointers can be followed, and so it can be joined to another list if so desired.  */
void urb_detach(struct urb *urb)
/* Detach an urb_link from a list, and set it up as a single element list, so no dangling pointers can be followed, and so it can be joined to another list if so desired.  */
void urb_detach(struct urb *urb)
{
	if (urb) {
		urb_link *ul = &urb->link;
		ul->next->prev = ul->prev;
		ul->prev->next = ul->next;
		urb_link_init (ul);
	}
}