huge madwifi update - use a madwifi-ng-refcount snapshot as base, includes lots of...
[openwrt.git] / package / madwifi / patches / 115-PR_1270_fix.patch
1 diff -urN madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_input.c madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_input.c
2 --- madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_input.c 2007-05-04 02:10:06.000000000 +0200
3 +++ madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_input.c 2007-05-13 18:17:56.027051632 +0200
4 @@ -2854,7 +2854,7 @@
5 IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3);
6 memcpy(ni->ni_tstamp.data, scan.tstamp,
7 sizeof(ni->ni_tstamp));
8 - ni->ni_intval = scan.bintval;
9 + ni->ni_intval = IEEE80211_BINTVAL_SANITISE(scan.bintval);
10 ni->ni_capinfo = scan.capinfo;
11 ni->ni_chan = ic->ic_curchan;
12 ni->ni_fhdwell = scan.fhdwell;
13 @@ -3279,7 +3279,7 @@
14 ni->ni_rssi = rssi;
15 ni->ni_rstamp = rstamp;
16 ni->ni_last_rx = jiffies;
17 - ni->ni_intval = bintval;
18 + ni->ni_intval = IEEE80211_BINTVAL_SANITISE(bintval);
19 ni->ni_capinfo = capinfo;
20 ni->ni_chan = ic->ic_curchan;
21 ni->ni_fhdwell = vap->iv_bss->ni_fhdwell;
22 diff -urN madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_node.c madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_node.c
23 --- madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_node.c 2007-05-13 18:17:55.862076712 +0200
24 +++ madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_node.c 2007-05-13 18:17:56.028051480 +0200
25 @@ -658,7 +658,7 @@
26 memcpy(ni->ni_essid, se->se_ssid + 2, ni->ni_esslen);
27 ni->ni_rstamp = se->se_rstamp;
28 ni->ni_tstamp.tsf = se->se_tstamp.tsf;
29 - ni->ni_intval = se->se_intval;
30 + ni->ni_intval = IEEE80211_BINTVAL_SANITISE(se->se_intval);
31 ni->ni_capinfo = se->se_capinfo;
32 ni->ni_chan = se->se_chan;
33 ni->ni_timoff = se->se_timoff;
34 @@ -1191,7 +1191,7 @@
35 memcpy(ni->ni_essid, sp->ssid + 2, sp->ssid[1]);
36 IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3);
37 memcpy(ni->ni_tstamp.data, sp->tstamp, sizeof(ni->ni_tstamp));
38 - ni->ni_intval = sp->bintval;
39 + ni->ni_intval = IEEE80211_BINTVAL_SANITISE(sp->bintval);
40 ni->ni_capinfo = sp->capinfo;
41 ni->ni_chan = ic->ic_curchan;
42 ni->ni_fhdwell = sp->fhdwell;
43 diff -urN madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_scan.h madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_scan.h
44 --- madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_scan.h 2007-04-04 04:39:58.000000000 +0200
45 +++ madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_scan.h 2007-05-13 18:17:56.029051328 +0200
46 @@ -131,7 +131,7 @@
47 u_int8_t bchan;
48 u_int8_t fhindex;
49 u_int8_t erp;
50 - u_int8_t bintval;
51 + u_int16_t bintval;
52 u_int8_t timoff;
53 u_int8_t *tim;
54 u_int8_t *tstamp;
55 diff -urN madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_var.h madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_var.h
56 --- madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_var.h 2007-04-25 22:29:55.000000000 +0200
57 +++ madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_var.h 2007-05-13 18:17:56.029051328 +0200
58 @@ -61,6 +61,12 @@
59 #define IEEE80211_BINTVAL_MAX 500 /* max beacon interval (TU's) */
60 #define IEEE80211_BINTVAL_MIN 25 /* min beacon interval (TU's) */
61 #define IEEE80211_BINTVAL_DEFAULT 100 /* default beacon interval (TU's) */
62 +#define IEEE80211_BINTVAL_VALID(_bi) \
63 + ((IEEE80211_BINTVAL_MIN <= (_bi)) && \
64 + ((_bi) <= IEEE80211_BINTVAL_MAX))
65 +#define IEEE80211_BINTVAL_SANITISE(_bi) \
66 + (IEEE80211_BINTVAL_VALID(_bi) ? \
67 + (_bi) : IEEE80211_BINTVAL_DEFAULT)
68
69 #define IEEE80211_BGSCAN_INTVAL_MIN 15 /* min bg scan intvl (secs) */
70 #define IEEE80211_BGSCAN_INTVAL_DEFAULT (5*60) /* default bg scan intvl */
71 diff -urN madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_wireless.c madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_wireless.c
72 --- madwifi-ng-refcount-r2313-20070505.old/net80211/ieee80211_wireless.c 2007-05-04 02:10:06.000000000 +0200
73 +++ madwifi-ng-refcount-r2313-20070505.dev/net80211/ieee80211_wireless.c 2007-05-13 18:17:56.031051024 +0200
74 @@ -1271,12 +1271,16 @@
75 case IW_POWER_UNICAST_R:
76 case IW_POWER_ALL_R:
77 case IW_POWER_ON:
78 - ic->ic_flags |= IEEE80211_F_PMGTON;
79 -
80 + if (wrq->flags & IW_POWER_PERIOD) {
81 + if (IEEE80211_BINTVAL_VALID(wrq->value))
82 + ic->ic_lintval = IEEE80211_MS_TO_TU(wrq->value);
83 + else
84 + return -EINVAL;
85 + }
86 if (wrq->flags & IW_POWER_TIMEOUT)
87 ic->ic_holdover = IEEE80211_MS_TO_TU(wrq->value);
88 - if (wrq->flags & IW_POWER_PERIOD)
89 - ic->ic_lintval = IEEE80211_MS_TO_TU(wrq->value);
90 +
91 + ic->ic_flags |= IEEE80211_F_PMGTON;
92 break;
93 default:
94 return -EINVAL;
95 @@ -2364,8 +2368,7 @@
96 if (vap->iv_opmode != IEEE80211_M_HOSTAP &&
97 vap->iv_opmode != IEEE80211_M_IBSS)
98 return -EINVAL;
99 - if (IEEE80211_BINTVAL_MIN <= value &&
100 - value <= IEEE80211_BINTVAL_MAX) {
101 + if (IEEE80211_BINTVAL_VALID(value)) {
102 ic->ic_lintval = value; /* XXX multi-bss */
103 retv = ENETRESET; /* requires restart */
104 } else
This page took 0.044068 seconds and 5 git commands to generate.