iwlwifi only supports CLOCK_REALTIME timestamps and provides an incomplete
result without system counter values etc.

It also zeros struct system_device_crosststamp, which is already zeroed in
the core and initialized with the clock ID.

Remove the zeroing and reject any request for a clock ID other than REALTIME.

Signed-off-by: Thomas Gleixner <[email protected]>
Cc: Miri Korenblit <[email protected]>
Cc: Johannes Berg <[email protected]>
---
 drivers/net/wireless/intel/iwlwifi/mld/ptp.c |    3 ++-
 drivers/net/wireless/intel/iwlwifi/mvm/ptp.c |    5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

--- a/drivers/net/wireless/intel/iwlwifi/mld/ptp.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/ptp.c
@@ -250,7 +250,8 @@ iwl_mld_phc_get_crosstimestamp(struct pt
        /* System (wall) time */
        ktime_t sys_time;
 
-       memset(xtstamp, 0, sizeof(struct system_device_crosststamp));
+       if (xtstamp->clock_id != CLOCK_REALTIME)
+               return -ENOTSUPP;
 
        ret = iwl_mld_get_crosstimestamp_fw(mld, &gp2, &sys_time);
        if (ret) {
--- a/drivers/net/wireless/intel/iwlwifi/mvm/ptp.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ptp.c
@@ -160,13 +160,14 @@ iwl_mvm_phc_get_crosstimestamp(struct pt
        /* System (wall) time */
        ktime_t sys_time;
 
-       memset(xtstamp, 0, sizeof(struct system_device_crosststamp));
-
        if (!mvm->ptp_data.ptp_clock) {
                IWL_ERR(mvm, "No PHC clock registered\n");
                return -ENODEV;
        }
 
+       if (xtstamp->clock_id != CLOCK_REALTIME)
+               return -ENOTSUPP;
+
        mutex_lock(&mvm->mutex);
        if (fw_has_capa(&mvm->fw->ucode_capa, IWL_UCODE_TLV_CAPA_SYNCED_TIME)) {
                ret = iwl_mvm_get_crosstimestamp_fw(mvm, &gp2, &sys_time);


Reply via email to