]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: talitos - move code in current_desc_hdr() into a standalone function
authorPaul Louvel <paul.louvel@bootlin.com>
Thu, 7 May 2026 14:41:51 +0000 (16:41 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 15 May 2026 10:08:48 +0000 (18:08 +0800)
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@vger.kernel.org
Signed-off-by: Paul Louvel <paul.louvel@bootlin.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/talitos.c

index d8f838add0ffb57c30021df908b1053c7db34b0b..c9c5d195b317f07b88aef0afc854dce24b4315aa 100644 (file)
@@ -520,6 +520,24 @@ 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) {
+               edesc = container_of(request->desc, struct talitos_edesc, desc);
+               while (edesc->next_desc) {
+                       if (edesc->desc.next_desc == cpu_to_be32(cur_desc))
+                               return edesc->next_desc->desc.hdr1;
+                       edesc = edesc->next_desc;
+               }
+       }
+       return 0;
+}
+
 /*
  * locate current (offending) descriptor
  */
@@ -528,7 +546,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;
@@ -546,21 +563,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) {
-                       edesc = container_of(request->desc,
-                                            struct talitos_edesc, desc);
-                       while (edesc->next_desc) {
-                               if (edesc->desc.next_desc ==
-                                   cpu_to_be32(cur_desc)) {
-                                       hdr = edesc->next_desc->desc.hdr1;
-                                       break;
-                               }
-                               edesc = edesc->next_desc;
-                       }
-               }
-
+               hdr = search_desc_hdr_in_request(request, cur_desc, is_sec1);
                if (hdr)
                        break;