On Fri, Oct 21, 2016 at 03:11:22PM +0100, Tvrtko Ursulin wrote: > @@ -2236,18 +2233,16 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) > BUG_ON(obj->base.read_domains & I915_GEM_GPU_DOMAINS); > BUG_ON(obj->base.write_domain & I915_GEM_GPU_DOMAINS); > > - max_segment = swiotlb_max_size(); > - if (!max_segment) > - max_segment = rounddown(UINT_MAX, PAGE_SIZE); > - > - st = kmalloc(sizeof(*st), GFP_KERNEL); > - if (st == NULL) > - return -ENOMEM; > - > page_count = obj->base.size / PAGE_SIZE; > - if (sg_alloc_table(st, page_count, GFP_KERNEL)) { > - kfree(st); > + pages = drm_malloc_gfp(page_count, sizeof(struct page *), > + GFP_TEMPORARY | __GFP_ZERO); > + if (!pages) > return -ENOMEM; Full circle! The whole reason this exists was to avoid that vmalloc. I don't really want it back... -Chris -- Chris Wilson, Intel Open Source Technology Centre -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html