aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/freescale
diff options
context:
space:
mode:
authorJose Abreu <Jose.Abreu@synopsys.com>2019-07-30 15:57:16 +0200
committerDavid S. Miller <davem@davemloft.net>2019-07-30 10:25:58 -0700
commit3caa61c208753492fe59efb20e06f7c608eb8db2 (patch)
tree3e9e925a0876704aded483ffb55cc7ead471130a /drivers/net/ethernet/freescale
parentmlxsw: spectrum_ptp: fix duplicated check on orig_egr_types (diff)
downloadlinux-dev-3caa61c208753492fe59efb20e06f7c608eb8db2.tar.xz
linux-dev-3caa61c208753492fe59efb20e06f7c608eb8db2.zip
net: stmmac: Sync RX Buffer upon allocation
With recent changes that introduced support for Page Pool in stmmac, Jon reported that NFS boot was no longer working on an ARM64 based platform that had the IP behind an IOMMU. As Page Pool API does not guarantee DMA syncing because of the use of DMA_ATTR_SKIP_CPU_SYNC flag, we have to explicit sync the whole buffer upon re-allocation because we are always re-using same pages. In fact, ARM64 code invalidates the DMA area upon two situations [1]: - sync_single_for_cpu(): Invalidates if direction != DMA_TO_DEVICE - sync_single_for_device(): Invalidates if direction == DMA_FROM_DEVICE So, as we must invalidate both the current RX buffer and the newly allocated buffer we propose this fix. [1] arch/arm64/mm/cache.S Reported-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Fixes: 2af6106ae949 ("net: stmmac: Introducing support for Page Pool") Signed-off-by: Jose Abreu <joabreu@synopsys.com> Tested-by: Ezequiel Garcia <ezequiel@collabora.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/freescale')
0 files changed, 0 insertions, 0 deletions