Changeset 4db49344 in mainline for uspace/drv/bus/usb/ohci/ohci_bus.c
- Timestamp:
- 2018-01-23T21:52:28Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3dd80f8
- Parents:
- a6afb4c
- git-author:
- Ondřej Hlavatý <aearsis@…> (2018-01-23 20:49:35)
- git-committer:
- Ondřej Hlavatý <aearsis@…> (2018-01-23 21:52:28)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ohci/ohci_bus.c
ra6afb4c r4db49344 115 115 ed_init(ohci_ep->ed, ep, ohci_ep->td); 116 116 hc_enqueue_endpoint(bus->hc, ep); 117 endpoint_set_online(ep, &bus->hc->guard); 117 118 118 119 return EOK; … … 128 129 hc_dequeue_endpoint(bus->hc, ep); 129 130 130 ohci_endpoint_t * const ohci_ep = ohci_endpoint_get(ep); 131 /* 132 * Now we can be sure the active transfer will not be completed, 133 * as it's out of the schedule, and HC acknowledged it. 134 */ 131 135 132 /* 133 * Now we can be sure the active transfer will not be completed. But first, 134 * make sure that the handling fibril won't use its link in pending list. 135 */ 136 ohci_endpoint_t *ohci_ep = ohci_endpoint_get(ep); 137 136 138 fibril_mutex_lock(&hc->guard); 137 if (link_in_use(&ohci_ep->pending_link)) 138 /* pending list reference */ 139 endpoint_del_ref(ep); 139 endpoint_set_offline_locked(ep); 140 140 list_remove(&ohci_ep->pending_link); 141 fibril_mutex_unlock(&hc->guard);142 143 /*144 * Finally, the endpoint shall not be used anywhere else. Finish the145 * pending batch.146 */147 fibril_mutex_lock(&ep->guard);148 141 usb_transfer_batch_t * const batch = ep->active_batch; 149 142 endpoint_deactivate_locked(ep); 150 fibril_mutex_unlock(& ep->guard);143 fibril_mutex_unlock(&hc->guard); 151 144 152 145 if (batch) {
Note:
See TracChangeset
for help on using the changeset viewer.