From: David S. Miller Date: Tue, 10 Jun 2008 09:22:26 +0000 (-0700) Subject: Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 X-Git-Tag: v2.6.27-rc1~964^2~337 X-Git-Url: http://git.cascardo.info/?a=commitdiff_plain;h=65b53e4cc90e59936733b3b95b9451d2ca47528d;p=cascardo%2Flinux.git Merge branch 'master' of /linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/tg3.c drivers/net/wireless/rt2x00/rt2x00dev.c net/mac80211/ieee80211_i.h --- 65b53e4cc90e59936733b3b95b9451d2ca47528d diff --cc drivers/net/wireless/b43/b43.h index e919189919bb,dfa4bdd5597c..239e71c3d1b1 --- a/drivers/net/wireless/b43/b43.h +++ b/drivers/net/wireless/b43/b43.h @@@ -753,8 -734,10 +753,9 @@@ struct b43_wl /* The beacon we are currently using (AP or IBSS mode). * This beacon stuff is protected by the irq_lock. */ struct sk_buff *current_beacon; - struct ieee80211_tx_control beacon_txctl; bool beacon0_uploaded; bool beacon1_uploaded; + bool beacon_templates_virgin; /* Never wrote the templates? */ struct work_struct beacon_update_trigger; /* The current QOS parameters for the 4 queues. diff --cc net/mac80211/ieee80211_i.h index 432011cd3647,006486b26726..884be4d100f1 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h @@@ -853,7 -877,29 +853,29 @@@ u32 ieee80211_handle_ht(struct ieee8021 /* ieee80211_ioctl.c */ extern const struct iw_handler_def ieee80211_iw_handler_def; - int ieee80211_set_freq(struct ieee80211_local *local, int freq); + - + /* Least common multiple of the used rates (in 100 kbps). This is used to + * calculate rate_inv values for each rate so that only integers are needed. */ + #define CHAN_UTIL_RATE_LCM 95040 + /* 1 usec is 1/8 * (95040/10) = 1188 */ + #define CHAN_UTIL_PER_USEC 1188 + /* Amount of bits to shift the result right to scale the total utilization + * to values that will not wrap around 32-bit integers. */ + #define CHAN_UTIL_SHIFT 9 + /* Theoretical maximum of channel utilization counter in 10 ms (stat_time=1): + * (CHAN_UTIL_PER_USEC * 10000) >> CHAN_UTIL_SHIFT = 23203. So dividing the + * raw value with about 23 should give utilization in 10th of a percentage + * (1/1000). However, utilization is only estimated and not all intervals + * between frames etc. are calculated. 18 seems to give numbers that are closer + * to the real maximum. */ + #define CHAN_UTIL_PER_10MS 18 + #define CHAN_UTIL_HDR_LONG (202 * CHAN_UTIL_PER_USEC) + #define CHAN_UTIL_HDR_SHORT (40 * CHAN_UTIL_PER_USEC) + + + /* ieee80211_ioctl.c */ + int ieee80211_set_freq(struct net_device *dev, int freq); ++ /* ieee80211_sta.c */ void ieee80211_sta_timer(unsigned long data); void ieee80211_sta_work(struct work_struct *work); diff --cc net/mac80211/main.c index f79f6b9938a6,98c0b5e56ecc..b182f018a187 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@@ -1314,9 -1314,9 +1315,9 @@@ static void ieee80211_handle_filtered_f /* * Clear the TX filter mask for this STA when sending the next * packet. If the STA went to power save mode, this will happen - * happen when it wakes up for the next time. + * when it wakes up for the next time. */ - sta->flags |= WLAN_STA_CLEAR_PS_FILT; + set_sta_flags(sta, WLAN_STA_CLEAR_PS_FILT); /* * This code races in the following way: diff --cc net/mac80211/mlme.c index adbc1c804dd3,4d2b582dd055..7f05820dc629 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@@ -1670,10 -1659,10 +1670,10 @@@ timer_expired_exit * resetting it after each frame that arrives from the originator. * if this timer expires ieee80211_sta_stop_rx_ba_session will be executed. */ -void sta_rx_agg_session_timer_expired(unsigned long data) +static void sta_rx_agg_session_timer_expired(unsigned long data) { /* not an elegant detour, but there is no choice as the timer passes - * only one argument, and verious sta_info are needed here, so init + * only one argument, and various sta_info are needed here, so init * flow in sta_info_create gives the TID as data, while the timer_to_id * array gives the sta through container_of */ u8 *ptid = (u8 *)data; @@@ -4134,15 -4108,14 +4140,14 @@@ ieee80211_sta_scan_result(struct net_de memset(&iwe, 0, sizeof(iwe)); iwe.cmd = SIOCGIWFREQ; - iwe.u.freq.m = ieee80211_frequency_to_channel(bss->freq); - iwe.u.freq.e = 0; + iwe.u.freq.m = bss->freq; + iwe.u.freq.e = 6; current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_FREQ_LEN); - memset(&iwe, 0, sizeof(iwe)); iwe.cmd = IWEVQUAL; - iwe.u.qual.qual = bss->signal; - iwe.u.qual.level = bss->rssi; + iwe.u.qual.qual = bss->qual; + iwe.u.qual.level = bss->signal; iwe.u.qual.noise = bss->noise; iwe.u.qual.updated = local->wstats_flags; current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,