vq = v4l2_m2m_get_src_vq(inst->fh.m2m_ctx);
        for (i = 0; i < vq->num_buffers; i++) {
-               struct vb2_buffer *vb = vq->bufs[i];
-               struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
+               struct vb2_buffer *vb;
+               struct vb2_v4l2_buffer *vbuf;
+
+               vb = vb2_get_buffer(vq, i);
+               if (!vb)
+                       continue;
 
                if (vb->state == VB2_BUF_STATE_DEQUEUED)
                        continue;
+
+               vbuf = to_vb2_v4l2_buffer(vb);
+
                num = scnprintf(str, sizeof(str),
                                "output [%2d] state = %10s, %8s\n",
                                i, vb2_stat_name[vb->state],
 
        vq = v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx);
        for (i = 0; i < vq->num_buffers; i++) {
-               struct vb2_buffer *vb = vq->bufs[i];
-               struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
+               struct vb2_buffer *vb;
+               struct vb2_v4l2_buffer *vbuf;
+
+               vb = vb2_get_buffer(vq, i);
+               if (!vb)
+                       continue;
 
                if (vb->state == VB2_BUF_STATE_DEQUEUED)
                        continue;
+
+               vbuf = to_vb2_v4l2_buffer(vb);
+
                num = scnprintf(str, sizeof(str),
                                "capture[%2d] state = %10s, %8s\n",
                                i, vb2_stat_name[vb->state],