OpenCloudOS-Kernel/arch/powerpc/platforms
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
..
8xx powerpc: implement GPIO LIB API on CPM1 Freescale SoC. 2008-07-28 07:42:09 -05:00
40x [POWERPC] 4xx: Create common ppc4xx_reset_system() in ppc4xx_soc.c 2008-04-02 20:44:56 -05:00
44x powerpc/4xx: Cleanup Warp for i2c driver changes. 2008-08-04 21:42:07 -04:00
52xx powerpc: Remove use of CONFIG_PPC_MERGE 2008-08-04 13:18:17 +10:00
82xx Revert "powerpc/ep8248e: Fix compile problem if !CONFIG_FS_ENET" 2008-07-16 17:59:47 -05:00
83xx powerpc/fsl: proliferate simple-bus compatibility to soc nodes 2008-07-29 17:48:35 -05:00
85xx powerpc/fsl: proliferate simple-bus compatibility to soc nodes 2008-07-29 17:48:35 -05:00
86xx powerpc: Move include files to arch/powerpc/include/asm 2008-08-04 12:02:00 +10:00
512x powerpc/mpc5121: Add support for CPLD on MPC5121ADS board 2008-07-12 12:10:55 -06:00
cell powerpc/spufs: Fix possible scheduling of a context to multiple SPEs 2008-09-08 09:44:43 +10:00
chrp powerpc: Use bcd2bin/bin2bcd 2008-08-20 16:34:58 +10:00
embedded6xx powerpc: Add C2K to configuration 2008-06-09 13:42:29 +10:00
iseries powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
maple powerpc: Use bcd2bin/bin2bcd 2008-08-20 16:34:58 +10:00
pasemi powerpc/pseries: iommu enablement for CMO 2008-07-25 15:44:43 +10:00
powermac powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
prep [POWERPC] Split several platforms into their respective Kconfig file 2007-03-22 10:07:32 -05:00
ps3 powerpc/ps3: Fix ioremap of spu shadow regs 2008-08-26 10:24:46 +10:00
pseries powerpc: Separate the irq radix tree insertion and lookup 2008-09-15 11:08:44 -07:00
Kconfig cpm_uart: Add generic clock API support to set baudrates 2008-07-28 08:47:32 -05:00
Kconfig.cputype powerpc: Remove duplicate 6xx option in Kconfig 2008-07-22 10:39:35 +10:00
Makefile powerpc: Remove use of CONFIG_PPC_MERGE 2008-08-04 13:18:17 +10:00
fsl_uli1575.c powerpc/85xx/86xx: some refactoring for fsl_uli1575 code 2008-07-16 17:57:42 -05:00