lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 12 Mar 2020 22:46:25 -0300 From: Helen Koike <helen.koike@...labora.com> To: linux-media@...r.kernel.org Cc: mchehab@...nel.org, linux-kernel@...r.kernel.org, tfiga@...omium.org, linux-rockchip@...ts.infradead.org, hans.verkuil@...co.com, kernel@...labora.com, Helen Koike <helen.koike@...labora.com> Subject: [PATCH 2/3] media: staging: rkisp1: do not call s_stream if the entity is still in use If stream is being used by another stream, then .s_stream callback shouldn't be called. This fixes the following behaviour: When performing smultaneos stream from both capture devices, stopping one streaming would make the other to stall, since it disables all the shared entities from both pipelines. Signed-off-by: Helen Koike <helen.koike@...labora.com> --- Hi, I'm not sure if it is ok to check for entity->pipe, since I didn't see other drivers doing this. Please let me know if you have any other suggestion to verity if the entity is marked as streaming. Thanks --- drivers/staging/media/rkisp1/rkisp1-capture.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/staging/media/rkisp1/rkisp1-capture.c b/drivers/staging/media/rkisp1/rkisp1-capture.c index 97091e5a6e6c..e665381b5af0 100644 --- a/drivers/staging/media/rkisp1/rkisp1-capture.c +++ b/drivers/staging/media/rkisp1/rkisp1-capture.c @@ -892,6 +892,10 @@ static int rkisp1_pipeline_disable_cb(struct media_entity *from, { struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(curr); + /* subdevice is already enabled */ + if (curr->pipe) + return 0; + return v4l2_subdev_call(sd, video, s_stream, false); } @@ -900,6 +904,10 @@ static int rkisp1_pipeline_enable_cb(struct media_entity *from, { struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(curr); + /* don't disable subdevice if it is still in use by another stream */ + if (curr->pipe) + return 0; + return v4l2_subdev_call(sd, video, s_stream, true); } -- 2.25.0
Powered by blists - more mailing lists