diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c
index 1d95d2b..8f7a821 100644
--- a/drivers/crypto/fsl/jr.c
+++ b/drivers/crypto/fsl/jr.c
@@ -217,6 +217,13 @@
 
 	jr->head = (head + 1) & (jr->size - 1);
 
+	/* Invalidate output ring */
+	start = (unsigned long)jr->output_ring &
+					~(ARCH_DMA_MINALIGN - 1);
+	end = ALIGN((unsigned long)jr->output_ring + jr->op_size,
+		    ARCH_DMA_MINALIGN);
+	invalidate_dcache_range(start, end);
+
 	sec_out32(&regs->irja, 1);
 
 	return 0;
@@ -236,7 +243,6 @@
 #else
 	uint32_t *addr;
 #endif
-	unsigned long start, end;
 
 	while (sec_in32(&regs->orsf) && CIRC_CNT(jr->head, jr->tail,
 						 jr->size)) {
@@ -244,11 +250,6 @@
 		found = 0;
 
 		caam_dma_addr_t op_desc;
-
-		/* Invalidate output ring */
-		start = (unsigned long)jr->output_ring & ~(ARCH_DMA_MINALIGN - 1);
-		end = ALIGN((unsigned long)jr->output_ring + jr->op_size, ARCH_DMA_MINALIGN);
-		invalidate_dcache_range(start, end);
 	#ifdef CONFIG_CAAM_64BIT
 		/* Read the 64 bit Descriptor address from Output Ring.
 		 * The 32 bit hign and low part of the address will
@@ -282,13 +283,8 @@
 		}
 
 		/* Error condition if match not found */
-		if (!found) {
-			int slots_full = sec_in32(&regs->orsf);
-
-			jr->tail = (jr->tail + slots_full) & (jr->size - 1);
-			sec_out32(&regs->orjr, slots_full);
+		if (!found)
 			return -1;
-		}
 
 		jr->info[idx].op_done = 1;
 		callback = (void *)jr->info[idx].callback;
@@ -300,14 +296,14 @@
 		 */
 		if (idx == tail)
 			do {
-				jr->info[tail].op_done = 0;
 				tail = (tail + 1) & (jr->size - 1);
 			} while (jr->info[tail].op_done);
 
 		jr->tail = tail;
-
+		jr->read_idx = (jr->read_idx + 1) & (jr->size - 1);
 
 		sec_out32(&regs->orjr, 1);
+		jr->info[idx].op_done = 0;
 
 		callback(status, arg);
 	}
@@ -382,6 +378,7 @@
 
 	jr->head = 0;
 	jr->tail = 0;
+	jr->read_idx = 0;
 	jr->write_idx = 0;
 	memset(jr->info, 0, sizeof(jr->info));
 	memset(jr->input_ring, 0, jr->size * sizeof(caam_dma_addr_t));
