• Nicholas Piggin's avatar
    powerpc/64s/hash: move POWER5 < DD2.1 slbie workaround where it is needed · 8b92887c
    Nicholas Piggin authored
    The POWER5 < DD2.1 issue is that slbie needs to be issued more than
    once. It came in with this change:
    
    ChangeSet@1.1608, 2004-04-29 07:12:31-07:00, david@gibson.dropbear.id.au
      [PATCH] POWER5 erratum workaround
    
      Early POWER5 revisions (<DD2.1) have a problem requiring slbie
      instructions to be repeated under some circumstances.  The patch below
      adds a workaround (patch made by Anton Blanchard).
    
    (aka. 3e4520f7605243abf66a7ccd3d2e49e48e8c0483 in the full history tree)
    
    The extra slbie in switch_slb is done even for the case where slbia is
    called (slb_flush_and_rebolt). I don't believe that is required
    because there are other slb_flush_and_rebolt callers which do not
    issue the workaround slbie, which would be broken if it was required.
    
    It also seems to be fine inside the isync with the first slbie, as it
    is in the kernel stack switch code.
    
    So move this workaround to where it is required. This is not much of
    an optimisation because this is the fast path, but it makes the code
    more understandable and neater.
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    [mpe: Retain slbie_data initialisation to avoid compiler warning]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    8b92887c
slb.c 16.3 KB