Message ID | 694abd65418b2b3974106a82d758e3474c65ae8f.1645042560.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | net: ll_temac: Use GFP_KERNEL instead of GFP_ATOMIC when possible | expand |
Hello: This patch was applied to netdev/net-next.git (master) by Jakub Kicinski <kuba@kernel.org>: On Wed, 16 Feb 2022 21:16:16 +0100 you wrote: > XTE_MAX_JUMBO_FRAME_SIZE is over 9000 bytes and the default value for > 'rx_bd_num' is RX_BD_NUM_DEFAULT (i.e. 1024) > > So this loop allocates more than 9 Mo of memory. > > Previous memory allocations in this function already use GFP_KERNEL, so > use __netdev_alloc_skb_ip_align() and an explicit GFP_KERNEL instead of a > implicit GFP_ATOMIC. > > [...] Here is the summary with links: - net: ll_temac: Use GFP_KERNEL instead of GFP_ATOMIC when possible https://git.kernel.org/netdev/net-next/c/60f8ad2392d0 You are awesome, thank you!
diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c index b900ab5aef2a..0547a3fde561 100644 --- a/drivers/net/ethernet/xilinx/ll_temac_main.c +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c @@ -361,8 +361,9 @@ static int temac_dma_bd_init(struct net_device *ndev) lp->rx_bd_v[i].next = cpu_to_be32(lp->rx_bd_p + sizeof(*lp->rx_bd_v) * ((i + 1) % lp->rx_bd_num)); - skb = netdev_alloc_skb_ip_align(ndev, - XTE_MAX_JUMBO_FRAME_SIZE); + skb = __netdev_alloc_skb_ip_align(ndev, + XTE_MAX_JUMBO_FRAME_SIZE, + GFP_KERNEL); if (!skb) goto out;
XTE_MAX_JUMBO_FRAME_SIZE is over 9000 bytes and the default value for 'rx_bd_num' is RX_BD_NUM_DEFAULT (i.e. 1024) So this loop allocates more than 9 Mo of memory. Previous memory allocations in this function already use GFP_KERNEL, so use __netdev_alloc_skb_ip_align() and an explicit GFP_KERNEL instead of a implicit GFP_ATOMIC. This gives more opportunities of successful allocation. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- drivers/net/ethernet/xilinx/ll_temac_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)