[TCWG CI] Regression caused by linux: iwlwifi: mvm: fix 32-bit build in FTM: commit 8b0f92549f2c2458200935c12a2e2a6e80234cf5 Author: Johannes Berg johannes.berg@intel.com
iwlwifi: mvm: fix 32-bit build in FTM
Results regressed to # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1: -5 # build_abe qemu: -2 # linux_n_obj: 22027 # First few build errors in logs: # 00:15:36 ./include/asm-generic/div64.h:222:35: error: comparison of distinct pointer types lacks a cast [-Werror] # 00:15:36 make[6]: *** [drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.o] Error 1 # 00:15:55 make[5]: *** [drivers/net/wireless/intel/iwlwifi/mvm] Error 2 # 00:17:27 make[4]: *** [drivers/net/wireless/intel/iwlwifi] Error 2 # 00:17:27 make[3]: *** [drivers/net/wireless/intel] Error 2 # 00:18:20 make[2]: *** [drivers/net/wireless] Error 2 # 00:23:38 make[1]: *** [drivers/net] Error 2 # 00:23:53 make: *** [drivers] Error 2
from # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1: -5 # build_abe qemu: -2 # linux_n_obj: 30193 # linux build successful: all
THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.
This commit has regressed these CI configurations: - tcwg_kernel/gnu-release-arm-next-allmodconfig
First_bad build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmod... Last_good build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmod... Baseline build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmod... Even more details: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmod...
Reproduce builds: <cut> mkdir investigate-linux-8b0f92549f2c2458200935c12a2e2a6e80234cf5 cd investigate-linux-8b0f92549f2c2458200935c12a2e2a6e80234cf5
# Fetch scripts git clone https://git.linaro.org/toolchain/jenkins-scripts
# Fetch manifests and test.sh script mkdir -p artifacts/manifests curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmod... --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmod... --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmod... --fail chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites) ./jenkins-scripts/tcwg_kernel-build.sh @@ artifacts/manifests/build-baseline.sh
# Save baseline build state (which is then restored in artifacts/test.sh) mkdir -p ./bisect rsync -a --del --delete-excluded --exclude /bisect/ --exclude /artifacts/ --exclude /linux/ ./ ./bisect/baseline/
cd linux
# Reproduce first_bad build git checkout --detach 8b0f92549f2c2458200935c12a2e2a6e80234cf5 ../artifacts/test.sh
# Reproduce last_good build git checkout --detach 4cd177b43a1443924c56c6d94b8a77be762a3976 ../artifacts/test.sh
cd .. </cut>
Full commit (up to 1000 lines): <cut> commit 8b0f92549f2c2458200935c12a2e2a6e80234cf5 Author: Johannes Berg johannes.berg@intel.com Date: Sun Dec 19 11:14:18 2021 +0200
iwlwifi: mvm: fix 32-bit build in FTM
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.Ib98004ccd2c7a... Signed-off-by: Luca Coelho luciano.coelho@intel.com --- drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c index 949fb790f8fb..3e6c13fc74eb 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c @@ -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", </cut>
linaro-kernel@lists.linaro.org