diff options
| -rw-r--r-- | drivers/gpu/msm/kgsl.c | 38 | ||||
| -rw-r--r-- | drivers/gpu/msm/kgsl.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/msm/kgsl_iommu.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/msm/kgsl_sharedmem.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/msm/kgsl_sharedmem.h | 6 |
5 files changed, 17 insertions, 34 deletions
diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index 10e139a9b00f..d5e96abdb8d5 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -2045,7 +2045,6 @@ static int kgsl_setup_anon_useraddr(struct kgsl_pagetable *pagetable, entry->memdesc.pagetable = pagetable; entry->memdesc.size = (uint64_t) size; - entry->memdesc.mmapsize = (uint64_t) size; entry->memdesc.useraddr = hostptr; if (kgsl_memdesc_use_cpu_map(&entry->memdesc)) entry->memdesc.gpuaddr = (uint64_t) entry->memdesc.useraddr; @@ -2410,7 +2409,6 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device, entry->priv_data = meta; entry->memdesc.pagetable = pagetable; entry->memdesc.size = 0; - entry->memdesc.mmapsize = 0; /* USE_CPU_MAP is not impemented for ION. */ entry->memdesc.flags &= ~((uint64_t) KGSL_MEMFLAGS_USE_CPU_MAP); entry->memdesc.flags |= KGSL_MEMFLAGS_USERMEM_ION; @@ -2444,7 +2442,6 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device, } entry->memdesc.size = PAGE_ALIGN(entry->memdesc.size); - entry->memdesc.mmapsize = PAGE_ALIGN(entry->memdesc.size); out: if (ret) { @@ -2910,7 +2907,7 @@ static uint64_t kgsl_filter_cachemode(uint64_t flags) static struct kgsl_mem_entry *gpumem_alloc_entry( struct kgsl_device_private *dev_priv, - uint64_t size, uint64_t mmapsize, uint64_t flags) + uint64_t size, uint64_t flags) { int ret; struct kgsl_process_private *private = dev_priv->process_priv; @@ -2952,17 +2949,10 @@ static struct kgsl_mem_entry *gpumem_alloc_entry( KGSL_MEMALIGN_MASK; } - if (mmapsize < size) - mmapsize = size; - /* For now only allow allocations up to 4G */ if (size == 0 || size > UINT_MAX) return ERR_PTR(-EINVAL); - /* Only allow a mmap size that we can actually mmap */ - if (mmapsize > UINT_MAX) - return ERR_PTR(-EINVAL); - flags = kgsl_filter_cachemode(flags); entry = kgsl_mem_entry_create(); @@ -2976,7 +2966,7 @@ static struct kgsl_mem_entry *gpumem_alloc_entry( entry->memdesc.priv |= KGSL_MEMDESC_SECURE; ret = kgsl_allocate_user(dev_priv->device, &entry->memdesc, - private->pagetable, size, mmapsize, flags); + private->pagetable, size, flags); if (ret != 0) goto err; @@ -3025,8 +3015,7 @@ long kgsl_ioctl_gpuobj_alloc(struct kgsl_device_private *dev_priv, struct kgsl_gpuobj_alloc *param = data; struct kgsl_mem_entry *entry; - entry = gpumem_alloc_entry(dev_priv, param->size, - param->va_len, param->flags); + entry = gpumem_alloc_entry(dev_priv, param->size, param->flags); if (IS_ERR(entry)) return PTR_ERR(entry); @@ -3035,7 +3024,7 @@ long kgsl_ioctl_gpuobj_alloc(struct kgsl_device_private *dev_priv, param->size = entry->memdesc.size; param->flags = entry->memdesc.flags; - param->mmapsize = kgsl_memdesc_mmapsize(&entry->memdesc); + param->mmapsize = kgsl_memdesc_footprint(&entry->memdesc); param->id = entry->id; return 0; @@ -3052,8 +3041,7 @@ long kgsl_ioctl_gpumem_alloc(struct kgsl_device_private *dev_priv, flags &= ~((uint64_t) KGSL_MEMFLAGS_USE_CPU_MAP); flags |= KGSL_MEMFLAGS_FORCE_32BIT; - entry = gpumem_alloc_entry(dev_priv, (uint64_t) param->size, - (uint64_t) param->size, flags); + entry = gpumem_alloc_entry(dev_priv, (uint64_t) param->size, flags); if (IS_ERR(entry)) return PTR_ERR(entry); @@ -3074,8 +3062,7 @@ long kgsl_ioctl_gpumem_alloc_id(struct kgsl_device_private *dev_priv, flags |= KGSL_MEMFLAGS_FORCE_32BIT; - entry = gpumem_alloc_entry(dev_priv, (uint64_t) param->size, - (uint64_t) param->mmapsize, flags); + entry = gpumem_alloc_entry(dev_priv, (uint64_t) param->size, flags); if (IS_ERR(entry)) return PTR_ERR(entry); @@ -3083,8 +3070,7 @@ long kgsl_ioctl_gpumem_alloc_id(struct kgsl_device_private *dev_priv, param->id = entry->id; param->flags = (unsigned int) entry->memdesc.flags; param->size = (size_t) entry->memdesc.size; - param->mmapsize = (size_t) - kgsl_memdesc_mmapsize(&entry->memdesc); + param->mmapsize = (size_t) kgsl_memdesc_footprint(&entry->memdesc); param->gpuaddr = (unsigned long) entry->memdesc.gpuaddr; return 0; @@ -3121,7 +3107,7 @@ long kgsl_ioctl_gpumem_get_info(struct kgsl_device_private *dev_priv, param->id = entry->id; param->flags = (unsigned int) entry->memdesc.flags; param->size = (size_t) entry->memdesc.size; - param->mmapsize = (size_t) kgsl_memdesc_mmapsize(&entry->memdesc); + param->mmapsize = (size_t) kgsl_memdesc_footprint(&entry->memdesc); param->useraddr = entry->memdesc.useraddr; kgsl_mem_entry_put(entry); @@ -3146,7 +3132,7 @@ long kgsl_ioctl_gpuobj_info(struct kgsl_device_private *dev_priv, param->gpuaddr = entry->memdesc.gpuaddr; param->flags = entry->memdesc.flags; param->size = entry->memdesc.size; - param->va_len = kgsl_memdesc_mmapsize(&entry->memdesc); + param->va_len = kgsl_memdesc_footprint(&entry->memdesc); param->va_addr = (uint64_t) entry->memdesc.useraddr; kgsl_mem_entry_put(entry); @@ -3369,15 +3355,15 @@ get_mmap_entry(struct kgsl_process_private *private, } if (kgsl_memdesc_use_cpu_map(&entry->memdesc)) { - if (len != kgsl_memdesc_mmapsize(&entry->memdesc)) { + if (len != kgsl_memdesc_footprint(&entry->memdesc)) { ret = -ERANGE; goto err_put; } - } else if (len != kgsl_memdesc_mmapsize(&entry->memdesc) && + } else if (len != kgsl_memdesc_footprint(&entry->memdesc) && len != entry->memdesc.size) { /* * If cpu_map != gpumap then user can map either the - * mmapsize or the entry size + * footprint or the entry size */ ret = -ERANGE; goto err_put; diff --git a/drivers/gpu/msm/kgsl.h b/drivers/gpu/msm/kgsl.h index bc0ae2bac915..f675c4446081 100644 --- a/drivers/gpu/msm/kgsl.h +++ b/drivers/gpu/msm/kgsl.h @@ -147,7 +147,6 @@ struct kgsl_memdesc_ops { * @gpuaddr: GPU virtual address * @physaddr: Physical address of the memory object * @size: Size of the memory object - * @mmapsize: Total size of the object in VM (including guard) * @priv: Internal flags and settings * @sgt: Scatter gather table for allocated pages * @ops: Function hooks for the memdesc memory type @@ -164,7 +163,6 @@ struct kgsl_memdesc { uint64_t gpuaddr; phys_addr_t physaddr; uint64_t size; - uint64_t mmapsize; unsigned int priv; struct sg_table *sgt; struct kgsl_memdesc_ops *ops; diff --git a/drivers/gpu/msm/kgsl_iommu.c b/drivers/gpu/msm/kgsl_iommu.c index 4ae007432717..1d9bc378affb 100644 --- a/drivers/gpu/msm/kgsl_iommu.c +++ b/drivers/gpu/msm/kgsl_iommu.c @@ -1200,8 +1200,7 @@ static int _iommu_map_guard_page(struct kgsl_pagetable *pt, if (!kgsl_secure_guard_page_memdesc.sgt) { if (kgsl_allocate_user(KGSL_MMU_DEVICE(pt->mmu), &kgsl_secure_guard_page_memdesc, pt, - sgp_size, sgp_size, - KGSL_MEMFLAGS_SECURE)) { + sgp_size, KGSL_MEMFLAGS_SECURE)) { KGSL_CORE_ERR( "Secure guard page alloc failed\n"); return -ENOMEM; diff --git a/drivers/gpu/msm/kgsl_sharedmem.c b/drivers/gpu/msm/kgsl_sharedmem.c index 3ee782e96f6c..8bf0a243066e 100644 --- a/drivers/gpu/msm/kgsl_sharedmem.c +++ b/drivers/gpu/msm/kgsl_sharedmem.c @@ -336,7 +336,7 @@ static int kgsl_allocate_secure(struct kgsl_device *device, int kgsl_allocate_user(struct kgsl_device *device, struct kgsl_memdesc *memdesc, struct kgsl_pagetable *pagetable, - uint64_t size, uint64_t mmapsize, uint64_t flags) + uint64_t size, uint64_t flags) { int ret; diff --git a/drivers/gpu/msm/kgsl_sharedmem.h b/drivers/gpu/msm/kgsl_sharedmem.h index b4895500bcff..151217523759 100644 --- a/drivers/gpu/msm/kgsl_sharedmem.h +++ b/drivers/gpu/msm/kgsl_sharedmem.h @@ -67,7 +67,7 @@ void kgsl_sharedmem_uninit_sysfs(void); int kgsl_allocate_user(struct kgsl_device *device, struct kgsl_memdesc *memdesc, struct kgsl_pagetable *pagetable, - uint64_t size, uint64_t mmapsize, uint64_t flags); + uint64_t size, uint64_t flags); void kgsl_get_memory_usage(char *str, size_t len, uint64_t memflags); @@ -226,7 +226,7 @@ kgsl_memdesc_use_cpu_map(const struct kgsl_memdesc *memdesc) } /* - * kgsl_memdesc_mmapsize - get the size of the mmap region + * kgsl_memdesc_footprint - get the size of the mmap region * @memdesc - the memdesc * * The entire memdesc must be mapped. Additionally if the @@ -235,7 +235,7 @@ kgsl_memdesc_use_cpu_map(const struct kgsl_memdesc *memdesc) * match up. */ static inline uint64_t -kgsl_memdesc_mmapsize(const struct kgsl_memdesc *memdesc) +kgsl_memdesc_footprint(const struct kgsl_memdesc *memdesc) { uint64_t size = memdesc->size; if (kgsl_memdesc_has_guard_page(memdesc)) |
