• John Hawkes's avatar
    [IA64] disable preemption in udelay() · f5899b5d
    John Hawkes authored
    The udelay() inline for ia64 uses the ITC.  If CONFIG_PREEMPT is enabled
    and the platform has unsynchronized ITCs and the calling task migrates
    to another CPU while doing the udelay loop, then the effective delay may
    be too short or very, very long.
    
    This patch disables preemption around 100 usec chunks of the overall
    desired udelay time.  This minimizes preemption-holdoffs.
    
    udelay() is now too big to be inline, move it out of line and export it.
    Signed-off-by: default avatarJohn Hawkes <hawkes@sgi.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    f5899b5d
delay.h 1.68 KB