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>