mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
crypto: talitos - move code in current_desc_hdr() into a standalone function
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>
This commit is contained in:
parent
5c0aa8cad7
commit
f8713d9e60
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user