From ed54abcde532520de26aaa05f7f393fcc915aa1e Mon Sep 17 00:00:00 2001 From: Matthew Wilcox Date: Wed, 16 Mar 2011 16:43:40 -0400 Subject: [PATCH] --- yaml --- r: 286282 b: refs/heads/master c: 7523d834dd1573610078eb1ac0933f6490232f90 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/nvme.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 03700c348883..81f2b8f8423d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ac88c36a385b848cb9efcb877fdfc4153a60bcab +refs/heads/master: 7523d834dd1573610078eb1ac0933f6490232f90 diff --git a/trunk/drivers/block/nvme.c b/trunk/drivers/block/nvme.c index 0d5c918b7d59..cf89db8c41ee 100644 --- a/trunk/drivers/block/nvme.c +++ b/trunk/drivers/block/nvme.c @@ -376,12 +376,13 @@ static struct nvme_prps *nvme_setup_prps(struct nvme_dev *dev, cmd->prp2 = cpu_to_le64(prp_dma); i = 0; for (;;) { - if (i == PAGE_SIZE / 8 - 1) { + if (i == PAGE_SIZE / 8) { __le64 *old_prp_list = prp_list; prp_list = dma_pool_alloc(pool, GFP_ATOMIC, &prp_dma); prps->list[prp_page++] = prp_list; - old_prp_list[i] = cpu_to_le64(prp_dma); - i = 0; + prp_list[0] = old_prp_list[i - 1]; + old_prp_list[i - 1] = cpu_to_le64(prp_dma); + i = 1; } prp_list[i++] = cpu_to_le64(dma_addr); dma_len -= PAGE_SIZE;