Benjamin Herrenschmidt
ad892a63f6
powerpc: Fix PCI ROM access
...
A couple of issues crept in since about 2.6.27 related to accessing PCI
device ROMs on various powerpc machines.
First, historically, we don't allocate the ROM resource in the resource
tree. I'm not entirely certain of why, I susepct they often contained
garbage on x86 but it's hard to tell. This causes the current generic
code to always call pci_assign_resource() when trying to access the said
ROM from sysfs, which will try to re-assign some new address regardless
of what the ROM BAR was already set to at boot time. This can be a
problem on hypervisor platforms like pSeries where we aren't supposed
to move PCI devices around (and in fact probably can't).
Second, our code that generates the PCI tree from the OF device-tree
(instead of doing config space probing) which we mostly use on pseries
at the moment, didn't set the (new) flag IORESOURCE_SIZEALIGN on any
resource. That means that any attempt at re-assigning such a resource
with pci_assign_resource() would fail due to resource_alignment()
returning 0.
This fixes this by doing these two things:
- The code that calculates resource flags based on the OF device-node
is improved to set IORESOURCE_SIZEALIGN on any valid BAR, and while at
it also set IORESOURCE_READONLY for ROMs since we were lacking that too
- We now allocate ROM resources as part of the resource tree. However
to limit the chances of nasty conflicts due to busted firmwares, we
only do it on the second pass of our two-passes allocation scheme,
so that all valid and enabled BARs get precedence.
This brings pSeries back the ability to access PCI ROMs via sysfs (and
thus initialize various video cards from X etc...).
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-05-15 16:43:42 +10:00
..
vdso32
powerpc/mm: Introduce MMU features
2008-12-21 14:21:16 +11:00
vdso64
powerpc/mm: Introduce MMU features
2008-12-21 14:21:16 +11:00
.gitignore
powerpc: Ignore generated vmlinux.lds in git
2008-10-07 14:26:18 +11:00
align.c
powerpc: Fix load/store float double alignment handler
2009-02-26 14:02:53 +11:00
asm-offsets.c
Merge commit 'origin/master' into next
2009-03-30 14:04:53 +11:00
audit.c
[PATCH] audit signal recipients
2007-05-11 05:38:25 -04:00
btext.c
powerpc: Use the common ascii hex helpers
2008-08-20 16:34:57 +10:00
cacheinfo.c
powerpc/cacheinfo: Rename cache_dir per-cpu variable
2009-01-13 14:48:02 +11:00
cacheinfo.h
powerpc: Rewrite sysfs processor cache info code
2009-01-08 16:25:10 +11:00
clock.c
[POWERPC] clk.h interface for platforms
2007-10-03 09:11:56 +10:00
compat_audit.c
[PATCH] add SIGNAL syscall class (v3)
2007-05-11 05:38:25 -04:00
cpu_setup_6xx.S
powerpc/mm: e300c2/c3/c4 TLB errata workaround
2009-03-24 13:47:32 +11:00
cpu_setup_44x.S
AMCC PPC 460SX redwood SoC platform initial framework
2009-02-14 14:41:29 -05:00
cpu_setup_fsl_booke.S
powerpc/fsl-booke: Cleanup init/exception setup to be runtime
2009-01-28 18:16:50 -06:00
cpu_setup_pa6t.S
[POWERPC] pasemi: Enable one more hid bit
2007-04-24 21:31:49 +10:00
cpu_setup_ppc970.S
powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit
2008-09-15 11:08:35 -07:00
cputable.c
powerpc/pseries: Really fix the oprofile CPU type on pseries
2009-05-15 16:43:42 +10:00
crash.c
powerpc: Increase CRASH_HANDLER_MAX
2008-06-30 22:31:00 +10:00
crash_dump.c
powerpc: Unify opcode definitions and support
2009-02-23 10:48:56 +11:00
dbell.c
powerpc: Add support for using doorbells for SMP IPI
2009-02-23 15:53:03 +11:00
dma-iommu.c
powerpc: Change u64/s64 to a long long integer type
2009-01-13 14:47:59 +11:00
dma.c
dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
2009-04-07 08:31:11 -07:00
entry_32.S
powerpc: Unify opcode definitions and support
2009-02-23 10:48:56 +11:00
entry_64.S
powerpc64, ftrace: save toc only on modules for function graph
2009-02-23 10:48:54 +11:00
firmware.c
fpu.S
powerpc: Disable VSX or current process in giveup_fpu/altivec
2009-04-07 15:18:59 +10:00
ftrace.c
powerpc/ftrace: Fix printf format warning
2009-04-07 15:19:00 +10:00
head_8xx.S
powerpc: convert to use __HEAD and HEAD_TEXT macros.
2009-04-26 09:20:38 -07:00
head_32.S
powerpc: convert to use __HEAD and HEAD_TEXT macros.
2009-04-26 09:20:38 -07:00
head_40x.S
powerpc: convert to use __HEAD and HEAD_TEXT macros.
2009-04-26 09:20:38 -07:00
head_44x.S
powerpc: convert to use __HEAD and HEAD_TEXT macros.
2009-04-26 09:20:38 -07:00
head_64.S
powerpc/kconfig: Kill PPC_MULTIPLATFORM
2009-03-11 17:11:35 +11:00
head_booke.h
Merge commit 'jwb/next' into next
2009-03-03 13:30:03 +11:00
head_fsl_booke.S
powerpc: convert to use __HEAD and HEAD_TEXT macros.
2009-04-26 09:20:38 -07:00
ibmebus.c
powerpc: struct device - replace bus_id with dev_name(), dev_set_name()
2008-12-16 15:53:38 +11:00
idle.c
powerpc: ftrace, do not latency trace idle
2008-11-20 10:51:15 -08:00
idle_6xx.S
powerpc: Fix for getting CPU number in power_save_ppc32_restore()
2008-09-03 20:53:47 +10:00
idle_e500.S
powerpc: Fix for getting CPU number in power_save_ppc32_restore()
2008-09-03 20:53:47 +10:00
idle_power4.S
[POWERPC] powermac: Support G5 CPU hotplug
2007-05-07 20:31:13 +10:00
init_task.c
take init_fs to saner place
2008-12-31 18:07:42 -05:00
io.c
ftrace: support for PowerPC
2008-05-23 22:43:11 +02:00
iomap.c
[POWERPC] Add 64-bit resources support to pci_iomap
2007-09-20 07:36:52 -05:00
iommu.c
powerpc: Change u64/s64 to a long long integer type
2009-01-13 14:47:59 +11:00
irq.c
powerpc: Print information about mapping hw irqs to virtual irqs
2009-04-07 15:19:00 +10:00
isa-bridge.c
[POWERPC] Remove leftover printk in isa-bridge.c
2008-05-09 20:22:59 +10:00
kgdb.c
kgdb, x86, arm, mips, powerpc: ignore user space single stepping
2008-09-26 10:36:41 -05:00
kprobes.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2009-01-07 11:31:52 -08:00
l2cr_6xx.S
Convert files to UTF-8 and some cleanups
2007-10-19 23:21:04 +02:00
legacy_serial.c
powerpc/powermac: Fixup default serial port device for pmac_zilog
2008-07-28 16:30:53 +10:00
lparcfg.c
powerpc/pseries: Add dispatch dispersion statistics
2009-04-07 15:18:59 +10:00
machine_kexec.c
powerpc: Allow mem=x cmdline to work with 4G+
2009-05-15 16:43:41 +10:00
machine_kexec_32.c
kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE
2008-08-15 08:35:42 -07:00
machine_kexec_64.c
powerpc/32: Setup OF properties for kdump
2008-12-23 15:13:29 +11:00
Makefile
powerpc/kconfig: Kill PPC_MULTIPLATFORM
2009-03-11 17:11:35 +11:00
misc.S
powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit
2008-09-15 11:08:35 -07:00
misc_32.S
powerpc/44x: Support 16K/64K base page sizes on 44x
2008-12-29 09:53:25 +11:00
misc_64.S
powerpc: Disable VSX or current process in giveup_fpu/altivec
2009-04-07 15:18:59 +10:00
module.c
powerpc/mm: Introduce MMU features
2008-12-21 14:21:16 +11:00
module_32.c
powerpc/ppc32: ftrace, dynamic ftrace to handle modules
2008-11-20 10:52:53 -08:00
module_64.c
powerpc: Unify opcode definitions and support
2009-02-23 10:48:56 +11:00
msi.c
powerpc/PCI: include pci.h in powerpc MSI implementation
2009-03-25 08:54:29 -07:00
nvram_64.c
[POWERPC] pseries: Eliminate global error_log_cnt variable
2007-08-17 11:01:52 +10:00
of_device.c
powerpc: struct device - replace bus_id with dev_name(), dev_set_name()
2008-12-16 15:53:38 +11:00
of_platform.c
dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
2009-04-07 08:31:11 -07:00
paca.c
powerpc: Update page-in counter for CMM
2008-11-05 22:08:28 +11:00
pci-common.c
powerpc: Fix PCI ROM access
2009-05-15 16:43:42 +10:00
pci_32.c
powerpc/pci: Fix PCI<->OF matching of old style multifunc devices
2009-02-23 10:48:57 +11:00
pci_64.c
powerpc: Fix PCI ROM access
2009-05-15 16:43:42 +10:00
pci_dn.c
[POWERPC] iSeries: eliminate pci_dn bussubno
2008-01-17 14:57:05 +11:00
pmc.c
[POWERPC] Made FSL Book-E PMC support more generic
2008-02-05 23:34:14 -06:00
ppc32.h
powerpc: Add VSX context save/restore, ptrace and signal support
2008-07-01 11:28:50 +10:00
ppc_ksyms.c
powerpc: Export cacheable_memzero as its now used in a driver
2009-01-08 16:25:17 +11:00
ppc_save_regs.S
powerpc: Prepare xmon_save_regs for use with kdump
2008-12-23 15:13:28 +11:00
proc_ppc64.c
powerpc: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
process.c
Simplify copy_thread()
2009-04-02 19:04:51 -07:00
prom.c
powerpc: Allow mem=x cmdline to work with 4G+
2009-05-15 16:43:41 +10:00
prom_init.c
powerpc/pseries: Fix ibm,client-architecture comment
2009-04-07 15:18:59 +10:00
prom_init_check.sh
powerpc: Print linux_banner in prom_init
2009-03-11 17:11:33 +11:00
prom_parse.c
powerpc: Fix of_node_put() exit path in of_irq_map_one()
2009-04-20 12:18:43 -06:00
ptrace.c
powerpc: Don't use the wrong thread_struct for ptrace get/set VSX regs
2008-07-30 15:26:54 +10:00
ptrace32.c
powerpc: Fix ptrace compat wrapper for FPU register access
2009-04-07 15:19:00 +10:00
reloc_64.S
powerpc: Make the 64-bit kernel as a position-independent executable
2008-09-15 11:08:38 -07:00
rtas-proc.c
[POWERPC] Fix sparse warnings in arch/powerpc/kernel
2008-05-14 22:31:59 +10:00
rtas-rtc.c
rtas.c
powerpc/pseries: Fix partition migration hang under load
2009-02-23 15:53:04 +11:00
rtas_flash.c
proc 2/2: remove struct proc_dir_entry::owner
2009-03-31 01:14:44 +04:00
rtas_pci.c
powerpc/pci: Fix various pseries PCI hotplug issues
2008-11-06 09:31:52 +11:00
setup-common.c
powerpc: Remove duplicated #include's
2009-04-07 15:18:58 +10:00
setup.h
setup_32.c
powerpc/32: Wire up the trampoline code for kdump
2008-12-23 15:13:29 +11:00
setup_64.c
powerpc/mm: Introduce early_init_mmu() on 64-bit
2009-03-24 13:47:34 +11:00
signal.c
powerpc: Sanitize stack pointer in signal handling code
2009-03-27 16:58:24 +11:00
signal.h
powerpc: Sanitize stack pointer in signal handling code
2009-03-27 16:58:24 +11:00
signal_32.c
powerpc: Sanitize stack pointer in signal handling code
2009-03-27 16:58:24 +11:00
signal_64.c
powerpc: Sanitize stack pointer in signal handling code
2009-03-27 16:58:24 +11:00
smp-tbsync.c
powerpc: Silence software timebase sync
2008-11-05 22:08:28 +11:00
smp.c
Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-02 11:44:09 -08:00
softemu8xx.c
Remove asm/a.out.h files for all architectures without a.out support.
2008-09-06 19:30:24 +01:00
stacktrace.c
powerpc: Removed duplicated include in stacktrace.c
2008-07-28 16:30:47 +10:00
suspend.c
PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures
2008-07-24 10:47:21 -07:00
swsusp.c
powerpc/mm: Split mmu_context handling
2008-12-21 14:21:15 +11:00
swsusp_32.S
powerpc/mm: Introduce MMU features
2008-12-21 14:21:16 +11:00
swsusp_64.c
[POWERPC] powermac: Suspend to disk on G5
2007-05-07 20:31:14 +10:00
swsusp_asm64.S
powerpc: Fix 64-bit hibernation with 64k pages
2008-10-07 14:26:20 +11:00
sys_ppc32.c
compat: generic compat get/settimeofday
2008-10-16 11:21:33 -07:00
syscalls.c
powerpc/mm: Add Strong Access Ordering support
2008-07-09 16:30:45 +10:00
sysfs.c
powerpc: Fix bugs introduced by sysfs changes
2009-03-27 16:58:24 +11:00
systbl.S
[POWERPC] Align the sys_call_table
2007-10-11 14:36:47 +10:00
systbl_chk.c
[POWERPC] Fix a couple of copyright symbols
2008-01-25 22:52:50 +11:00
systbl_chk.sh
[POWERPC] Fix a couple of copyright symbols
2008-01-25 22:52:50 +11:00
tau_6xx.c
on_each_cpu(): kill unused 'retry' parameter
2008-06-26 11:24:38 +02:00
time.c
clocksource: pass clocksource to read() callback
2009-04-21 13:41:47 -07:00
traps.c
powerpc: Add support for using doorbells for SMP IPI
2009-02-23 15:53:03 +11:00
udbg.c
powerpc/udbg: Fix lost byte during console handover; change LFCR to CRLF
2009-03-11 17:11:34 +11:00
udbg_16550.c
powerpc/udbg: Fix lost byte during console handover; change LFCR to CRLF
2009-03-11 17:11:34 +11:00
vdso.c
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
2008-12-28 16:54:33 -08:00
vecemu.c
vector.S
vio.c
workqueue: add to_delayed_work() helper function
2009-04-02 19:04:50 -07:00
vmlinux.lds.S
powerpc: Revert switch to TEXT_TEXT in linker script
2009-04-28 15:55:14 -07:00