struct ttm_mem_reg *new_mem)
 {
        struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev);
+       struct nouveau_channel *chan = chan = dev_priv->channel;
        struct nouveau_bo *nvbo = nouveau_bo(bo);
        struct ttm_mem_reg *old_mem = &bo->mem;
-       struct nouveau_channel *chan;
        int ret;
 
-       chan = nvbo->channel;
-       if (!chan) {
-               chan = dev_priv->channel;
-               mutex_lock_nested(&chan->mutex, NOUVEAU_KCHANNEL_MUTEX);
-       }
+       mutex_lock_nested(&chan->mutex, NOUVEAU_KCHANNEL_MUTEX);
 
        /* create temporary vmas for the transfer and attach them to the
         * old nouveau_mem node, these will get cleaned up after ttm has
        }
 
 out:
-       if (chan == dev_priv->channel)
-               mutex_unlock(&chan->mutex);
+       mutex_unlock(&chan->mutex);
        return ret;
 }
 
 
                        return ret;
                }
 
-               nvbo->channel = (b->read_domains & (1 << 31)) ? NULL : chan;
                ret = nouveau_bo_validate(nvbo, true, false, false);
-               nvbo->channel = NULL;
                if (unlikely(ret)) {
                        if (ret != -ERESTARTSYS)
                                NV_ERROR(dev, "fail ttm_validate\n");
                return PTR_ERR(bo);
        }
 
-       /* Mark push buffers as being used on PFIFO, the validation code
-        * will then make sure that if the pushbuf bo moves, that they
-        * happen on the kernel channel, which will in turn cause a sync
-        * to happen before we try and submit the push buffer.
-        */
+       /* Ensure all push buffers are on validate list */
        for (i = 0; i < req->nr_push; i++) {
                if (push[i].bo_index >= req->nr_buffers) {
                        NV_ERROR(dev, "push %d buffer not in list\n", i);
                        ret = -EINVAL;
                        goto out_prevalid;
                }
-
-               bo[push[i].bo_index].read_domains |= (1 << 31);
        }
 
        /* Validate buffer list */