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

Commit d828a036 authored by Harshdeep Dhatt's avatar Harshdeep Dhatt
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 crash during gmu snapshot that occurs
before the register base is initialized.

Change-Id: I5402a82b0549b219f75f9268724f7a114aaeddf0
Signed-off-by: default avatarHarshdeep Dhatt <hdhatt@codeaurora.org>
parent 81ecb311
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2090,6 +2090,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
@@ -2097,9 +2099,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;
}