[PATCH] Fwd: 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer() (fwd)

From: Dave Airlie
Date: Wed Oct 26 2005 - 05:05:57 EST



Hi Linus/Andrew,

Another 2.6.14 DRM fix.. they always come in 3s.. hopefully thats it..

Dave.

--

I've seen similar failure on alpha.

Obviously, someone forgot to convert sg->handle stuff for
PCI gart case.

Ivan.

From: Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

--- 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/