Skip to content
  • David Mosberger-Tang's avatar
    [IA64] Fix race in mm-context wrap-around logic. · badea125
    David Mosberger-Tang authored
    
    
    The patch below should fix a race which could cause stale TLB entries.
    Specifically, when 2 CPUs ended up racing for entrance to
    wrap_mmu_context().  The losing CPU would find that by the time it
    acquired ctx.lock, mm->context already had a valid value, but then it
    failed to (re-)check the delayed TLB flushing logic and hence could
    end up using a context number when there were still stale entries in
    its TLB.  The fix is to check for delayed TLB flushes only after
    mm->context is valid (non-zero).  The patch also makes GCC v4.x
    happier by defining a non-volatile variant of mm_context_t called
    nv_mm_context_t.
    
    Signed-off-by: default avatarDavid Mosberger-Tang <David.Mosberger@acm.org>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    badea125