linux/arch/powerpc/platforms/pseries
Sebastien Dugue 967e012ef3 powerpc: Separate the irq radix tree insertion and lookup
irq_radix_revmap() currently serves 2 purposes, irq mapping lookup
and insertion which happen in interrupt and process context respectively.

Separate the function into its 2 components, one for lookup only and one
for insertion only.

Fix the only user of the revmap tree (XICS) to use the new functions.

Also, move the insertion into the radix tree of those irqs that were
requested before it was initialized at said tree initialization.

Mutual exclusion between the tree initialization and readers/writers is
handled via a state variable (revmap_trees_allocated) set to 1 when the tree
has been initialized and set to 2 after the already requested irqs have been
inserted in the tree by the init path. This state is checked before any reader
or writer access just like we used to check for tree.gfp_mask != 0 before.

Finally, now that we're not any longer inserting nodes into the radix-tree
in interrupt context, turn the GFP_ATOMIC allocations into GFP_KERNEL ones.

Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-09-15 11:08:44 -07:00
..
cmm.c powerpc: Replace __FUNCTION__ with __func__ 2008-08-20 16:34:57 +10:00
eeh.c powerpc/eeh: Don't panic when EEH_MAX_FAILS is exceeded 2008-07-22 10:39:37 +10:00
eeh_cache.c [POWERPC] Add CONFIG_PPC_PSERIES_DEBUG to enable debugging for platforms/pseries 2008-04-24 21:08:12 +10:00
eeh_driver.c powerpc: Guard print_device_node_tree() with #if 0 2008-08-20 16:34:57 +10:00
eeh_event.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
eeh_sysfs.c [POWERPC] Show EEH per-device false positives 2007-06-14 22:29:55 +10:00
firmware.c [POWERPC] pseries/firmware.c should include pseries/pseries.h 2008-05-14 22:32:00 +10:00
hotplug-cpu.c [POWERPC] Split xics_teardown_cpu() 2008-02-07 11:40:19 +11:00
hotplug-memory.c powerpc/pseries: Update the device tree correctly for drconf memory add/remove 2008-07-03 16:58:16 +10:00
hvCall.S [POWERPC] Bypass hcall stats until cpu features have run 2007-03-22 15:01:43 +11:00
hvCall_inst.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
hvconsole.c [POWERPC] clean up pseries hcall interfaces 2006-08-01 16:19:15 +10:00
hvcserver.c [PATCH] powerpc/pseries: Change H_StudlyCaps to H_SHOUTING_CAPS 2006-04-01 22:36:57 +11:00
iommu.c powerpc/pseries: iommu enablement for CMO 2008-07-25 15:44:43 +10:00
Kconfig powerpc/pseries: Add collaborative memory manager 2008-07-25 15:44:42 +10:00
kexec.c powerpc/pseries: Call pseries_kexec_setup only on pseries 2008-06-30 22:30:57 +10:00
lpar.c powerpc: Remove unnecessary condition when sanity-checking WIMG bits 2008-07-15 12:24:59 +10:00
Makefile powerpc/pseries: Add collaborative memory manager 2008-07-25 15:44:42 +10:00
msi.c [POWERPC] Read back MSI message in rtas_setup_msi_irqs() so restore works 2007-11-08 14:15:29 +11:00
nvram.c [POWERPC] Add missing of_node_put in pseries/nvram.c 2008-06-16 15:00:32 +10:00
pci.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
pci_dlpar.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6 2008-04-21 15:58:35 -07:00
phyp_dump.c [POWERPC] pseries/phyp dump: Reserve a variable amount of space at boot 2008-04-17 07:46:14 +10:00
plpar_wrappers.h powerpc: Fix CMM page loaning on 64k page kernel with 4k hardware pages 2008-08-18 14:22:35 +10:00
power.c [POWERPC] Fix warning in pseries/power.c 2008-02-20 13:33:37 +11:00
pseries.h [POWERPC] Move prototype for find_udbg_vterm() into a header file 2008-04-17 10:00:59 +10:00
ras.c [POWERPC] Fix sparse warnings in arch/powerpc/platforms/pseries 2008-05-14 22:32:02 +10:00
reconfig.c powerpc: Check rc of notifier chain for memory remove 2008-09-15 11:07:52 -07:00
rtasd.c [POWERPC] Fix sparse warnings in arch/powerpc/platforms/pseries 2008-05-14 22:32:02 +10:00
scanlog.c [POWERPC] Assign PDE->data before gluing PDE into /proc tree 2008-05-05 16:47:14 +10:00
setup.c powerpc: Export CMO_PageSize 2008-08-26 10:24:47 +10:00
smp.c [POWERPC] Add CONFIG_PPC_PSERIES_DEBUG to enable debugging for platforms/pseries 2008-04-24 21:08:12 +10:00
xics.c powerpc: Separate the irq radix tree insertion and lookup 2008-09-15 11:08:44 -07:00
xics.h [POWERPC] Move xics_setup_8259_cascade() into platforms/pseries/setup.c 2008-04-18 15:36:10 +10:00