sparc64: Fix PCI resource mapping on sparc64
commit867d011598fd1fec105752ecf09927fb444c5d9f
authorMax Dmitrichenko <dmitrmax@gmail.com>
Sun, 2 Nov 2008 07:34:10 +0000 (2 00:34 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 13 Dec 2008 23:29:13 +0000 (13 15:29 -0800)
tree374bec1db764e993a6b8ef5ba13f870ca35a7279
parent8067dfc2222e797ff8c6a3713d4ac5559d25ab1e
sparc64: Fix PCI resource mapping on sparc64

[ Upstream commit 145e1c0023585e0e8f6df22316308ec61c5066b2 ]

There is a problem discovered in recent versions of ATI Mach64 driver
in X.org on sparc64 architecture. In short, the driver fails to mmap
MMIO aperture (PCI resource #2).

I've found that kernel's __pci_mmap_make_offset() returns EINVAL. It
checks whether user attempts to mmap more than the resource length,
which is 0x1000 bytes in our case. But PAGE_SIZE on SPARC64 is 0x2000
and this is what actually is being mmaped. So __pci_mmap_make_offset()
failed for this PCI resource.

Signed-off-by: Max Dmitrichenko <dmitrmax@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/sparc64/kernel/pci.c