struct sparx5 *spx5 = port->sparx5;
        u16 pgid_idx, vid;
        u32 mact_entry;
 +      bool is_host;
        int res, err;
  
 -      if (netif_is_bridge_master(v->obj.orig_dev)) {
 -              sparx5_mact_learn(spx5, PGID_CPU, v->addr, v->vid);
 -              return 0;
 -      }
+       if (!sparx5_netdevice_check(dev))
+               return -EOPNOTSUPP;
+ 
 +      is_host = netif_is_bridge_master(v->obj.orig_dev);
  
        /* When VLAN unaware the vlan value is not parsed and we receive vid 0.
         * Fall back to bridge vid 1.
        struct sparx5_port *port = netdev_priv(dev);
        struct sparx5 *spx5 = port->sparx5;
        u16 pgid_idx, vid;
 -      u32 mact_entry, res, pgid_entry[3];
 -      int err;
 +      u32 mact_entry, res, pgid_entry[3], misc_cfg;
 +      bool host_ena;
  
 -      if (netif_is_bridge_master(v->obj.orig_dev)) {
 -              sparx5_mact_forget(spx5, v->addr, v->vid);
 -              return 0;
 -      }
 -
+       if (!sparx5_netdevice_check(dev))
+               return -EOPNOTSUPP;
+ 
        if (!br_vlan_enabled(spx5->hw_bridge_dev))
                vid = 1;
        else