commit | a0d24d2e22bc91e16d2141409b51ae87a81a70a7 | [log] [tgz] |
---|---|---|
author | developer <developer@mediatek.com> | Wed Jul 10 11:45:20 2024 +0800 |
committer | developer <developer@mediatek.com> | Wed Jul 10 22:54:25 2024 +0800 |
tree | 8560f69dd374b89b22bdc8c1c58aff3c7c92c743 | |
parent | 81987a206ed2b63f1bb7844f7fa26f9997fb44f0 [diff] |
[][kernel][mt7988][eth][Update 36-bit DMA feature to resolve panic issue] [Description] Refactor 36-bit DMA feature to resolve panic issue. In the previous change with ID @9236901, we refactor the 36-bit DMA feature to an upstream style, inadvertently introducing a potential risk of losing the upper 4 bits of the DMA addressin the mtk_poll_rx() function during SER. Without this patch, the kernel will panic in the mtk_rx_clean() function during SER test. [Release-log] N/A Change-Id: Id35a034f27239289fa9380e5bc4dfddd1e3f2d81 Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/9337620
diff --git a/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c index eb0692a..8971a7f 100644 --- a/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/21.02/files/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -2561,7 +2561,7 @@ release_desc: if (MTK_HAS_CAPS(eth->soc->caps, MTK_36BIT_DMA)) { if (unlikely(dma_addr == DMA_MAPPING_ERROR)) - addr64 = RX_DMA_GET_ADDR64(rxd->rxd2); + addr64 = FIELD_GET(RX_DMA_ADDR64_MASK, rxd->rxd2); else addr64 = RX_DMA_PREP_ADDR64(dma_addr); }