Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/devman/drv_conn.c

    r8300c72 r832cbe7  
    444444
    445445        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);
    484446        if (rc != EOK) {
    485447                fun_busy_unlock(fun);
     
    715677                        devman_drv_fun_offline(&call, driver);
    716678                        break;
    717                 case DEVMAN_DRV_FUN_QUIESCE:
    718                         devman_drv_fun_quiesce(&call, driver);
    719                         break;
    720679                case DEVMAN_DRV_FUN_WAIT_STABLE:
    721680                        devman_drv_fun_wait_stable(&call, driver);
Note: See TracChangeset for help on using the changeset viewer.