u8 num_tcs = adapter->hw_tcs;
        u32 reg_val;
        u32 queue;
-       u32 word;
 
        /* remove VLAN filters beloning to this VF */
        ixgbe_clear_vf_vlans(adapter, vf);
                }
        }
 
+       IXGBE_WRITE_FLUSH(hw);
+}
+
+static void ixgbe_vf_clear_mbx(struct ixgbe_adapter *adapter, u32 vf)
+{
+       struct ixgbe_hw *hw = &adapter->hw;
+       u32 word;
+
        /* Clear VF's mailbox memory */
        for (word = 0; word < IXGBE_VFMAILBOX_SIZE; word++)
                IXGBE_WRITE_REG_ARRAY(hw, IXGBE_PFMBMEM(vf), word, 0);
        /* reset the filters for the device */
        ixgbe_vf_reset_event(adapter, vf);
 
+       ixgbe_vf_clear_mbx(adapter, vf);
+
        /* set vf mac address */
        if (!is_zero_ether_addr(vf_mac))
                ixgbe_set_vf_mac(adapter, vf, vf_mac);