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

Commit 303d67c2 authored by Krzysztof Halasa's avatar Krzysztof Halasa Committed by David S. Miller
Browse files

E100: work around the driver using streaming DMA mapping for RX descriptors.



E100 places it's RX packet descriptors inside skb->data and uses them
with bidirectional streaming DMA mapping. Unfortunately it fails to
transfer skb->data ownership to the device after it reads the
descriptor's status, breaking on non-coherent (e.g., ARM) platforms.

This have to be converted to use coherent memory for the descriptors.

Signed-off-by: default avatarKrzysztof Halasa <khc@pm.waw.pl>
Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e36b9d16
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1897,6 +1897,9 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,

			if (ioread8(&nic->csr->scb.status) & rus_no_res)
				nic->ru_running = RU_SUSPENDED;
		pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr,
					       sizeof(struct rfd),
					       PCI_DMA_BIDIRECTIONAL);
		return -ENODATA;
	}