From 858ee76dbfe8b4774fd6eb29086ba228a6c47301 Mon Sep 17 00:00:00 2001 From: Greg Rose Date: Fri, 21 Sep 2012 00:21:39 +0000 Subject: [PATCH] --- yaml --- r: 340559 b: refs/heads/master c: 91ffb8e0dc662868addeff9fd013145c49a43c4a h: refs/heads/master i: 340557: 4ad9b88fd6375605ea9c96b63575308caf644c37 340555: 6ce2d1178f5a863ac7b8aebaee7419adb6604f98 340551: ba7a02dacab5cc9f6545465e2ebcc6f9f884bcac 340543: bac38be20ddc906c9bbb3e2a859452e55dfd44ca v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/intel/igbvf/netdev.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index fd547ddebfcf..17c53053473d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f9d08f165b8a5a4af6f827318e692b57bc683825 +refs/heads/master: 91ffb8e0dc662868addeff9fd013145c49a43c4a diff --git a/trunk/drivers/net/ethernet/intel/igbvf/netdev.c b/trunk/drivers/net/ethernet/intel/igbvf/netdev.c index 0ac11f527a84..4051ec404613 100644 --- a/trunk/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/trunk/drivers/net/ethernet/intel/igbvf/netdev.c @@ -184,6 +184,13 @@ static void igbvf_alloc_rx_buffers(struct igbvf_ring *rx_ring, buffer_info->page_offset, PAGE_SIZE / 2, DMA_FROM_DEVICE); + if (dma_mapping_error(&pdev->dev, + buffer_info->page_dma)) { + __free_page(buffer_info->page); + buffer_info->page = NULL; + dev_err(&pdev->dev, "RX DMA map failed\n"); + break; + } } if (!buffer_info->skb) { @@ -197,6 +204,12 @@ static void igbvf_alloc_rx_buffers(struct igbvf_ring *rx_ring, buffer_info->dma = dma_map_single(&pdev->dev, skb->data, bufsz, DMA_FROM_DEVICE); + if (dma_mapping_error(&pdev->dev, buffer_info->dma)) { + dev_kfree_skb(buffer_info->skb); + buffer_info->skb = NULL; + dev_err(&pdev->dev, "RX DMA map failed\n"); + goto no_buffers; + } } /* Refresh the desc even if buffer_addrs didn't change because * each write-back erases this info. */