[PATCH v2 05/12] crypto: talitos - move code in current_desc_hdr() into a standalone function

From: Paul Louvel

Date: Tue May 05 2026 - 13:56:59 EST


Previously added code in current_desc_hdr() in order to add support for
searching an offending descriptor inside a descriptor chain.

Move that code into a standalone function to improve readability.

Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Paul Louvel <paul.louvel@xxxxxxxxxxx>
---
drivers/crypto/talitos.c | 30 ++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index 3b1d8e34e86e..376e21e06056 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -530,6 +530,23 @@ DEF_TALITOS2_DONE(ch0, TALITOS2_ISR_CH_0_DONE)
DEF_TALITOS2_DONE(ch0_2, TALITOS2_ISR_CH_0_2_DONE)
DEF_TALITOS2_DONE(ch1_3, TALITOS2_ISR_CH_1_3_DONE)

+static __be32 search_desc_hdr_in_request(struct talitos_request *request,
+ dma_addr_t cur_desc, bool is_sec1)
+{
+ struct talitos_edesc *edesc;
+
+ if (request->dma_desc == cur_desc) {
+ return request->desc->hdr;
+ } else if (is_sec1) {
+ list_for_each_entry(edesc, request->desc_chain, node) {
+ if (edesc->desc.next_desc == cpu_to_be32(cur_desc))
+ return list_next_entry(edesc, node)->desc.hdr;
+ }
+ }
+
+ return 0;
+}
+
/*
* locate current (offending) descriptor
*/
@@ -538,7 +555,6 @@ static __be32 current_desc_hdr(struct device *dev, int ch)
struct talitos_private *priv = dev_get_drvdata(dev);
bool is_sec1 = has_ftr_sec1(priv);
struct talitos_request *request;
- struct talitos_edesc *edesc;
int tail, iter;
dma_addr_t cur_desc;
__be32 hdr = 0;
@@ -556,17 +572,7 @@ static __be32 current_desc_hdr(struct device *dev, int ch)
do {
request = &priv->chan[ch].fifo[iter];

- if (request->dma_desc == cur_desc) {
- hdr = request->desc->hdr;
- } else if (is_sec1) {
- list_for_each_entry(edesc, request->desc_chain, node) {
- if (edesc->desc.next_desc ==
- cpu_to_be32(cur_desc))
- hdr = list_next_entry(edesc, node)
- ->desc.hdr;
- }
- }
-
+ hdr = search_desc_hdr_in_request(request, cur_desc, is_sec1);
if (hdr)
break;


--
2.53.0