lkml.org 
[lkml]   [2010]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 2/2] genirq: Remove IRQF_DISABLED from core code
    Remove all code which is related to IRQF_DISABLED from the core kernel
    code. IRQF_DISABLED still exists as a flag, but becomes a NOOP and
    will be removed after a grace period. That way we can easily revert to
    the previous behaviour by just restoring the core code.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    Documentation/feature-removal-schedule.txt | 7 +++++++
    include/linux/interrupt.h | 3 ++-
    kernel/irq/manage.c | 20 --------------------
    3 files changed, 9 insertions(+), 21 deletions(-)

    Index: linux-2.6/Documentation/feature-removal-schedule.txt
    ===================================================================
    --- linux-2.6.orig/Documentation/feature-removal-schedule.txt
    +++ linux-2.6/Documentation/feature-removal-schedule.txt
    @@ -589,3 +589,10 @@ Why: Useful in 2003, implementation is a
    Generally invoked by accident today.
    Seen as doing more harm than good.
    Who: Len Brown <len.brown@intel.com>
    +
    +----------------------------
    +
    +What: IRQF_DISABLED
    +When: 2.6.36
    +Why: The flag is a NOOP as we run interrupt handlers with interrupts disabled
    +Who: Thomas Gleixner <tglx@linutronix.de>
    Index: linux-2.6/include/linux/interrupt.h
    ===================================================================
    --- linux-2.6.orig/include/linux/interrupt.h
    +++ linux-2.6/include/linux/interrupt.h
    @@ -39,7 +39,8 @@
    * These flags used only by the kernel as part of the
    * irq handling routines.
    *
    - * IRQF_DISABLED - keep irqs disabled when calling the action handler
    + * IRQF_DISABLED - keep irqs disabled when calling the action handler.
    + * DEPRECATED. This flag is a NOOP and scheduled to be removed
    * IRQF_SAMPLE_RANDOM - irq is used to feed the random generator
    * IRQF_SHARED - allow sharing the irq among several devices
    * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur
    Index: linux-2.6/kernel/irq/manage.c
    ===================================================================
    --- linux-2.6.orig/kernel/irq/manage.c
    +++ linux-2.6/kernel/irq/manage.c
    @@ -995,7 +995,6 @@ EXPORT_SYMBOL(free_irq);
    * Flags:
    *
    * IRQF_SHARED Interrupt is shared
    - * IRQF_DISABLED Disable local interrupts while processing
    * IRQF_SAMPLE_RANDOM The interrupt can be used for entropy
    * IRQF_TRIGGER_* Specify active edge(s) or level
    *
    @@ -1009,25 +1008,6 @@ int request_threaded_irq(unsigned int ir
    int retval;

    /*
    - * handle_IRQ_event() always ignores IRQF_DISABLED except for
    - * the _first_ irqaction (sigh). That can cause oopsing, but
    - * the behavior is classified as "will not fix" so we need to
    - * start nudging drivers away from using that idiom.
    - */
    - if ((irqflags & (IRQF_SHARED|IRQF_DISABLED)) ==
    - (IRQF_SHARED|IRQF_DISABLED)) {
    - pr_warning(
    - "IRQ %d/%s: IRQF_DISABLED is not guaranteed on shared IRQs\n",
    - irq, devname);
    - }
    -
    -#ifdef CONFIG_LOCKDEP
    - /*
    - * Lockdep wants atomic interrupt handlers:
    - */
    - irqflags |= IRQF_DISABLED;
    -#endif
    - /*
    * Sanity-check: shared interrupts must pass in a real dev-ID,
    * otherwise we'll have trouble later trying to figure out
    * which interrupt is which (messes up the interrupt freeing



    \
     
     \ /
      Last update: 2010-03-26 01:11    [W:0.025 / U:1.444 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site