From 8ce0856ed37de3f9bd3f12ffc3ff484b40eacb82 Mon Sep 17 00:00:00 2001 From: Abdulla Anam Date: Mon, 11 Jul 2016 20:35:09 +0530 Subject: [PATCH] msm: vidc: check for venus_hfi_device state in resume Now since resume is called to ensure venus is in power on state during scale clocks, an issue is seen when client responds to an error notification with stream_off. This causes scale clocks to be called which powers_on venus and enable regulators. But an earlier sys_error deinited all resources and hence a null pointer exception is seen causing kernel panic. CRs-Fixed: 1040026 Change-Id: Ibb660397f8e7e3e0cd0a5e672924925e605b2eb7 Signed-off-by: Abdulla Anam --- drivers/media/platform/msm/vidc/venus_hfi.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/media/platform/msm/vidc/venus_hfi.c b/drivers/media/platform/msm/vidc/venus_hfi.c index df4c99b50cd1..ac53b3bcb4ed 100644 --- a/drivers/media/platform/msm/vidc/venus_hfi.c +++ b/drivers/media/platform/msm/vidc/venus_hfi.c @@ -4249,6 +4249,9 @@ static inline int __resume(struct venus_hfi_device *device) } else if (device->power_enabled) { dprintk(VIDC_DBG, "Power is already enabled\n"); goto exit; + } else if (!__core_in_valid_state(device)) { + dprintk(VIDC_DBG, "venus_hfi_device in deinit state."); + return -EINVAL; } dprintk(VIDC_DBG, "Resuming from power collapse\n");