uint32_t i, k, n;
uint32_t l2, l3;
union sym_op_data icv;
- void *iv[num];
- void *aad[num];
- void *dgst[num];
+ struct rte_crypto_va_iova_ptr iv[num];
+ struct rte_crypto_va_iova_ptr aad[num];
+ struct rte_crypto_va_iova_ptr dgst[num];
uint32_t dr[num];
uint32_t l4ofs[num];
uint32_t clen[num];
ivbuf[k]);
/* fill iv, digest and aad */
- iv[k] = ivbuf[k];
- aad[k] = icv.va + sa->icv_len;
- dgst[k++] = icv.va;
+ iv[k].va = ivbuf[k];
+ aad[k].va = icv.va + sa->icv_len;
+ dgst[k++].va = icv.va;
} else {
dr[i - k] = i;
rte_errno = -rc;
move_bad_mbufs(mb, dr, n, n - k);
/* convert mbufs to iovecs and do actual crypto/auth processing */
- cpu_crypto_bulk(ss, sa->cofs, mb, iv, aad, dgst, l4ofs, clen, k);
+ if (k != 0)
+ cpu_crypto_bulk(ss, sa->cofs, mb, iv, aad, dgst,
+ l4ofs, clen, k);
return k;
}