Skip to contentSkip to conversation

ia64: irq handling cleanup

PATCH New Christoph Hellwig 1 participant 1 message Jan 21, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ia64: irq handling cleanup

- irq_desc and irq_to_vector machvecs. SN2 has it's own versions, but they're the same as the generic ones
- kill do do_IRQ and use __do_IRQ directly everywhere
- kill dead X86 ifdefs
- move some variable declarations around in irq.c to recuce # of ifdefs

arch/ia64/kernel/irq.c +7 -43
@@ -32,35 +32,7 @@
 	printk(KERN_ERR "Unexpected irq vector 0x%x on CPU %u!\n", irq, smp_processor_id());
 }
 
-/*
- * do_IRQ handles all normal device IRQ's (the special
- * SMP cross-CPU interrupts have their own specific
- * handlers).
- */
-unsigned int do_IRQ(unsigned long irq, struct pt_regs *regs)
-{
-	return __do_IRQ(irq, regs);
-}
-
-#ifdef CONFIG_SMP
-/*
- * This is updated when the user sets irq affinity via /proc
- */
-cpumask_t __cacheline_aligned pending_irq_cpumask[NR_IRQS];
-static unsigned long pending_irq_redir[BITS_TO_LONGS(NR_IRQS)];
-#endif
-
 #ifdef CONFIG_IA64_GENERIC
-irq_desc_t * __ia64_irq_desc (unsigned int irq)
-{
-	return irq_desc + irq;
-}
-
-ia64_vector __ia64_irq_to_vector (unsigned int irq)
-{
-	return (ia64_vector) irq;
-}
-
 unsigned int __ia64_local_vector_to_irq (ia64_vector vec)
 {
 	return (unsigned int) vec;
@@ -113,27 +85,19 @@
 		seq_putc(p, '\n');
 skip:
 		spin_unlock_irqrestore(&irq_desc[i].lock, flags);
-	} else if (i = NR_IRQS) {
-#if defined(CONFIG_X86_LOCAL_APIC)
-		seq_puts(p, "LOC: ");
-		for (j = 0; j < NR_CPUS; j++)
-			if (cpu_online(j))
-				seq_printf(p, "%10u ",
-					   irq_stat[j].apic_timer_irqs);
-		seq_putc(p, '\n');
-#endif
+	} else if (i = NR_IRQS)
 		seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count));
-#if defined(CONFIG_X86_IO_APIC)
-		seq_printf(p, "MIS: %10u\n", atomic_read(&irq_mis_count));
-#endif
-	}
 	return 0;
 }
 
 #ifdef CONFIG_SMP
+/*
+ * This is updated when the user sets irq affinity via /proc
+ */
+cpumask_t __cacheline_aligned pending_irq_cpumask[NR_IRQS];
+static unsigned long pending_irq_redir[BITS_TO_LONGS(NR_IRQS)];
 
 static cpumask_t irq_affinity [NR_IRQS] = { [0 ... NR_IRQS-1] = CPU_MASK_ALL };
-
 static char irq_redir [NR_IRQS]; // = { [0 ... NR_IRQS-1] = 1 };
 
 void set_irq_affinity_info (unsigned int irq, int hwid, int redir)
@@ -250,7 +214,7 @@
 	for (irq=0; irq < NR_IRQS; irq++) {
 		if (vectors_in_migration[irq]) {
 			vectors_in_migration[irq]=0;
-			do_IRQ(irq, NULL);
+			__do_IRQ(irq, NULL);
 		}
 	}
 

=== arch/ia64/kernel/irq_ia64.c 1.24 vs edited ==--- 1.24/arch/ia64/kernel/irq_ia64.c 2005-01-18 21:27:58 +01:00
+++ edited/arch/ia64/kernel/irq_ia64.c 2005-01-20 17:33:08 +01:00
@@ -90,8 +90,6 @@
printk(KERN_WARNING "%s: double free!\n", __FUNCTION__);
}

-extern unsigned int do_IRQ(unsigned long irq, struct pt_regs *regs); -
#ifdef CONFIG_SMP
# define IS_RESCHEDULE(vec) (vec = IA64_IPI_RESCHEDULE)
#else
@@ -150,7 +148,7 @@
ia64_setreg(_IA64_REG_CR_TPR, vector); ia64_srlz_d();

- do_IRQ(local_vector_to_irq(vector), regs);
+ __do_IRQ(local_vector_to_irq(vector), regs);

/*
* Disable interrupts and send EOI:
@@ -201,7 +199,7 @@
* Probably could shared code.
*/
vectors_in_migration[local_vector_to_irq(vector)]=0;
- do_IRQ(local_vector_to_irq(vector), NULL);
+ __do_IRQ(local_vector_to_irq(vector), NULL);

/*
* Disable interrupts and send EOI
=== arch/ia64/sn/kernel/irq.c 1.29 vs edited ==--- 1.29/arch/ia64/sn/kernel/irq.c 2004-11-24 00:45:34 +01:00
+++ edited/arch/ia64/sn/kernel/irq.c 2005-01-20 17:29:46 +01:00
@@ -202,16 +202,6 @@
sn_set_affinity_irq
};

-struct irq_desc *sn_irq_desc(unsigned int irq)
-{
- return (irq_desc + irq);
-}
-
-u8 sn_irq_to_vector(unsigned int irq)
-{
- return irq;
-}
-
unsigned int sn_local_vector_to_irq(u8 vector)
{
return (CPU_VECTOR_TO_IRQ(smp_processor_id(), vector));
=== include/asm-ia64/hw_irq.h 1.14 vs edited ==--- 1.14/include/asm-ia64/hw_irq.h 2005-01-18 21:06:19 +01:00
+++ edited/include/asm-ia64/hw_irq.h 2005-01-20 17:30:45 +01:00
@@ -99,18 +99,6 @@
extern irq_desc_t irq_desc[NR_IRQS];

#ifndef CONFIG_IA64_GENERIC
-static inline irq_desc_t *
-__ia64_irq_desc (unsigned int irq)
-{
- return irq_desc + irq;
-}
-
-static inline ia64_vector
-__ia64_irq_to_vector (unsigned int irq)
-{
- return (ia64_vector) irq;
-}
-
static inline unsigned int
__ia64_local_vector_to_irq (ia64_vector vec)
{
@@ -132,14 +120,14 @@
static inline irq_desc_t *
irq_descp (int irq)
{
- return platform_irq_desc(irq);
+ return irq_desc + irq;
}

/* Extract the IA-64 vector that corresponds to IRQ. */ static inline ia64_vector
irq_to_vector (int irq)
{
- return platform_irq_to_vector(irq);
+ return (ia64_vector) irq;
}

/*
=== include/asm-ia64/machvec.h 1.31 vs edited ==--- 1.31/include/asm-ia64/machvec.h 2005-01-10 23:04:10 +01:00
+++ edited/include/asm-ia64/machvec.h 2005-01-20 17:31:00 +01:00
@@ -17,7 +17,6 @@
struct device;
struct pt_regs;
struct scatterlist;
-struct irq_desc;
struct page;
struct mm_struct;
struct pci_bus;
@@ -29,8 +28,6 @@
typedef void ia64_mv_timer_interrupt_t (int, void *, struct pt_regs *); typedef void ia64_mv_global_tlb_purge_t (unsigned long, unsigned long, unsigned long); typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *);
-typedef struct irq_desc *ia64_mv_irq_desc (unsigned int);
-typedef u8 ia64_mv_irq_to_vector (unsigned int);
typedef unsigned int ia64_mv_local_vector_to_irq (u8);
typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *);
typedef int ia64_mv_pci_legacy_read_t (struct pci_bus *, u16 port, u32 *val,
@@ -130,8 +127,6 @@

 #  define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device
 #  define platform_dma_mapping_error		ia64_mv.dma_mapping_error
 #  define platform_dma_supported	ia64_mv.dma_supported
-#  define platform_irq_desc		ia64_mv.irq_desc
-#  define platform_irq_to_vector	ia64_mv.irq_to_vector
 #  define platform_local_vector_to_irq	ia64_mv.local_vector_to_irq
 #  define platform_pci_get_legacy_mem	ia64_mv.pci_get_legacy_mem
 #  define platform_pci_legacy_read	ia64_mv.pci_legacy_read

@@ -180,8 +175,6 @@
ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; ia64_mv_dma_mapping_error *dma_mapping_error; ia64_mv_dma_supported *dma_supported;
- ia64_mv_irq_desc *irq_desc;
- ia64_mv_irq_to_vector *irq_to_vector;
ia64_mv_local_vector_to_irq *local_vector_to_irq; ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; ia64_mv_pci_legacy_read_t *pci_legacy_read;
@@ -226,8 +219,6 @@
platform_dma_sync_sg_for_device, \
platform_dma_mapping_error, \
platform_dma_supported, \
- platform_irq_desc, \
- platform_irq_to_vector, \
platform_local_vector_to_irq, \
platform_pci_get_legacy_mem, \
platform_pci_legacy_read, \
@@ -337,12 +328,6 @@
#endif
#ifndef platform_dma_supported

 # define  platform_dma_supported	swiotlb_dma_supported
-#endif
-#ifndef platform_irq_desc
-# define platform_irq_desc		__ia64_irq_desc
-#endif
-#ifndef platform_irq_to_vector
-# define platform_irq_to_vector		__ia64_irq_to_vector
 #endif
 #ifndef platform_local_vector_to_irq
 # define platform_local_vector_to_irq	__ia64_local_vector_to_irq
=== include/asm-ia64/machvec_init.h 1.9 vs edited ==--- 1.9/include/asm-ia64/machvec_init.h	2005-01-10 23:04:16 +01:00
+++ edited/include/asm-ia64/machvec_init.h	2005-01-20 17:31:04 +01:00
@@ -2,8 +2,6 @@

extern ia64_mv_send_ipi_t ia64_send_ipi;
extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge;
-extern ia64_mv_irq_desc __ia64_irq_desc;
-extern ia64_mv_irq_to_vector __ia64_irq_to_vector;
extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq; extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem; extern ia64_mv_pci_legacy_read_t ia64_pci_legacy_read;
=== include/asm-ia64/machvec_sn2.h 1.17 vs edited ==--- 1.17/include/asm-ia64/machvec_sn2.h 2005-01-10 23:04:23 +01:00
+++ edited/include/asm-ia64/machvec_sn2.h 2005-01-20 17:30:06 +01:00
@@ -40,8 +40,6 @@
extern ia64_mv_timer_interrupt_t sn_timer_interrupt; extern ia64_mv_global_tlb_purge_t sn2_global_tlb_purge;
extern ia64_mv_tlb_migrate_finish_t sn_tlb_migrate_finish;
-extern ia64_mv_irq_desc sn_irq_desc;
-extern ia64_mv_irq_to_vector sn_irq_to_vector;
extern ia64_mv_local_vector_to_irq sn_local_vector_to_irq; extern ia64_mv_pci_get_legacy_mem_t sn_pci_get_legacy_mem; extern ia64_mv_pci_legacy_read_t sn_pci_legacy_read;
@@ -105,8 +103,6 @@
#define platform_readw_relaxed __sn_readw_relaxed
#define platform_readl_relaxed __sn_readl_relaxed
#define platform_readq_relaxed __sn_readq_relaxed
-#define platform_irq_desc sn_irq_desc
-#define platform_irq_to_vector sn_irq_to_vector
#define platform_local_vector_to_irq sn_local_vector_to_irq
#define platform_pci_get_legacy_mem sn_pci_get_legacy_mem
#define platform_pci_legacy_read sn_pci_legacy_read