6 void *chip_data; 187 struct irqaction *action; /* IRQ action list */ 188 unsigned int status; /* IRQ status */ 189 190 unsigned int depth; /* nested irq disables */ 191 unsigned int wake_depth; /* nested wake enables */ 192 unsigned int irq_count; /* For detecting broken IRQs */ 193 unsigned long last_unhandled; /* Aging timer for unhandled count */ 194 unsigned int irqs_unhandled; 195 raw_spinlock_t lock; 196#ifdef CONFIG_SMP 197 cpumask_var_t affinity; 198 const struct cpumask *affinity_hint; 199 unsigned int node; 200#ifdef CONFIG_GENERIC_PENDING_IRQ 201 cpumask_var_t pending_mask; 202#endif 203#endif 204 atomic_t threads_active; 205 wait_queue_head_t wait_for_threads; 206#ifdef CONFIG_PROC_FS 207 struct proc_dir_entry *dir; 208#endif 209 const char *name; 210} ____cacheline_internodealigned_in_smp; 211 212extern void arch_init_copy_chip_data(struct irq_desc *old_desc, 213 struct irq_desc *desc, int node); 214extern void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc); 215 216#ifndef CONFIG_SPARSE_IRQ 217extern struct irq_desc irq_desc[NR_IRQS]; 175struct irq_desc { 176 unsigned int irq; 177 struct timer_rand_state *timer_rand_state; 178 unsigned int *kstat_irqs; 179#ifdef CONFIG_INTR_REMAP 180 struct irq_2_iommu *irq_2_iommu; 181#endif 182 irq_flow_handler_t handle_irq; 183 struct irq_chip *chip; 184 struct msi_desc *msi_desc; 185 void *handler_data; 186 void *chip_data; 187 struct irqaction *action; /* IRQ action list */ 188 unsigned int status; /* IRQ status */ 189 190 unsigned int depth; /* nested irq disables */ 191 unsigned int wake_depth; /* nested wake enables */ 192 unsigned int irq_count; /* For detecting broken IRQs */ 193 unsigned long last_unhandled; /* Aging timer for unhandled count */ 194 unsigned int irqs_unhandled; 195 raw_spinlock_t lock; 196#ifdef CONFIG_SMP 197 cpumask_var_t affinity; 198 const struct cpumask *affinity_hint; 199 unsigned int node; 200#ifdef CONFIG_GENERIC_PENDING_IRQ 201 cpumask_var_t pending_mask; 202#endif 203#endif 204 atomic_t threads_active; 205 wait_queue_head_t wait_for_threads; 206#ifdef CONFIG_PROC_FS 207 struct proc_dir_entry *dir; 208#endif 209 const char *name; 210} ____cacheline_internodealigned_in_smp; 211 212extern void arch_init_copy_chip_data(struct irq_desc *old_desc, 213 struct irq_desc *desc, int node); 214extern void arch_f |