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)