[Nouveau] [PATCH 2/2] libdrm: Unreference pushbuf objects on channel destruction

Younes Manton younes.m at gmail.com
Mon Dec 28 15:08:41 PST 2009


On Sun, Dec 27, 2009 at 5:02 AM, Krzysztof Smiechowicz <deadwood at wp.pl> wrote:
> (resending as git patch)
>
> - unreference pushbuf objects on channel destruction
>
>
> diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
> index 674c5c3..6f71f89 100644
> --- a/nouveau/nouveau_channel.c
> +++ b/nouveau/nouveau_channel.c
> @@ -111,6 +111,8 @@ nouveau_channel_free(struct nouveau_channel **chan)
>
>        FIRE_RING(&nvchan->base);
>
> +       nouveau_pushbuf_fini(&nvchan->base);
> +
>        nouveau_bo_unmap(nvchan->notifier_bo);
>        nouveau_bo_ref(NULL, &nvchan->notifier_bo);
>
> diff --git a/nouveau/nouveau_private.h b/nouveau/nouveau_private.h
> index 784afc9..de21a6b 100644
> --- a/nouveau/nouveau_private.h
> +++ b/nouveau/nouveau_private.h
> @@ -65,6 +65,9 @@ struct nouveau_pushbuf_priv {
>  int
>  nouveau_pushbuf_init(struct nouveau_channel *);
>
> +void
> +nouveau_pushbuf_fini(struct nouveau_channel *);
> +
>  struct nouveau_channel_priv {
>        struct nouveau_channel base;
>
> diff --git a/nouveau/nouveau_pushbuf.c b/nouveau/nouveau_pushbuf.c
> index b90e923..c4053ed 100644
> --- a/nouveau/nouveau_pushbuf.c
> +++ b/nouveau/nouveau_pushbuf.c
> @@ -170,6 +170,12 @@ nouveau_pushbuf_init(struct nouveau_channel *chan)
>        return 0;
>  }
>
> +void
> +nouveau_pushbuf_fini(struct nouveau_channel *chan)
> +{
> +       nouveau_pushbuf_fini_call(chan);
> +}
> +
>  int
>  nouveau_pushbuf_flush(struct nouveau_channel *chan, unsigned min)
>  {

Pushed both. I had to apply them by hand along with a few minor
additions since they would still not apply cleanly. They probably
needed a rebase. Thanks.


More information about the Nouveau mailing list