These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / net / ethernet / intel / e1000 / e1000_main.c
index 983eb4e..fd7be86 100644 (file)
@@ -2079,11 +2079,6 @@ static void *e1000_alloc_frag(const struct e1000_adapter *a)
        return data;
 }
 
-static void e1000_free_frag(const void *data)
-{
-       put_page(virt_to_head_page(data));
-}
-
 /**
  * e1000_clean_rx_ring - Free Rx Buffers per Queue
  * @adapter: board private structure
@@ -2107,7 +2102,7 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter,
                                                 adapter->rx_buffer_len,
                                                 DMA_FROM_DEVICE);
                        if (buffer_info->rxbuf.data) {
-                               e1000_free_frag(buffer_info->rxbuf.data);
+                               skb_free_frag(buffer_info->rxbuf.data);
                                buffer_info->rxbuf.data = NULL;
                        }
                } else if (adapter->clean_rx == e1000_clean_jumbo_rx_irq) {
@@ -3825,7 +3820,7 @@ static int e1000_clean(struct napi_struct *napi, int budget)
        if (work_done < budget) {
                if (likely(adapter->itr_setting & 3))
                        e1000_set_itr(adapter);
-               napi_complete(napi);
+               napi_complete_done(napi, work_done);
                if (!test_bit(__E1000_DOWN, &adapter->flags))
                        e1000_irq_enable(adapter);
        }
@@ -4594,28 +4589,28 @@ static void e1000_alloc_rx_buffers(struct e1000_adapter *adapter,
                        data = e1000_alloc_frag(adapter);
                        /* Failed allocation, critical failure */
                        if (!data) {
-                               e1000_free_frag(olddata);
+                               skb_free_frag(olddata);
                                adapter->alloc_rx_buff_failed++;
                                break;
                        }
 
                        if (!e1000_check_64k_bound(adapter, data, bufsz)) {
                                /* give up */
-                               e1000_free_frag(data);
-                               e1000_free_frag(olddata);
+                               skb_free_frag(data);
+                               skb_free_frag(olddata);
                                adapter->alloc_rx_buff_failed++;
                                break;
                        }
 
                        /* Use new allocation */
-                       e1000_free_frag(olddata);
+                       skb_free_frag(olddata);
                }
                buffer_info->dma = dma_map_single(&pdev->dev,
                                                  data,
                                                  adapter->rx_buffer_len,
                                                  DMA_FROM_DEVICE);
                if (dma_mapping_error(&pdev->dev, buffer_info->dma)) {
-                       e1000_free_frag(data);
+                       skb_free_frag(data);
                        buffer_info->dma = 0;
                        adapter->alloc_rx_buff_failed++;
                        break;
@@ -4637,7 +4632,7 @@ static void e1000_alloc_rx_buffers(struct e1000_adapter *adapter,
                                         adapter->rx_buffer_len,
                                         DMA_FROM_DEVICE);
 
-                       e1000_free_frag(data);
+                       skb_free_frag(data);
                        buffer_info->rxbuf.data = NULL;
                        buffer_info->dma = 0;