Re: 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer()

From: Dave Airlie
Date: Tue Oct 25 2005 - 16:36:15 EST


On 10/26/05, Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx> wrote:
> 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.

No someone forgot that that patch needed to go in.. it's already
sitting in my -mm queue, after PCI Express support...

I forgot it would've broken normal PCI GART support..

I'll push it to Linus in a while.

Dave.
>
> 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@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/