Messages in this thread Patch in this message | | | Date | Wed, 26 Feb 2003 13:43:48 +0100 | From | Kasper Dupont <> | Subject | Re: Panic in i810 |
| |
Kasper Dupont wrote: > > I have a reproducable kernel panic with different 2.4.x kernels. > I'm using XFree86-4.2.0-8 with a i810 onboard chipset. Sometimes > when I log off X the kernel panics. This can be reproduced by > loging in on a VC as root and typing: > > while [ ! -f /tmp/stopit ] ; do > killall gdmlogin || killall gdm ; sleep 7 ; deallocvt > done
I made a patch, that at least prevents the system from panicing. This is just a workaround, probably the problem is really somewhere else. My guess is that something in the driver cleanup is being done in an incorrect order, but I do have some problems following this code.
-- Kasper Dupont -- der bruger for meget tid på usenet. For sending spam use mailto:aaarep@daimi.au.dk for(_=52;_;(_%5)||(_/=5),(_%5)&&(_-=2))putchar(_);diff -Nur linux.old/drivers/char/drm/i810_dma.c linux.new/drivers/char/drm/i810_dma.c --- linux.old/drivers/char/drm/i810_dma.c Wed Feb 26 13:36:14 2003 +++ linux.new/drivers/char/drm/i810_dma.c Wed Feb 26 13:36:20 2003 @@ -894,6 +894,7 @@ void i810_dma_service(int irq, void *device, struct pt_regs *regs) { drm_device_t *dev = (drm_device_t *)device; + if (dev && dev->dev_private && dev->counts) { drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private; u16 temp; @@ -907,6 +908,9 @@ queue_task(&dev->tq, &tq_immediate); mark_bh(IMMEDIATE_BH); + } else { + printk(KERN_CRIT __FUNCTION__ ": NULL pointer\n"); + } } void i810_dma_immediate_bh(void *device) | |