• Oliver O'Halloran's avatar
    powerpc/papr_scm: Use the correct bind address · 5a3840a4
    Oliver O'Halloran authored
    When binding an SCM volume to a physical address the hypervisor has the
    option to return early with a continue token with the expectation that
    the guest will resume the bind operation until it completes. A quirk of
    this interface is that the bind address will only be returned by the
    first bind h-call and the subsequent calls will return
    0xFFFF_FFFF_FFFF_FFFF for the bind address.
    
    We currently do not save the address returned by the first h-call. As a
    result we will use the junk address as the base of the bound region if
    the hypervisor decides to split the bind across multiple h-calls. This
    bug was found when testing with very large SCM volumes where the bind
    process would take more time than they hypervisor's internal h-call time
    limit would allow. This patch fixes the issue by saving the bind address
    from the first call.
    
    Cc: stable@vger.kernel.org
    Fixes: b5beae5e ("powerpc/pseries: Add driver for PAPR SCM regions")
    Signed-off-by: default avatarOliver O'Halloran <oohall@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    5a3840a4
papr_scm.c 8.33 KB