*     3. Update dev->stats asynchronously and atomically, and define
  *        neither operation.
  *
- * void (*ndo_vlan_rx_register)(struct net_device *dev, struct vlan_group *grp);
- *     If device support VLAN receive acceleration
- *     (ie. dev->features & NETIF_F_HW_VLAN_RX), then this function is called
- *     when vlan groups for the device changes.  Note: grp is NULL
- *     if no vlan's groups are being used.
- *
  * void (*ndo_vlan_rx_add_vid)(struct net_device *dev, unsigned short vid);
  *     If device support VLAN filtering (dev->features & NETIF_F_HW_VLAN_FILTER)
  *     this function is called when a VLAN id is registered.
                                                     struct rtnl_link_stats64 *storage);
        struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);
 
-       void                    (*ndo_vlan_rx_register)(struct net_device *dev,
-                                                       struct vlan_group *grp);
        void                    (*ndo_vlan_rx_add_vid)(struct net_device *dev,
                                                       unsigned short vid);
        void                    (*ndo_vlan_rx_kill_vid)(struct net_device *dev,
 
                vlan_gvrp_uninit_applicant(real_dev);
 
                rcu_assign_pointer(real_dev->vlgrp, NULL);
-               if (ops->ndo_vlan_rx_register)
-                       ops->ndo_vlan_rx_register(real_dev, NULL);
 
                /* Free the group, after all cpu's are done. */
                call_rcu(&grp->rcu, vlan_rcu_free);
        grp->nr_vlans++;
 
        if (ngrp) {
-               if (ops->ndo_vlan_rx_register && (real_dev->features & NETIF_F_HW_VLAN_RX))
-                       ops->ndo_vlan_rx_register(real_dev, ngrp);
                rcu_assign_pointer(real_dev->vlgrp, ngrp);
        }
        if (real_dev->features & NETIF_F_HW_VLAN_FILTER)