Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / drivers / net / ethernet / chelsio / cxgb / sge.c
index 482976925154d1dad9d18eebeda003ce1088d2db..8061fb0ef7edd5b8b9d5bca8d8d6a3e270c5314a 100644 (file)
@@ -734,7 +734,7 @@ void t1_vlan_mode(struct adapter *adapter, netdev_features_t features)
 {
        struct sge *sge = adapter->sge;
 
-       if (features & NETIF_F_HW_VLAN_RX)
+       if (features & NETIF_F_HW_VLAN_CTAG_RX)
                sge->sge_control |= F_VLAN_XTRACT;
        else
                sge->sge_control &= ~F_VLAN_XTRACT;
@@ -835,7 +835,7 @@ static void refill_free_list(struct sge *sge, struct freelQ *q)
                struct sk_buff *skb;
                dma_addr_t mapping;
 
-               skb = alloc_skb(q->rx_buffer_size, GFP_ATOMIC);
+               skb = dev_alloc_skb(q->rx_buffer_size);
                if (!skb)
                        break;
 
@@ -1046,11 +1046,10 @@ static inline struct sk_buff *get_packet(struct pci_dev *pdev,
        const struct freelQ_ce *ce = &fl->centries[fl->cidx];
 
        if (len < copybreak) {
-               skb = alloc_skb(len + 2, GFP_ATOMIC);
+               skb = netdev_alloc_skb_ip_align(NULL, len);
                if (!skb)
                        goto use_orig_buf;
 
-               skb_reserve(skb, 2);    /* align IP header */
                skb_put(skb, len);
                pci_dma_sync_single_for_cpu(pdev,
                                            dma_unmap_addr(ce, dma_addr),
@@ -1387,7 +1386,7 @@ static void sge_rx(struct sge *sge, struct freelQ *fl, unsigned int len)
 
        if (p->vlan_valid) {
                st->vlan_xtract++;
-               __vlan_hwaccel_put_tag(skb, ntohs(p->vlan));
+               __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), ntohs(p->vlan));
        }
        netif_receive_skb(skb);
 }