summaryrefslogtreecommitdiffstats
path: root/drivers/net/ipa/gsi.c
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2022-07-19 13:10:16 -0500
committerJakub Kicinski <kuba@kernel.org>2022-07-20 21:04:35 -0700
commitb63f507c06e6835aaefe89faee220aefedad0a1d (patch)
tree4a5dba3ba61a4b8adfbf9151c68519fbaf98641b /drivers/net/ipa/gsi.c
parentd79e4164d0d51f5a39ee7208823335a5fee902e0 (diff)
downloadlinux-stable-b63f507c06e6835aaefe89faee220aefedad0a1d.tar.gz
linux-stable-b63f507c06e6835aaefe89faee220aefedad0a1d.tar.bz2
linux-stable-b63f507c06e6835aaefe89faee220aefedad0a1d.zip
net: ipa: add a transaction committed list
We currently put a transaction on the pending list when it has been committed. But until the channel's doorbell rings, these transactions aren't actually "owned" by the hardware yet. Add a new "committed" state (and list), to represent transactions that have been committed but not yet sent to hardware. Define "pending" to mean committed transactions that have been sent to hardware but have not yet completed. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ipa/gsi.c')
-rw-r--r--drivers/net/ipa/gsi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index fcd05acf893b..9e307eebd33f 100644
--- a/drivers/net/ipa/gsi.c
+++ b/drivers/net/ipa/gsi.c
@@ -722,6 +722,9 @@ static struct gsi_trans *gsi_channel_trans_last(struct gsi_channel *channel)
list = &trans_info->alloc;
if (!list_empty(list))
goto done;
+ list = &trans_info->committed;
+ if (!list_empty(list))
+ goto done;
list = &trans_info->pending;
if (!list_empty(list))
goto done;
@@ -1364,7 +1367,7 @@ gsi_event_trans(struct gsi *gsi, struct gsi_event *event)
* first *unfilled* event in the ring (following the last filled one).
*
* Events are sequential within the event ring, and transactions are
- * sequential within the transaction pool.
+ * sequential within the transaction array.
*
* Note that @index always refers to an element *within* the event ring.
*/