This patch drops the powerpc-specific irq_map table and replaces it withdirectly using the irq_alloc_desc()/irq_free_desc() interfaces for allocatingand freeing irq_desc structures.

This patch is a preparation step for generalizing the powerpc-specific virqinfrastructure to become irq_domains.

As part of this change, the irq_big_lock is changed to a mutex from a rawspinlock. There is no longer any need to use a spin lock since the irq_descallocation code is now responsible for the critical section of findingan unused range of irq numbers.

The radix lookup table is also changed to store the irq_data pointer insteadof the irq_map entry since the irq_map is removed. This should end up beingfunctionally equivalent since only allocated irq_descs are ever added to theradix tree.

v5: - Really don't ever allocate virq 0. The previous version could still do it if hint == 0 - Respect irq_virq_count setting for NOMAP. Some NOMAP domains cannot use virq values above irq_virq_count. - Use numa_node_id() when allocating irq_descs. Ideally the API should obtain that value from the caller, but that touches a lot of call sites so will be deferred to a follow-on patch. - Fix irq_find_mapping() to include irq numbers lower than NUM_ISA_INTERRUPTS. With the switch to irq_alloc_desc*(), the lowest possible allocated irq is now returned by arch_probe_nr_irqs().v4: - Fix incorrect access to irq_data structure in debugfs code - Don't ever allocate virq 0