While do PF reset with function i40e_reset_and_rebuild(), it will call i40e_init_pf_fcoe() by default if FCOE is defined, thus if the PF is resetted, FCOE will be enabled whatever it was - enabled or not.
Such bug might be hit when PF resumes from suspend, run diagnostic test with ethtool, setup VLAN etc. Passed building with v3.19-rc3. Signed-off-by: Ethan Zhao <ethan.z...@oracle.com> --- drivers/net/ethernet/intel/i40e/i40e_main.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index a5f2660..a2572cc 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -6180,9 +6180,12 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit) } #endif /* CONFIG_I40E_DCB */ #ifdef I40E_FCOE - ret = i40e_init_pf_fcoe(pf); - if (ret) - dev_info(&pf->pdev->dev, "init_pf_fcoe failed: %d\n", ret); + if (pf->flags & I40E_FLAG_FCOE_ENABLED) { + ret = i40e_init_pf_fcoe(pf); + if (ret) + dev_info(&pf->pdev->dev, + "init_pf_fcoe failed: %d\n", ret); + } #endif /* do basic switch setup */ -- 1.8.3.1 ------------------------------------------------------------------------------ Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired