freedreno/drm: fd_submit should hold ref to fd_pipe
authorRob Clark <robdclark@chromium.org>
Thu, 22 Apr 2021 15:02:49 +0000 (08:02 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 28 Apr 2021 15:36:42 +0000 (15:36 +0000)
Also, move this into the base class, no reason for it to be in backend.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>

src/freedreno/drm/freedreno_ringbuffer.c
src/freedreno/drm/msm_ringbuffer.c
src/freedreno/drm/msm_ringbuffer_sp.c

index 700ba42..a2fd7ef 100644 (file)
@@ -35,6 +35,7 @@ fd_submit_new(struct fd_pipe *pipe)
 {
    struct fd_submit *submit = pipe->funcs->submit_new(pipe);
    submit->refcnt = 1;
+   submit->pipe = fd_pipe_ref(pipe);
    return submit;
 }
 
@@ -47,6 +48,8 @@ fd_submit_del(struct fd_submit *submit)
    if (submit->primary)
       fd_ringbuffer_del(submit->primary);
 
+   fd_pipe_del(submit->pipe);
+
    submit->funcs->destroy(submit);
 }
 
index 50ec878..dbeeb73 100644 (file)
@@ -433,7 +433,6 @@ msm_submit_new(struct fd_pipe *pipe)
    slab_create(&msm_submit->ring_pool, sizeof(struct msm_ringbuffer), 16);
 
    submit = &msm_submit->base;
-   submit->pipe = pipe;
    submit->funcs = &submit_funcs;
 
    return submit;
index f8becaf..1ebbc86 100644 (file)
@@ -530,7 +530,6 @@ msm_submit_sp_new(struct fd_pipe *pipe)
    slab_create_child(&msm_submit->ring_pool, &to_msm_pipe(pipe)->ring_pool);
 
    submit = &msm_submit->base;
-   submit->pipe = pipe;
    submit->funcs = &submit_funcs;
 
    return submit;