• Larry Finger's avatar
    b43: Work around mac80211 race condition · 18c69510
    Larry Finger authored
    As shown in http://thread.gmane.org/gmane.linux.kernel.wireless.general/36497,
    mac80211 has a bug that allows a call to the TX routine after the queues have
    been stopped. This situation will only occur under extreme stress. Although
    b43 does not crash when this condition occurs, it does generate a WARN_ON and
    also logs a queue overrun message. This patch recognizes b43 is not at fault
    and logs a message only when the most verbose debugging mode is enabled. In
    the unlikely event that the queue is not stopped when the DMA queue becomes
    full, then a warning is issued.
    
    During testing of this patch with one output stream running repeated tcpperf
    writes and a second running a flood ping, this routine was entered with
    the DMA ring stopped about once per hour. The condition where the DMA queue is
    full but the ring has not been stopped has never been seen by me.
    Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    18c69510
dma.c 42.7 KB