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

Krzysztof Smiechowicz deadwood at wp.pl
Sun Dec 27 02:02:44 PST 2009


(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)
  {


More information about the Nouveau mailing list