} else if (vf->link_forced) {
                pfe.event_data.link_event.link_status = vf->link_up;
                pfe.event_data.link_event.link_speed =
-                       (vf->link_up ? VIRTCHNL_LINK_SPEED_40GB : 0);
+                       (vf->link_up ? i40e_virtchnl_link_speed(ls->link_speed) : 0);
        } else {
                pfe.event_data.link_event.link_status =
                        ls->link_info & I40E_AQ_LINK_UP;
 {
        struct i40e_netdev_priv *np = netdev_priv(netdev);
        struct i40e_pf *pf = np->vsi->back;
+       struct i40e_link_status *ls = &pf->hw.phy.link_info;
        struct virtchnl_pf_event pfe;
        struct i40e_hw *hw = &pf->hw;
        struct i40e_vf *vf;
                vf->link_forced = true;
                vf->link_up = true;
                pfe.event_data.link_event.link_status = true;
-               pfe.event_data.link_event.link_speed = VIRTCHNL_LINK_SPEED_40GB;
+               pfe.event_data.link_event.link_speed = i40e_virtchnl_link_speed(ls->link_speed);
                break;
        case IFLA_VF_LINK_STATE_DISABLE:
                vf->link_forced = true;