OSDN Git Service

iwlwifi: mvm: fix 32-bit build in FTM
authorJohannes Berg <johannes.berg@intel.com>
Sun, 19 Dec 2021 09:14:18 +0000 (11:14 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 21 Dec 2021 10:35:05 +0000 (12:35 +0200)
On a 32-bit build, the division here needs to be done
using do_div(), otherwise the compiler will try to call
a function that doesn't exist, thus failing to build.

Fixes: b68bd2e3143a ("iwlwifi: mvm: Add FTM initiator RTT smoothing logic")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20211219111352.e56cbf614a4d.Ib98004ccd2c7a55fd883a8ea7eebd810f406dec6@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c

index 949fb79..3e6c13f 100644 (file)
@@ -1066,7 +1066,8 @@ static void iwl_mvm_ftm_rtt_smoothing(struct iwl_mvm *mvm,
        overshoot = IWL_MVM_FTM_INITIATOR_SMOOTH_OVERSHOOT;
        alpha = IWL_MVM_FTM_INITIATOR_SMOOTH_ALPHA;
 
-       rtt_avg = (alpha * rtt + (100 - alpha) * resp->rtt_avg) / 100;
+       rtt_avg = alpha * rtt + (100 - alpha) * resp->rtt_avg;
+       do_div(rtt_avg, 100);
 
        IWL_DEBUG_INFO(mvm,
                       "%pM: prev rtt_avg=%lld, new rtt_avg=%lld, rtt=%lld\n",