linux_dsm_epyc7002/arch/powerpc
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
..
boot powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
configs powerpc: Update defconfigs for most non-embedded platforms 2008-08-26 13:31:55 +10:00
include/asm powerpc: Separate the irq radix tree insertion and lookup 2008-09-15 11:08:44 -07:00
kernel powerpc: Separate the irq radix tree insertion and lookup 2008-09-15 11:08:44 -07:00
kvm KVM: ppc: fix invalidation of large guest pages 2008-07-27 12:02:05 +03:00
lib powerpc: New copy_4K_page() 2008-09-15 11:07:42 -07:00
math-emu powerpc: Add macros to access floating point registers in thread_struct. 2008-07-01 11:28:43 +10:00
mm powerpc: Rename PTE_SIZE to HPTE_SIZE 2008-09-15 11:08:42 -07:00
oprofile powerpc: Expose PMCs & cache topology in sysfs on 32-bit 2008-08-20 16:34:58 +10:00
platforms powerpc: Separate the irq radix tree insertion and lookup 2008-09-15 11:08:44 -07:00
sysdev Merge branch 'linux-2.6' 2008-09-10 11:36:13 +10:00
xmon Merge branch 'linux-2.6' 2008-06-30 10:16:50 +10:00
Kconfig powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
Kconfig.debug powerpc: Split-out common MSI bitmap logic into msi_bitmap.c 2008-08-20 16:34:57 +10:00
Makefile powerpc: Enforce a non-spe kernel build even on broken compilers 2008-09-15 11:08:41 -07:00