|
@@ -338,6 +338,8 @@ static const struct header_ops macvlan_hard_header_ops = {
|
|
|
.cache_update = eth_header_cache_update,
|
|
|
};
|
|
|
|
|
|
+static struct rtnl_link_ops macvlan_link_ops;
|
|
|
+
|
|
|
static int macvlan_open(struct net_device *dev)
|
|
|
{
|
|
|
struct macvlan_dev *vlan = netdev_priv(dev);
|
|
@@ -353,7 +355,8 @@ static int macvlan_open(struct net_device *dev)
|
|
|
goto hash_add;
|
|
|
}
|
|
|
|
|
|
- if (lowerdev->features & NETIF_F_HW_L2FW_DOFFLOAD) {
|
|
|
+ if (lowerdev->features & NETIF_F_HW_L2FW_DOFFLOAD &&
|
|
|
+ dev->rtnl_link_ops == &macvlan_link_ops) {
|
|
|
vlan->fwd_priv =
|
|
|
lowerdev->netdev_ops->ndo_dfwd_add_station(lowerdev, dev);
|
|
|
|