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

Commit 1107a08a authored by Johannes Berg's avatar Johannes Berg Committed by Wey-Yi Guy
Browse files

iwlagn: fix cmd queue unmap



When we stop the device while a command is in
flight that uses multiple TBs, we can leak the
DMA buffers for the second and higher TBs. Fix
this by using iwlagn_unmap_tfd() as we do when
we normally recover the entry.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent 5306c080
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -310,10 +310,7 @@ void iwl_cmd_queue_unmap(struct iwl_priv *priv)
		i = get_cmd_index(q, q->read_ptr);

		if (txq->meta[i].flags & CMD_MAPPED) {
			pci_unmap_single(priv->pci_dev,
					 dma_unmap_addr(&txq->meta[i], mapping),
					 dma_unmap_len(&txq->meta[i], len),
					 PCI_DMA_BIDIRECTIONAL);
			iwlagn_unmap_tfd(priv, &txq->meta[i], &txq->tfds[i]);
			txq->meta[i].flags = 0;
		}