When we are given a 0 sized cryptlen and assoclen in
a scatterlist with two entries we were falsely trying to
create a zero length MLLI table, causing the HW to choke.
Don't try to copy a zero sized MLLI table.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
        struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
        struct device *dev = drvdata_to_dev(ctx->drvdata);
 
-       if (req_ctx->assoc_buff_type == CC_DMA_BUF_MLLI ||
+       if ((req_ctx->assoc_buff_type == CC_DMA_BUF_MLLI ||
            req_ctx->data_buff_type == CC_DMA_BUF_MLLI ||
-           !req_ctx->is_single_pass) {
+           !req_ctx->is_single_pass) && req_ctx->mlli_params.mlli_len) {
                dev_dbg(dev, "Copy-to-sram: mlli_dma=%08x, mlli_size=%u\n",
                        (unsigned int)ctx->drvdata->mlli_sram_addr,
                        req_ctx->mlli_params.mlli_len);