|
@@ -494,10 +494,7 @@ __i915_gem_userptr_get_pages_worker(struct work_struct *_work)
|
|
ret = -ENOMEM;
|
|
ret = -ENOMEM;
|
|
pinned = 0;
|
|
pinned = 0;
|
|
|
|
|
|
- pvec = kmalloc(npages*sizeof(struct page *),
|
|
|
|
- GFP_TEMPORARY | __GFP_NOWARN | __GFP_NORETRY);
|
|
|
|
- if (pvec == NULL)
|
|
|
|
- pvec = drm_malloc_ab(npages, sizeof(struct page *));
|
|
|
|
|
|
+ pvec = drm_malloc_gfp(npages, sizeof(struct page *), GFP_TEMPORARY);
|
|
if (pvec != NULL) {
|
|
if (pvec != NULL) {
|
|
struct mm_struct *mm = obj->userptr.mm->mm;
|
|
struct mm_struct *mm = obj->userptr.mm->mm;
|
|
|
|
|
|
@@ -634,14 +631,11 @@ i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj)
|
|
pvec = NULL;
|
|
pvec = NULL;
|
|
pinned = 0;
|
|
pinned = 0;
|
|
if (obj->userptr.mm->mm == current->mm) {
|
|
if (obj->userptr.mm->mm == current->mm) {
|
|
- pvec = kmalloc(num_pages*sizeof(struct page *),
|
|
|
|
- GFP_TEMPORARY | __GFP_NOWARN | __GFP_NORETRY);
|
|
|
|
|
|
+ pvec = drm_malloc_gfp(num_pages, sizeof(struct page *),
|
|
|
|
+ GFP_TEMPORARY);
|
|
if (pvec == NULL) {
|
|
if (pvec == NULL) {
|
|
- pvec = drm_malloc_ab(num_pages, sizeof(struct page *));
|
|
|
|
- if (pvec == NULL) {
|
|
|
|
- __i915_gem_userptr_set_active(obj, false);
|
|
|
|
- return -ENOMEM;
|
|
|
|
- }
|
|
|
|
|
|
+ __i915_gem_userptr_set_active(obj, false);
|
|
|
|
+ return -ENOMEM;
|
|
}
|
|
}
|
|
|
|
|
|
pinned = __get_user_pages_fast(obj->userptr.ptr, num_pages,
|
|
pinned = __get_user_pages_fast(obj->userptr.ptr, num_pages,
|