From 8e2a782af3c1ec80b7cff05942e743ee80ab22f0 Mon Sep 17 00:00:00 2001
From: Tom Rini <trini@konsulko.com>
Date: Thu, 18 Nov 2021 20:18:22 -0500
Subject: [PATCH] Revert "nvme: Fix error in nvme_setup_prps"

Dependent commit has unaddressed review comments.

This reverts commit c4eef59faab6ae4ecb1beae6d4391b0889bc3ff3.

Signed-off-by: Tom Rini <trini@konsulko.com>
---
 drivers/nvme/nvme.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index 22ded626a5..9623c896a1 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -100,7 +100,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
 	}
 
 	nprps = DIV_ROUND_UP(length, page_size);
-	num_pages = DIV_ROUND_UP(nprps + 1, prps_per_page);
+	num_pages = DIV_ROUND_UP(nprps, prps_per_page);
 
 	if (nprps > dev->prp_entry_num) {
 		free(dev->prp_pool);
@@ -119,11 +119,10 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
 	prp_pool = dev->prp_pool;
 	i = 0;
 	while (nprps) {
-		if (i == prps_per_page) {
-			*(prp_pool + i) = *(prp_pool + i - 1);
-			*(prp_pool + i - 1) = cpu_to_le64((ulong)prp_pool +
+		if (i == ((page_size >> 3) - 1)) {
+			*(prp_pool + i) = cpu_to_le64((ulong)prp_pool +
 					page_size);
-			i = 1;
+			i = 0;
 			prp_pool += page_size;
 		}
 		*(prp_pool + i++) = cpu_to_le64(dma_addr);
-- 
2.39.5