On Mon, Nov 15, 2021 at 03:08:49PM +0100, Daniel Vetter wrote: > On Mon, Nov 15, 2021 at 03:03:53PM +0100, Sascha Hauer wrote: > > Hi, > > > > On Fri, Sep 17, 2021 at 02:34:59PM +0200, Christian König wrote: > > > Simplifying the code a bit. > > > > > > v2: use dma_resv_for_each_fence > > > > > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > > > --- > > > drivers/gpu/drm/scheduler/sched_main.c | 26 ++++++-------------------- > > > 1 file changed, 6 insertions(+), 20 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c > > > index 042c16b5d54a..5bc5f775abe1 100644 > > > --- a/drivers/gpu/drm/scheduler/sched_main.c > > > +++ b/drivers/gpu/drm/scheduler/sched_main.c > > > @@ -699,30 +699,16 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job, > > > struct drm_gem_object *obj, > > > bool write) > > > { > > > + struct dma_resv_iter cursor; > > > + struct dma_fence *fence; > > > int ret; > > > - struct dma_fence **fences; > > > - unsigned int i, fence_count; > > > - > > > - if (!write) { > > > - struct dma_fence *fence = dma_resv_get_excl_unlocked(obj->resv); > > > - > > > - return drm_sched_job_add_dependency(job, fence); > > > - } > > > - > > > - ret = dma_resv_get_fences(obj->resv, NULL, &fence_count, &fences); > > > - if (ret || !fence_count) > > > - return ret; > > > > > > - for (i = 0; i < fence_count; i++) { > > > - ret = drm_sched_job_add_dependency(job, fences[i]); > > > + dma_resv_for_each_fence(&cursor, obj->resv, write, fence) { > > > + ret = drm_sched_job_add_dependency(job, fence); > > > if (ret) > > > - break; > > > + return ret; > > > } > > > - > > > - for (; i < fence_count; i++) > > > - dma_fence_put(fences[i]); > > > - kfree(fences); > > > - return ret; > > > + return 0; > > > } > > > EXPORT_SYMBOL(drm_sched_job_add_implicit_dependencies); > > > > > > > This patch lets the panfrost driver explode on v5.16-rc1 with the > > following. I didn't bisect it, but it goes away when I revert this > > patch. I only started weston, nothing more. > > > > Any idea what goes wrong here? > > Should be fixed in 13e9e30cafea1, but Christian pushed it to the wrong > patch so it missed -rc1. I can confirm 13e9e30cafea1 fixes the issue, thanks Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |