Re: 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/26/05, Ivan Kokshaysky <[email protected]> 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 [email protected]
> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux