diff --git a/.pick_status.json b/.pick_status.json index 3758ea21ad2..0c1d3ce6a08 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -17239,7 +17239,7 @@ "description": "iris: Retry DRM_IOCTL_I915_GEM_EXECBUFFER2 on ENOMEM", "nominated": false, "nomination_type": null, - "resolution": 4, + "resolution": 1, "main_sha": null, "because_sha": null }, @@ -38258,4 +38258,4 @@ "main_sha": null, "because_sha": null } -] \ No newline at end of file +] diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c index c7a08a0e1f5..deab85ce4aa 100644 --- a/src/gallium/drivers/iris/iris_batch.c +++ b/src/gallium/drivers/iris/iris_batch.c @@ -981,9 +981,14 @@ submit_batch(struct iris_batch *batch) } int ret = 0; - if (!batch->screen->devinfo->no_hw && - intel_ioctl(batch->screen->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf)) - ret = -errno; + if (!batch->screen->devinfo->no_hw) { + do { + ret = intel_ioctl(batch->screen->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf); + } while (ret && errno == ENOMEM); + + if (ret) + ret = -errno; + } simple_mtx_unlock(bo_deps_lock);