> @@ -883,6 +883,15 @@ int bnx2x_vfpf_set_mcast(struct net_device *dev) > /* Get Rx mode requested */ > DP(NETIF_MSG_IFUP, "dev->flags = %x\n", dev->flags); > > + /* We support PFVF_MAX_MULTICAST_PER_VF mcast addresses tops > */ > + if (netdev_mc_count(dev) > PFVF_MAX_MULTICAST_PER_VF) { > + DP(NETIF_MSG_IFUP, > + "VF supports not more than %d multicast MAC > addresses\n", > + PFVF_MAX_MULTICAST_PER_VF); > + rc = -EINVAL; > + goto out; > + } > + > netdev_for_each_mc_addr(ha, dev) { > DP(NETIF_MSG_IFUP, "Adding mcast MAC: %pM\n", > bnx2x_mc_addr(ha));
You can push it even higher; It's a simply sanity and can be done prior to bnx2x_vfpf_prep(), in which case you'd be able to simply return instead of touching the goto label and passing through the prep()/finalize() sequence. BTW, just to mention that this is artificial limitation due to the HW channel. If we'd be really motivated we can have VFs that can configure as many approx. multicasts addresses as they want [similar to PFs], although that would require a new PF driver as well [that supports a revised implementation].