|
|
@@ -119,6 +119,7 @@ static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node,
|
|
|
desc->depth = 1;
|
|
|
desc->irq_count = 0;
|
|
|
desc->irqs_unhandled = 0;
|
|
|
+ desc->tot_count = 0;
|
|
|
desc->name = NULL;
|
|
|
desc->owner = owner;
|
|
|
for_each_possible_cpu(cpu)
|
|
|
@@ -915,11 +916,15 @@ unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
|
|
|
unsigned int kstat_irqs(unsigned int irq)
|
|
|
{
|
|
|
struct irq_desc *desc = irq_to_desc(irq);
|
|
|
- int cpu;
|
|
|
unsigned int sum = 0;
|
|
|
+ int cpu;
|
|
|
|
|
|
if (!desc || !desc->kstat_irqs)
|
|
|
return 0;
|
|
|
+ if (!irq_settings_is_per_cpu_devid(desc) &&
|
|
|
+ !irq_settings_is_per_cpu(desc))
|
|
|
+ return desc->tot_count;
|
|
|
+
|
|
|
for_each_possible_cpu(cpu)
|
|
|
sum += *per_cpu_ptr(desc->kstat_irqs, cpu);
|
|
|
return sum;
|