All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface netdev_alloc_frag
@ 2022-06-03  4:10 ` Chen Lin
  0 siblings, 0 replies; 54+ messages in thread
From: Chen Lin @ 2022-06-03  4:10 UTC (permalink / raw)
  To: nbd, john, sean.wang, Mark-MC.Lee
  Cc: davem, edumazet, kuba, pabeni, matthias.bgg, netdev,
	linux-arm-kernel, linux-mediatek, linux-kernel, alexander.duyck,
	Chen Lin

When rx_flag == MTK_RX_FLAGS_HWLRO, 
rx_data_len = MTK_MAX_LRO_RX_LENGTH(4096 * 3) > PAGE_SIZE.
netdev_alloc_frag is for alloction of page fragment only.
Reference to other drivers and Documentation/vm/page_frags.rst

Branch to use kmalloc when rx_data_len > PAGE_SIZE.

Signed-off-by: Chen Lin <chen45464546@163.com>
---
 drivers/net/ethernet/mediatek/mtk_eth_soc.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index b3b3c07..d0eebca 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1914,7 +1914,10 @@ static int mtk_rx_alloc(struct mtk_eth *eth, int ring_no, int rx_flag)
 		return -ENOMEM;
 
 	for (i = 0; i < rx_dma_size; i++) {
-		ring->data[i] = netdev_alloc_frag(ring->frag_size);
+		if (ring->frag_size <= PAGE_SIZE)
+			ring->data[i] = netdev_alloc_frag(ring->frag_size);
+		else
+			ring->data[i] = kmalloc(ring->frag_size, GFP_KERNEL);
 		if (!ring->data[i])
 			return -ENOMEM;
 	}
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 54+ messages in thread

end of thread, other threads:[~2022-06-09  3:51 UTC | newest]

Thread overview: 54+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-03  4:10 [PATCH] net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface netdev_alloc_frag Chen Lin
2022-06-03  4:10 ` Chen Lin
2022-06-03  4:10 ` Chen Lin
2022-06-03  4:24 ` Jakub Kicinski
2022-06-03  4:24   ` Jakub Kicinski
2022-06-03  4:24   ` Jakub Kicinski
2022-06-03  4:30 ` Felix Fietkau
2022-06-03  4:30   ` Felix Fietkau
2022-06-03  4:30   ` Felix Fietkau
2022-06-03  8:46   ` [PATCH v2] net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface netdev[napi]_alloc_frag Chen Lin
2022-06-03  8:46     ` Chen Lin
2022-06-03  8:46     ` Chen Lin
2022-06-03 15:25     ` Alexander Duyck
2022-06-03 15:25       ` Alexander Duyck
2022-06-03 15:25       ` Alexander Duyck
2022-06-03 15:33       ` Alexander Duyck
2022-06-03 15:33         ` Alexander Duyck
2022-06-03 15:33         ` Alexander Duyck
2022-06-05  2:22         ` Chen Lin
2022-06-05  2:22           ` Chen Lin
2022-06-05  2:22           ` Chen Lin
2022-06-05  3:12         ` [PATCH v3] " Chen Lin
2022-06-05  3:12           ` Chen Lin
2022-06-05  3:12           ` Chen Lin
2022-06-06 21:34           ` Jakub Kicinski
2022-06-06 21:34             ` Jakub Kicinski
2022-06-06 21:34             ` Jakub Kicinski
2022-06-06 23:39             ` [PATCH v4] " Chen Lin
2022-06-06 23:39               ` Chen Lin
2022-06-06 23:39               ` Chen Lin
2022-06-07 23:14               ` Jakub Kicinski
2022-06-07 23:14                 ` Jakub Kicinski
2022-06-07 23:14                 ` Jakub Kicinski
2022-06-08 12:43                 ` Chen Lin
2022-06-08 12:43                   ` Chen Lin
2022-06-08 12:43                   ` Chen Lin
2022-06-08 12:46                 ` [PATCH v5] " Chen Lin
2022-06-08 12:46                   ` Chen Lin
2022-06-08 12:46                   ` Chen Lin
2022-06-09  3:50                   ` patchwork-bot+netdevbpf
2022-06-09  3:50                     ` patchwork-bot+netdevbpf
2022-06-09  3:50                     ` patchwork-bot+netdevbpf
2022-06-03 17:25     ` [PATCH v2] " Eric Dumazet
2022-06-03 17:25       ` Eric Dumazet
2022-06-03 17:25       ` Eric Dumazet
2022-06-03 18:59       ` Jakub Kicinski
2022-06-03 18:59         ` Jakub Kicinski
2022-06-03 18:59         ` Jakub Kicinski
2022-06-03 19:11         ` Eric Dumazet
2022-06-03 19:11           ` Eric Dumazet
2022-06-03 19:11           ` Eric Dumazet
2022-06-03 19:55           ` Jakub Kicinski
2022-06-03 19:55             ` Jakub Kicinski
2022-06-03 19:55             ` Jakub Kicinski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.