|
@@ -1656,9 +1656,12 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp)
|
|
|
|
|
|
if (fcoe->netdev->priv_flags & IFF_802_1Q_VLAN &&
|
|
|
fcoe->realdev->features & NETIF_F_HW_VLAN_CTAG_TX) {
|
|
|
- skb->vlan_tci = VLAN_TAG_PRESENT |
|
|
|
- vlan_dev_vlan_id(fcoe->netdev);
|
|
|
+ /* must set skb->dev before calling vlan_put_tag */
|
|
|
skb->dev = fcoe->realdev;
|
|
|
+ skb = __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
|
|
|
+ vlan_dev_vlan_id(fcoe->netdev));
|
|
|
+ if (!skb)
|
|
|
+ return -ENOMEM;
|
|
|
} else
|
|
|
skb->dev = fcoe->netdev;
|
|
|
|