/* e1000_set_vfta_vf - Set/Unset vlan filter table address @hw: pointer to the HW structure @vid: determines the vfta register and bit to set/unset @set: if true then set bit, else clear bit  */
static s32 e1000_set_vfta_vf(struct e1000_hw *, u16, bool)
/* e1000_set_vfta_vf - Set/Unset vlan filter table address @hw: pointer to the HW structure @vid: determines the vfta register and bit to set/unset @set: if true then set bit, else clear bit  */
static s32 e1000_set_vfta_vf(struct e1000_hw *, u16, bool)
{
	struct e1000_mbx_info *mbx = &hw->mbx;
	u32 msgbuf[2];
	s32 err;
	msgbuf[0] = E1000_VF_SET_VLAN;
	msgbuf[1] = vid;
	if (set)
		msgbuf[0] |= 1 << E1000_VT_MSGINFO_SHIFT;
	mbx->ops.write_posted(hw, msgbuf, 2);
	err = mbx->ops.read_posted(hw, msgbuf, 2);
	msgbuf[0] &= ~E1000_VT_MSGTYPE_CTS;
	if (!err && (msgbuf[0] == (E1000_VF_SET_VLAN | E1000_VT_MSGTYPE_NACK)))
		err = -E1000_ERR_MAC_INIT;
	return err;
}