printk(KERN_DEBUG "vb2: " fmt, ## arg);         \
        } while (0)
 
-#define call_memop(q, plane, op, args...)                              \
+#define call_memop(q, op, args...)                                     \
        (((q)->mem_ops->op) ?                                           \
                ((q)->mem_ops->op(args)) : 0)
 
 
        /* Allocate memory for all planes in this buffer */
        for (plane = 0; plane < vb->num_planes; ++plane) {
-               mem_priv = call_memop(q, plane, alloc, q->alloc_ctx[plane],
+               mem_priv = call_memop(q, alloc, q->alloc_ctx[plane],
                                      q->plane_sizes[plane]);
                if (IS_ERR_OR_NULL(mem_priv))
                        goto free;
 free:
        /* Free already allocated memory if one of the allocations failed */
        for (; plane > 0; --plane)
-               call_memop(q, plane, put, vb->planes[plane - 1].mem_priv);
+               call_memop(q, put, vb->planes[plane - 1].mem_priv);
 
        return -ENOMEM;
 }
        unsigned int plane;
 
        for (plane = 0; plane < vb->num_planes; ++plane) {
-               call_memop(q, plane, put, vb->planes[plane].mem_priv);
+               call_memop(q, put, vb->planes[plane].mem_priv);
                vb->planes[plane].mem_priv = NULL;
                dprintk(3, "Freed plane %d of buffer %d\n",
                                plane, vb->v4l2_buf.index);
                void *mem_priv = vb->planes[plane].mem_priv;
 
                if (mem_priv) {
-                       call_memop(q, plane, put_userptr, mem_priv);
+                       call_memop(q, put_userptr, mem_priv);
                        vb->planes[plane].mem_priv = NULL;
                }
        }
                 * case anyway. If num_users() returns more than 1,
                 * we are not the only user of the plane's memory.
                 */
-               if (mem_priv && call_memop(q, plane, num_users, mem_priv) > 1)
+               if (mem_priv && call_memop(q, num_users, mem_priv) > 1)
                        return true;
        }
        return false;
        if (plane_no > vb->num_planes)
                return NULL;
 
-       return call_memop(q, plane_no, vaddr, vb->planes[plane_no].mem_priv);
+       return call_memop(q, vaddr, vb->planes[plane_no].mem_priv);
 
 }
 EXPORT_SYMBOL_GPL(vb2_plane_vaddr);
        if (plane_no > vb->num_planes)
                return NULL;
 
-       return call_memop(q, plane_no, cookie, vb->planes[plane_no].mem_priv);
+       return call_memop(q, cookie, vb->planes[plane_no].mem_priv);
 }
 EXPORT_SYMBOL_GPL(vb2_plane_cookie);
 
 
                /* Release previously acquired memory if present */
                if (vb->planes[plane].mem_priv)
-                       call_memop(q, plane, put_userptr,
-                                       vb->planes[plane].mem_priv);
+                       call_memop(q, put_userptr, vb->planes[plane].mem_priv);
 
                vb->planes[plane].mem_priv = NULL;
                vb->v4l2_planes[plane].m.userptr = 0;
        /* In case of errors, release planes that were already acquired */
        for (plane = 0; plane < vb->num_planes; ++plane) {
                if (vb->planes[plane].mem_priv)
-                       call_memop(q, plane, put_userptr,
-                                  vb->planes[plane].mem_priv);
+                       call_memop(q, put_userptr, vb->planes[plane].mem_priv);
                vb->planes[plane].mem_priv = NULL;
                vb->v4l2_planes[plane].m.userptr = 0;
                vb->v4l2_planes[plane].length = 0;