x86: fix compiling with alpha
Subsystems (4)
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 x86: fix compiling with alpha
Impact: fix
can not use irq_desc in stat.c for some arch
--- fs/proc/stat.c | 20 +++++++++++++------- include/linux/irq.h | 9 --------- include/linux/irqnr.h | 19 ++++++++++++++++--- 3 files changed, 29 insertions(+), 19 deletions(-)
fs/proc/stat.c +13 -7
@@ -45,9 +45,12 @@ static int show_stat(struct seq_file *p, softirq =cputime64_add (softirq,kstat_cpu (i).cpustat.softirq); steal =cputime64_add (steal,kstat_cpu (i).cpustat.steal); guest =cputime64_add (guest,kstat_cpu (i).cpustat.guest); -for_each_irq_desc (j, desc) { +for_each_irq_nr (j) { +#ifdef CONFIG_SPARSE_IRQ + desc =irq_to_desc (j);if (!desc)continue ; +#endif sum +=kstat_irqs_cpu (j, i); } sum +=arch_irq_stat_cpu (i);
@@ -92,14 +95,17 @@ static int show_stat(struct seq_file *p,seq_printf (p,"intr %llu" , (unsigned long long )sum);/* sum again ? it could be updated? */ -for (j =0 ; j <NR_IRQS ; j++) { - desc =irq_to_desc (j); +for_each_irq_nr (j) { per_irq_sum =0 ; - -if (desc) { -for_each_possible_cpu (i) - per_irq_sum +=kstat_irqs_cpu (j, i); +#ifdef CONFIG_SPARSE_IRQ + desc =irq_to_desc (j); +if (!desc) { +seq_printf (p," %u" , per_irq_sum); +continue ; } +#endif +for_each_possible_cpu (i) + per_irq_sum +=kstat_irqs_cpu (j, i);seq_printf (p," %u" , per_irq_sum); }
include/linux/irq.h +0 -9
@@ -198,7 +198,6 @@ extern void arch_init_copy_chip_data(strextern void arch_free_chip_data (struct irq_desc *old_desc,struct irq_desc *desc);#ifndef CONFIG_SPARSE_IRQ -extern struct irq_desc irq_desc[NR_IRQS ];static inline struct irq_desc *irq_to_desc (unsigned int irq)
@@ -210,14 +209,6 @@ static inline struct irq_desc *irq_to_de return irq_to_desc(irq); } -#ifdef CONFIG_GENERIC_HARDIRQS -# define for_each_irq_desc (irq, desc) \ - for (irq = 0, desc = irq_desc; irq < nr_irqs; irq++, desc++) -# define for_each_irq_desc_reverse (irq, desc) \ - for (irq = nr_irqs - 1, desc = irq_desc + (nr_irqs - 1); \ - irq >= 0; irq--, desc--) -#endif -#else extern struct irq_desc *irq_to_desc (unsigned int irq);
include/linux/irqnr.h +16 -3
@@ -8,9 +8,22 @@# define for_each_irq_desc (irq, desc) \ for (irq = 0; irq < nr_irqs; irq++) -static inline early_sparse_irq_init (void) -{ -} +# define for_each_irq_desc_reverse (irq, desc) \ + for (irq = nr_irqs - 1; irq >= 0; irq--) +#else +#ifndef CONFIG_SPARSE_IRQ + +struct irq_desc ; +extern int nr_irqs; +# define for_each_irq_desc (irq, desc) \ + for (irq = 0, desc = irq_desc; irq < nr_irqs; irq++, desc++) +# define for_each_irq_desc_reverse (irq, desc) \ + for (irq = nr_irqs - 1, desc = irq_desc + (nr_irqs - 1); \ + irq >= 0; irq--, desc--)#endif +#endif + +#define for_each_irq_nr (irq) \ + for (irq = 0; irq < nr_irqs; irq++)#endif
Ingo Molnar
AppliedQuoted 11 lines · Yinghai Lu
Impact: fix
can not use
irq_descinstat.cfor some archSigned-off-by Yinghai Lu <[email protected]>--- fs/proc/stat.c | 20 +++++++++++++------- include/linux/irq.h | 9 --------- include/linux/irqnr.h | 19 ++++++++++++++++--- 3 files changed, 29 insertions(+), 19 deletions(-)
applied to tip/irq/sparseirq, thanks!
Ingo
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 sparseirq: fix !SMP building #2
Impact: fix compiling
make intr_remapping.c to include smp.h, so could use boot_cpu_id there
also remove old change that disabling sparseirq with !SMP
--- arch/x86/Kconfig | 2 +- drivers/pci/intr_remapping.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-)
drivers/pci/intr_remapping.c +1 -0
@@ -5,6 +5,7 @@#include <linux/pci.h> #include <linux/irq.h> #include <asm/io_apic.h> +#include <asm/smp.h> #include <linux/intel-iommu.h> #include "intr_remapping.h"
arch/x86/Kconfig +1 -1
@@ -245,7 +245,7 @@ config X86_HAS_BOOT_CPU_ID config SPARSE_IRQ bool "Support sparse irq numbering" - depends on (PCI_MSI || HT_IRQ) && SMP + depends on PCI_MSI || HT_IRQ default y help This enables support for sparse irq, esp for msi/msi-x. You may need