set_current_state(TASK_INTERRUPTIBLE);
if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) >= 0 &&
!kthread_should_stop()) {
- /* run once in 1 sec */
- time_left = schedule_timeout((HZ/FMR_SPLIT_COUNT)/20);
+ /* run once in 50 mills */
+ time_left = schedule_timeout(msecs_to_jiffies(50));
}
__set_current_state(TASK_RUNNING);
} while (!kthread_should_stop());
list_for_each_entry_safe(uobj, tmp, &context->fmr_list, list) {
struct ib_pool_fmr *fmr = uobj->object;
+ struct ib_pd *pd = fmr->pd;
idr_remove_uobj(&ib_uverbs_fmr_idr, uobj);
ib_fmr_pool_unmap(fmr);
+ atomic_dec(&pd->usecnt);
kfree(uobj);
}