Chuck Ebbert eda054e
From 615661f3948a066fd22a36fe8ea0c528b75ee373 Mon Sep 17 00:00:00 2001
Chuck Ebbert eda054e
From: Marcin Slusarz <marcin.slusarz@gmail.com>
Chuck Ebbert eda054e
Date: Sun, 22 Aug 2010 20:54:08 +0200
Chuck Ebbert eda054e
Subject: drm/nv50: initialize ramht_refs list for faked 0 channel
Chuck Ebbert eda054e
Chuck Ebbert eda054e
From: Marcin Slusarz <marcin.slusarz@gmail.com>
Chuck Ebbert eda054e
Chuck Ebbert eda054e
commit 615661f3948a066fd22a36fe8ea0c528b75ee373 upstream.
Chuck Ebbert eda054e
Chuck Ebbert eda054e
We need it for PFIFO_INTR_CACHE_ERROR interrupt handling,
Chuck Ebbert eda054e
because nouveau_fifo_swmthd looks for matching gpuobj in
Chuck Ebbert eda054e
ramht_refs list.
Chuck Ebbert eda054e
It fixes kernel panic in nouveau_gpuobj_ref_find.
Chuck Ebbert eda054e
Chuck Ebbert eda054e
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Chuck Ebbert eda054e
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Chuck Ebbert eda054e
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Chuck Ebbert eda054e
Chuck Ebbert eda054e
---
Chuck Ebbert eda054e
 drivers/gpu/drm/nouveau/nv50_instmem.c |    2 ++
Chuck Ebbert eda054e
 1 file changed, 2 insertions(+)
Chuck Ebbert eda054e
Chuck Ebbert eda054e
--- a/drivers/gpu/drm/nouveau/nv50_instmem.c
Chuck Ebbert eda054e
+++ b/drivers/gpu/drm/nouveau/nv50_instmem.c
Chuck Ebbert eda054e
@@ -141,6 +141,8 @@ nv50_instmem_init(struct drm_device *dev
Chuck Ebbert eda054e
 	chan->file_priv = (struct drm_file *)-2;
Chuck Ebbert eda054e
 	dev_priv->fifos[0] = dev_priv->fifos[127] = chan;
Chuck Ebbert eda054e
 
Chuck Ebbert eda054e
+	INIT_LIST_HEAD(&chan->ramht_refs);
Chuck Ebbert eda054e
+
Chuck Ebbert eda054e
 	/* Channel's PRAMIN object + heap */
Chuck Ebbert eda054e
 	ret = nouveau_gpuobj_new_fake(dev, 0, c_offset, c_size, 0,
Chuck Ebbert eda054e
 							NULL, &chan->ramin);