i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 }
 
-static int clflush_work(struct dma_fence_work *base)
+static void clflush_work(struct dma_fence_work *base)
 {
        struct clflush *clflush = container_of(base, typeof(*clflush), base);
 
        __do_clflush(clflush->obj);
-
-       return 0;
 }
 
 static void clflush_release(struct dma_fence_work *base)
 
 static void fence_work(struct work_struct *work)
 {
        struct dma_fence_work *f = container_of(work, typeof(*f), work);
-       int err;
 
-       err = f->ops->work(f);
-       if (err)
-               dma_fence_set_error(&f->dma, err);
+       f->ops->work(f);
 
        fence_complete(f);
        dma_fence_put(&f->dma);
 
 
 struct dma_fence_work_ops {
        const char *name;
-       int (*work)(struct dma_fence_work *f);
+       void (*work)(struct dma_fence_work *f);
        void (*release)(struct dma_fence_work *f);
 };
 
 
        unsigned int flags;
 };
 
-static int __vma_bind(struct dma_fence_work *work)
+static void __vma_bind(struct dma_fence_work *work)
 {
        struct i915_vma_work *vw = container_of(work, typeof(*vw), base);
        struct i915_vma *vma = vw->vma;
 
        vma->ops->bind_vma(vw->vm, &vw->stash,
                           vma, vw->cache_level, vw->flags);
-       return 0;
 }
 
 static void __vma_release(struct dma_fence_work *work)