fm10k/base: add VF Tx timestamp mode no-op
authorWang Xiao W <xiao.w.wang@intel.com>
Thu, 10 Sep 2015 04:38:11 +0000 (12:38 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 7 Oct 2015 11:25:07 +0000 (13:25 +0200)
This patch resolves a bug in Linux where we called the
request_tx_timestamp_mode function that is undefined for VF. Implement a
no-op function that simply ensures that the mode is NONE, otherwise it
would fail with ERR_PARAM.

Signed-off-by: Wang Xiao W <xiao.w.wang@intel.com>
drivers/net/fm10k/base/fm10k_vf.c

index 2246688..76be9ab 100644 (file)
@@ -545,6 +545,26 @@ STATIC s32 fm10k_configure_dglort_map_vf(struct fm10k_hw *hw,
        return FM10K_SUCCESS;
 }
 
+/**
+ * fm10k_request_tx_timestamp_mode_vf - Request Tx timestamp mode
+ * @hw: pointer to hardware structure
+ * @glort: glort to request Tx timestamps for
+ * @mode: timestamp mode to request
+ *
+ * This function takes the requested timestamp mode and verifies that it was
+ * requested as none since the VF cannot support receipt of Tx timestamps.
+ *
+ * If the mode is non-zero ERR_PARAM, else success
+ **/
+STATIC s32 fm10k_request_tx_timestamp_mode_vf(struct fm10k_hw *hw,
+                                             u16 glort,
+                                             u8 mode)
+{
+       UNREFERENCED_2PARAMETER(hw, glort);
+
+       return mode ? FM10K_ERR_PARAM : FM10K_SUCCESS;
+}
+
 /**
  *  fm10k_adjust_systime_vf - Adjust systime frequency
  *  @hw: pointer to hardware structure
@@ -633,7 +653,8 @@ s32 fm10k_init_ops_vf(struct fm10k_hw *hw)
        mac->ops.configure_dglort_map = &fm10k_configure_dglort_map_vf;
        mac->ops.get_host_state = &fm10k_get_host_state_generic;
        mac->ops.adjust_systime = &fm10k_adjust_systime_vf;
-       mac->ops.read_systime = &fm10k_read_systime_vf,
+       mac->ops.read_systime = &fm10k_read_systime_vf;
+       mac->ops.request_tx_timestamp_mode = &fm10k_request_tx_timestamp_mode_vf;
 
        mac->max_msix_vectors = fm10k_get_pcie_msix_count_generic(hw);