From 97243ae2f5fd99fcc341df1602fcacf5898a0099 Mon Sep 17 00:00:00 2001 From: xuzaibo Date: Thu, 11 Jul 2019 14:41:20 +0800 Subject: [PATCH] ACC: Bugfix of VA leak at wd_reserve_mem driver inclusion category: bugfix bugzilla: NA CVE: NA [ 867.662129] Call trace: [ 867.664565] dump_backtrace+0x0/0x1c0 [ 867.668213] show_stack+0x24/0x30 [ 867.671516] dump_stack+0xa8/0xcc [ 867.674818] oom_show_debug_info+0x20/0xe0 [ 867.678900] out_of_memory+0x1f0/0x520 [ 867.682634] __alloc_pages_nodemask+0xca8/0xd38 [ 867.687151] iommu_dma_alloc+0x178/0x428 [ 867.691060] __iommu_alloc_attrs+0x280/0x3f8 [ 867.695318] uacce_create_region+0x42c/0x5e8 [uacce] [ 867.700269] uacce_fops_mmap+0x298/0x338 [uacce] [ 867.704871] mmap_region+0x3e8/0x5b8 [ 867.708432] do_mmap+0x304/0x470 [ 867.711646] vm_mmap_pgoff+0xf4/0x128 [ 867.715294] ksys_mmap_pgoff+0xb4/0x258 [ 867.719115] __arm64_sys_mmap+0x34/0x48 [ 867.722937] el0_svc_common+0xa0/0x180 [ 867.726672] el0_svc_handler+0x38/0x78 [ 867.730407] el0_svc+0x8/0xc [ 867.742023] error, MEM_PrintAllMemory is NULL! [ 867.746455] [ 867.746455] slab info: [ 867.750287] slabinfo - version: 2.1 Add munmap as wd_release_queue in UACCE Signed-off-by: xuzaibo Reviewed-by: wangzhou Signed-off-by: lingmingqiang Signed-off-by: Yang Yingliang --- drivers/uacce/uacce.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/uacce/uacce.c b/drivers/uacce/uacce.c index 75b647c365a4..8ea33e7f8d8f 100644 --- a/drivers/uacce/uacce.c +++ b/drivers/uacce/uacce.c @@ -394,6 +394,9 @@ static void uacce_destroy_region(struct uacce_queue *q, dev_dbg(uacce->pdev, "free dma qfr %s (kaddr=%lx, dma=%llx)\n", uacce_qfrt_str(qfr), (unsigned long)qfr->kaddr, qfr->dma); + if (current->mm) + vm_munmap((unsigned long)qfr->iova, + qfr->nr_pages << PAGE_SHIFT); dma_free_coherent(uacce->pdev, qfr->nr_pages << PAGE_SHIFT, qfr->kaddr, qfr->dma); } else if (qfr->pages) { -- GitLab