Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / drivers / net / ethernet / oki-semi / pch_gbe / pch_gbe_main.c
index 39ab4d09faaa2eb500748466ba6ab0fbe4074ac9..0c1c65a9ce5e31edb87ccb27e5bb377523f99f1d 100644 (file)
@@ -1469,13 +1469,11 @@ pch_gbe_alloc_rx_buffers_pool(struct pch_gbe_adapter *adapter,
 
        size = rx_ring->count * bufsz + PCH_GBE_RESERVE_MEMORY;
        rx_ring->rx_buff_pool = dma_alloc_coherent(&pdev->dev, size,
-                                               &rx_ring->rx_buff_pool_logic,
-                                               GFP_KERNEL);
-       if (!rx_ring->rx_buff_pool) {
-               pr_err("Unable to allocate memory for the receive pool buffer\n");
+                                                  &rx_ring->rx_buff_pool_logic,
+                                                  GFP_KERNEL | __GFP_ZERO);
+       if (!rx_ring->rx_buff_pool)
                return -ENOMEM;
-       }
-       memset(rx_ring->rx_buff_pool, 0, size);
+
        rx_ring->rx_buff_pool_size = size;
        for (i = 0; i < rx_ring->count; i++) {
                buffer_info = &rx_ring->buffer_info[i];
@@ -1726,9 +1724,9 @@ pch_gbe_clean_rx(struct pch_gbe_adapter *adapter,
 
                        skb->protocol = eth_type_trans(skb, netdev);
                        if (tcp_ip_status & PCH_GBE_RXD_ACC_STAT_TCPIPOK)
-                               skb->ip_summed = CHECKSUM_NONE;
-                       else
                                skb->ip_summed = CHECKSUM_UNNECESSARY;
+                       else
+                               skb->ip_summed = CHECKSUM_NONE;
 
                        napi_gro_receive(&adapter->napi, skb);
                        (*work_done)++;
@@ -1774,13 +1772,12 @@ int pch_gbe_setup_tx_resources(struct pch_gbe_adapter *adapter,
        tx_ring->size = tx_ring->count * (int)sizeof(struct pch_gbe_tx_desc);
 
        tx_ring->desc = dma_alloc_coherent(&pdev->dev, tx_ring->size,
-                                          &tx_ring->dma, GFP_KERNEL);
+                                          &tx_ring->dma,
+                                          GFP_KERNEL | __GFP_ZERO);
        if (!tx_ring->desc) {
                vfree(tx_ring->buffer_info);
-               pr_err("Unable to allocate memory for the transmit descriptor ring\n");
                return -ENOMEM;
        }
-       memset(tx_ring->desc, 0, tx_ring->size);
 
        tx_ring->next_to_use = 0;
        tx_ring->next_to_clean = 0;
@@ -1820,14 +1817,12 @@ int pch_gbe_setup_rx_resources(struct pch_gbe_adapter *adapter,
 
        rx_ring->size = rx_ring->count * (int)sizeof(struct pch_gbe_rx_desc);
        rx_ring->desc = dma_alloc_coherent(&pdev->dev, rx_ring->size,
-                                          &rx_ring->dma, GFP_KERNEL);
-
+                                          &rx_ring->dma,
+                                          GFP_KERNEL | __GFP_ZERO);
        if (!rx_ring->desc) {
-               pr_err("Unable to allocate memory for the receive descriptor ring\n");
                vfree(rx_ring->buffer_info);
                return -ENOMEM;
        }
-       memset(rx_ring->desc, 0, rx_ring->size);
        rx_ring->next_to_clean = 0;
        rx_ring->next_to_use = 0;
        for (desNo = 0; desNo < rx_ring->count; desNo++) {
@@ -2268,7 +2263,7 @@ static int pch_gbe_change_mtu(struct net_device *netdev, int new_mtu)
                if (err) {
                        adapter->rx_buffer_len = old_rx_buffer_len;
                        pch_gbe_up(adapter);
-                       return -ENOMEM;
+                       return err;
                } else {
                        netdev->mtu = new_mtu;
                        adapter->hw.mac.max_frame_size = max_frame;