summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-12-06 14:33:13 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-06 14:33:13 -0800
commitc0ebe0a103cec40c4753f3c8b203144a8d8e21fe (patch)
tree4ac310ff1ce8b15e65a8b018a244bec41f367fc6 /drivers
parent2acbcf88e8921c7b517d8d7f29d135149a9ded7d (diff)
parente4798a55646662bda0eba61dcedc7a2b00bc6402 (diff)
Merge "msm: vidc: Fail qbuf and prepare_buf incase of error"
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/platform/msm/vidc/msm_vidc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/media/platform/msm/vidc/msm_vidc.c b/drivers/media/platform/msm/vidc/msm_vidc.c
index 7bc1fe1af26d..ac5f83f1d034 100644
--- a/drivers/media/platform/msm/vidc/msm_vidc.c
+++ b/drivers/media/platform/msm/vidc/msm_vidc.c
@@ -685,7 +685,11 @@ int msm_vidc_prepare_buf(void *instance, struct v4l2_buffer *b)
{
struct msm_vidc_inst *inst = instance;
- if (!inst || !b || !valid_v4l2_buffer(b, inst))
+ if (!inst || !inst->core || !b || !valid_v4l2_buffer(b, inst))
+ return -EINVAL;
+
+ if (inst->state == MSM_VIDC_CORE_INVALID ||
+ inst->core->state == VIDC_CORE_INVALID)
return -EINVAL;
if (is_dynamic_output_buffer_mode(b, inst))
@@ -807,7 +811,11 @@ int msm_vidc_qbuf(void *instance, struct v4l2_buffer *b)
int rc = 0;
int i;
- if (!inst || !b || !valid_v4l2_buffer(b, inst))
+ if (!inst || !inst->core || !b || !valid_v4l2_buffer(b, inst))
+ return -EINVAL;
+
+ if (inst->state == MSM_VIDC_CORE_INVALID ||
+ inst->core->state == VIDC_CORE_INVALID)
return -EINVAL;
rc = map_and_register_buf(inst, b);