/*
* add to active_bo_list
*/
- spin_lock_irqsave(&bdev->ablist_lock, flags);
+ spin_lock_irqsave(&bdev->list_lock, flags);
list_add_tail(&bo->list, &bdev->active_bo_list);
bo->status |= HMM_BO_ACTIVE;
- spin_unlock_irqrestore(&bdev->ablist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return 0;
}
/*
* remove it from buffer device's buffer object list.
*/
- if (hmm_bo_activated(bo)) {
- spin_lock_irqsave(&bdev->ablist_lock, flags);
- list_del(&bo->list);
- spin_unlock_irqrestore(&bdev->ablist_lock, flags);
- } else {
- spin_lock_irqsave(&bdev->fblist_lock, flags);
- list_del(&bo->list);
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
- }
+ spin_lock_irqsave(&bdev->list_lock, flags);
+ list_del(&bo->list);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
if (bo->release)
bo->release(bo);
bdev = bo->bdev;
- spin_lock_irqsave(&bdev->ablist_lock, flags);
+ spin_lock_irqsave(&bdev->list_lock, flags);
list_del(&bo->list);
- spin_unlock_irqrestore(&bdev->ablist_lock, flags);
-
- spin_lock_irqsave(&bdev->fblist_lock, flags);
list_add_tail(&bo->list, &bdev->free_bo_list);
bo->status &= (~HMM_BO_ACTIVE);
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return;
INIT_LIST_HEAD(&bdev->free_bo_list);
INIT_LIST_HEAD(&bdev->active_bo_list);
- spin_lock_init(&bdev->fblist_lock);
- spin_lock_init(&bdev->ablist_lock);
+ spin_lock_init(&bdev->list_lock);
bdev->flag = HMM_BO_DEVICE_INITED;
check_bodev_null_return(bdev, NULL);
- spin_lock_irqsave(&bdev->ablist_lock, flags);
+ spin_lock_irqsave(&bdev->list_lock, flags);
list_for_each(pos, &bdev->active_bo_list) {
bo = list_to_hmm_bo(pos);
/* pass bo which has no vm_node allocated */
if (bo->vm_node->start == vaddr)
goto found;
}
- spin_unlock_irqrestore(&bdev->ablist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return NULL;
found:
- spin_unlock_irqrestore(&bdev->ablist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return bo;
}
check_bodev_null_return(bdev, NULL);
- spin_lock_irqsave(&bdev->fblist_lock, flags);
+ spin_lock_irqsave(&bdev->list_lock, flags);
list_for_each(pos, &bdev->active_bo_list) {
bo = list_to_hmm_bo(pos);
/* pass bo which has no vm_node allocated */
if (in_range(bo->vm_node->start, bo->vm_node->size, vaddr))
goto found;
}
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return NULL;
found:
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return bo;
}
check_bodev_null_return(bdev, NULL);
- spin_lock_irqsave(&bdev->fblist_lock, flags);
+ spin_lock_irqsave(&bdev->list_lock, flags);
list_for_each(pos, &bdev->free_bo_list) {
bo = list_to_hmm_bo(pos);
if (bo->pgnr == pgnr)
goto found;
}
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return NULL;
found:
list_del(&bo->list);
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
-
- spin_lock_irqsave(&bdev->ablist_lock, flags);
list_add(&bo->list, &bdev->active_bo_list);
- spin_unlock_irqrestore(&bdev->ablist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return bo;
}
check_bodev_null_return(bdev, (void)0);
- spin_lock_irqsave(&bdev->fblist_lock, flags);
+ spin_lock_irqsave(&bdev->list_lock, flags);
while (!list_empty(&bdev->free_bo_list)) {
bo = list_first_entry(&bdev->free_bo_list,
struct hmm_buffer_object, list);
list_del(&bo->list);
hmm_bo_unref(bo);
}
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
}
/*
check_bodev_null_return(bdev, (void)0);
- spin_lock_irqsave(&bdev->fblist_lock, flags);
+ spin_lock_irqsave(&bdev->list_lock, flags);
list_for_each(pos, &bdev->free_bo_list) {
bo = list_to_hmm_bo(pos);
/* pass bo which has no vm_node allocated */
if (bo->vm_node->start == vaddr)
goto found;
}
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return;
found:
list_del(&bo->list);
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
hmm_bo_unref(bo);
}
check_bodev_null_return(bdev, (void)0);
retry:
- spin_lock_irqsave(&bdev->fblist_lock, flags);
+ spin_lock_irqsave(&bdev->list_lock, flags);
list_for_each(pos, &bdev->free_bo_list) {
bo = list_to_hmm_bo(pos);
if (bo->pgnr == pgnr)
goto found;
}
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
return;
found:
list_del(&bo->list);
- spin_unlock_irqrestore(&bdev->fblist_lock, flags);
+ spin_unlock_irqrestore(&bdev->list_lock, flags);
hmm_bo_unref(bo);
goto retry;
}