drm: ati_pcigart: Do not access I/O MEM space using pointer derefs.
authorDavid Miller <davem@davemloft.net>
Thu, 12 Feb 2009 10:15:27 +0000 (02:15 -0800)
committerDave Airlie <airlied@redhat.com>
Fri, 13 Mar 2009 04:23:59 +0000 (14:23 +1000)
The PCI GART table initialization code treats the GART table mapping
unconditionally as a kernel virtual address.

But it could be in the framebuffer, for example, and thus we're
dealing with a PCI MEM space ioremap() cookie.  Treating that as a
virtual address is illegal and will crash some system types (such as
sparc64 where the ioremap() return value is actually a physical I/O
address).

So access the area correctly, using gart_info->gart_table_location as
our guide.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>

No differences found