Commit 01f937ff authored by Luca Weiss's avatar Luca Weiss Committed by Bjorn Andersson
Browse files

soc: qcom: ocmem: don't return NULL in of_get_ocmem



If ocmem probe fails for whatever reason, of_get_ocmem returned NULL.
Without this, users must check for both NULL and IS_ERR on the returned
pointer - which didn't happen in drivers/gpu/drm/msm/adreno/adreno_gpu.c
leading to a NULL pointer dereference.

Reviewed-by: default avatarBrian Masney <masneyb@onstation.org>
Fixes: 88c1e940 ("soc: qcom: add OCMEM driver")
Signed-off-by: default avatarLuca Weiss <luca@z3ntu.xyz>
Link: https://lore.kernel.org/r/20210130142349.53335-1-luca@z3ntu.xyz


Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent aec8535e
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -189,6 +189,7 @@ struct ocmem *of_get_ocmem(struct device *dev)
{
	struct platform_device *pdev;
	struct device_node *devnode;
	struct ocmem *ocmem;

	devnode = of_parse_phandle(dev->of_node, "sram", 0);
	if (!devnode || !devnode->parent) {
@@ -202,7 +203,12 @@ struct ocmem *of_get_ocmem(struct device *dev)
		return ERR_PTR(-EPROBE_DEFER);
	}

	return platform_get_drvdata(pdev);
	ocmem = platform_get_drvdata(pdev);
	if (!ocmem) {
		dev_err(dev, "Cannot get ocmem\n");
		return ERR_PTR(-ENODEV);
	}
	return ocmem;
}
EXPORT_SYMBOL(of_get_ocmem);