OSDN Git Service

i40e: update VFs of link state after GET_VF_RESOURCES
authorJacob Keller <jacob.e.keller@intel.com>
Fri, 27 Oct 2017 15:06:53 +0000 (11:06 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 10 Jan 2018 20:41:21 +0000 (12:41 -0800)
We currently notify a VF of the link state after ENABLE_QUEUES, which is
the last thing a VF does after being configured. Guests may not actually
ENABLE_QUEUES until they get configured, and thus between driver load
and device configuration the VF may show inaccurate link status.

Fix this by also sending the link state after GET_VF_RESOURCES. Although
we could remove the message following ENABLE_QUEUES, it's not that
significant of a loss, so this patch just keeps both to ensure maximum
compatibility with guests on various OSes.

Specifically, without this patch guests running FreeBSD will display
inaccurate link state until the device is brought up. This is mostly
a cosmetic issue but can be confusing to system administrators.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

index 36cb8e0..74e9e5e 100644 (file)
@@ -2749,6 +2749,7 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, s16 vf_id, u32 v_opcode,
                break;
        case VIRTCHNL_OP_GET_VF_RESOURCES:
                ret = i40e_vc_get_vf_resources_msg(vf, msg);
+               i40e_vc_notify_vf_link_state(vf);
                break;
        case VIRTCHNL_OP_RESET_VF:
                i40e_vc_reset_vf_msg(vf);