uhci-q.c (7022b15e2a9f878fd5184586064c63352c3dd225) | uhci-q.c (5172046d960b27f7c22bed8038d696e7004cb112) |
---|---|
1/* 2 * Universal Host Controller Interface driver for USB. 3 * 4 * Maintainer: Alan Stern <stern@rowland.harvard.edu> 5 * 6 * (C) Copyright 1999 Linus Torvalds 7 * (C) Copyright 1999-2002 Johannes Erdfelt, johannes@erdfelt.com 8 * (C) Copyright 1999 Randy Dunlap --- 109 unchanged lines hidden (view full) --- 118 INIT_LIST_HEAD(&td->list); 119 INIT_LIST_HEAD(&td->fl_list); 120 121 return td; 122} 123 124static void uhci_free_td(struct uhci_hcd *uhci, struct uhci_td *td) 125{ | 1/* 2 * Universal Host Controller Interface driver for USB. 3 * 4 * Maintainer: Alan Stern <stern@rowland.harvard.edu> 5 * 6 * (C) Copyright 1999 Linus Torvalds 7 * (C) Copyright 1999-2002 Johannes Erdfelt, johannes@erdfelt.com 8 * (C) Copyright 1999 Randy Dunlap --- 109 unchanged lines hidden (view full) --- 118 INIT_LIST_HEAD(&td->list); 119 INIT_LIST_HEAD(&td->fl_list); 120 121 return td; 122} 123 124static void uhci_free_td(struct uhci_hcd *uhci, struct uhci_td *td) 125{ |
126 if (!list_empty(&td->list)) { 127 dev_warn(uhci_dev(uhci), "td %p still in list!\n", td); 128 WARN_ON(1); 129 } 130 if (!list_empty(&td->fl_list)) { 131 dev_warn(uhci_dev(uhci), "td %p still in fl_list!\n", td); 132 WARN_ON(1); 133 } | 126 if (!list_empty(&td->list)) 127 dev_WARN(uhci_dev(uhci), "td %p still in list!\n", td); 128 if (!list_empty(&td->fl_list)) 129 dev_WARN(uhci_dev(uhci), "td %p still in fl_list!\n", td); |
134 135 dma_pool_free(uhci->td_pool, td, td->dma_handle); 136} 137 138static inline void uhci_fill_td(struct uhci_td *td, u32 status, 139 u32 token, u32 buffer) 140{ 141 td->status = cpu_to_le32(status); --- 148 unchanged lines hidden (view full) --- 290 qh->type = -1; 291 } 292 return qh; 293} 294 295static void uhci_free_qh(struct uhci_hcd *uhci, struct uhci_qh *qh) 296{ 297 WARN_ON(qh->state != QH_STATE_IDLE && qh->udev); | 130 131 dma_pool_free(uhci->td_pool, td, td->dma_handle); 132} 133 134static inline void uhci_fill_td(struct uhci_td *td, u32 status, 135 u32 token, u32 buffer) 136{ 137 td->status = cpu_to_le32(status); --- 148 unchanged lines hidden (view full) --- 286 qh->type = -1; 287 } 288 return qh; 289} 290 291static void uhci_free_qh(struct uhci_hcd *uhci, struct uhci_qh *qh) 292{ 293 WARN_ON(qh->state != QH_STATE_IDLE && qh->udev); |
298 if (!list_empty(&qh->queue)) { 299 dev_warn(uhci_dev(uhci), "qh %p list not empty!\n", qh); 300 WARN_ON(1); 301 } | 294 if (!list_empty(&qh->queue)) 295 dev_WARN(uhci_dev(uhci), "qh %p list not empty!\n", qh); |
302 303 list_del(&qh->node); 304 if (qh->udev) { 305 qh->hep->hcpriv = NULL; 306 if (qh->dummy_td) 307 uhci_free_td(uhci, qh->dummy_td); 308 } 309 dma_pool_free(uhci->qh_pool, qh, qh->dma_handle); --- 431 unchanged lines hidden (view full) --- 741 return urbp; 742} 743 744static void uhci_free_urb_priv(struct uhci_hcd *uhci, 745 struct urb_priv *urbp) 746{ 747 struct uhci_td *td, *tmp; 748 | 296 297 list_del(&qh->node); 298 if (qh->udev) { 299 qh->hep->hcpriv = NULL; 300 if (qh->dummy_td) 301 uhci_free_td(uhci, qh->dummy_td); 302 } 303 dma_pool_free(uhci->qh_pool, qh, qh->dma_handle); --- 431 unchanged lines hidden (view full) --- 735 return urbp; 736} 737 738static void uhci_free_urb_priv(struct uhci_hcd *uhci, 739 struct urb_priv *urbp) 740{ 741 struct uhci_td *td, *tmp; 742 |
749 if (!list_empty(&urbp->node)) { 750 dev_warn(uhci_dev(uhci), "urb %p still on QH's list!\n", | 743 if (!list_empty(&urbp->node)) 744 dev_WARN(uhci_dev(uhci), "urb %p still on QH's list!\n", |
751 urbp->urb); | 745 urbp->urb); |
752 WARN_ON(1); 753 } | |
754 755 list_for_each_entry_safe(td, tmp, &urbp->td_list, list) { 756 uhci_remove_td_from_urbp(td); 757 uhci_free_td(uhci, td); 758 } 759 760 kmem_cache_free(uhci_up_cachep, urbp); 761} --- 1007 unchanged lines hidden --- | 746 747 list_for_each_entry_safe(td, tmp, &urbp->td_list, list) { 748 uhci_remove_td_from_urbp(td); 749 uhci_free_td(uhci, td); 750 } 751 752 kmem_cache_free(uhci_up_cachep, urbp); 753} --- 1007 unchanged lines hidden --- |