mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-22 17:49:43 +07:00
media: hantro: streamline open, reuse error path
This adds a label to the error path to avoid calling v4l2_m2m_ctx_init() and kfree(ctx) in two places each. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
4a0cad6dca
commit
3f5e1e2f6e
@ -413,20 +413,18 @@ static int hantro_open(struct file *filp)
|
||||
if (func->id == MEDIA_ENT_F_PROC_VIDEO_ENCODER) {
|
||||
allowed_codecs = vpu->variant->codec & HANTRO_ENCODERS;
|
||||
ctx->buf_finish = hantro_enc_buf_finish;
|
||||
ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(vpu->m2m_dev, ctx,
|
||||
queue_init);
|
||||
} else if (func->id == MEDIA_ENT_F_PROC_VIDEO_DECODER) {
|
||||
allowed_codecs = vpu->variant->codec & HANTRO_DECODERS;
|
||||
ctx->buf_finish = hantro_dec_buf_finish;
|
||||
ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(vpu->m2m_dev, ctx,
|
||||
queue_init);
|
||||
} else {
|
||||
ctx->fh.m2m_ctx = ERR_PTR(-ENODEV);
|
||||
ret = -ENODEV;
|
||||
goto err_ctx_free;
|
||||
}
|
||||
|
||||
ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(vpu->m2m_dev, ctx, queue_init);
|
||||
if (IS_ERR(ctx->fh.m2m_ctx)) {
|
||||
ret = PTR_ERR(ctx->fh.m2m_ctx);
|
||||
kfree(ctx);
|
||||
return ret;
|
||||
goto err_ctx_free;
|
||||
}
|
||||
|
||||
v4l2_fh_init(&ctx->fh, vdev);
|
||||
@ -447,6 +445,7 @@ static int hantro_open(struct file *filp)
|
||||
err_fh_free:
|
||||
v4l2_fh_del(&ctx->fh);
|
||||
v4l2_fh_exit(&ctx->fh);
|
||||
err_ctx_free:
|
||||
kfree(ctx);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user