x86: move kstat_irqs from kstat to irq_desc

based on Eric's patch ...

together mold it with dyn_array for irq_desc, will allcate kstat_irqs for
nr_irq_desc alltogether if needed. -- at that point nr_cpus is known already.

v2: make sure system without generic_hardirqs works they don't have irq_desc
v3: fix merging
v4: [mingo@elte.hu] fix typo

[ mingo@elte.hu ] irq: build fix

fix:

 arch/x86/xen/spinlock.c: In function 'xen_spin_lock_slow':
 arch/x86/xen/spinlock.c:90: error: 'struct kernel_stat' has no member named 'irqs'

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Yinghai Lu 2008-08-19 20:50:09 -07:00 committed by Ingo Molnar
parent 3060d6fe28
commit 7f95ec9e4c
11 changed files with 113 additions and 63 deletions

View file

@ -157,6 +157,11 @@ struct irq_desc {
#ifdef CONFIG_HAVE_SPARSE_IRQ
struct irq_desc *next;
struct timer_rand_state *timer_rand_state;
#endif
#ifdef CONFIG_HAVE_DYN_ARRAY
unsigned int *kstat_irqs;
#else
unsigned int kstat_irqs[NR_CPUS];
#endif
irq_flow_handler_t handle_irq;
struct irq_chip *chip;
@ -190,6 +195,8 @@ extern struct irq_desc *irq_to_desc(unsigned int irq);
/* could be removed if we get rid of all irq_desc reference */
extern struct irq_desc irq_desc[NR_IRQS];
#endif
#define kstat_irqs_this_cpu(DESC) \
((DESC)->kstat_irqs[smp_processor_id()])
/*
* Migration helpers for obsolete names, they will go away: