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 ---