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)
commit5a7aad9a559a5488cbef7aa3d4d96fc28220b8ae
tree4a35fea85696e6cd41c81c71f34c2f7cf086aae3
parent8e1004580e0c862cb6bbe2ff8e496f846c54052f
drm: ati_pcigart: Do not access I/O MEM space using pointer derefs.

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>
drivers/gpu/drm/ati_pcigart.c