Messages in this thread Patch in this message | | | Date | Wed, 26 Oct 2005 01:25:20 +0400 | From | Ivan Kokshaysky <> | Subject | Re: 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer() |
| |
On Tue, Oct 25, 2005 at 09:28:02AM -0700, Badari Pulavarty wrote: > On my EM64T machine, X gets killed every time due to > following GFP. Happens on mainline & -mm kernels. > Hasn't annoyed me enough to take a look on why ?
I've seen similar failure on alpha.
Obviously, someone forgot to convert sg->handle stuff for PCI gart case.
Ivan.
--- 2.6.14-rc5/drivers/char/drm/radeon_cp.c Fri Sep 23 23:39:48 2005 +++ linux/drivers/char/drm/radeon_cp.c Sat Sep 24 02:59:22 2005 @@ -1136,7 +1136,7 @@ static void radeon_cp_init_ring_buffer( } else #endif ring_start = (dev_priv->cp_ring->offset - - dev->sg->handle + - (unsigned long)dev->sg->virtual + dev_priv->gart_vm_start); RADEON_WRITE( RADEON_CP_RB_BASE, ring_start ); @@ -1164,7 +1164,8 @@ static void radeon_cp_init_ring_buffer( drm_sg_mem_t *entry = dev->sg; unsigned long tmp_ofs, page_ofs; - tmp_ofs = dev_priv->ring_rptr->offset - dev->sg->handle; + tmp_ofs = dev_priv->ring_rptr->offset - + (unsigned long)dev->sg->virtual; page_ofs = tmp_ofs >> PAGE_SHIFT; RADEON_WRITE( RADEON_CP_RB_RPTR_ADDR, @@ -1491,8 +1492,8 @@ static int radeon_do_init_cp( drm_device else #endif dev_priv->gart_buffers_offset = (dev->agp_buffer_map->offset - - dev->sg->handle - + dev_priv->gart_vm_start); + - (unsigned long)dev->sg->virtual + + dev_priv->gart_vm_start); DRM_DEBUG( "dev_priv->gart_size %d\n", dev_priv->gart_size ); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |