return container_of(queue, struct uvc_streaming, queue);
 }
 
+static inline struct uvc_buffer *uvc_vbuf_to_buffer(struct vb2_v4l2_buffer *buf)
+{
+       return container_of(buf, struct uvc_buffer, buf);
+}
+
 /*
  * Return all queued buffers to videobuf2 in the requested state.
  *
 {
        struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
        struct uvc_video_queue *queue = vb2_get_drv_priv(vb->vb2_queue);
-       struct uvc_buffer *buf = container_of(vbuf, struct uvc_buffer, buf);
+       struct uvc_buffer *buf = uvc_vbuf_to_buffer(vbuf);
 
        if (vb->type == V4L2_BUF_TYPE_VIDEO_OUTPUT &&
            vb2_get_plane_payload(vb, 0) > vb2_plane_size(vb, 0)) {
 {
        struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
        struct uvc_video_queue *queue = vb2_get_drv_priv(vb->vb2_queue);
-       struct uvc_buffer *buf = container_of(vbuf, struct uvc_buffer, buf);
+       struct uvc_buffer *buf = uvc_vbuf_to_buffer(vbuf);
        unsigned long flags;
 
        spin_lock_irqsave(&queue->irqlock, flags);
        struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
        struct uvc_video_queue *queue = vb2_get_drv_priv(vb->vb2_queue);
        struct uvc_streaming *stream = uvc_queue_to_stream(queue);
-       struct uvc_buffer *buf = container_of(vbuf, struct uvc_buffer, buf);
+       struct uvc_buffer *buf = uvc_vbuf_to_buffer(vbuf);
 
        if (vb->state == VB2_BUF_STATE_DONE)
                uvc_video_clock_update(stream, vbuf, buf);