|
@@ -426,9 +426,7 @@ validate_list(struct nouveau_channel *chan, struct list_head *list,
|
|
|
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");
|
|
@@ -678,19 +676,13 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data,
|
|
|
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 */
|