Loading drivers/gpu/msm/adreno_a6xx_preempt.c +3 −0 Original line number Diff line number Diff line Loading @@ -745,6 +745,9 @@ int a6xx_preemption_context_init(struct kgsl_context *context) if (context->flags & KGSL_CONTEXT_SECURE) flags |= KGSL_MEMFLAGS_SECURE; if (kgsl_is_compat_task()) flags |= KGSL_MEMFLAGS_FORCE_32BIT; /* * gpumem_alloc_entry takes an extra refcount. Put it only when * destroying the context to keep the context record valid Loading drivers/gpu/msm/kgsl.c +15 −4 Original line number Diff line number Diff line Loading @@ -2423,6 +2423,9 @@ long kgsl_ioctl_gpuobj_import(struct kgsl_device_private *dev_priv, if (!MMU_FEATURE(mmu, KGSL_MMU_IO_COHERENT)) param->flags &= ~((uint64_t)KGSL_MEMFLAGS_IOCOHERENT); if (kgsl_is_compat_task()) param->flags |= KGSL_MEMFLAGS_FORCE_32BIT; entry->memdesc.flags = param->flags; if (MMU_FEATURE(mmu, KGSL_MMU_NEED_GUARD_PAGE)) Loading Loading @@ -2713,8 +2716,10 @@ long kgsl_ioctl_map_user_mem(struct kgsl_device_private *dev_priv, if (!MMU_FEATURE(mmu, KGSL_MMU_IO_COHERENT)) param->flags &= ~((uint64_t)KGSL_MEMFLAGS_IOCOHERENT); entry->memdesc.flags = ((uint64_t) param->flags) | KGSL_MEMFLAGS_FORCE_32BIT; entry->memdesc.flags = (uint64_t) param->flags; if (kgsl_is_compat_task()) entry->memdesc.flags |= KGSL_MEMFLAGS_FORCE_32BIT; if (!kgsl_mmu_use_cpu_map(mmu)) entry->memdesc.flags &= ~((uint64_t) KGSL_MEMFLAGS_USE_CPU_MAP); Loading Loading @@ -3218,6 +3223,9 @@ long kgsl_ioctl_gpuobj_alloc(struct kgsl_device_private *dev_priv, struct kgsl_gpuobj_alloc *param = data; struct kgsl_mem_entry *entry; if (kgsl_is_compat_task()) param->flags |= KGSL_MEMFLAGS_FORCE_32BIT; entry = gpumem_alloc_entry(dev_priv, param->size, param->flags); if (IS_ERR(entry)) Loading Loading @@ -3245,6 +3253,8 @@ long kgsl_ioctl_gpumem_alloc(struct kgsl_device_private *dev_priv, /* Legacy functions doesn't support these advanced features */ flags &= ~((uint64_t) KGSL_MEMFLAGS_USE_CPU_MAP); if (kgsl_is_compat_task()) flags |= KGSL_MEMFLAGS_FORCE_32BIT; entry = gpumem_alloc_entry(dev_priv, (uint64_t) param->size, flags); Loading @@ -3269,6 +3279,7 @@ long kgsl_ioctl_gpumem_alloc_id(struct kgsl_device_private *dev_priv, struct kgsl_mem_entry *entry; uint64_t flags = param->flags; if (kgsl_is_compat_task()) flags |= KGSL_MEMFLAGS_FORCE_32BIT; entry = gpumem_alloc_entry(dev_priv, (uint64_t) param->size, flags); Loading drivers/gpu/msm/kgsl.h +6 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <linux/uaccess.h> #include <linux/kthread.h> #include <asm/cacheflush.h> #include <linux/compat.h> /* * --- kgsl drawobj flags --- Loading Loading @@ -630,4 +631,9 @@ static inline void kgsl_gpu_sysfs_add_link(struct kobject *dst, kernfs_create_link(dst->sd, dst_name, old); } static inline bool kgsl_is_compat_task(void) { return (BITS_PER_LONG == 32) || is_compat_task(); } #endif /* __KGSL_H */ drivers/gpu/msm/kgsl_iommu.c +1 −1 Original line number Diff line number Diff line Loading @@ -1052,7 +1052,7 @@ static void setup_64bit_pagetable(struct kgsl_mmu *mmu, if (pagetable->name != KGSL_MMU_GLOBAL_PT && pagetable->name != KGSL_MMU_SECURE_PT) { if ((BITS_PER_LONG == 32) || is_compat_task()) { if (kgsl_is_compat_task()) { pt->svm_start = KGSL_IOMMU_SVM_BASE32; pt->svm_end = KGSL_IOMMU_SECURE_BASE(mmu); } else { Loading Loading
drivers/gpu/msm/adreno_a6xx_preempt.c +3 −0 Original line number Diff line number Diff line Loading @@ -745,6 +745,9 @@ int a6xx_preemption_context_init(struct kgsl_context *context) if (context->flags & KGSL_CONTEXT_SECURE) flags |= KGSL_MEMFLAGS_SECURE; if (kgsl_is_compat_task()) flags |= KGSL_MEMFLAGS_FORCE_32BIT; /* * gpumem_alloc_entry takes an extra refcount. Put it only when * destroying the context to keep the context record valid Loading
drivers/gpu/msm/kgsl.c +15 −4 Original line number Diff line number Diff line Loading @@ -2423,6 +2423,9 @@ long kgsl_ioctl_gpuobj_import(struct kgsl_device_private *dev_priv, if (!MMU_FEATURE(mmu, KGSL_MMU_IO_COHERENT)) param->flags &= ~((uint64_t)KGSL_MEMFLAGS_IOCOHERENT); if (kgsl_is_compat_task()) param->flags |= KGSL_MEMFLAGS_FORCE_32BIT; entry->memdesc.flags = param->flags; if (MMU_FEATURE(mmu, KGSL_MMU_NEED_GUARD_PAGE)) Loading Loading @@ -2713,8 +2716,10 @@ long kgsl_ioctl_map_user_mem(struct kgsl_device_private *dev_priv, if (!MMU_FEATURE(mmu, KGSL_MMU_IO_COHERENT)) param->flags &= ~((uint64_t)KGSL_MEMFLAGS_IOCOHERENT); entry->memdesc.flags = ((uint64_t) param->flags) | KGSL_MEMFLAGS_FORCE_32BIT; entry->memdesc.flags = (uint64_t) param->flags; if (kgsl_is_compat_task()) entry->memdesc.flags |= KGSL_MEMFLAGS_FORCE_32BIT; if (!kgsl_mmu_use_cpu_map(mmu)) entry->memdesc.flags &= ~((uint64_t) KGSL_MEMFLAGS_USE_CPU_MAP); Loading Loading @@ -3218,6 +3223,9 @@ long kgsl_ioctl_gpuobj_alloc(struct kgsl_device_private *dev_priv, struct kgsl_gpuobj_alloc *param = data; struct kgsl_mem_entry *entry; if (kgsl_is_compat_task()) param->flags |= KGSL_MEMFLAGS_FORCE_32BIT; entry = gpumem_alloc_entry(dev_priv, param->size, param->flags); if (IS_ERR(entry)) Loading Loading @@ -3245,6 +3253,8 @@ long kgsl_ioctl_gpumem_alloc(struct kgsl_device_private *dev_priv, /* Legacy functions doesn't support these advanced features */ flags &= ~((uint64_t) KGSL_MEMFLAGS_USE_CPU_MAP); if (kgsl_is_compat_task()) flags |= KGSL_MEMFLAGS_FORCE_32BIT; entry = gpumem_alloc_entry(dev_priv, (uint64_t) param->size, flags); Loading @@ -3269,6 +3279,7 @@ long kgsl_ioctl_gpumem_alloc_id(struct kgsl_device_private *dev_priv, struct kgsl_mem_entry *entry; uint64_t flags = param->flags; if (kgsl_is_compat_task()) flags |= KGSL_MEMFLAGS_FORCE_32BIT; entry = gpumem_alloc_entry(dev_priv, (uint64_t) param->size, flags); Loading
drivers/gpu/msm/kgsl.h +6 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <linux/uaccess.h> #include <linux/kthread.h> #include <asm/cacheflush.h> #include <linux/compat.h> /* * --- kgsl drawobj flags --- Loading Loading @@ -630,4 +631,9 @@ static inline void kgsl_gpu_sysfs_add_link(struct kobject *dst, kernfs_create_link(dst->sd, dst_name, old); } static inline bool kgsl_is_compat_task(void) { return (BITS_PER_LONG == 32) || is_compat_task(); } #endif /* __KGSL_H */
drivers/gpu/msm/kgsl_iommu.c +1 −1 Original line number Diff line number Diff line Loading @@ -1052,7 +1052,7 @@ static void setup_64bit_pagetable(struct kgsl_mmu *mmu, if (pagetable->name != KGSL_MMU_GLOBAL_PT && pagetable->name != KGSL_MMU_SECURE_PT) { if ((BITS_PER_LONG == 32) || is_compat_task()) { if (kgsl_is_compat_task()) { pt->svm_start = KGSL_IOMMU_SVM_BASE32; pt->svm_end = KGSL_IOMMU_SECURE_BASE(mmu); } else { Loading