genirq: Remove preflow handler support
authorValentin Schneider <valentin.schneider@arm.com>
Fri, 3 Jul 2020 15:56:45 +0000 (16:56 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 4 Jul 2020 08:02:06 +0000 (10:02 +0200)
That was put in place for sparc64, and blackfin also used it for some time;
sparc64 no longer uses those, and blackfin is dead.

As there are no more users, remove preflow handlers.

Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200703155645.29703-3-valentin.schneider@arm.com
include/linux/irqdesc.h
include/linux/irqhandler.h
kernel/irq/Kconfig
kernel/irq/chip.c

index 8f2820c..5745491 100644 (file)
@@ -22,7 +22,6 @@ struct pt_regs;
  * @irq_common_data:   per irq and chip data passed down to chip functions
  * @kstat_irqs:                irq stats per cpu
  * @handle_irq:                highlevel irq-events handler
- * @preflow_handler:   handler called before the flow handler (currently used by sparc)
  * @action:            the irq action chain
  * @status_use_accessors: status information
  * @core_internal_state__do_not_mess_with_it: core internal status information
@@ -58,9 +57,6 @@ struct irq_desc {
        struct irq_data         irq_data;
        unsigned int __percpu   *kstat_irqs;
        irq_flow_handler_t      handle_irq;
-#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
-       irq_preflow_handler_t   preflow_handler;
-#endif
        struct irqaction        *action;        /* IRQ action list */
        unsigned int            status_use_accessors;
        unsigned int            core_internal_state__do_not_mess_with_it;
@@ -268,15 +264,4 @@ irq_set_lockdep_class(unsigned int irq, struct lock_class_key *lock_class,
        }
 }
 
-#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
-static inline void
-__irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler)
-{
-       struct irq_desc *desc;
-
-       desc = irq_to_desc(irq);
-       desc->preflow_handler = handler;
-}
-#endif
-
 #endif
index 1e6f4e7..c30f454 100644 (file)
@@ -10,6 +10,5 @@
 struct irq_desc;
 struct irq_data;
 typedef        void (*irq_flow_handler_t)(struct irq_desc *desc);
-typedef        void (*irq_preflow_handler_t)(struct irq_data *data);
 
 #endif
index 2051225..10a5aff 100644 (file)
@@ -51,10 +51,6 @@ config GENERIC_IRQ_INJECTION
 config HARDIRQS_SW_RESEND
        bool
 
-# Preflow handler support for fasteoi (sparc64)
-config IRQ_PREFLOW_FASTEOI
-       bool
-
 # Edge style eoi based handler (cell)
 config IRQ_EDGE_EOI_HANDLER
        bool
index 41e7e37..75bbaa8 100644 (file)
@@ -656,16 +656,6 @@ out_unlock:
 }
 EXPORT_SYMBOL_GPL(handle_level_irq);
 
-#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
-static inline void preflow_handler(struct irq_desc *desc)
-{
-       if (desc->preflow_handler)
-               desc->preflow_handler(&desc->irq_data);
-}
-#else
-static inline void preflow_handler(struct irq_desc *desc) { }
-#endif
-
 static void cond_unmask_eoi_irq(struct irq_desc *desc, struct irq_chip *chip)
 {
        if (!(desc->istate & IRQS_ONESHOT)) {
@@ -721,7 +711,6 @@ void handle_fasteoi_irq(struct irq_desc *desc)
        if (desc->istate & IRQS_ONESHOT)
                mask_irq(desc);
 
-       preflow_handler(desc);
        handle_irq_event(desc);
 
        cond_unmask_eoi_irq(desc, chip);
@@ -1231,7 +1220,6 @@ void handle_fasteoi_ack_irq(struct irq_desc *desc)
        /* Start handling the irq */
        desc->irq_data.chip->irq_ack(&desc->irq_data);
 
-       preflow_handler(desc);
        handle_irq_event(desc);
 
        cond_unmask_eoi_irq(desc, chip);
@@ -1281,7 +1269,6 @@ void handle_fasteoi_mask_irq(struct irq_desc *desc)
        if (desc->istate & IRQS_ONESHOT)
                mask_irq(desc);
 
-       preflow_handler(desc);
        handle_irq_event(desc);
 
        cond_unmask_eoi_irq(desc, chip);