This series revises the algorithm used for replenishing receive buffers on RX endpoints. Currently there are two atomic variables that track how many receive buffers can be sent to the hardware. The new algorithm obviates the need for those, by just assuming we always want to provide the hardware with buffers until it can hold no more. The first patch eliminates an atomic variable that's not required. The next moves some code into the main replenish function's caller, making one of the called function's arguments unnecessary. The next six refactor things a bit more, adding a new helper function that allows us to eliminate an additional atomic variable. And the final two implement two more minor improvements. -Alex Alex Elder (10): net: ipa: kill replenish_saved net: ipa: allocate transaction before pages when replenishing net: ipa: increment backlog in replenish caller net: ipa: decide on doorbell in replenish loop net: ipa: allocate transaction in replenish loop net: ipa: don't use replenish_backlog net: ipa: introduce gsi_channel_trans_idle() net: ipa: kill replenish_backlog net: ipa: replenish after delivering payload net: ipa: determine replenish doorbell differently drivers/net/ipa/gsi_trans.c | 11 ++++ drivers/net/ipa/gsi_trans.h | 10 +++ drivers/net/ipa/ipa_endpoint.c | 112 +++++++++++---------------------- drivers/net/ipa/ipa_endpoint.h | 8 +-- 4 files changed, 60 insertions(+), 81 deletions(-) -- 2.32.0