On Fri, 2017-09-22 at 23:58:00 UTC, "William A. Kennington III" wrote: > The current code checks the completion map to look for the first token > that is complete. In some cases, a completion can come in but the token > can still be on lease to the caller processing the completion. If this > completed but unreleased token is the first token found in the bitmap by > another tasks trying to acquire a token, then the __test_and_set_bit > call will fail since the token will still be on lease. The acquisition > will then fail with an EBUSY. > > This patch reorganizes the acquisition code to look at the > opal_async_token_map for an unleased token. If the token has no lease it > must have no outstanding completions so we should never see an EBUSY, > unless we have leased out too many tokens. Since > opal_async_get_token_inrerruptible is protected by a semaphore, we will > practically never see EBUSY anymore. > > Signed-off-by: William A. Kennington III <w...@google.com>
Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/71e24d7731a2903b1ae2bba2b2971c cheers