diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-12-06 14:33:13 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-12-06 14:33:13 -0800 |
commit | c0ebe0a103cec40c4753f3c8b203144a8d8e21fe (patch) | |
tree | 4ac310ff1ce8b15e65a8b018a244bec41f367fc6 /drivers | |
parent | 2acbcf88e8921c7b517d8d7f29d135149a9ded7d (diff) | |
parent | e4798a55646662bda0eba61dcedc7a2b00bc6402 (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.c | 12 |
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); |