Emmanuel Grumbach <egrumbach@xxxxxxxxx> writes: > From: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> > > None of the devices supported by iwldvm have support for > shadow registers. This means that we wake the NIC > when we increment the write pointer on Tx ring. > This happened even before my bad commit mentionned below. > Since my commit below, we wake up the NIC when we put a > host command on the ring regardless of shadow register > support. This means that in iwldvm (when the NIC doesn't > support shadow register), we wake up the NIC twice: > > pcie_enqueue_hcmd: > wake up the NIC > iwl_pcie_txq_inc_wr_ptr: > wake up the NIC - no shadow reg support > > Since waking up the NIC means that we need to acquire a > spinlock, this obviously leads to a recursive spinlock > and hence a freeze. > > Fixes: b9439491055a ("iwlwifi: pcie: keep the NIC awake when commands are in flight") > Reported-by: Janusz Dziedzic <janusz.dziedzic@xxxxxxxxx> > Reviewed-by: Johannes Berg <johannes.berg@xxxxxxxxx> > Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> Ah, this is why my laptop was hanging during boot with latest wireless-testing? Thanks for fixing this. FWIW: Tested-by: Kalle Valo <kvalo@xxxxxxxxxx> -- Kalle Valo -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html