On Mon, Nov 1, 2010 at 4:43 PM, Ben Gamari <bgamari@xxxxxxxxx> wrote: > On Mon, 1 Nov 2010 16:17:23 +0100, Björn Smedman <bjorn.smedman@xxxxxxxxxxx> wrote: >> Hi all, >> >> I have an application that creates and destroys a lot of ap vifs and >> does a lot of monitor frame injection. The recent ath9k rx locking >> fixes have helped with stability in this use-case but there still >> seems to be some tx/beacon related race condition(s). These manifests >> themselves as follows on an AR913x based router running >> compat-wireless-2010-10-19 (with locking fixes etc from openwrt): >> >> 1. TX DMA hangs under simultaneous high RX and TX load >> 2. TX is completely hung but chip is never reset > > I have also observed both of these behaviors with just a standard > hostapd single VIF configuration. Quite annoying. It seems to be better > with recent wireless-testing trees. > > - Ben The next thing that looks racy to me is ath_beacon_alloc() vs ath_beacon_tasklet() in beacon.c. Beacon queue TX DMA is always stopped in main.c before calling ath_beacon_alloc() but ath_beacon_tasklet() is scheduled when we get an SWBA interrupt. My guess is that these keep coming even if we stop TX DMA on the beacon queue, no? /Björn -- 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