From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752300AbbG2PLU (ORCPT ); Wed, 29 Jul 2015 11:11:20 -0400 Received: from bear.ext.ti.com ([192.94.94.41]:43707 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752442AbbG2PLD (ORCPT ); Wed, 29 Jul 2015 11:11:03 -0400 From: WingMan Kwok To: , , , CC: WingMan Kwok , "Reece R. Pollack" Subject: [PATCH 2/2] net: netcp: Allocate RX packet buffers using __GFP_DMA Date: Wed, 29 Jul 2015 11:10:53 -0400 Message-ID: <1438182653-2136-2-git-send-email-w-kwok2@ti.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1438182653-2136-1-git-send-email-w-kwok2@ti.com> References: <1438182653-2136-1-git-send-email-w-kwok2@ti.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Keystone II DMA hardware can only access addresses in the lower 2 GiB of SDRAM. This patch makes sure the RX buffers are allocated using the __GFP_DMA flag so they meet this requirement. Signed-off-by: WingMan Kwok Signed-off-by: Reece R. Pollack --- drivers/net/ethernet/ti/netcp_core.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/ti/netcp_core.c b/drivers/net/ethernet/ti/netcp_core.c index 2d07701..39c68df 100644 --- a/drivers/net/ethernet/ti/netcp_core.c +++ b/drivers/net/ethernet/ti/netcp_core.c @@ -820,11 +820,13 @@ static void netcp_allocate_rx_buf(struct netcp_intf *netcp, int fdq) SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); if (primary_buf_len <= PAGE_SIZE) { - bufptr = netdev_alloc_frag(primary_buf_len); + bufptr = __netdev_alloc_frag(primary_buf_len, + GFP_ATOMIC | __GFP_COLD | + __GFP_DMA); pad[1] = primary_buf_len; } else { bufptr = kmalloc(primary_buf_len, GFP_ATOMIC | - GFP_DMA32 | __GFP_COLD); + __GFP_COLD | __GFP_DMA); pad[1] = 0; } @@ -838,9 +840,10 @@ static void netcp_allocate_rx_buf(struct netcp_intf *netcp, int fdq) } else { /* Allocate a secondary receive queue entry */ - page = alloc_page(GFP_ATOMIC | GFP_DMA32 | __GFP_COLD); + page = alloc_page(GFP_ATOMIC | __GFP_COLD | __GFP_DMA); if (unlikely(!page)) { - dev_warn_ratelimited(netcp->ndev_dev, "Secondary page alloc failed\n"); + dev_warn_ratelimited(netcp->ndev_dev, + "Secondary page alloc failed\n"); goto fail; } buf_len = PAGE_SIZE; -- 1.7.9.5