From: Alexandra Kossovsky <alexandra.kossov...@oktetlabs.ru>

If we fail to allocate a page when in atomic context this is
handled by scheduling a fill in non-atomic context.
As such, a warning is not needed.

Signed-off-by: Shradha Shah <ss...@solarflare.com>
---
 drivers/net/ethernet/sfc/rx.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c
index 809ea461..3f0e129 100644
--- a/drivers/net/ethernet/sfc/rx.c
+++ b/drivers/net/ethernet/sfc/rx.c
@@ -163,8 +163,15 @@ static int efx_init_rx_buffers(struct efx_rx_queue 
*rx_queue, bool atomic)
        do {
                page = efx_reuse_page(rx_queue);
                if (page == NULL) {
+                       /* GFP_ATOMIC may fail because of various reasons,
+                        * and we re-schedule rx_fill from non-atomic
+                        * context in such a case.  So, use __GFP_NO_WARN
+                        * in case of atomic.
+                        */
                        page = alloc_pages(__GFP_COLD | __GFP_COMP |
-                                          (atomic ? GFP_ATOMIC : GFP_KERNEL),
+                                          (atomic ?
+                                           (GFP_ATOMIC | __GFP_NOWARN)
+                                           : GFP_KERNEL),
                                           efx->rx_buffer_order);
                        if (unlikely(page == NULL))
                                return -ENOMEM;

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to