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 04/33] X86_64: hpet tsc calibration fix broken smi detection logic
    The current SMI detection logic in read_hpet_tsc() makes sure,
    that when a SMI happens between the read of the HPET counter and
    the read of the TSC, this wrong value is used for TSC calibration.

    This is not the intention of the function. The comparison must ensure,
    that we do _NOT_ use such a value.

    Fix the check to use calibration values where delta of the two TSC reads
    is smaller than a reasonable threshold.

    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/hpet.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    Index: linux-2.6.22-rc6-mm/arch/x86_64/kernel/hpet.c
    ===================================================================
    --- linux-2.6.22-rc6-mm.orig/arch/x86_64/kernel/hpet.c 2007-07-15 17:26:54.000000000 +0200
    +++ linux-2.6.22-rc6-mm/arch/x86_64/kernel/hpet.c 2007-07-15 17:49:05.000000000 +0200
    @@ -190,7 +190,7 @@ int hpet_reenable(void)
    */

    #define TICK_COUNT 100000000
    -#define TICK_MIN 5000
    +#define SMI_THRESHOLD 50000
    #define MAX_TRIES 5

    /*
    @@ -205,7 +205,7 @@ static void __init read_hpet_tsc(int *hp
    tsc1 = get_cycles_sync();
    hpet1 = hpet_readl(HPET_COUNTER);
    tsc2 = get_cycles_sync();
    - if (tsc2 - tsc1 > TICK_MIN)
    + if ((tsc2 - tsc1) < SMI_THRESHOLD)
    break;
    }
    *hpet = hpet1;
    --

    -
    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:11    [W:0.037 / U:30.812 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site