Skip to content

Commit a8decb8

Browse files
noctuellesgregkh
authored andcommitted
crypto: talitos - move code in current_desc_hdr() into a standalone function
commit f8713d9 upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent aea8cfb commit a8decb8

1 file changed

Lines changed: 19 additions & 16 deletions

File tree

drivers/crypto/talitos.c

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,24 @@ DEF_TALITOS2_DONE(ch0, TALITOS2_ISR_CH_0_DONE)
520520
DEF_TALITOS2_DONE(ch0_2, TALITOS2_ISR_CH_0_2_DONE)
521521
DEF_TALITOS2_DONE(ch1_3, TALITOS2_ISR_CH_1_3_DONE)
522522

523+
static __be32 search_desc_hdr_in_request(struct talitos_request *request,
524+
dma_addr_t cur_desc, bool is_sec1)
525+
{
526+
struct talitos_edesc *edesc;
527+
528+
if (request->dma_desc == cur_desc) {
529+
return request->desc->hdr;
530+
} else if (is_sec1) {
531+
edesc = container_of(request->desc, struct talitos_edesc, desc);
532+
while (edesc->next_desc) {
533+
if (edesc->desc.next_desc == cpu_to_be32(cur_desc))
534+
return edesc->next_desc->desc.hdr1;
535+
edesc = edesc->next_desc;
536+
}
537+
}
538+
return 0;
539+
}
540+
523541
/*
524542
* locate current (offending) descriptor
525543
*/
@@ -528,7 +546,6 @@ static __be32 current_desc_hdr(struct device *dev, int ch)
528546
struct talitos_private *priv = dev_get_drvdata(dev);
529547
bool is_sec1 = has_ftr_sec1(priv);
530548
struct talitos_request *request;
531-
struct talitos_edesc *edesc;
532549
int tail, iter;
533550
dma_addr_t cur_desc;
534551
__be32 hdr = 0;
@@ -546,21 +563,7 @@ static __be32 current_desc_hdr(struct device *dev, int ch)
546563
do {
547564
request = &priv->chan[ch].fifo[iter];
548565

549-
if (request->dma_desc == cur_desc) {
550-
hdr = request->desc->hdr;
551-
} else if (is_sec1) {
552-
edesc = container_of(request->desc,
553-
struct talitos_edesc, desc);
554-
while (edesc->next_desc) {
555-
if (edesc->desc.next_desc ==
556-
cpu_to_be32(cur_desc)) {
557-
hdr = edesc->next_desc->desc.hdr1;
558-
break;
559-
}
560-
edesc = edesc->next_desc;
561-
}
562-
}
563-
566+
hdr = search_desc_hdr_in_request(request, cur_desc, is_sec1);
564567
if (hdr)
565568
break;
566569

0 commit comments

Comments
 (0)