--- a/drivers/net/ethernet/ar231x/ar231x.c +++ b/drivers/net/ethernet/ar231x/ar231x.c @@ -1291,7 +1291,7 @@ static int ar231x_mdiobus_probe (struct BUG_ON(!phydev); BUG_ON(phydev->attached_dev); - phydev = phy_connect(dev, dev_name(&phydev->dev), &ar231x_adjust_link, 0, + phydev = phy_connect(dev, dev_name(&phydev->dev), &ar231x_adjust_link, PHY_INTERFACE_MODE_MII); if (IS_ERR(phydev)) { --- a/drivers/net/phy/mvswitch.c +++ b/drivers/net/phy/mvswitch.c @@ -173,7 +173,7 @@ mvswitch_mangle_rx(struct net_device *de if (vlan == -1) return; - __vlan_hwaccel_put_tag(skb, vlan); + __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), vlan); } @@ -307,9 +307,9 @@ mvswitch_config_init(struct phy_device * #ifdef HEADER_MODE dev->priv_flags |= IFF_NO_IP_ALIGN; - dev->features |= NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX; + dev->features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_TX; #else - dev->features |= NETIF_F_HW_VLAN_RX; + dev->features |= NETIF_F_HW_VLAN_CTAG_RX; #endif return 0;