| .. | .. |
|---|
| 142 | 142 | |
|---|
| 143 | 143 | ret = dma_mmap_attrs(priv->dma_dev, vma, mtk_gem->cookie, |
|---|
| 144 | 144 | mtk_gem->dma_addr, obj->size, mtk_gem->dma_attrs); |
|---|
| 145 | | - if (ret) |
|---|
| 146 | | - drm_gem_vm_close(vma); |
|---|
| 147 | 145 | |
|---|
| 148 | 146 | return ret; |
|---|
| 149 | 147 | } |
|---|
| .. | .. |
|---|
| 251 | 249 | |
|---|
| 252 | 250 | mtk_gem->kvaddr = vmap(mtk_gem->pages, npages, VM_MAP, |
|---|
| 253 | 251 | pgprot_writecombine(PAGE_KERNEL)); |
|---|
| 254 | | - |
|---|
| 252 | + if (!mtk_gem->kvaddr) { |
|---|
| 253 | + kfree(sgt); |
|---|
| 254 | + kfree(mtk_gem->pages); |
|---|
| 255 | + return NULL; |
|---|
| 256 | + } |
|---|
| 255 | 257 | out: |
|---|
| 256 | 258 | kfree(sgt); |
|---|
| 257 | 259 | |
|---|
| .. | .. |
|---|
| 266 | 268 | return; |
|---|
| 267 | 269 | |
|---|
| 268 | 270 | vunmap(vaddr); |
|---|
| 269 | | - mtk_gem->kvaddr = 0; |
|---|
| 271 | + mtk_gem->kvaddr = NULL; |
|---|
| 270 | 272 | kfree(mtk_gem->pages); |
|---|
| 271 | 273 | } |
|---|