diff options
author | Alex Elder <elder@linaro.org> | 2022-07-19 13:10:16 -0500 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-07-20 21:04:35 -0700 |
commit | b63f507c06e6835aaefe89faee220aefedad0a1d (patch) | |
tree | 4a5dba3ba61a4b8adfbf9151c68519fbaf98641b /drivers/net/ipa/gsi.c | |
parent | d79e4164d0d51f5a39ee7208823335a5fee902e0 (diff) | |
download | lwn-b63f507c06e6835aaefe89faee220aefedad0a1d.tar.gz lwn-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.c | 5 |
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. */ |