[PATCH] powerpc/opal: Fix EBUSY bug in acquiring tokens

Michael Ellerman mpe at ellerman.id.au
Sat Nov 4 20:14:41 AEDT 2017


"William A. Kennington III" <wak at google.com> writes:

> 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 <wak at google.com>
> ---
>  arch/powerpc/platforms/powernv/opal-async.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

I think this is superseeded by Cyrils rework (which he's finally
posted):

  http://patchwork.ozlabs.org/patch/833630/


If not please let us know.

cheers


More information about the Linuxppc-dev mailing list