The 'iwl_pcie_spin_for_iml()' implementation contains a loop that relies on jiffies being constantly incremented due to its use of 'time_before()'. As this is also a macro, rather than playing CPP shenanigens we fallback to altering the code. --- src/linux/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +++ src/linux/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c @@ -431,6 +431,9 @@ /* Keep the CPU and device busy. */ value = iwl_read32(trans, CSR_LTR_LAST_MSG); loops++; + + /* force scheduling to increase jiffies */ + cpu_relax(); } IWL_DEBUG_INFO(trans,