linux/arch/ppc/kernel
Benjamin Herrenschmidt 396a1a5832 [POWERPC] Fix mmap of PCI resource with hack for X
The powerpc version of pci_resource_to_user() and associated hooks
used by /proc/bus/pci and /sys/bus/pci mmap have been broken for some
time on machines that don't have a 1:1 mapping of devices (basically
on non-PowerMacs) and have PCI devices above 32 bits.

This attempts to fix it as well as possible.

The rule is supposed to be that pci_resource_to_user() always converts
the resources back into a BAR values since that's what the /proc
interface was supposed to deal with. However, for X to work on
platforms where PCI MMIO is not mapped 1:1, it became a habit of
platforms like powerpc to pass "fixed up" values there since X expects
to be able to use values from /proc/bus/pci/devices as offsets to mmap
of /dev/mem...

So we keep that contraption here, causing also /sys/*/resource to
expose fully absolute MMIO addresses instead of BAR values, which is
ugly, but should still work as long as those are only used to calculate
alignment within a page.

X is still broken when built 32 bits on machines where PCI MMIO can be
above 32-bit space unfortunately.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-12-08 17:21:06 +11:00
..
Makefile powerpc: Don't compile in arch/ppc/kernel for 32-bit ARCH=powerpc 2006-03-27 20:17:06 +11:00
asm-offsets.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cpu_setup_power4.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
dma-mapping.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
entry.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_4xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_8xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_44x.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_booke.h [PATCH] ppc32: fix ppc44x fpu build 2005-11-10 11:24:06 +11:00
head_fsl_booke.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
machine_kexec.c Storage class should be first 2006-06-26 18:57:34 +02:00
misc.S [POWERPC] Consolidate feature fixup code 2006-10-25 11:42:10 +10:00
pci.c [POWERPC] Fix mmap of PCI resource with hack for X 2006-12-08 17:21:06 +11:00
ppc-stub.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ppc_htab.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ppc_ksyms.c [POWERPC] clean up ide io accessors 2006-09-20 14:06:18 +10:00
relocate_kernel.S [PATCH] ppc32: use correct register names in arch/ppc/kernel/relocate_kernel.S 2005-06-30 08:45:09 -07:00
rio.c [PATCH] RapidIO support: ppc32 2005-11-07 07:53:47 -08:00
semaphore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.c [POWERPC] Distinguish POWER6 partition modes and tell userspace 2006-12-04 20:40:16 +11:00
smp-tbsync.c [POWERPC] Fix irq enable/disable in smp_generic_take_timebase 2006-08-30 16:10:47 +10:00
smp.c [POWERPC] ARCH=ppc pt_regs fixes 2006-10-10 11:55:25 +10:00
softemu8xx.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
time.c [POWERPC] ppc: Add missing calls to set_irq_regs 2006-10-16 15:52:14 +10:00
traps.c [POWERPC] Book-E reg MCSR msg misquoted 2006-12-04 20:39:22 +11:00
vmlinux.lds.S [PATCH] relocatable kernel: Kallsyms generate relocatable symbols 2006-12-07 02:14:04 +01:00