Loading drivers/gpu/msm/kgsl.c +5 −3 Original line number Diff line number Diff line Loading @@ -425,7 +425,7 @@ static int kgsl_mem_entry_attach_process(struct kgsl_device *device, ret = kgsl_mmu_sparse_dummy_map( entry->memdesc.pagetable, &entry->memdesc, 0, entry->memdesc.size); kgsl_memdesc_footprint(&entry->memdesc)); else if (entry->memdesc.gpuaddr) ret = kgsl_mmu_map(entry->memdesc.pagetable, &entry->memdesc); Loading Loading @@ -4349,6 +4349,8 @@ static unsigned long _get_svm_area(struct kgsl_process_private *private, else align = SZ_4K; align = max_t(uint64_t, align, entry->memdesc.pad_to); /* get the GPU pagetable's SVM range */ if (kgsl_mmu_svm_range(private->pagetable, &start, &end, entry->memdesc.flags)) Loading drivers/gpu/msm/kgsl_iommu.c +9 −3 Original line number Diff line number Diff line Loading @@ -1869,9 +1869,10 @@ static int kgsl_iommu_sparse_dummy_map(struct kgsl_pagetable *pt, struct page **pages = NULL; struct sg_table sgt; int count = size >> PAGE_SHIFT; unsigned int map_flags; /* verify the offset is within our range */ if (size + offset > memdesc->size) if (size + offset > kgsl_memdesc_footprint(memdesc)) return -EINVAL; if (kgsl_dummy_page == NULL) { Loading @@ -1881,6 +1882,10 @@ static int kgsl_iommu_sparse_dummy_map(struct kgsl_pagetable *pt, return -ENOMEM; } map_flags = MMU_FEATURE(pt->mmu, KGSL_MMU_PAD_VA) ? _get_protection_flags(pt, memdesc) : IOMMU_READ | IOMMU_NOEXEC; pages = kcalloc(count, sizeof(struct page *), GFP_KERNEL); if (pages == NULL) return -ENOMEM; Loading @@ -1892,7 +1897,7 @@ static int kgsl_iommu_sparse_dummy_map(struct kgsl_pagetable *pt, 0, size, GFP_KERNEL); if (ret == 0) { ret = _iommu_map_sg_sync_pc(pt, memdesc->gpuaddr + offset, sgt.sgl, sgt.nents, IOMMU_READ | IOMMU_NOEXEC); sgt.sgl, sgt.nents, map_flags); sg_free_table(&sgt); } Loading Loading @@ -2472,7 +2477,8 @@ static int kgsl_iommu_get_gpuaddr(struct kgsl_pagetable *pagetable, size = kgsl_memdesc_footprint(memdesc); align = 1 << kgsl_memdesc_get_align(memdesc); align = max_t(uint64_t, 1 << kgsl_memdesc_get_align(memdesc), memdesc->pad_to); if (memdesc->flags & KGSL_MEMFLAGS_FORCE_32BIT) { start = pt->compat_va_start; Loading drivers/gpu/msm/kgsl_sharedmem.h +0 −1 Original line number Diff line number Diff line Loading @@ -135,7 +135,6 @@ kgsl_memdesc_get_memtype(const struct kgsl_memdesc *memdesc) static inline int kgsl_memdesc_set_align(struct kgsl_memdesc *memdesc, unsigned int align) { align = max_t(unsigned int, align, ilog2(memdesc->pad_to)); if (align > 32) align = 32; Loading Loading
drivers/gpu/msm/kgsl.c +5 −3 Original line number Diff line number Diff line Loading @@ -425,7 +425,7 @@ static int kgsl_mem_entry_attach_process(struct kgsl_device *device, ret = kgsl_mmu_sparse_dummy_map( entry->memdesc.pagetable, &entry->memdesc, 0, entry->memdesc.size); kgsl_memdesc_footprint(&entry->memdesc)); else if (entry->memdesc.gpuaddr) ret = kgsl_mmu_map(entry->memdesc.pagetable, &entry->memdesc); Loading Loading @@ -4349,6 +4349,8 @@ static unsigned long _get_svm_area(struct kgsl_process_private *private, else align = SZ_4K; align = max_t(uint64_t, align, entry->memdesc.pad_to); /* get the GPU pagetable's SVM range */ if (kgsl_mmu_svm_range(private->pagetable, &start, &end, entry->memdesc.flags)) Loading
drivers/gpu/msm/kgsl_iommu.c +9 −3 Original line number Diff line number Diff line Loading @@ -1869,9 +1869,10 @@ static int kgsl_iommu_sparse_dummy_map(struct kgsl_pagetable *pt, struct page **pages = NULL; struct sg_table sgt; int count = size >> PAGE_SHIFT; unsigned int map_flags; /* verify the offset is within our range */ if (size + offset > memdesc->size) if (size + offset > kgsl_memdesc_footprint(memdesc)) return -EINVAL; if (kgsl_dummy_page == NULL) { Loading @@ -1881,6 +1882,10 @@ static int kgsl_iommu_sparse_dummy_map(struct kgsl_pagetable *pt, return -ENOMEM; } map_flags = MMU_FEATURE(pt->mmu, KGSL_MMU_PAD_VA) ? _get_protection_flags(pt, memdesc) : IOMMU_READ | IOMMU_NOEXEC; pages = kcalloc(count, sizeof(struct page *), GFP_KERNEL); if (pages == NULL) return -ENOMEM; Loading @@ -1892,7 +1897,7 @@ static int kgsl_iommu_sparse_dummy_map(struct kgsl_pagetable *pt, 0, size, GFP_KERNEL); if (ret == 0) { ret = _iommu_map_sg_sync_pc(pt, memdesc->gpuaddr + offset, sgt.sgl, sgt.nents, IOMMU_READ | IOMMU_NOEXEC); sgt.sgl, sgt.nents, map_flags); sg_free_table(&sgt); } Loading Loading @@ -2472,7 +2477,8 @@ static int kgsl_iommu_get_gpuaddr(struct kgsl_pagetable *pagetable, size = kgsl_memdesc_footprint(memdesc); align = 1 << kgsl_memdesc_get_align(memdesc); align = max_t(uint64_t, 1 << kgsl_memdesc_get_align(memdesc), memdesc->pad_to); if (memdesc->flags & KGSL_MEMFLAGS_FORCE_32BIT) { start = pt->compat_va_start; Loading
drivers/gpu/msm/kgsl_sharedmem.h +0 −1 Original line number Diff line number Diff line Loading @@ -135,7 +135,6 @@ kgsl_memdesc_get_memtype(const struct kgsl_memdesc *memdesc) static inline int kgsl_memdesc_set_align(struct kgsl_memdesc *memdesc, unsigned int align) { align = max_t(unsigned int, align, ilog2(memdesc->pad_to)); if (align > 32) align = 32; Loading