Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b12776c8 authored by Harshdeep Dhatt's avatar Harshdeep Dhatt Committed by Gerrit - the friendly Code Review server
Browse files

msm: kgsl: Fix NULL pointer dereference



Before dereferencing the register base, check
if it has been initialized or not. This saves us
a device failure during gmu snapshot that occurs
before the register base is initialized.

Change-Id: I5402a82b0549b219f75f9268724f7a114aaeddf0
Signed-off-by: default avatarHarshdeep Dhatt <hdhatt@codeaurora.org>
Signed-off-by: default avatarRaghu Ananya Arabolu <rarabolu@codeaurora.org>
parent b4c0cbb0
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2099,6 +2099,8 @@ kgsl_iommu_get_current_ttbr0(struct kgsl_mmu *mmu)
{
	u64 val;
	struct kgsl_iommu *iommu = _IOMMU_PRIV(mmu);
	struct kgsl_iommu_context *ctx = &iommu->ctx[KGSL_IOMMU_CONTEXT_USER];

	/*
	 * We cannot enable or disable the clocks in interrupt context, this
	 * function is called from interrupt context if there is an axi error
@@ -2106,9 +2108,11 @@ kgsl_iommu_get_current_ttbr0(struct kgsl_mmu *mmu)
	if (in_interrupt())
		return 0;

	if (ctx->regbase == NULL)
		return 0;

	kgsl_iommu_enable_clk(mmu);
	val = KGSL_IOMMU_GET_CTX_REG_Q(&iommu->ctx[KGSL_IOMMU_CONTEXT_USER],
					TTBR0);
	val = KGSL_IOMMU_GET_CTX_REG_Q(ctx, TTBR0);
	kgsl_iommu_disable_clk(mmu);
	return val;
}