On 2011-03-10 2:04 PM, Felix Fietkau wrote: > On 2011-03-10 10:46 AM, Vasanthakumar Thiagarajan wrote: >> On Thu, Mar 10, 2011 at 06:05:03AM +0530, Felix Fietkau wrote: >>> ath9k calls ath9k_hw_stoptxdma every time it sends a beacon, however there >>> is not much point in doing that if the previous beacon and mcast traffic >>> went out properly. On AR9380, calling that function too often can result >>> in an increase of stuck beacons due to differences in the handling of the >>> queue enable/disable functionality. >>> >>> With this patch, the queue will only be explicitly stopped if the previous >>> data frames were not sent successfully. With the beacon code being the >>> only remaining user of ath9k_hw_stoptxdma, this function can be simplified >>> in order to remove the now pointless attempts at waiting for transmission >>> completion, which would never happen at this point due to the different >>> method of tx scheduling of the beacon queue. >> >> Thanks. Can this patch be split into two, one which possibly fixes btsuck >> (a stable fix) and the other one which is a cleanup?. > OK. I'll split it up, but won't propose it for stable yet, I want to see > how well it works for users first. Actually, now that I think about it, it can't easily be split up without introducing potential side-effects. The unmodified ath9k_hw_stoptxdma should not be called when a beacon is stuck, because then it will hit the code path that tries to kill pending frames by setting various flags and waiting for a while, which is absolutely counterproductive when being done to the beacon queue. I think it's better to leave the patch as a whole, the changes to ath9k_hw_stoptxdma do not fix anything without the changes to beacon.c. - Felix -- 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