Merge "msm: kgsl: Deregister gpu address on memdesc_sg_virt failure"
This commit is contained in:
commit
c84b15c7c4
@ -2458,6 +2458,8 @@ static int kgsl_setup_anon_useraddr(struct kgsl_pagetable *pagetable,
|
||||
{
|
||||
/* Map an anonymous memory chunk */
|
||||
|
||||
int ret;
|
||||
|
||||
if (size == 0 || offset != 0 ||
|
||||
!IS_ALIGNED(size, PAGE_SIZE))
|
||||
return -EINVAL;
|
||||
@ -2467,7 +2469,6 @@ static int kgsl_setup_anon_useraddr(struct kgsl_pagetable *pagetable,
|
||||
entry->memdesc.flags |= (uint64_t)KGSL_MEMFLAGS_USERMEM_ADDR;
|
||||
|
||||
if (kgsl_memdesc_use_cpu_map(&entry->memdesc)) {
|
||||
int ret;
|
||||
|
||||
/* Register the address in the database */
|
||||
ret = kgsl_mmu_set_svm_region(pagetable,
|
||||
@ -2479,7 +2480,12 @@ static int kgsl_setup_anon_useraddr(struct kgsl_pagetable *pagetable,
|
||||
entry->memdesc.gpuaddr = (uint64_t) hostptr;
|
||||
}
|
||||
|
||||
return memdesc_sg_virt(&entry->memdesc, hostptr);
|
||||
ret = memdesc_sg_virt(&entry->memdesc, hostptr);
|
||||
|
||||
if (ret && kgsl_memdesc_use_cpu_map(&entry->memdesc))
|
||||
kgsl_mmu_put_gpuaddr(pagetable, &entry->memdesc);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DMA_SHARED_BUFFER
|
||||
|
Loading…
Reference in New Issue
Block a user