[libcamera-devel,2/3] libcamera: pipeline: rkisp1: Assert empty queuedRequests before clearing frameInfo
diff mbox series

Message ID 20210406182335.85847-3-nfraprado@collabora.com
State Accepted
Commit 63dd6a832722f801e93286f03428061dd0b16c00
Headers show
Series
  • libcamera: pipeline: rkisp1: Fix issues exposed by lc-compliance
Related show

Commit Message

Nícolas F. R. A. Prado April 6, 2021, 6:23 p.m. UTC
Assert that there are no queued requests before clearing the frameInfo,
otherwise a SEGFAULT can occur.

This issue happened while running lc-compliance.

Suggested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
 src/libcamera/pipeline/rkisp1/rkisp1.cpp | 1 +
 1 file changed, 1 insertion(+)

Comments

Niklas Söderlund April 14, 2021, 2:07 p.m. UTC | #1
Hi Nícolas,

Thanks for your patch.

On 2021-04-06 15:23:34 -0300, Nícolas F. R. A. Prado wrote:
> Assert that there are no queued requests before clearing the frameInfo,
> otherwise a SEGFAULT can occur.
> 
> This issue happened while running lc-compliance.
> 
> Suggested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

> ---
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index c122c9be2afd..3c8d9dfe6f87 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -842,6 +842,7 @@ void PipelineHandlerRkISP1::stop(Camera *camera)
>  		LOG(RkISP1, Warning)
>  			<< "Failed to stop parameters for " << camera->id();
>  
> +	ASSERT(data->queuedRequests_.empty());
>  	data->frameInfo_.clear();
>  
>  	freeBuffers(camera);
> -- 
> 2.31.1
>
Kieran Bingham April 14, 2021, 2:11 p.m. UTC | #2
On 06/04/2021 19:23, Nícolas F. R. A. Prado wrote:
> Assert that there are no queued requests before clearing the frameInfo,
> otherwise a SEGFAULT can occur.
> 
> This issue happened while running lc-compliance.
> 
> Suggested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> ---
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index c122c9be2afd..3c8d9dfe6f87 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -842,6 +842,7 @@ void PipelineHandlerRkISP1::stop(Camera *camera)
>  		LOG(RkISP1, Warning)
>  			<< "Failed to stop parameters for " << camera->id();
>  
> +	ASSERT(data->queuedRequests_.empty());
>  	data->frameInfo_.clear();
>  
>  	freeBuffers(camera);
>

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index c122c9be2afd..3c8d9dfe6f87 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -842,6 +842,7 @@  void PipelineHandlerRkISP1::stop(Camera *camera)
 		LOG(RkISP1, Warning)
 			<< "Failed to stop parameters for " << camera->id();
 
+	ASSERT(data->queuedRequests_.empty());
 	data->frameInfo_.clear();
 
 	freeBuffers(camera);