From ded39f3537f316b8d7635ec999916185a8e5d5f9 Mon Sep 17 00:00:00 2001 From: Harshitha Sai Neelati Date: Thu, 15 Jul 2021 19:13:59 +0530 Subject: [PATCH] msm: kgsl: Initialize cb_num for secure context Currently we are not initializing cb_num for secure context. This is causing problems in the kgsl fault handler path when there is a pagefault for secure context. Hence initialize cb_num for secure context. Change-Id: I35a37193f512f315f443e9f0d92fdae11411bbd2 Signed-off-by: Harshitha Sai Neelati --- drivers/gpu/msm/kgsl_iommu.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/msm/kgsl_iommu.c b/drivers/gpu/msm/kgsl_iommu.c index 2cacf6dfe490..0a16898be6e2 100644 --- a/drivers/gpu/msm/kgsl_iommu.c +++ b/drivers/gpu/msm/kgsl_iommu.c @@ -1230,6 +1230,7 @@ static int _init_secure_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt) struct kgsl_iommu_context *ctx = &iommu->secure_context; int secure_vmid = VMID_CP_PIXEL; struct kgsl_global_memdesc *md; + int cb_num; if (!mmu->secured) return -EPERM; @@ -1259,6 +1260,17 @@ static int _init_secure_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt) iommu_set_fault_handler(iommu_pt->domain, kgsl_iommu_fault_handler, pt); + ret = iommu_domain_get_attr(iommu_pt->domain, + DOMAIN_ATTR_CONTEXT_BANK, &cb_num); + if (ret) { + dev_err(device->dev, "get DOMAIN_ATTR_CONTEXT_BANK failed: %d\n", + ret); + _free_pt(ctx, pt); + return ret; + } + + ctx->cb_num = cb_num; + /* Map any pending secure global buffers */ list_for_each_entry(md, &device->globals, node) { if (md->memdesc.flags & KGSL_MEMFLAGS_SECURE)