[PATCH v2 10/23] media: iris: Prevent HFI queue writes when core is in deinit state

Dikshita Agarwal posted 23 patches 9 months, 2 weeks ago
There is a newer version of this series
[PATCH v2 10/23] media: iris: Prevent HFI queue writes when core is in deinit state
Posted by Dikshita Agarwal 9 months, 2 weeks ago
The current check only considers the core error state before allowing
writes to the HFI queues. However, the core can also transition to the
deinit state due to a system error triggered by the response thread.
In such cases, writing to the HFI queues should not be allowed.

Fix this by adding a check for the core deinit state, ensuring that
writes are rejected when core is not in a valid state.

Cc: stable@vger.kernel.org
Fixes: fb583a214337 ("media: iris: introduce host firmware interface with necessary hooks")
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
---
 drivers/media/platform/qcom/iris/iris_hfi_queue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/qcom/iris/iris_hfi_queue.c b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
index fac7df0c4d1a..221dcd09e1e1 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_queue.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
@@ -113,7 +113,7 @@ int iris_hfi_queue_cmd_write_locked(struct iris_core *core, void *pkt, u32 pkt_s
 {
 	struct iris_iface_q_info *q_info = &core->command_queue;
 
-	if (core->state == IRIS_CORE_ERROR)
+	if (core->state == IRIS_CORE_ERROR || core->state == IRIS_CORE_DEINIT)
 		return -EINVAL;
 
 	if (!iris_hfi_queue_write(q_info, pkt, pkt_size)) {

-- 
2.34.1
Re: [PATCH v2 10/23] media: iris: Prevent HFI queue writes when core is in deinit state
Posted by Vikash Garodia 9 months, 2 weeks ago
On 4/28/2025 2:58 PM, Dikshita Agarwal wrote:
> The current check only considers the core error state before allowing
> writes to the HFI queues. However, the core can also transition to the
> deinit state due to a system error triggered by the response thread.
> In such cases, writing to the HFI queues should not be allowed.
> 
> Fix this by adding a check for the core deinit state, ensuring that
> writes are rejected when core is not in a valid state.
> 
> Cc: stable@vger.kernel.org
> Fixes: fb583a214337 ("media: iris: introduce host firmware interface with necessary hooks")
> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> ---
>  drivers/media/platform/qcom/iris/iris_hfi_queue.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_queue.c b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> index fac7df0c4d1a..221dcd09e1e1 100644
> --- a/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> +++ b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> @@ -113,7 +113,7 @@ int iris_hfi_queue_cmd_write_locked(struct iris_core *core, void *pkt, u32 pkt_s
>  {
>  	struct iris_iface_q_info *q_info = &core->command_queue;
>  
> -	if (core->state == IRIS_CORE_ERROR)
> +	if (core->state == IRIS_CORE_ERROR || core->state == IRIS_CORE_DEINIT)
>  		return -EINVAL;
>  
>  	if (!iris_hfi_queue_write(q_info, pkt, pkt_size)) {
> 
Acked-by: Vikash Garodia <quic_vgarodia@quicinc.com>