Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -175,7 +175,9 @@ struct mthca_icm *mthca_alloc_icm(struct mthca_dev *dev, int npages,
		if (!ret) {
			++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->npages,
							PCI_DMA_BIDIRECTIONAL);