Commit 11282b32 authored by Roland Dreier's avatar Roland Dreier

IB/mthca: Fix allocation of ICM chunks in coherent memory

The change to allow allocating ICM chunks from coherent memory did not
increment the count of sg entries properly, so a chunk that required
more than allocation would not be mapped properly by the HCA.

Fix this by adding the missing increment of chunk->nsg.
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent fc89afce
...@@ -175,7 +175,9 @@ struct mthca_icm *mthca_alloc_icm(struct mthca_dev *dev, int npages, ...@@ -175,7 +175,9 @@ struct mthca_icm *mthca_alloc_icm(struct mthca_dev *dev, int npages,
if (!ret) { if (!ret) {
++chunk->npages; ++chunk->npages;
if (!coherent && chunk->npages == MTHCA_ICM_CHUNK_LEN) { if (coherent)
++chunk->nsg;
else if (chunk->npages == MTHCA_ICM_CHUNK_LEN) {
chunk->nsg = pci_map_sg(dev->pdev, chunk->mem, chunk->nsg = pci_map_sg(dev->pdev, chunk->mem,
chunk->npages, chunk->npages,
PCI_DMA_BIDIRECTIONAL); PCI_DMA_BIDIRECTIONAL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment