OSDN Git Service

qcom: soc: llcc-slice: Clear the global drv_data pointer on error
authorJordan Crouse <jcrouse@codeaurora.org>
Tue, 11 Dec 2018 20:07:45 +0000 (13:07 -0700)
committerAndy Gross <andy.gross@linaro.org>
Tue, 12 Feb 2019 21:27:14 +0000 (15:27 -0600)
commit72d1cd033154f50e77cd4feb4e16c227b598632e
tree06fbf3e0029aa0de953db993e49ae8cef4fb1423
parent4e2256d31f0f24107c36dae35a1d84dff0fced30
qcom: soc: llcc-slice: Clear the global drv_data pointer on error

Currently the data structure for llc-slice is devm allocated and
stored as a global but never cleared if the probe function fails.
This is a problem because devm managed memory gets freed on probe
failure the API functions could access the pointer after it has been
freed.

Initialize the drv_data pointer to an error and reset it to an error
on probe failure or device destroy and add protection to the API
functions to make sure the memory doesn't get accessed.

Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
drivers/soc/qcom/llcc-sdm845.c
drivers/soc/qcom/llcc-slice.c
include/linux/soc/qcom/llcc-qcom.h