From e86fd7a7155bce00179efe7b5b59722f246ce441 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Fri, 9 Mar 2012 08:36:30 +0000 Subject: Insert extra paranoia into the ath(4) driver. This function must be called with both the source and destination TXQs locked or things will get hairy. I added this as part of some debugging in a PR but it turned out to not be the cause. I still think it's -correct- so, here it is. --- sys/dev/ath/if_ath.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sys/dev/ath/if_ath.c') diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index d4288d329650..21adfa89a000 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -2908,6 +2908,10 @@ ath_beacon_update(struct ieee80211vap *vap, int item) static void ath_txqmove(struct ath_txq *dst, struct ath_txq *src) { + + ATH_TXQ_LOCK_ASSERT(dst); + ATH_TXQ_LOCK_ASSERT(src); + TAILQ_CONCAT(&dst->axq_q, &src->axq_q, bf_list); dst->axq_link = src->axq_link; src->axq_link = NULL; -- cgit v1.2.3