Changes in uspace/srv/devman/drv_conn.c [8300c72:832cbe7] in mainline
- File:
-
- 1 edited
-
uspace/srv/devman/drv_conn.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/devman/drv_conn.c
r8300c72 r832cbe7 444 444 445 445 rc = fun_offline(fun); 446 if (rc != EOK) {447 fun_busy_unlock(fun);448 fun_del_ref(fun);449 async_answer_0(icall, rc);450 return;451 }452 453 fun_busy_unlock(fun);454 fun_del_ref(fun);455 async_answer_0(icall, EOK);456 }457 458 /** Quiesce function by driver request.459 *460 */461 static void devman_drv_fun_quiesce(ipc_call_t *icall, driver_t *drv)462 {463 fun_node_t *fun;464 errno_t rc;465 466 fun = find_fun_node(&device_tree, ipc_get_arg1(icall));467 if (fun == NULL) {468 async_answer_0(icall, ENOENT);469 return;470 }471 472 fun_busy_lock(fun);473 474 fibril_rwlock_write_lock(&device_tree.rwlock);475 if (fun->dev == NULL || fun->dev->drv != drv) {476 fun_busy_unlock(fun);477 fun_del_ref(fun);478 async_answer_0(icall, ENOENT);479 return;480 }481 fibril_rwlock_write_unlock(&device_tree.rwlock);482 483 rc = fun_quiesce(fun);484 446 if (rc != EOK) { 485 447 fun_busy_unlock(fun); … … 715 677 devman_drv_fun_offline(&call, driver); 716 678 break; 717 case DEVMAN_DRV_FUN_QUIESCE:718 devman_drv_fun_quiesce(&call, driver);719 break;720 679 case DEVMAN_DRV_FUN_WAIT_STABLE: 721 680 devman_drv_fun_wait_stable(&call, driver);
Note:
See TracChangeset
for help on using the changeset viewer.
