mlx4: support __GFP_MEMALLOC for rx
authorEric Dumazet <edumazet@google.com>
Wed, 18 Jan 2017 04:14:10 +0000 (20:14 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Jan 2017 04:35:12 +0000 (23:35 -0500)
Commit 04aeb56a1732 ("net/mlx4_en: allocate non 0-order pages for RX
ring with __GFP_NOMEMALLOC") added code that appears to be not needed at
that time, since mlx4 never used __GFP_MEMALLOC allocations anyway.

As using memory reserves is a must in some situations (swap over NFS or
iSCSI), this patch adds this flag.

Note that this driver does not reuse pages (yet) so we do not have to
add anything else.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/en_rx.c

index eac527e..e362f99 100644 (file)
@@ -706,7 +706,8 @@ static bool mlx4_en_refill_rx_buffers(struct mlx4_en_priv *priv,
        do {
                if (mlx4_en_prepare_rx_desc(priv, ring,
                                            ring->prod & ring->size_mask,
-                                           GFP_ATOMIC | __GFP_COLD))
+                                           GFP_ATOMIC | __GFP_COLD |
+                                           __GFP_MEMALLOC))
                        break;
                ring->prod++;
        } while (--missing);