• B
    ath5k: work around wrong beacon rx timestamp in IBSS mode · 6ba81c2c
    Bruno Randolf 提交于
    atheros hardware has a problem with the rx timestamp of some IBSS beacons when
    they caused a TSF update (they have the same BSSID).
    
    the rx timestamp is wrong especially if the beacon frames get bigger than 78
    byte (at least on AR5213 and AR5414 hardware). in that case ath5k_extend_tsf()
    will assume a rs_tstamp overflow and give us a timestamp too far in the past
    which will cause mac80211 to merge IBSS on every beacon (which is not necessary
    since the BSSID already matches). but in this case we know that the HW must
    have synced to the beacons TSF and the rx timestamp must be later than that so
    we can adjust mactime accordingly.
    
    also rename the function to ath5k_check_ibss_tsf() and change comments, since
    "hw merge" is better described as a TSF update.
    
    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
    Signed-off-by: NBruno Randolf <bruno@thinktube.com>
    Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
    6ba81c2c
base.c 81.7 KB