Changeset 740dafc in mainline
- Timestamp:
- 2018-01-17T01:47:40Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0f803831
- Parents:
- 2755a622
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/usbhub/usbhub.c
r2755a622 r740dafc 627 627 async_usleep(500000); 628 628 fibril_mutex_lock(guard); 629 err = usbhc_reserve_default_address(exch);630 629 } 631 630 return err; … … 649 648 int usb_hub_release_default_address(usb_hub_dev_t *hub, async_exch_t *exch) 650 649 { 650 int ret = EOK; 651 651 652 fibril_mutex_lock(&hub->default_address_guard); 652 653 if (--hub->default_address_requests == 0) { 653 fibril_mutex_unlock(&hub->default_address_guard); 654 return usbhc_release_default_address(exch); 654 // We must do it in critical section to prevent other fibril 655 // from requesting the address before we release 656 ret = usbhc_release_default_address(exch); 655 657 } else { 656 658 fibril_condvar_signal(&hub->default_address_cv); 657 fibril_mutex_unlock(&hub->default_address_guard); 658 return EOK; 659 } 659 } 660 fibril_mutex_unlock(&hub->default_address_guard); 661 662 return ret; 660 663 } 661 664
Note:
See TracChangeset
for help on using the changeset viewer.