diff --git a/drivers/soc/qcom/hab/hab_mem_linux.c b/drivers/soc/qcom/hab/hab_mem_linux.c index 74ee88a037af..e9e42554cbe2 100644 --- a/drivers/soc/qcom/hab/hab_mem_linux.c +++ b/drivers/soc/qcom/hab/hab_mem_linux.c @@ -361,18 +361,19 @@ static int hab_map_fault(struct vm_area_struct *vma, struct vm_fault *vmf) { struct page *page; struct pages_list *pglist; - - unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; - - /* PHY address */ - unsigned long fault_offset = - (unsigned long)vmf->virtual_address - vma->vm_start + offset; - unsigned long fault_index = fault_offset>>PAGE_SHIFT; + unsigned long offset, fault_offset, fault_index; int page_idx; if (vma == NULL) return VM_FAULT_SIGBUS; + offset = vma->vm_pgoff << PAGE_SHIFT; + + /* PHY address */ + fault_offset = + (unsigned long)vmf->virtual_address - vma->vm_start + offset; + fault_index = fault_offset>>PAGE_SHIFT; + pglist = vma->vm_private_data; page_idx = fault_index - pglist->index; @@ -463,6 +464,7 @@ static int habmem_imp_hyp_map_fd(void *imp_ctx, int i, j, k = 0; pgprot_t prot = PAGE_KERNEL; int32_t fd, size; + int ret; DEFINE_DMA_BUF_EXPORT_INFO(exp_info); if (!pfn_table || !priv) @@ -505,9 +507,10 @@ static int habmem_imp_hyp_map_fd(void *imp_ctx, exp_info.priv = pglist; pglist->dmabuf = dma_buf_export(&exp_info); if (IS_ERR(pglist->dmabuf)) { + ret = PTR_ERR(pglist->dmabuf); kfree(pages); kfree(pglist); - return PTR_ERR(pglist->dmabuf); + return ret; } fd = dma_buf_fd(pglist->dmabuf, O_CLOEXEC); @@ -579,8 +582,8 @@ static int habmem_imp_hyp_map_kva(void *imp_ctx, pglist->kva = vmap(pglist->pages, pglist->npages, VM_MAP, prot); if (pglist->kva == NULL) { kfree(pages); - kfree(pglist); pr_err("%ld pages vmap failed\n", pglist->npages); + kfree(pglist); return -ENOMEM; } diff --git a/drivers/soc/qcom/hab/hab_mimex.c b/drivers/soc/qcom/hab/hab_mimex.c index 86d763f65657..c0a663d544e0 100644 --- a/drivers/soc/qcom/hab/hab_mimex.c +++ b/drivers/soc/qcom/hab/hab_mimex.c @@ -124,8 +124,7 @@ void habmem_remove_export(struct export_desc *exp) struct uhab_context *ctx; if (!exp || !exp->ctx || !exp->pchan) { - pr_err("failed to find valid info in exp %pK ctx %pK pchan %pK\n", - exp, exp->ctx, exp->pchan); + pr_err("failed to find valid info in exp %pK\n", exp); return; }