hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/include/media/v4l2-mem2mem.h
....@@ -588,7 +588,14 @@
588588 static inline
589589 unsigned int v4l2_m2m_num_src_bufs_ready(struct v4l2_m2m_ctx *m2m_ctx)
590590 {
591
- return m2m_ctx->out_q_ctx.num_rdy;
591
+ unsigned int num_buf_rdy;
592
+ unsigned long flags;
593
+
594
+ spin_lock_irqsave(&m2m_ctx->out_q_ctx.rdy_spinlock, flags);
595
+ num_buf_rdy = m2m_ctx->out_q_ctx.num_rdy;
596
+ spin_unlock_irqrestore(&m2m_ctx->out_q_ctx.rdy_spinlock, flags);
597
+
598
+ return num_buf_rdy;
592599 }
593600
594601 /**
....@@ -600,7 +607,14 @@
600607 static inline
601608 unsigned int v4l2_m2m_num_dst_bufs_ready(struct v4l2_m2m_ctx *m2m_ctx)
602609 {
603
- return m2m_ctx->cap_q_ctx.num_rdy;
610
+ unsigned int num_buf_rdy;
611
+ unsigned long flags;
612
+
613
+ spin_lock_irqsave(&m2m_ctx->cap_q_ctx.rdy_spinlock, flags);
614
+ num_buf_rdy = m2m_ctx->cap_q_ctx.num_rdy;
615
+ spin_unlock_irqrestore(&m2m_ctx->cap_q_ctx.rdy_spinlock, flags);
616
+
617
+ return num_buf_rdy;
604618 }
605619
606620 /**