From: Tom Rini Date: Fri, 19 Nov 2021 01:18:22 +0000 (-0500) Subject: Revert "nvme: Fix error in nvme_setup_prps" X-Git-Tag: v2025.01-rc5-pxa1908~1591^2~22 X-Git-Url: http://git.dujemihanovic.xyz/html/index.html?a=commitdiff_plain;h=8e2a782af3c1ec80b7cff05942e743ee80ab22f0;p=u-boot.git Revert "nvme: Fix error in nvme_setup_prps" Dependent commit has unaddressed review comments. This reverts commit c4eef59faab6ae4ecb1beae6d4391b0889bc3ff3. Signed-off-by: Tom Rini --- 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);