[Madwifi-cvs] revision 3011 committed
Status: Beta
Brought to you by:
otaku
From: benoit <svn...@ma...> - 2007-12-07 21:45:20
|
Project : madwifi Revision : 3011 Author : benoit Date : 2007-12-07 22:45:16 +0100 (Fri, 07 Dec 2007) Log Message : Merge trunk from 3000:3010 Affected Files: * madwifi/branches/madwifi-dfs/ath/if_ath.c updated * madwifi/branches/madwifi-dfs/ath/if_ath_debug.h updated * madwifi/branches/madwifi-dfs/net80211/ieee80211_beacon.c updated * madwifi/branches/madwifi-dfs/net80211/ieee80211_debug.h updated * madwifi/branches/madwifi-dfs/net80211/ieee80211_output.c updated * madwifi/branches/madwifi-dfs/tools/athdebug.c updated Modified: madwifi/branches/madwifi-dfs/ath/if_ath.c =================================================================== --- madwifi/branches/madwifi-dfs/ath/if_ath.c 2007-12-07 21:15:25 UTC (rev 3010) +++ madwifi/branches/madwifi-dfs/ath/if_ath.c 2007-12-07 21:45:16 UTC (rev 3011) @@ -1701,14 +1701,14 @@ bf->bf_status |= ATH_BUFSTATUS_RXTSTAMP; count ++; - DPRINTF(sc, ATH_DEBUG_RECV, + DPRINTF(sc, ATH_DEBUG_TSF, "rs_tstamp=%10llx count=%d\n", bf->bf_tsf, count); /* compute rollover */ if (last_rs_tstamp > rs->rs_tstamp) { rollover ++; - DPRINTF(sc, ATH_DEBUG_RECV, + DPRINTF(sc, ATH_DEBUG_TSF, "%d rollover detected\n", rollover); } @@ -1978,7 +1978,7 @@ hw_tsf = ath_hal_gettsf64(ah); if (last_rs_tstamp > (hw_tsf & TSTAMP_MASK)) { rollover++; - DPRINTF(sc, ATH_DEBUG_RECV, + DPRINTF(sc, ATH_DEBUG_TSF, "%d rollover detected for hw_tsf=%10llx\n", rollover, hw_tsf); } @@ -2007,12 +2007,12 @@ (hw_tsf & ~TSTAMP_MASK) | bf->bf_tsf; bf->bf_tsf -= rollover * (TSTAMP_MASK + 1); - DPRINTF(sc, ATH_DEBUG_RECV, + DPRINTF(sc, ATH_DEBUG_TSF, "bf_tsf=%10llx hw_tsf=%10llx\n", bf->bf_tsf, hw_tsf); if (bf->bf_tsf < sc->sc_last_tsf) { - DPRINTF(sc, ATH_DEBUG_RECV, + DPRINTF(sc, ATH_DEBUG_TSF, "TSF error: bf_tsf=%10llx " "sc_last_tsf=%10llx\n", bf->bf_tsf, @@ -12446,29 +12446,29 @@ /* Caller must have the TXBUF_LOCK */ static void #ifdef IEEE80211_DEBUG_REFCNT -ath_return_txbuf_locked_debug(struct ath_softc *sc, struct ath_buf **buf, const char* func, int line) +ath_return_txbuf_locked_debug(struct ath_softc *sc, struct ath_buf **bf, + const char* func, int line) #else -ath_return_txbuf_locked(struct ath_softc *sc, struct ath_buf **buf) +ath_return_txbuf_locked(struct ath_softc *sc, struct ath_buf **bf) #endif /* #ifdef IEEE80211_DEBUG_REFCNT */ { - struct ath_buf *bufaddr; + struct ath_buf *bfaddr; ATH_TXBUF_LOCK_ASSERT(sc); - if ((buf == NULL) || ((*buf) == NULL)) + if ((bf == NULL) || ((*bf) == NULL)) return; - bufaddr = *buf; + bfaddr = *bf; #ifdef IEEE80211_DEBUG_REFCNT - cleanup_ath_buf_debug(sc, (*buf), BUS_DMA_TODEVICE, func, line); + cleanup_ath_buf_debug(sc, (*bf), BUS_DMA_TODEVICE, func, line); #else - cleanup_ath_buf(sc, (*buf), BUS_DMA_TODEVICE); + cleanup_ath_buf(sc, (*bf), BUS_DMA_TODEVICE); #endif - STAILQ_INSERT_TAIL(&sc->sc_txbuf, (*buf), bf_list); + STAILQ_INSERT_TAIL(&sc->sc_txbuf, (*bf), bf_list); atomic_dec(&ath_buf_counter); #ifdef IEEE80211_DEBUG_REFCNT DPRINTF(sc, ATH_DEBUG_TXBUF, "[TXBUF=%03d/%03d] %s:%d -> %s:%d returned txbuf %p.\n", ath_get_buffer_count(), ATH_TXBUF, - func, line, __func__, __LINE__, - bufaddr); + func, line, __func__, __LINE__, bfaddr); #endif /* #ifdef IEEE80211_DEBUG_REFCNT */ if (sc->sc_devstopped) { ++sc->sc_reapcount; @@ -12486,22 +12486,23 @@ ATH_SCHEDULE_TQUEUE(&sc->sc_txtq, NULL); } - *buf = NULL; + *bf = NULL; } /* Takes the TXBUF_LOCK */ static void #ifdef IEEE80211_DEBUG_REFCNT -ath_return_txbuf_debug(struct ath_softc *sc, struct ath_buf **buf, const char* func, int line) +ath_return_txbuf_debug(struct ath_softc *sc, struct ath_buf **bf, + const char* func, int line) #else -ath_return_txbuf(struct ath_softc *sc, struct ath_buf **buf) +ath_return_txbuf(struct ath_softc *sc, struct ath_buf **bf) #endif { ATH_TXBUF_LOCK_IRQ(sc); #ifdef IEEE80211_DEBUG_REFCNT - ath_return_txbuf_locked_debug(sc, buf, func, line); + ath_return_txbuf_locked_debug(sc, bf, func, line); #else - ath_return_txbuf_locked(sc, buf); + ath_return_txbuf_locked(sc, bf); #endif /* #ifdef IEEE80211_DEBUG_REFCNT */ ATH_TXBUF_UNLOCK_IRQ(sc); } @@ -12509,7 +12510,8 @@ /* Takes the lock */ static void #ifdef IEEE80211_DEBUG_REFCNT -ath_return_txbuf_list_debug(struct ath_softc *sc, ath_bufhead *bfhead, const char* func, int line) +ath_return_txbuf_list_debug(struct ath_softc *sc, ath_bufhead *bfhead, + const char* func, int line) #else ath_return_txbuf_list(struct ath_softc *sc, ath_bufhead *bfhead) #endif @@ -12534,7 +12536,8 @@ /* Caller must have the lock */ static void #ifdef IEEE80211_DEBUG_REFCNT -ath_return_txbuf_list_locked_debug(struct ath_softc *sc, ath_bufhead *bfhead, const char* func, int line) +ath_return_txbuf_list_locked_debug(struct ath_softc *sc, ath_bufhead *bfhead, + const char* func, int line) #else ath_return_txbuf_list_locked(struct ath_softc *sc, ath_bufhead *bfhead) #endif /* #ifdef IEEE80211_DEBUG_REFCNT */ @@ -12559,79 +12562,72 @@ static struct ath_buf* #ifdef IEEE80211_DEBUG_REFCNT -cleanup_ath_buf_debug(struct ath_softc *sc, struct ath_buf *buf, int direction, const char* func, int line) +cleanup_ath_buf_debug(struct ath_softc *sc, struct ath_buf *bf, int direction, + const char* func, int line) #else /* #ifdef IEEE80211_DEBUG_REFCNT */ -cleanup_ath_buf(struct ath_softc *sc, struct ath_buf *buf, int direction) +cleanup_ath_buf(struct ath_softc *sc, struct ath_buf *bf, int direction) #endif /* #ifdef IEEE80211_DEBUG_REFCNT */ { - if (buf == NULL) - return buf; + if (bf == NULL) + return bf; - /* Release dma mappings, if present */ - if (buf->bf_skbaddr) { - /* Unmap DMA memory */ + if (bf->bf_skbaddr) { bus_unmap_single( sc->sc_bdev, - buf->bf_skbaddr, - (direction == BUS_DMA_FROMDEVICE ? sc->sc_rxbufsize : buf->bf_skb->len), + bf->bf_skbaddr, + (direction == BUS_DMA_FROMDEVICE ? + sc->sc_rxbufsize : bf->bf_skb->len), direction); - buf->bf_skbaddr = 0; - buf->bf_desc->ds_link = 0; - buf->bf_desc->ds_data = 0; + bf->bf_skbaddr = 0; + bf->bf_desc->ds_link = 0; + bf->bf_desc->ds_data = 0; } - /* Free node reference, if present */ - if (buf->bf_node != NULL) { -#ifdef IEEE80211_DEBUG_REFCNT - ieee80211_unref_node_debug(&buf->bf_node, func, line); -#else - ieee80211_unref_node(&buf->bf_node); -#endif /* #ifdef IEEE80211_DEBUG_REFCNT */ - } #ifdef ATH_SUPERG_FF -{ - unsigned int i = 0; - struct sk_buff* next_ffskb = NULL; - /* Start with the second skb for FF */ - struct sk_buff* ffskb = buf->bf_skb ? - buf->bf_skb->next : - NULL; - while (ffskb) { - next_ffskb = ffskb->next; + { + unsigned int i = 0; + struct sk_buff* next_ffskb = NULL; + /* Start with the second skb for FF */ + struct sk_buff* ffskb = bf->bf_skb ? + bf->bf_skb->next : NULL; + while (ffskb) { + next_ffskb = ffskb->next; - /* Unmap DMA memory */ - if (buf->bf_skbaddrff[i] != 0) { - bus_unmap_single( - sc->sc_bdev, - buf->bf_skbaddrff[i], - (direction == BUS_DMA_TODEVICE ? - sc->sc_rxbufsize : ffskb->len), - direction); - buf->bf_skbaddrff[i] = 0; - } + if (bf->bf_skbaddrff[i] != 0) { + bus_unmap_single( + sc->sc_bdev, + bf->bf_skbaddrff[i], + (direction == BUS_DMA_TODEVICE ? + sc->sc_rxbufsize : ffskb->len), + direction); + bf->bf_skbaddrff[i] = 0; + } - /* Release skb and move to the next */ - ffskb = next_ffskb; - i++; + ffskb = next_ffskb; + i++; + } + memset(bf->bf_skbaddrff, 0, sizeof(bf->bf_skbaddrff)); + bf->bf_numdescff = 0; } - memset(buf->bf_skbaddrff, 0, sizeof(buf->bf_skbaddrff)); - buf->bf_numdescff = 0; -} #endif /* ATH_SUPERG_FF */ - buf->bf_node = NULL; - buf->bf_flags = 0; - if (buf->bf_desc) { - buf->bf_desc->ds_link = 0; - buf->bf_desc->ds_data = 0; + if (bf->bf_node != NULL) { +#ifdef IEEE80211_DEBUG_REFCNT + ieee80211_unref_node_debug(&bf->bf_node, func, line); +#else + ieee80211_unref_node(&bf->bf_node); +#endif /* #ifdef IEEE80211_DEBUG_REFCNT */ } - /* Free the SKBs when we free the node */ - if (buf->bf_skb != NULL) { - ieee80211_dev_kfree_skb_list(&buf->bf_skb); + bf->bf_flags = 0; + if (bf->bf_desc) { + bf->bf_desc->ds_link = 0; + bf->bf_desc->ds_data = 0; } - /* passthrough */ - return buf; + if (bf->bf_skb != NULL) + ieee80211_dev_kfree_skb_list(&bf->bf_skb); + + return bf; } Modified: madwifi/branches/madwifi-dfs/ath/if_ath_debug.h =================================================================== --- madwifi/branches/madwifi-dfs/ath/if_ath_debug.h 2007-12-07 21:15:25 UTC (rev 3010) +++ madwifi/branches/madwifi-dfs/ath/if_ath_debug.h 2007-12-07 21:45:16 UTC (rev 3011) @@ -40,6 +40,7 @@ ATH_DEBUG_CALIBRATE = 0x00010000, /* periodic calibration */ ATH_DEBUG_KEYCACHE = 0x00020000, /* key cache management */ ATH_DEBUG_STATE = 0x00040000, /* 802.11 state transitions */ + ATH_DEBUG_TSF = 0x00080000, /* timestamp processing */ ATH_DEBUG_LED = 0x00100000, /* led management */ ATH_DEBUG_FF = 0x00200000, /* fast frames */ ATH_DEBUG_TURBO = 0x00400000, /* turbo/dynamic turbo */ Modified: madwifi/branches/madwifi-dfs/net80211/ieee80211_beacon.c =================================================================== --- madwifi/branches/madwifi-dfs/net80211/ieee80211_beacon.c 2007-12-07 21:15:25 UTC (rev 3010) +++ madwifi/branches/madwifi-dfs/net80211/ieee80211_beacon.c 2007-12-07 21:45:16 UTC (rev 3011) @@ -265,7 +265,7 @@ wh->i_dur = 0; IEEE80211_ADDR_COPY(wh->i_addr1, ic->ic_dev->broadcast); IEEE80211_ADDR_COPY(wh->i_addr2, vap->iv_myaddr); - IEEE80211_ADDR_COPY(wh->i_addr3, ni->ni_bssid); + IEEE80211_ADDR_COPY(wh->i_addr3, vap->iv_bss->ni_bssid); *(u_int16_t *)wh->i_seq = 0; return skb; Modified: madwifi/branches/madwifi-dfs/net80211/ieee80211_debug.h =================================================================== --- madwifi/branches/madwifi-dfs/net80211/ieee80211_debug.h 2007-12-07 21:15:25 UTC (rev 3010) +++ madwifi/branches/madwifi-dfs/net80211/ieee80211_debug.h 2007-12-07 21:45:16 UTC (rev 3011) @@ -40,7 +40,7 @@ /* Set to true if ANY sc has skb debugging on */ extern int ath_debug_global; enum { - GLOBAL_DEBUG_SKB_REF = 0x00000040, /* SKB referernce counting */ + GLOBAL_DEBUG_SKB_REF = 0x00000040, /* SKB reference counting */ GLOBAL_DEBUG_SKB = 0x40000000, /* SKB usage/leak debugging, must match ATH_DEBUG_SKB */ }; Modified: madwifi/branches/madwifi-dfs/net80211/ieee80211_output.c =================================================================== --- madwifi/branches/madwifi-dfs/net80211/ieee80211_output.c 2007-12-07 21:15:25 UTC (rev 3010) +++ madwifi/branches/madwifi-dfs/net80211/ieee80211_output.c 2007-12-07 21:45:16 UTC (rev 3011) @@ -422,7 +422,7 @@ skb_push(skb, sizeof(struct ieee80211_frame)); ieee80211_send_setup(vap, ni, wh, IEEE80211_FC0_TYPE_MGT | type, - vap->iv_myaddr, ni->ni_macaddr, ni->ni_bssid); + vap->iv_myaddr, ni->ni_macaddr, vap->iv_bss->ni_bssid); /* XXX power management */ if ((SKB_CB(skb)->flags & M_LINK0) != 0 && ni->ni_challenge != NULL) { Modified: madwifi/branches/madwifi-dfs/tools/athdebug.c =================================================================== --- madwifi/branches/madwifi-dfs/tools/athdebug.c 2007-12-07 21:15:25 UTC (rev 3010) +++ madwifi/branches/madwifi-dfs/tools/athdebug.c 2007-12-07 21:45:16 UTC (rev 3011) @@ -74,6 +74,7 @@ ATH_DEBUG_CALIBRATE = 0x00010000, /* periodic calibration */ ATH_DEBUG_KEYCACHE = 0x00020000, /* key cache management */ ATH_DEBUG_STATE = 0x00040000, /* 802.11 state transitions */ + ATH_DEBUG_TSF = 0x00080000, /* timestamp processing */ ATH_DEBUG_LED = 0x00100000, /* led management */ ATH_DEBUG_FF = 0x00200000, /* fast frames */ ATH_DEBUG_TURBO = 0x00400000, /* turbo/dynamic turbo */ @@ -110,6 +111,7 @@ { "calibrate", ATH_DEBUG_CALIBRATE, "periodic re-calibration" }, { "keycache", ATH_DEBUG_KEYCACHE, "key cache management" }, { "state", ATH_DEBUG_STATE, "802.11 state transitions" }, + { "tsf", ATH_DEBUG_TSF, "TSF and timestamp processing"}, { "txbuf", ATH_DEBUG_TXBUF, "ath_buf management" }, { "skb", ATH_DEBUG_SKB, "skb management (affects all devs)" }, { "skb_ref", ATH_DEBUG_SKB_REF, "skb ref counting (affects all devs)" }, |