Index: /branches/rel_avx_2_7_5/3rdpartyappliance/centos-i40e/SOURCES/set_default_vsi_without_reset.patch
===================================================================
--- /branches/rel_avx_2_7_5/3rdpartyappliance/centos-i40e/SOURCES/set_default_vsi_without_reset.patch	(revision 0)
+++ /branches/rel_avx_2_7_5/3rdpartyappliance/centos-i40e/SOURCES/set_default_vsi_without_reset.patch	(working copy)
@@ -0,0 +1,82 @@
+diff --git a/src/i40e/i40e_common.c b/src/i40e/i40e_common.c
+index 89e216f..371a9eb 100644
+--- a/src/i40e/i40e_common.c
++++ b/src/i40e/i40e_common.c
+@@ -2177,6 +2177,35 @@ i40e_status i40e_aq_set_default_vsi(struct i40e_hw *hw,
+ }
+ 
+ /**
++ * i40e_aq_clear_default_vsi
++ * @hw: pointer to the hw struct
++ * @seid: vsi number
++ * @cmd_details: pointer to command details structure or NULL
++ **/
++i40e_status i40e_aq_clear_default_vsi(struct i40e_hw *hw,
++				u16 seid,
++				struct i40e_asq_cmd_details *cmd_details)
++{
++	struct i40e_aq_desc desc;
++	struct i40e_aqc_set_vsi_promiscuous_modes *cmd =
++		(struct i40e_aqc_set_vsi_promiscuous_modes *)
++		&desc.params.raw;
++	i40e_status status;
++
++	i40e_fill_default_direct_cmd_desc(&desc,
++					  i40e_aqc_opc_set_vsi_promiscuous_modes);
++
++	cmd->promiscuous_flags = cpu_to_le16(0);
++	cmd->valid_flags = cpu_to_le16(I40E_AQC_SET_VSI_DEFAULT);
++	cmd->seid = cpu_to_le16(seid);
++
++	status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);
++
++	return status;
++}
++
++
++/**
+  * i40e_aq_set_vsi_unicast_promiscuous
+  * @hw: pointer to the hw struct
+  * @seid: vsi number
+diff --git a/src/i40e/i40e_main.c b/src/i40e/i40e_main.c
+index 6ba2bf5..84b10af 100644
+--- a/src/i40e/i40e_main.c
++++ b/src/i40e/i40e_main.c
+@@ -2209,7 +2209,23 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)
+ 			 */
+ 			if (pf->cur_promisc != cur_promisc) {
+ 				pf->cur_promisc = cur_promisc;
+-				set_bit(__I40E_PF_RESET_REQUESTED, &pf->state);
++				if (cur_promisc)
++					aq_ret = i40e_aq_set_default_vsi(&pf->hw,
++						vsi->seid,
++						NULL);
++				else
++					aq_ret = i40e_aq_clear_default_vsi(&pf->hw,
++						vsi->seid,
++						NULL);
++				if (aq_ret) {
++					retval = i40e_aq_rc_to_posix(aq_ret,
++						pf->hw.aq.asq_last_status);
++					dev_info(&pf->pdev->dev,
++						"Set default VSI failed, err %s, aq_err %s\n",
++						i40e_stat_str(&pf->hw, aq_ret),
++						i40e_aq_str(&pf->hw,
++							pf->hw.aq.asq_last_status));
++					}
+ 			}
+ 		} else {
+ 			aq_ret = i40e_aq_set_vsi_unicast_promiscuous(
+diff --git a/src/i40e/i40e_prototype.h b/src/i40e/i40e_prototype.h
+index 7776e72..39af5de 100644
+--- a/src/i40e/i40e_prototype.h
++++ b/src/i40e/i40e_prototype.h
+@@ -110,6 +110,8 @@ i40e_status i40e_aq_set_phy_debug(struct i40e_hw *hw, u8 cmd_flags,
+ 				struct i40e_asq_cmd_details *cmd_details);
+ i40e_status i40e_aq_set_default_vsi(struct i40e_hw *hw, u16 vsi_id,
+ 				struct i40e_asq_cmd_details *cmd_details);
++i40e_status i40e_aq_clear_default_vsi(struct i40e_hw *hw, u16 vsi_id,
++				struct i40e_asq_cmd_details *cmd_details);
+ i40e_status i40e_aq_get_phy_capabilities(struct i40e_hw *hw,
+ 			bool qualified_modules, bool report_init,
+ 			struct i40e_aq_get_phy_abilities_resp *abilities,
Index: /branches/rel_avx_2_7_5/3rdpartyappliance/centos-i40e/SPECS/i40e.spec
===================================================================
--- /branches/rel_avx_2_7_5/3rdpartyappliance/centos-i40e/SPECS/i40e.spec	(revision 9218)
+++ /branches/rel_avx_2_7_5/3rdpartyappliance/centos-i40e/SPECS/i40e.spec	(working copy)
@@ -1,7 +1,7 @@
 Name: i40e
 Summary: Intel(R) 40-10 Gigabit Ethernet Connection Network Driver
 Version: 1.4.25
-Release: 13
+Release: 14
 Source: %{name}-%{version}.tar.gz
 Vendor: Intel Corporation
 License: GPL
@@ -35,6 +35,7 @@
 Patch999012: 25G_support.patch
 Patch999013: add_link_down_on_close_feature.patch
 Patch999014: fix_pf_reset_failed.patch
+Patch999015: set_default_vsi_without_reset.patch
 
 ####
 %description
@@ -56,6 +57,7 @@
 %patch999012 -p1
 %patch999013 -p0
 %patch999014 -p1
+%patch999015 -p1
 
 %build
 make -C src clean
