• Bruno Randolf's avatar
    ath5k: Keep last descriptor in queue · 23413296
    Bruno Randolf authored
    If we return a TX descriptor to the pool of available descriptors, while a
    queues TXDP still points to it we could potentially run into all sorts of
    troube.
    
    It has been suggested that there is hardware which can set the descriptors
    done bit before it reads ds_link and moves on to the next descriptor. While the
    documentation says this is not true for newer chipsets (the descriptor contents
    are copied to some internal memory), we don't know about older hardware.
    
    To be safe, we always keep the last descriptor in the queue, and avoid dangling
    TXDP pointers. Unfortunately this does not fully resolve the problem - queues
    still get stuck!
    
    This is similar to what ath9k does.
    Signed-off-by: default avatarBruno Randolf <br1@einfach.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    23413296
base.c 91.9 KB