From d8dd349eef3071993803d243721a9e657e476392 Mon Sep 17 00:00:00 2001 From: Keith Busch Date: Tue, 6 Nov 2012 11:59:23 -0700 Subject: [PATCH] --- yaml --- r: 361683 b: refs/heads/master c: 2b1960341576bf51c01b12fefeb1cc53820923e7 h: refs/heads/master i: 361681: 5b375dfcfb0361ecbf7dbc3a55c7f7ae5258bdf9 361679: e0f0f1274efd77ffae27d09ba010a96280e93f51 v: v3 --- [refs] | 2 +- trunk/drivers/block/nvme.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 11c453555569..a88f209aa00b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6ecec74520d8a357726e6c12f99080dbe7b347dd +refs/heads/master: 2b1960341576bf51c01b12fefeb1cc53820923e7 diff --git a/trunk/drivers/block/nvme.c b/trunk/drivers/block/nvme.c index 270805cf8d42..993c014d195a 100644 --- a/trunk/drivers/block/nvme.c +++ b/trunk/drivers/block/nvme.c @@ -337,6 +337,7 @@ nvme_alloc_iod(unsigned nseg, unsigned nbytes, gfp_t gfp) iod->offset = offsetof(struct nvme_iod, sg[nseg]); iod->npages = -1; iod->length = nbytes; + iod->nents = 0; } return iod; @@ -377,7 +378,8 @@ static void bio_completion(struct nvme_dev *dev, void *ctx, struct bio *bio = iod->private; u16 status = le16_to_cpup(&cqe->status) >> 1; - dma_unmap_sg(&dev->pci_dev->dev, iod->sg, iod->nents, + if (iod->nents) + dma_unmap_sg(&dev->pci_dev->dev, iod->sg, iod->nents, bio_data_dir(bio) ? DMA_TO_DEVICE : DMA_FROM_DEVICE); nvme_free_iod(dev, iod); if (status) {