powerpc/pci: mmap anonymous memory when legacy_mem doesn't exist
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sun, 8 Feb 2009 14:27:21 +0000 (14:27 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 10 Feb 2009 03:39:08 +0000 (14:39 +1100)
commit5b11abfdb572bf9284e596dd198ac2aaf95b6616
tree1d7852201544d29c6757cd27f131bb31d29d74ed
parentd87bf76679bd37593ae4a3133f5da9395a4963ac
powerpc/pci: mmap anonymous memory when legacy_mem doesn't exist

The new legacy_mem file in sysfs is causing problems with X on machines
that don't support legacy memory access. The way I initially implemented
it, we would fail with -ENXIO when trying to mmap it, thus exposing to
X that we do support the API but there is no legacy memory.

Unfortunately, X poor error handling is causing it to fail to start when
it gets this error.

This implements a workaround hack that instead maps anonymous memory
instead (using shmem if VM_SHARED is set, just like /dev/zero does).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/pci-common.c