FreeBSD/sys/dev/ixgbe/if_ixv.c
/*
** This routine is run via an vlan
** unconfig EVENT, remove our entry
** in the soft vfta.
*/
This routine is run via an vlan
unconfig EVENT, remove our entry
in the soft vfta.
This routine is run via an vlan unconfig EVENT remove our entry in the soft vfta .
static void
ixv_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag)
{
	struct adapter	*adapter = ifp->if_softc;
	u16		index, bit;
	if (ifp->if_softc !=  arg)
		return;
	if ((vtag == 0) || (vtag > 4095))	
		return;
	IXGBE_CORE_LOCK(adapter);
	index = (vtag >> 5) & 0x7F;
	bit = vtag & 0x1F;
	ixv_shadow_vfta[index] &= ~(1 << bit);
	--adapter->num_vlans;
	ixv_init_locked(adapter);
	IXGBE_CORE_UNLOCK(adapter);
}
static void ixv_unregister_vlan ( void * arg , struct ifnet * ifp , u16 vtag ) { struct adapter * adapter = ifp -> if_softc ; u16 index , bit ; if ( ifp -> if_softc != arg ) return ; if ( ( vtag == 0 ) || ( vtag > 4095 ) ) return ; IXGBE_CORE_LOCK ( adapter ) ; index = ( vtag >> 5 ) & 0x7F ; bit = vtag & 0x1F ; ixv_shadow_vfta [ index ] &= ~ ( 1 << bit ) ; -- adapter -> num_vlans ; ixv_init_locked ( adapter ) ; IXGBE_CORE_UNLOCK ( adapter ) ; }
This routine is run via an vlan
unconfig EVENT, remove our entry
in the soft vfta.
This routine is run via an vlan unconfig EVENT remove our entry in the soft vfta .
/* Invalid */ /* Re-init to load the changes */