Re: [PATCH net 1/2] net: ipa: fix atomic update in ipa_endpoint_replenish()

From: Matthias Kaehlcke
Date: Tue Jan 11 2022 - 15:05:59 EST


On Tue, Jan 11, 2022 at 01:21:49PM -0600, Alex Elder wrote:
> In ipa_endpoint_replenish(), if an error occurs when attempting to
> replenish a receive buffer, we just quit and try again later. In
> that case we increment the backlog count to reflect that the attempt
> was unsuccessful. Then, if the add_one flag was true we increment
> the backlog again.
>
> This second increment is not included in the backlog local variable
> though, and its value determines whether delayed work should be
> scheduled. This is a bug.
>
> Fix this by determining whether 1 or 2 should be added to the
> backlog before adding it in a atomic_add_return() call.
>
> Fixes: 84f9bd12d46db ("soc: qcom: ipa: IPA endpoints")
> Signed-off-by: Alex Elder <elder@xxxxxxxxxx>

Reviewed-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx>