Marcin Slusarz
2010-Aug-22 18:54 UTC
[Nouveau] [PATCH] drm/nv50: initialize ramht_refs list for faked 0 channel
We need it for PFIFO_INTR_CACHE_ERROR interrupt handling, because nouveau_fifo_swmthd looks for matching gpuobj in ramht_refs list. It fixes kernel panic in nouveau_gpuobj_ref_find. Signed-off-by: Marcin Slusarz <marcin.slusarz at gmail.com> --- drivers/gpu/drm/nouveau/nv50_instmem.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nv50_instmem.c b/drivers/gpu/drm/nouveau/nv50_instmem.c index b57cc4a..6e57426 100644 --- a/drivers/gpu/drm/nouveau/nv50_instmem.c +++ b/drivers/gpu/drm/nouveau/nv50_instmem.c @@ -139,6 +139,8 @@ nv50_instmem_init(struct drm_device *dev) chan->file_priv = (struct drm_file *)-2; dev_priv->fifos[0] = dev_priv->fifos[127] = chan; + INIT_LIST_HEAD(&chan->ramht_refs); + /* Channel's PRAMIN object + heap */ ret = nouveau_gpuobj_new_fake(dev, 0, c_offset, c_size, 0, NULL, &chan->ramin); -- 1.7.1.1
Marcin Slusarz
2010-Aug-31 21:22 UTC
[Nouveau] [PATCH] drm/nv50: initialize ramht_refs list for faked 0 channel
On Sun, Aug 22, 2010 at 08:54:08PM +0200, Marcin Slusarz wrote:> We need it for PFIFO_INTR_CACHE_ERROR interrupt handling, > because nouveau_fifo_swmthd looks for matching gpuobj in > ramht_refs list. > It fixes kernel panic in nouveau_gpuobj_ref_find. > > Signed-off-by: Marcin Slusarz <marcin.slusarz at gmail.com> > --- > drivers/gpu/drm/nouveau/nv50_instmem.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nv50_instmem.c b/drivers/gpu/drm/nouveau/nv50_instmem.c > index b57cc4a..6e57426 100644 > --- a/drivers/gpu/drm/nouveau/nv50_instmem.c > +++ b/drivers/gpu/drm/nouveau/nv50_instmem.c > @@ -139,6 +139,8 @@ nv50_instmem_init(struct drm_device *dev) > chan->file_priv = (struct drm_file *)-2; > dev_priv->fifos[0] = dev_priv->fifos[127] = chan; > > + INIT_LIST_HEAD(&chan->ramht_refs); > + > /* Channel's PRAMIN object + heap */ > ret = nouveau_gpuobj_new_fake(dev, 0, c_offset, c_size, 0, > NULL, &chan->ramin); > --ping
Maxim Levitsky
2010-Sep-01 09:53 UTC
[Nouveau] [PATCH] drm/nv50: initialize ramht_refs list for faked 0 channel
Hi, I just tried that patch, but unfortunately nether with nor without it kdb seems not to work. It could be id10t error from my side, but I did test the kdb in the past with few KMS patches, and it seemed to work. Now I can't even get its prompt on the console. This is what I do: echo kbd | sudo tee /sys/module/kgdboc/parameters/kgdboc (also tried booting with kgdboc=kbd) Both seems to start kdb, because maxim at maxim-laptop:~$ cat /sys/module/kgdboc/parameters/kgdboc kbd maxim at maxim-laptop:~$ dmesg | grep kgdb [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-2.6.36-rc3+ root=UUID=52341b68-74f3-4c96-aaf8-7586a06c4b4e ro splash video=nouveau nmi_watchdog=lapic kgdboc=kbd [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.36-rc3+ root=UUID=52341b68-74f3-4c96-aaf8-7586a06c4b4e ro splash video=nouveau nmi_watchdog=lapic kgdboc=kbd [ 2.671914] kgdb: Registered I/O driver kgdboc. Now when I first switch to console and then press Alt+SysRQ+G, I just get SYSRQ: DEBUG, and system hangs. It could be printk level, but that should be ok, no? maxim at maxim-laptop:~$ cat /proc/sys/kernel/printk 7 4 1 7 Also if I remember correct inputting 'g' then ENTER should resume the system, but it doesn't. So I think kdb doesn't work at all here Best regards, Maxim Levitsky