5c1047c767
Ion carveout and content protect heap buffers do not have a struct page associated with them. Thus sg_phys() will not work reliably on these buffers. Set the dma_address field on physically contiguous buffers. When mapping a scatterlist to the gpummu use sg_dma_address() first and if it returns 0 then use sg_phys(). msm: kgsl: Use kzalloc to allocate scatterlists of 1 page or less The majority of the scatterlist allocations used in KGSL are under 1 page (1 page of struct scatterlist is approximately 1024 entries equalling 4MB of allocated buffer). In these cases using vmalloc for the sglist is undesirable and slow. Add functions to check the size of the allocation and favor kzalloc for 1 page allocations and vmalloc for larger lists.