summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/if_ath_misc.h
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2013-05-08 07:30:33 +0000
committeradrian <adrian@FreeBSD.org>2013-05-08 07:30:33 +0000
commit954115da6694572bcccf36d4b4732f245c8376d4 (patch)
tree844d6bbca9dec522f5e7925c10a76f89f620b52c /sys/dev/ath/if_ath_misc.h
parent3de8ff346b14df13e27f324ffbba2550d6a81863 (diff)
downloadFreeBSD-src-954115da6694572bcccf36d4b4732f245c8376d4.zip
FreeBSD-src-954115da6694572bcccf36d4b4732f245c8376d4.tar.gz
Revert a previous commit - this is causing hardware errors.
I'm not sure why this is failing. The holding descriptor should be being re-read when starting DMA of the next frame. Obviously something here isn't totally correct. I'll review the TX queue handling and see if I can figure out why this is failing. I'll then re-revert this patch out and use the holding descriptor again.
Diffstat (limited to 'sys/dev/ath/if_ath_misc.h')
-rw-r--r--sys/dev/ath/if_ath_misc.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath_misc.h b/sys/dev/ath/if_ath_misc.h
index 965ab9f..404d073 100644
--- a/sys/dev/ath/if_ath_misc.h
+++ b/sys/dev/ath/if_ath_misc.h
@@ -131,10 +131,16 @@ extern void ath_start_task(void *arg, int npending);
static inline void
ath_tx_kick(struct ath_softc *sc)
{
+ struct ieee80211com *ic = sc->sc_ifp->if_l2com;
+ IEEE80211_TX_UNLOCK_ASSERT(ic);
+ ATH_TX_UNLOCK_ASSERT(sc);
+
+ IEEE80211_TX_LOCK(ic);
ATH_TX_LOCK(sc);
ath_start(sc->sc_ifp);
ATH_TX_UNLOCK(sc);
+ IEEE80211_TX_UNLOCK(ic);
}
/*
OpenPOWER on IntegriCloud