b = q->bufs[q->bufs_first];
                if (b) {
-                       unsigned int bytes = entry[1].second_entry.num_of_bytes;
+                       unsigned int received = entry[1].second_entry.num_of_bytes;
+                       unsigned long payload =
+                               vb2_get_plane_payload(&b->vbb.vb2_buf, 0);
 
                        q->bufs[q->bufs_first] = NULL;
                        atomic_dec(&q->bufs_queued);
                        b->vbb.vb2_buf.timestamp = ns;
                        b->vbb.field = V4L2_FIELD_NONE;
                        b->vbb.sequence = atomic_read(&q->frame_sequence);
-                       if (b->vbb.vb2_buf.planes[0].length != bytes)
-                               dev_warn(dev, "buffer length is %d received %d\n",
-                                        b->vbb.vb2_buf.planes[0].length,
-                                        bytes);
+                       if (payload != received)
+                               dev_warn(dev,
+                                        "payload length is %lu, received %u\n",
+                                        payload, received);
                        vb2_buffer_done(&b->vbb.vb2_buf, VB2_BUF_STATE_DONE);
                }
                atomic_inc(&q->frame_sequence);