From a3c0e7f2fbfe274ef54b5db0d9141397fa7d36ca Mon Sep 17 00:00:00 2001 From: Imre Vadász Date: Sat, 30 Jul 2016 19:03:32 +0000 Subject: [iwm] Fix iwm_poll_bit() usage in iwm_stop_device(), fixup r303418. * iwm_poll_bit() returns 1 on success and 0 on failure, whereas iwl_poll_bit() in Linux's iwlwifi returns >= 0 on success and < 0 on failure. * Because of the wrong iwm_poll_bit return code check, no warning was printed if tx DMA stopping failed. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D7371 --- sys/dev/iwm/if_iwm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/iwm/if_iwm.c b/sys/dev/iwm/if_iwm.c index e611ddee31838..8d39c40044908 100644 --- a/sys/dev/iwm/if_iwm.c +++ b/sys/dev/iwm/if_iwm.c @@ -1310,8 +1310,8 @@ iwm_stop_device(struct iwm_softc *sc) } /* Wait for DMA channels to be idle */ - if (iwm_poll_bit(sc, IWM_FH_TSSR_TX_STATUS_REG, mask, mask, - 5000) < 0) { + if (!iwm_poll_bit(sc, IWM_FH_TSSR_TX_STATUS_REG, mask, mask, + 5000)) { device_printf(sc->sc_dev, "Failing on timeout while stopping DMA channel: [0x%08x]\n", IWM_READ(sc, IWM_FH_TSSR_TX_STATUS_REG)); -- cgit v1.3