lkml.org 
[lkml]   [2007]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch-mm 24/33] x86_64: remove nested irq disables
    setup_APIC_timer disables interrupts anyway. So no need to do the same
    in setup_boot_APIC_clock and setup_secondary_APIC_clock. Disable
    interrupts explicit in the calibration code.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Chris Wright <chrisw@sous-sol.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

    ---
    arch/x86_64/kernel/apic.c | 12 ++++++------
    1 file changed, 6 insertions(+), 6 deletions(-)

    Index: linux-2.6.22-rc6-mm/arch/x86_64/kernel/apic.c
    ===================================================================
    --- linux-2.6.22-rc6-mm.orig/arch/x86_64/kernel/apic.c 2007-07-15 17:41:32.000000000 +0200
    +++ linux-2.6.22-rc6-mm/arch/x86_64/kernel/apic.c 2007-07-15 17:48:54.000000000 +0200
    @@ -827,6 +827,9 @@ static void __init calibrate_APIC_clock(
    unsigned apic, apic_start;
    unsigned long tsc, tsc_start;
    int result;
    +
    + local_irq_disable();
    +
    /*
    * Put whatever arbitrary (but long enough) timeout
    * value into the APIC clock, we just want to get the
    @@ -856,6 +859,9 @@ static void __init calibrate_APIC_clock(
    result = (apic_start - apic) * 1000L * tsc_khz /
    (tsc - tsc_start);
    }
    +
    + local_irq_enable();
    +
    printk(KERN_DEBUG "APIC timer calibration result %d\n", result);

    printk(KERN_INFO "Detected %d.%03d MHz APIC timer.\n",
    @@ -874,22 +880,16 @@ void __init setup_boot_APIC_clock (void)
    printk(KERN_INFO "Using local APIC timer interrupts.\n");
    using_apic_timer = 1;

    - local_irq_disable();
    -
    calibrate_APIC_clock();
    /*
    * Now set up the timer for real.
    */
    setup_APIC_timer();
    -
    - local_irq_enable();
    }

    void __cpuinit setup_secondary_APIC_clock(void)
    {
    - local_irq_disable(); /* FIXME: Do we need this? --RR */
    setup_APIC_timer();
    - local_irq_enable();
    }

    void disable_APIC_timer(void)
    --

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-07-15 18:17    [W:0.027 / U:30.544 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site