Root/package/madwifi/patches/430-use_netdev_priv.patch

1--- a/ath/ath_wprobe.c
2+++ b/ath/ath_wprobe.c
3@@ -119,7 +119,7 @@ ath_wprobe_sync(struct wprobe_iface *dev
4     struct ath_vap *avp = container_of(dev, struct ath_vap, av_wpif);
5     struct ieee80211vap *vap = &avp->av_vap;
6     struct ieee80211com *ic = vap->iv_ic;
7- struct ath_softc *sc = ic->ic_dev->priv;
8+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
9     struct ath_hal *ah = sc->sc_ah;
10     u32 cc, busy, rx, tx;
11     s16 noise;
12@@ -192,7 +192,7 @@ ath_lookup_rateval(struct ieee80211_node
13 {
14     struct ieee80211vap *vap = ni->ni_vap;
15     struct ieee80211com *ic = vap->iv_ic;
16- struct ath_softc *sc = ic->ic_dev->priv;
17+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
18     const HAL_RATE_TABLE *rt = sc->sc_currates;
19 
20     if ((!rt) || (rate < 0) || (rate >= ARRAY_SIZE(sc->sc_hwmap)))
21--- a/ath/if_ath_ahb.c
22+++ b/ath/if_ath_ahb.c
23@@ -203,7 +203,7 @@ static int ahb_wmac_probe(struct platfor
24     if (!dev)
25         return -ENOMEM;
26 
27- sc = dev->priv;
28+ sc = netdev_priv(dev);
29     sc->aps_sc.sc_dev = dev;
30 
31     dev->irq = platform_get_irq(pdev, 0);
32@@ -300,7 +300,7 @@ init_ath_wmac(u_int16_t devid, u_int16_t
33         printk(KERN_ERR "%s: no memory for device state\n", dev_info);
34         goto bad2;
35     }
36- sc = dev->priv;
37+ sc = netdev_priv(dev);
38     sc->aps_sc.sc_dev = dev;
39 
40     /*
41--- a/ath/if_ath.c
42+++ b/ath/if_ath.c
43@@ -569,7 +569,7 @@ static inline int rate_factor(int mode)
44 int
45 ath_attach(u_int16_t devid, struct net_device *dev, HAL_BUS_TAG tag)
46 {
47- struct ath_softc *sc = dev->priv;
48+ struct ath_softc *sc = netdev_priv(dev);
49     struct ieee80211com *ic = &sc->sc_ic;
50     struct ieee80211vap *vap;
51     struct ath_hal *ah;
52@@ -1206,7 +1206,7 @@ bad:
53 int
54 ath_detach(struct net_device *dev)
55 {
56- struct ath_softc *sc = dev->priv;
57+ struct ath_softc *sc = netdev_priv(dev);
58     struct ath_hal *ah = sc->sc_ah;
59 
60     HAL_INT tmp;
61@@ -1266,7 +1266,7 @@ static struct ieee80211vap *
62 ath_vap_create(struct ieee80211com *ic, const char *name,
63     int opmode, int flags, struct net_device *mdev, struct ieee80211vap *master)
64 {
65- struct ath_softc *sc = ic->ic_dev->priv;
66+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
67     struct ath_hal *ah = sc->sc_ah;
68     struct net_device *dev;
69     struct ath_vap *avp;
70@@ -1344,7 +1344,7 @@ ath_vap_create(struct ieee80211com *ic,
71         return NULL;
72     }
73 
74- avp = dev->priv;
75+ avp = netdev_priv(dev);
76     ieee80211_vap_setup(ic, dev, name, opmode, flags, master);
77     /* override with driver methods */
78     vap = &avp->av_vap;
79@@ -1571,7 +1571,7 @@ static void
80 ath_vap_delete(struct ieee80211vap *vap)
81 {
82     struct net_device *dev = vap->iv_ic->ic_dev;
83- struct ath_softc *sc = dev->priv;
84+ struct ath_softc *sc = netdev_priv(dev);
85     struct ath_hal *ah = sc->sc_ah;
86     struct ath_vap *avp = ATH_VAP(vap);
87     int decrease = 1;
88@@ -1673,7 +1673,7 @@ void
89 ath_suspend(struct net_device *dev)
90 {
91 #ifdef AR_DEBUG
92- struct ath_softc *sc = dev->priv;
93+ struct ath_softc *sc = netdev_priv(dev);
94 #endif
95 
96     DPRINTF(sc, ATH_DEBUG_ANY, "flags=%x\n", dev->flags);
97@@ -1684,7 +1684,7 @@ void
98 ath_resume(struct net_device *dev)
99 {
100 #ifdef AR_DEBUG
101- struct ath_softc *sc = dev->priv;
102+ struct ath_softc *sc = netdev_priv(dev);
103 #endif
104 
105     DPRINTF(sc, ATH_DEBUG_ANY, "flags=%x\n", dev->flags);
106@@ -2248,7 +2248,7 @@ ath_intr(int irq, void *dev_id, struct p
107 #endif
108 {
109     struct net_device *dev = dev_id;
110- struct ath_softc *sc = dev->priv;
111+ struct ath_softc *sc = netdev_priv(dev);
112     struct ath_hal *ah = sc->sc_ah;
113     u_int64_t hw_tsf = 0;
114     HAL_INT status;
115@@ -2469,7 +2469,7 @@ static void
116 ath_fatal_tasklet(TQUEUE_ARG data)
117 {
118     struct net_device *dev = (struct net_device *)data;
119- struct ath_softc *sc = dev->priv;
120+ struct ath_softc *sc = netdev_priv(dev);
121 
122     EPRINTF(sc, "Hardware error; resetting.\n");
123     ath_reset(dev);
124@@ -2479,7 +2479,7 @@ static void
125 ath_rxorn_tasklet(TQUEUE_ARG data)
126 {
127     struct net_device *dev = (struct net_device *)data;
128- struct ath_softc *sc = dev->priv;
129+ struct ath_softc *sc = netdev_priv(dev);
130 
131     EPRINTF(sc, "Receive FIFO overrun; resetting.\n");
132     ath_reset(dev);
133@@ -2489,7 +2489,7 @@ static void
134 ath_bmiss_tasklet(TQUEUE_ARG data)
135 {
136     struct net_device *dev = (struct net_device *)data;
137- struct ath_softc *sc = dev->priv;
138+ struct ath_softc *sc = netdev_priv(dev);
139 
140     if (time_before(jiffies, sc->sc_ic.ic_bmiss_guard)) {
141         /* Beacon miss interrupt occured too short after last beacon
142@@ -2568,7 +2568,7 @@ done:
143 static int
144 ath_init(struct net_device *dev)
145 {
146- struct ath_softc *sc = dev->priv;
147+ struct ath_softc *sc = netdev_priv(dev);
148     struct ieee80211com *ic = &sc->sc_ic;
149     struct ath_hal *ah = sc->sc_ah;
150     HAL_STATUS status;
151@@ -2693,7 +2693,7 @@ done:
152 static int
153 ath_stop_locked(struct net_device *dev)
154 {
155- struct ath_softc *sc = dev->priv;
156+ struct ath_softc *sc = netdev_priv(dev);
157     struct ieee80211com *ic = &sc->sc_ic;
158     struct ath_hal *ah = sc->sc_ah;
159 
160@@ -2778,7 +2778,7 @@ static void ath_set_beacon_cal(struct at
161 static int
162 ath_stop(struct net_device *dev)
163 {
164- struct ath_softc *sc = dev->priv;
165+ struct ath_softc *sc = netdev_priv(dev);
166     int error;
167 
168     ATH_LOCK(sc);
169@@ -2998,7 +2998,7 @@ ath_fetch_idle_time(struct ath_softc *sc
170 static int
171 ath_reset(struct net_device *dev)
172 {
173- struct ath_softc *sc = dev->priv;
174+ struct ath_softc *sc = netdev_priv(dev);
175     struct ieee80211com *ic = &sc->sc_ic;
176     struct ath_hal *ah = sc->sc_ah;
177     struct ieee80211_channel *c;
178@@ -3164,7 +3164,7 @@ dot11_to_ratecode(struct ath_softc *sc,
179 static int
180 ath_tx_startraw(struct net_device *dev, struct ath_buf *bf, struct sk_buff *skb)
181 {
182- struct ath_softc *sc = dev->priv;
183+ struct ath_softc *sc = netdev_priv(dev);
184     struct ath_hal *ah = sc->sc_ah;
185     struct ieee80211_phy_params *ph = (struct ieee80211_phy_params *)
186         (SKB_CB(skb) + 1); /* NB: SKB_CB casts to CB struct*. */
187@@ -3477,7 +3477,7 @@ _take_txbuf(struct ath_softc *sc, int fo
188 static int
189 ath_hardstart(struct sk_buff *skb, struct net_device *dev)
190 {
191- struct ath_softc *sc = dev->priv;
192+ struct ath_softc *sc = netdev_priv(dev);
193     struct ieee80211_node *ni = NULL;
194     struct ath_buf *bf = NULL;
195     ath_bufhead bf_head;
196@@ -3792,7 +3792,7 @@ static int
197 ath_mgtstart(struct ieee80211com *ic, struct sk_buff *skb)
198 {
199     struct net_device *dev = ic->ic_dev;
200- struct ath_softc *sc = dev->priv;
201+ struct ath_softc *sc = netdev_priv(dev);
202     struct ath_buf *bf = NULL;
203     int error;
204 
205@@ -4151,7 +4151,7 @@ static ieee80211_keyix_t
206 ath_key_alloc(struct ieee80211vap *vap, const struct ieee80211_key *k)
207 {
208     struct net_device *dev = vap->iv_ic->ic_dev;
209- struct ath_softc *sc = dev->priv;
210+ struct ath_softc *sc = netdev_priv(dev);
211 
212     /*
213      * Group key allocation must be handled specially for
214@@ -4216,7 +4216,7 @@ ath_key_delete(struct ieee80211vap *vap,
215                 struct ieee80211_node *ninfo)
216 {
217     struct net_device *dev = vap->iv_ic->ic_dev;
218- struct ath_softc *sc = dev->priv;
219+ struct ath_softc *sc = netdev_priv(dev);
220     struct ath_hal *ah = sc->sc_ah;
221     struct ieee80211_node *ni = NULL;
222     const struct ieee80211_cipher *cip = k->wk_cipher;
223@@ -4292,14 +4292,14 @@ ath_key_set(struct ieee80211vap *vap, co
224     const u_int8_t mac[IEEE80211_ADDR_LEN])
225 {
226     struct net_device *dev = vap->iv_ic->ic_dev;
227- struct ath_softc *sc = dev->priv;
228+ struct ath_softc *sc = netdev_priv(dev);
229 
230     return ath_keyset(sc, k, mac, vap->iv_bss);
231 }
232 
233 static void ath_poll_disable(struct net_device *dev)
234 {
235- struct ath_softc *sc = dev->priv;
236+ struct ath_softc *sc = netdev_priv(dev);
237 
238     /*
239      * XXX Using in_softirq is not right since we might
240@@ -4317,7 +4317,7 @@ static void ath_poll_disable(struct net_
241 
242 static void ath_poll_enable(struct net_device *dev)
243 {
244- struct ath_softc *sc = dev->priv;
245+ struct ath_softc *sc = netdev_priv(dev);
246 
247     /* NB: see above */
248     if (!in_softirq()) {
249@@ -4343,7 +4343,7 @@ ath_key_update_begin(struct ieee80211vap
250 {
251     struct net_device *dev = vap->iv_ic->ic_dev;
252 #ifdef AR_DEBUG
253- struct ath_softc *sc = dev->priv;
254+ struct ath_softc *sc = netdev_priv(dev);
255 #endif
256 
257     DPRINTF(sc, ATH_DEBUG_KEYCACHE, "Begin\n");
258@@ -4361,7 +4361,7 @@ ath_key_update_end(struct ieee80211vap *
259 {
260     struct net_device *dev = vap->iv_ic->ic_dev;
261 #ifdef AR_DEBUG
262- struct ath_softc *sc = dev->priv;
263+ struct ath_softc *sc = netdev_priv(dev);
264 #endif
265 
266     DPRINTF(sc, ATH_DEBUG_KEYCACHE, "End\n");
267@@ -4454,7 +4454,7 @@ ath_merge_mcast(struct ath_softc *sc, u_
268 static void
269 ath_mode_init(struct net_device *dev)
270 {
271- struct ath_softc *sc = dev->priv;
272+ struct ath_softc *sc = netdev_priv(dev);
273     struct ath_hal *ah = sc->sc_ah;
274     u_int32_t rfilt, mfilt[2];
275 
276@@ -4540,7 +4540,7 @@ ath_set_timing(struct ath_softc *sc)
277 static void
278 ath_updateslot(struct net_device *dev)
279 {
280- struct ath_softc *sc = dev->priv;
281+ struct ath_softc *sc = netdev_priv(dev);
282     struct ieee80211com *ic = &sc->sc_ic;
283 
284     /*
285@@ -4570,7 +4570,7 @@ ath_beacon_dturbo_config(struct ieee8021
286     (vap->iv_bss && (vap->iv_bss->ni_ath_flags & (IEEE80211_ATHC_TURBOP)) == \
287         (IEEE80211_ATHC_TURBOP))
288     struct ieee80211com *ic = vap->iv_ic;
289- struct ath_softc *sc = ic->ic_dev->priv;
290+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
291 
292     if (ic->ic_opmode == IEEE80211_M_HOSTAP && IS_CAPABLE(vap)) {
293 
294@@ -4618,7 +4618,7 @@ static void
295 ath_beacon_dturbo_update(struct ieee80211vap *vap, int *needmark, u_int8_t dtim)
296 {
297     struct ieee80211com *ic = vap->iv_ic;
298- struct ath_softc *sc = ic->ic_dev->priv;
299+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
300     u_int32_t bss_traffic;
301 
302     if (sc->sc_ignore_ar) {
303@@ -4759,7 +4759,7 @@ static void
304 ath_turbo_switch_mode(unsigned long data)
305 {
306     struct net_device *dev = (struct net_device *)data;
307- struct ath_softc *sc = dev->priv;
308+ struct ath_softc *sc = netdev_priv(dev);
309     struct ieee80211com *ic = &sc->sc_ic;
310     unsigned int newflags;
311 
312@@ -5438,7 +5438,7 @@ static void
313 ath_bstuck_tasklet(TQUEUE_ARG data)
314 {
315     struct net_device *dev = (struct net_device *)data;
316- struct ath_softc *sc = dev->priv;
317+ struct ath_softc *sc = netdev_priv(dev);
318     /*
319      * XXX:if the bmisscount is cleared while the
320      * tasklet execution is pending, the following
321@@ -5891,7 +5891,7 @@ ath_node_alloc_debug(struct ieee80211vap
322 ath_node_alloc(struct ieee80211vap *vap)
323 #endif
324 {
325- struct ath_softc *sc = vap->iv_ic->ic_dev->priv;
326+ struct ath_softc *sc = netdev_priv(vap->iv_ic->ic_dev);
327     const size_t space = sizeof(struct ath_node) + sc->sc_rc->arc_space;
328     struct ath_node *an = kmalloc(space, GFP_ATOMIC);
329     if (an != NULL) {
330@@ -5927,7 +5927,7 @@ ath_node_cleanup(struct ieee80211_node *
331 #endif
332 {
333     struct ieee80211com *ic = ni->ni_ic;
334- struct ath_softc *sc = ni->ni_ic->ic_dev->priv;
335+ struct ath_softc *sc = netdev_priv(ni->ni_ic->ic_dev);
336     struct ath_node *an = ATH_NODE(ni);
337     struct ath_buf *bf;
338 
339@@ -5985,7 +5985,7 @@ ath_node_free_debug(struct ieee80211_nod
340 ath_node_free(struct ieee80211_node *ni)
341 #endif
342 {
343- struct ath_softc *sc = ni->ni_ic->ic_dev->priv;
344+ struct ath_softc *sc = netdev_priv(ni->ni_ic->ic_dev);
345 
346 #ifdef IEEE80211_DEBUG_REFCNT
347     sc->sc_node_free_debug(ni, func, line);
348@@ -6033,7 +6033,7 @@ ath_node_move_data(const struct ieee8021
349 #ifdef NOT_YET
350     struct ath_txq *txq = NULL;
351     struct ieee80211com *ic = ni->ni_ic;
352- struct ath_softc *sc = ic->ic_dev->priv;
353+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
354     struct ath_buf *bf, *prev, *bf_tmp, *bf_tmp1;
355     struct ath_hal *ah = sc->sc_ah;
356     struct sk_buff *skb = NULL;
357@@ -6553,7 +6553,7 @@ static void
358 ath_capture(struct net_device *dev, const struct ath_buf *bf,
359         struct sk_buff *skb, u_int64_t tsf, unsigned int tx)
360 {
361- struct ath_softc *sc = dev->priv;
362+ struct ath_softc *sc = netdev_priv(dev);
363     struct ieee80211com *ic = &sc->sc_ic;
364     struct sk_buff *tskb = NULL;
365   
366@@ -6613,7 +6613,7 @@ static void
367 ath_recv_mgmt(struct ieee80211vap * vap, struct ieee80211_node *ni_or_null,
368     struct sk_buff *skb, int subtype, int rssi, u_int64_t rtsf)
369 {
370- struct ath_softc *sc = vap->iv_ic->ic_dev->priv;
371+ struct ath_softc *sc = netdev_priv(vap->iv_ic->ic_dev);
372 #ifdef AR_DEBUG
373         struct ieee80211_frame *wh = (struct ieee80211_frame *)skb->data;
374 #endif
375@@ -6780,7 +6780,7 @@ ath_rx_poll(struct net_device *dev, int
376     struct net_device *dev = sc->sc_dev;
377     int rx_limit = budget;
378 #else
379- struct ath_softc *sc = dev->priv;
380+ struct ath_softc *sc = netdev_priv(dev);
381     int rx_limit = min(dev->quota, *budget);
382 #endif
383     struct ath_buf *bf;
384@@ -7305,7 +7305,7 @@ static void ath_grppoll_start(struct iee
385     struct sk_buff *skb = NULL;
386     struct ath_buf *bf, *head = NULL;
387     struct ieee80211com *ic = vap->iv_ic;
388- struct ath_softc *sc = ic->ic_dev->priv;
389+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
390     struct ath_hal *ah = sc->sc_ah;
391     u_int8_t rate;
392     unsigned int ctsrate = 0, ctsduration = 0;
393@@ -7523,7 +7523,7 @@ static void ath_grppoll_start(struct iee
394 static void ath_grppoll_stop(struct ieee80211vap *vap)
395 {
396     struct ieee80211com *ic = vap->iv_ic;
397- struct ath_softc *sc = ic->ic_dev->priv;
398+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
399     struct ath_hal *ah = sc->sc_ah;
400     struct ath_txq *txq = &sc->sc_grpplq;
401     struct ath_buf *bf;
402@@ -7735,7 +7735,7 @@ ath_txq_update(struct ath_softc *sc, str
403 static int
404 ath_wme_update(struct ieee80211com *ic)
405 {
406- struct ath_softc *sc = ic->ic_dev->priv;
407+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
408 
409     if (sc->sc_uapsdq)
410         ath_txq_update(sc, sc->sc_uapsdq, WME_AC_VO);
411@@ -7754,7 +7754,7 @@ ath_uapsd_flush(struct ieee80211_node *n
412 {
413     struct ath_node *an = ATH_NODE(ni);
414     struct ath_buf *bf;
415- struct ath_softc *sc = ni->ni_ic->ic_dev->priv;
416+ struct ath_softc *sc = netdev_priv(ni->ni_ic->ic_dev);
417     struct ath_txq *txq;
418 
419     ATH_NODE_UAPSD_LOCK_IRQ(an);
420@@ -7945,7 +7945,7 @@ ath_tx_start(struct net_device *dev, str
421         struct ath_buf *bf, struct sk_buff *skb, int nextfraglen)
422 {
423 #define MIN(a,b) ((a) < (b) ? (a) : (b))
424- struct ath_softc *sc = dev->priv;
425+ struct ath_softc *sc = netdev_priv(dev);
426     struct ieee80211com *ic = ni->ni_ic;
427     struct ieee80211vap *vap = ni->ni_vap;
428     struct ath_hal *ah = sc->sc_ah;
429@@ -8854,7 +8854,7 @@ static void
430 ath_tx_tasklet_q0(TQUEUE_ARG data)
431 {
432     struct net_device *dev = (struct net_device *)data;
433- struct ath_softc *sc = dev->priv;
434+ struct ath_softc *sc = netdev_priv(dev);
435     unsigned long flags;
436 
437 process_tx_again:
438@@ -8885,7 +8885,7 @@ static void
439 ath_tx_tasklet_q0123(TQUEUE_ARG data)
440 {
441     struct net_device *dev = (struct net_device *)data;
442- struct ath_softc *sc = dev->priv;
443+ struct ath_softc *sc = netdev_priv(dev);
444     unsigned long flags;
445 
446 process_tx_again:
447@@ -8930,7 +8930,7 @@ static void
448 ath_tx_tasklet(TQUEUE_ARG data)
449 {
450     struct net_device *dev = (struct net_device *)data;
451- struct ath_softc *sc = dev->priv;
452+ struct ath_softc *sc = netdev_priv(dev);
453     unsigned int i;
454     unsigned long flags;
455 
456@@ -8958,7 +8958,7 @@ process_tx_again:
457 static void
458 ath_tx_timeout(struct net_device *dev)
459 {
460- struct ath_softc *sc = dev->priv;
461+ struct ath_softc *sc = netdev_priv(dev);
462 
463     if (ath_chan_unavail(sc))
464         return;
465@@ -9366,7 +9366,7 @@ static void
466 ath_calibrate(unsigned long arg)
467 {
468     struct net_device *dev = (struct net_device *)arg;
469- struct ath_softc *sc = dev->priv;
470+ struct ath_softc *sc = netdev_priv(dev);
471     struct ath_hal *ah = sc->sc_ah;
472     struct ieee80211com *ic = &sc->sc_ic;
473     /* u_int32_t nchans; */
474@@ -9441,7 +9441,7 @@ static void
475 ath_scan_start(struct ieee80211com *ic)
476 {
477     struct net_device *dev = ic->ic_dev;
478- struct ath_softc *sc = dev->priv;
479+ struct ath_softc *sc = netdev_priv(dev);
480     struct ath_hal *ah = sc->sc_ah;
481     u_int32_t rfilt;
482 
483@@ -9461,7 +9461,7 @@ static void
484 ath_scan_end(struct ieee80211com *ic)
485 {
486     struct net_device *dev = ic->ic_dev;
487- struct ath_softc *sc = dev->priv;
488+ struct ath_softc *sc = netdev_priv(dev);
489     struct ath_hal *ah = sc->sc_ah;
490     u_int32_t rfilt;
491 
492@@ -9479,7 +9479,7 @@ static void
493 ath_set_channel(struct ieee80211com *ic)
494 {
495     struct net_device *dev = ic->ic_dev;
496- struct ath_softc *sc = dev->priv;
497+ struct ath_softc *sc = netdev_priv(dev);
498 
499     (void) ath_chan_set(sc, ic->ic_curchan);
500     ic->ic_channoise = ath_hal_get_channel_noise(sc->sc_ah, &(sc->sc_curchan));
501@@ -9496,7 +9496,7 @@ ath_set_channel(struct ieee80211com *ic)
502 static void
503 ath_set_coverageclass(struct ieee80211com *ic)
504 {
505- struct ath_softc *sc = ic->ic_dev->priv;
506+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
507 
508     sc->sc_coverage = ic->ic_coverageclass * 3;
509     ath_set_timing(sc);
510@@ -9507,7 +9507,7 @@ ath_set_coverageclass(struct ieee80211co
511 static u_int
512 ath_mhz2ieee(struct ieee80211com *ic, u_int freq, u_int flags)
513 {
514- struct ath_softc *sc = ic->ic_dev->priv;
515+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
516 
517     return (ath_hal_mhz2ieee(sc->sc_ah, freq, flags));
518 }
519@@ -9522,7 +9522,7 @@ ath_newstate(struct ieee80211vap *vap, e
520     struct ath_vap *avp = ATH_VAP(vap);
521     struct ieee80211com *ic = vap->iv_ic;
522     struct net_device *dev = ic->ic_dev;
523- struct ath_softc *sc = dev->priv;
524+ struct ath_softc *sc = netdev_priv(dev);
525     struct ath_hal *ah = sc->sc_ah;
526     struct ieee80211_node *ni, *wds_ni;
527     unsigned int i;
528@@ -9962,7 +9962,7 @@ ath_setup_comp(struct ieee80211_node *ni
529 {
530 #define IEEE80211_KEY_XR (IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV)
531     struct ieee80211vap *vap = ni->ni_vap;
532- struct ath_softc *sc = vap->iv_ic->ic_dev->priv;
533+ struct ath_softc *sc = netdev_priv(vap->iv_ic->ic_dev);
534     struct ath_node *an = ATH_NODE(ni);
535     ieee80211_keyix_t keyix;
536 
537@@ -10016,7 +10016,7 @@ static void
538 ath_setup_stationkey(struct ieee80211_node *ni)
539 {
540     struct ieee80211vap *vap = ni->ni_vap;
541- struct ath_softc *sc = vap->iv_ic->ic_dev->priv;
542+ struct ath_softc *sc = netdev_priv(vap->iv_ic->ic_dev);
543     ieee80211_keyix_t keyix;
544 
545     keyix = ath_key_alloc(vap, &ni->ni_ucastkey);
546@@ -10177,7 +10177,7 @@ ath_newassoc(struct ieee80211_node *ni,
547 {
548     struct ieee80211com *ic = ni->ni_ic;
549     struct ieee80211vap *vap = ni->ni_vap;
550- struct ath_softc *sc = ic->ic_dev->priv;
551+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
552 
553     sc->sc_rc->ops->newassoc(sc, ATH_NODE(ni), isnew);
554     ath_wprobe_node_join(ni->ni_vap, ni);
555@@ -10208,7 +10208,7 @@ ath_newassoc(struct ieee80211_node *ni,
556 static int
557 ath_getchannels(struct net_device *dev)
558 {
559- struct ath_softc *sc = dev->priv;
560+ struct ath_softc *sc = netdev_priv(dev);
561     struct ieee80211com *ic = &sc->sc_ic;
562     struct ath_hal *ah = sc->sc_ah;
563     HAL_CHANNEL *chans;
564@@ -10485,7 +10485,7 @@ ath_update_txpow(struct ath_softc *sc)
565 static int
566 ath_xr_rate_setup(struct net_device *dev)
567 {
568- struct ath_softc *sc = dev->priv;
569+ struct ath_softc *sc = netdev_priv(dev);
570     struct ath_hal *ah = sc->sc_ah;
571     struct ieee80211com *ic = &sc->sc_ic;
572     const HAL_RATE_TABLE *rt;
573@@ -10516,7 +10516,7 @@ ath_xr_rate_setup(struct net_device *dev
574 static int
575 ath_rate_setup(struct net_device *dev, u_int mode)
576 {
577- struct ath_softc *sc = dev->priv;
578+ struct ath_softc *sc = netdev_priv(dev);
579     struct ath_hal *ah = sc->sc_ah;
580     struct ieee80211com *ic = &sc->sc_ic;
581     const HAL_RATE_TABLE *rt;
582@@ -10763,7 +10763,7 @@ ath_printtxbuf(const struct ath_buf *bf,
583 {
584     const struct ath_tx_status *ts = &bf->bf_dsstatus.ds_txstat;
585     const struct ath_desc *ds = bf->bf_desc;
586- struct ath_softc *sc = bf->bf_node->ni_ic->ic_dev->priv;
587+ struct ath_softc *sc = netdev_priv(bf->bf_node->ni_ic->ic_dev);
588     u_int8_t status = done ? ts->ts_status : 0;
589 
590     DPRINTF(sc, ATH_DEBUG_ANY,
591@@ -10790,7 +10790,7 @@ ath_printtxbuf(const struct ath_buf *bf,
592 static struct net_device_stats *
593 ath_getstats(struct net_device *dev)
594 {
595- struct ath_softc *sc = dev->priv;
596+ struct ath_softc *sc = netdev_priv(dev);
597     struct net_device_stats *stats = &sc->sc_devstats;
598 
599     /* update according to private statistics */
600@@ -10813,7 +10813,7 @@ ath_getstats(struct net_device *dev)
601 static int
602 ath_set_mac_address(struct net_device *dev, void *addr)
603 {
604- struct ath_softc *sc = dev->priv;
605+ struct ath_softc *sc = netdev_priv(dev);
606     struct ieee80211com *ic = &sc->sc_ic;
607     struct ath_hal *ah = sc->sc_ah;
608     struct sockaddr *mac = addr;
609@@ -10842,7 +10842,7 @@ ath_set_mac_address(struct net_device *d
610 static int
611 ath_change_mtu(struct net_device *dev, int mtu)
612 {
613- struct ath_softc *sc = dev->priv;
614+ struct ath_softc *sc = netdev_priv(dev);
615     int error = 0;
616 
617     if (!(ATH_MIN_MTU < mtu && mtu <= ATH_MAX_MTU)) {
618@@ -10929,7 +10929,7 @@ bad:
619 static int
620 ath_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
621 {
622- struct ath_softc *sc = dev->priv;
623+ struct ath_softc *sc = netdev_priv(dev);
624     struct ieee80211com *ic = &sc->sc_ic;
625     int error;
626 
627@@ -11810,7 +11810,7 @@ static void
628 ath_announce(struct net_device *dev)
629 {
630 #define HAL_MODE_DUALBAND (HAL_MODE_11A|HAL_MODE_11B)
631- struct ath_softc *sc = dev->priv;
632+ struct ath_softc *sc = netdev_priv(dev);
633     struct ath_hal *ah = sc->sc_ah;
634     u_int modes, cc;
635     static const int MLEN = 1024;
636@@ -11997,7 +11997,7 @@ static void
637 txcont_configure_radio(struct ieee80211com *ic)
638 {
639     struct net_device *dev = ic->ic_dev;
640- struct ath_softc *sc = dev->priv;
641+ struct ath_softc *sc = netdev_priv(dev);
642     struct ath_hal *ah = sc->sc_ah;
643     struct ieee80211_wme_state *wme = &ic->ic_wme;
644     struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
645@@ -12271,7 +12271,7 @@ static void
646 txcont_queue_packet(struct ieee80211com *ic, struct ath_txq* txq)
647 {
648     struct net_device *dev = ic->ic_dev;
649- struct ath_softc *sc = dev->priv;
650+ struct ath_softc *sc = netdev_priv(dev);
651     struct ath_hal *ah = sc->sc_ah;
652     struct ath_buf *bf = NULL;
653     struct sk_buff *skb = NULL;
654@@ -12404,7 +12404,7 @@ static void
655 txcont_on(struct ieee80211com *ic)
656 {
657     struct net_device *dev = ic->ic_dev;
658- struct ath_softc *sc = dev->priv;
659+ struct ath_softc *sc = netdev_priv(dev);
660 
661     if (IFF_RUNNING != (ic->ic_dev->flags & IFF_RUNNING)) {
662         EPRINTF(sc, "Cannot enable txcont when"
663@@ -12425,7 +12425,7 @@ static void
664 txcont_off(struct ieee80211com *ic)
665 {
666     struct net_device *dev = ic->ic_dev;
667- struct ath_softc *sc = dev->priv;
668+ struct ath_softc *sc = netdev_priv(dev);
669 
670     if (TAILQ_FIRST(&ic->ic_vaps)->iv_opmode != IEEE80211_M_WDS)
671         sc->sc_beacons = 1;
672@@ -12439,7 +12439,7 @@ static int
673 ath_get_dfs_testmode(struct ieee80211com *ic)
674 {
675     struct net_device *dev = ic->ic_dev;
676- struct ath_softc *sc = dev->priv;
677+ struct ath_softc *sc = netdev_priv(dev);
678     return sc->sc_dfs_testmode;
679 }
680 
681@@ -12466,7 +12466,7 @@ static void
682 ath_set_dfs_testmode(struct ieee80211com *ic, int value)
683 {
684     struct net_device *dev = ic->ic_dev;
685- struct ath_softc *sc = dev->priv;
686+ struct ath_softc *sc = netdev_priv(dev);
687     sc->sc_dfs_testmode = !!value;
688 }
689 
690@@ -12476,7 +12476,7 @@ static int
691 ath_get_txcont(struct ieee80211com *ic)
692 {
693     struct net_device *dev = ic->ic_dev;
694- struct ath_softc *sc = dev->priv;
695+ struct ath_softc *sc = netdev_priv(dev);
696     return sc->sc_txcont;
697 }
698 
699@@ -12494,7 +12494,7 @@ static void
700 ath_set_txcont_power(struct ieee80211com *ic, unsigned int txpower)
701 {
702     struct net_device *dev = ic->ic_dev;
703- struct ath_softc *sc = dev->priv;
704+ struct ath_softc *sc = netdev_priv(dev);
705     int new_txcont_power = txpower > IEEE80211_TXPOWER_MAX ?
706         IEEE80211_TXPOWER_MAX : txpower;
707     if (sc->sc_txcont_power != new_txcont_power) {
708@@ -12512,7 +12512,7 @@ static int
709 ath_get_txcont_power(struct ieee80211com *ic)
710 {
711     struct net_device *dev = ic->ic_dev;
712- struct ath_softc *sc = dev->priv;
713+ struct ath_softc *sc = netdev_priv(dev);
714     /* VERY conservative default */
715     return sc->sc_txcont_power ? sc->sc_txcont_power : 0;
716 }
717@@ -12522,7 +12522,7 @@ ath_get_txcont_power(struct ieee80211com
718 ath_set_txcont_rate(struct ieee80211com *ic, unsigned int new_rate)
719 {
720     struct net_device *dev = ic->ic_dev;
721- struct ath_softc *sc = dev->priv;
722+ struct ath_softc *sc = netdev_priv(dev);
723     if (sc->sc_txcont_rate != new_rate) {
724         /* NOTE: This value is sanity checked and dropped down to
725          * closest rate in txcont_on. */
726@@ -12539,7 +12539,7 @@ ath_set_txcont_rate(struct ieee80211com
727 ath_get_txcont_rate(struct ieee80211com *ic)
728 {
729     struct net_device *dev = ic->ic_dev;
730- struct ath_softc *sc = dev->priv;
731+ struct ath_softc *sc = netdev_priv(dev);
732     return sc->sc_txcont_rate ? sc->sc_txcont_rate : 0;
733 }
734 
735@@ -12549,7 +12549,7 @@ static void
736 ath_set_dfs_cac_time(struct ieee80211com *ic, unsigned int time_s)
737 {
738     struct net_device *dev = ic->ic_dev;
739- struct ath_softc *sc = dev->priv;
740+ struct ath_softc *sc = netdev_priv(dev);
741     sc->sc_dfs_cac_period = time_s;
742 }
743 
744@@ -12559,7 +12559,7 @@ static unsigned int
745 ath_get_dfs_cac_time(struct ieee80211com *ic)
746 {
747     struct net_device *dev = ic->ic_dev;
748- struct ath_softc *sc = dev->priv;
749+ struct ath_softc *sc = netdev_priv(dev);
750     return sc->sc_dfs_cac_period;
751 }
752 
753@@ -12579,7 +12579,7 @@ static void
754 ath_set_dfs_excl_period(struct ieee80211com *ic, unsigned int time_s)
755 {
756     struct net_device *dev = ic->ic_dev;
757- struct ath_softc *sc = dev->priv;
758+ struct ath_softc *sc = netdev_priv(dev);
759     sc->sc_dfs_excl_period = time_s;
760 }
761 
762@@ -12588,7 +12588,7 @@ static unsigned int
763 ath_get_dfs_excl_period(struct ieee80211com *ic)
764 {
765     struct net_device *dev = ic->ic_dev;
766- struct ath_softc *sc = dev->priv;
767+ struct ath_softc *sc = netdev_priv(dev);
768     return sc->sc_dfs_excl_period;
769 }
770 
771@@ -12600,7 +12600,7 @@ static unsigned int
772 ath_test_radar(struct ieee80211com *ic)
773 {
774     struct net_device *dev = ic->ic_dev;
775- struct ath_softc *sc = dev->priv;
776+ struct ath_softc *sc = netdev_priv(dev);
777     if ((ic->ic_flags & IEEE80211_F_DOTH) && (sc->sc_curchan.privFlags & CHANNEL_DFS))
778         ath_radar_detected(sc, "ath_test_radar from user space");
779     else
780@@ -12616,7 +12616,7 @@ static unsigned int
781 ath_dump_hal_map(struct ieee80211com *ic)
782 {
783     struct net_device *dev = ic->ic_dev;
784- struct ath_softc *sc = dev->priv;
785+ struct ath_softc *sc = netdev_priv(dev);
786     ath_hal_dump_map(sc->sc_ah);
787     return 0;
788 }
789@@ -12724,7 +12724,7 @@ ath_rcv_dev_event(struct notifier_block
790     void *ptr)
791 {
792     struct net_device *dev = (struct net_device *)ptr;
793- struct ath_softc *sc = (struct ath_softc *)dev->priv;
794+ struct ath_softc *sc = (struct ath_softc *)netdev_priv(dev);
795 
796     if (!dev || !sc || dev->open != &ath_init)
797         return 0;
798@@ -13459,7 +13459,7 @@ static unsigned int
799 ath_read_register(struct ieee80211com *ic, unsigned int address,
800         unsigned int* value)
801 {
802- struct ath_softc *sc = ic->ic_dev->priv;
803+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
804     if (address >= MAX_REGISTER_ADDRESS) {
805         IPRINTF(sc, "Illegal Atheros register access "
806                 "attempted: 0x%04x >= 0x%04x\n",
807@@ -13489,7 +13489,7 @@ static unsigned int
808 ath_write_register(struct ieee80211com *ic, unsigned int address,
809         unsigned int value)
810 {
811- struct ath_softc *sc = ic->ic_dev->priv;
812+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
813     if (address >= MAX_REGISTER_ADDRESS) {
814         IPRINTF(sc, "Illegal Atheros register access "
815                 "attempted: 0x%04x >= 0x%04x\n",
816@@ -13517,7 +13517,7 @@ static void
817 ath_registers_dump(struct ieee80211com *ic)
818 {
819     struct net_device *dev = ic->ic_dev;
820- struct ath_softc *sc = dev->priv;
821+ struct ath_softc *sc = netdev_priv(dev);
822     ath_ar5212_registers_dump(sc);
823 }
824 #endif /* #ifdef ATH_REVERSE_ENGINEERING */
825@@ -13529,7 +13529,7 @@ static void
826 ath_registers_mark(struct ieee80211com *ic)
827 {
828     struct net_device *dev = ic->ic_dev;
829- struct ath_softc *sc = dev->priv;
830+ struct ath_softc *sc = netdev_priv(dev);
831     ath_ar5212_registers_mark(sc);
832 }
833 #endif /* #ifdef ATH_REVERSE_ENGINEERING */
834@@ -13541,7 +13541,7 @@ static void
835 ath_registers_dump_delta(struct ieee80211com *ic)
836 {
837     struct net_device *dev = ic->ic_dev;
838- struct ath_softc *sc = dev->priv;
839+ struct ath_softc *sc = netdev_priv(dev);
840     ath_ar5212_registers_dump_delta(sc);
841 }
842 #endif /* #ifdef ATH_REVERSE_ENGINEERING */
843--- a/ath/if_ath_pci.c
844+++ b/ath/if_ath_pci.c
845@@ -226,7 +226,7 @@ ath_pci_probe(struct pci_dev *pdev, cons
846         printk(KERN_ERR "%s: no memory for device state\n", dev_info);
847         goto bad2;
848     }
849- sc = dev->priv;
850+ sc = netdev_priv(dev);
851     sc->aps_sc.sc_dev = dev;
852     sc->aps_sc.sc_iobase = mem;
853 
854@@ -309,7 +309,7 @@ static void
855 ath_pci_remove(struct pci_dev *pdev)
856 {
857     struct net_device *dev = pci_get_drvdata(pdev);
858- struct ath_pci_softc *sc = dev->priv;
859+ struct ath_pci_softc *sc = netdev_priv(dev);
860 
861     ath_detach(dev);
862     if (dev->irq)
863@@ -327,7 +327,7 @@ ath_pci_suspend(struct pci_dev *pdev, pm
864     struct net_device *dev = pci_get_drvdata(pdev);
865 
866     ath_suspend(dev);
867- PCI_SAVE_STATE(pdev, ((struct ath_pci_softc *)dev->priv)->aps_pmstate);
868+ PCI_SAVE_STATE(pdev, ((struct ath_pci_softc *)netdev_priv(dev))->aps_pmstate);
869     pci_disable_device(pdev);
870     return pci_set_power_state(pdev, PCI_D3hot);
871 }
872@@ -344,7 +344,7 @@ ath_pci_resume(struct pci_dev *pdev)
873         return err;
874 
875     /* XXX - Should this return nonzero on fail? */
876- PCI_RESTORE_STATE(pdev, ((struct ath_pci_softc *)dev->priv)->aps_pmstate);
877+ PCI_RESTORE_STATE(pdev, ((struct ath_pci_softc *)netdev_priv(dev))->aps_pmstate);
878 
879     err = pci_enable_device(pdev);
880     if (err)
881--- a/ath/if_ath_radar.c
882+++ b/ath/if_ath_radar.c
883@@ -1533,7 +1533,7 @@ static void ath_rp_clear(struct ath_soft
884 static void ath_rp_tasklet(TQUEUE_ARG data)
885 {
886     struct net_device *dev = (struct net_device *) data;
887- struct ath_softc *sc = dev->priv;
888+ struct ath_softc *sc = netdev_priv(dev);
889 
890     if (sc->sc_rp_analyse != NULL)
891         sc->sc_rp_analyse(sc);
892--- a/ath_rate/amrr/amrr.c
893+++ b/ath_rate/amrr/amrr.c
894@@ -298,7 +298,7 @@ ath_rate_ctl_start(struct ath_softc *sc,
895 static void
896 ath_rate_cb(void *arg, struct ieee80211_node *ni)
897 {
898- ath_rate_update(ni->ni_ic->ic_dev->priv, ni, (long) arg);
899+ ath_rate_update(netdev_priv(ni->ni_ic->ic_dev), ni, (long) arg);
900 }
901 
902 /*
903@@ -308,7 +308,7 @@ static void
904 ath_rate_newstate(struct ieee80211vap *vap, enum ieee80211_state state)
905 {
906     struct ieee80211com *ic = vap->iv_ic;
907- struct ath_softc *sc = ic->ic_dev->priv;
908+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
909     struct amrr_softc *asc = (struct amrr_softc *) sc->sc_rc;
910     struct ieee80211_node *ni;
911 
912@@ -420,7 +420,7 @@ static void
913 ath_ratectl(unsigned long data)
914 {
915     struct net_device *dev = (struct net_device *)data;
916- struct ath_softc *sc = dev->priv;
917+ struct ath_softc *sc = netdev_priv(dev);
918     struct amrr_softc *asc = (struct amrr_softc *)sc->sc_rc;
919     struct ieee80211com *ic = &sc->sc_ic;
920     int interval;
921--- a/ath_rate/minstrel/minstrel.c
922+++ b/ath_rate/minstrel/minstrel.c
923@@ -622,7 +622,7 @@ ath_rate_ctl_reset(struct ath_softc *sc,
924 static void
925 ath_rate_cb(void *arg, struct ieee80211_node *ni)
926 {
927- ath_rate_ctl_reset(ni->ni_ic->ic_dev->priv, ni);
928+ ath_rate_ctl_reset(netdev_priv(ni->ni_ic->ic_dev), ni);
929 }
930 
931 /* Reset the rate control state for each 802.11 state transition. */
932@@ -636,7 +636,7 @@ ath_rate_newstate(struct ieee80211vap *v
933                 /* Sync rates for associated stations and neighbors. */
934                 ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, NULL);
935             }
936- ath_rate_newassoc(ic->ic_dev->priv, ATH_NODE(vap->iv_bss), 1);
937+ ath_rate_newassoc(netdev_priv(ic->ic_dev), ATH_NODE(vap->iv_bss), 1);
938         }
939 }
940 
941@@ -822,7 +822,7 @@ ath_proc_read_nodes(struct ieee80211vap
942         unsigned int x = 0;
943         unsigned int this_tp, this_prob, this_eprob;
944 #ifdef AR_DEBUG
945- struct ath_softc *sc = vap->iv_ic->ic_dev->priv;;
946+ struct ath_softc *sc = netdev_priv(vap->iv_ic->ic_dev);
947 #endif
948 
949         IEEE80211_NODE_TABLE_LOCK_IRQ(nt);
950--- a/ath_rate/onoe/onoe.c
951+++ b/ath_rate/onoe/onoe.c
952@@ -281,7 +281,7 @@ ath_rate_ctl_start(struct ath_softc *sc,
953 static void
954 ath_rate_cb(void *arg, struct ieee80211_node *ni)
955 {
956- ath_rate_update(ni->ni_ic->ic_dev->priv, ni, (long) arg);
957+ ath_rate_update(netdev_priv(ni->ni_ic->ic_dev), ni, (long) arg);
958 }
959 
960 /*
961@@ -291,7 +291,7 @@ static void
962 ath_rate_newstate(struct ieee80211vap *vap, enum ieee80211_state state)
963 {
964     struct ieee80211com *ic = vap->iv_ic;
965- struct ath_softc *sc = ic->ic_dev->priv;
966+ struct ath_softc *sc = netdev_priv(ic->ic_dev);
967     struct ieee80211_node *ni;
968 
969     if (state == IEEE80211_S_INIT)
970--- a/ath_rate/sample/sample.c
971+++ b/ath_rate/sample/sample.c
972@@ -803,7 +803,7 @@ ath_rate_ctl_reset(struct ath_softc *sc,
973 static void
974 ath_rate_cb(void *arg, struct ieee80211_node *ni)
975 {
976- ath_rate_ctl_reset(ni->ni_ic->ic_dev->priv, ni);
977+ ath_rate_ctl_reset(netdev_priv(ni->ni_ic->ic_dev), ni);
978 }
979 
980 /*
981@@ -821,7 +821,7 @@ ath_rate_newstate(struct ieee80211vap *v
982              */
983             ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, NULL);
984         }
985- ath_rate_newassoc(ic->ic_dev->priv, ATH_NODE(vap->iv_bss), 1);
986+ ath_rate_newassoc(netdev_priv(ic->ic_dev), ATH_NODE(vap->iv_bss), 1);
987     }
988 }
989 
990--- a/include/compat.h
991+++ b/include/compat.h
992@@ -162,6 +162,10 @@ static inline int timeval_compare(struct
993 #define IRQF_SHARED SA_SHIRQ
994 #endif
995 
996+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27)
997+#define netdev_priv(_netdev) ((_netdev)->priv)
998+#endif
999+
1000 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
1001 #define skb_end_pointer(_skb) ((_skb)->end)
1002 #define skb_tail_pointer(_skb) ((_skb)->tail)
1003--- a/net80211/ieee80211.c
1004+++ b/net80211/ieee80211.c
1005@@ -458,7 +458,7 @@ ieee80211_vap_setup(struct ieee80211com
1006 #define IEEE80211_C_OPMODE \
1007     (IEEE80211_C_IBSS | IEEE80211_C_HOSTAP | IEEE80211_C_AHDEMO | \
1008      IEEE80211_C_MONITOR)
1009- struct ieee80211vap *vap = dev->priv;
1010+ struct ieee80211vap *vap = netdev_priv(dev);
1011     struct net_device *parent = ic->ic_dev;
1012     int err;
1013 
1014@@ -1355,7 +1355,7 @@ media_status(enum ieee80211_opmode opmod
1015 static void
1016 ieee80211com_media_status(struct net_device *dev, struct ifmediareq *imr)
1017 {
1018- struct ieee80211com *ic = dev->priv; /* XXX */
1019+ struct ieee80211com *ic = netdev_priv(dev); /* XXX */
1020 
1021     imr->ifm_status = IFM_AVALID;
1022     if (!TAILQ_EMPTY(&ic->ic_vaps))
1023@@ -1407,7 +1407,7 @@ media2mode(const struct ifmedia_entry *i
1024 static int
1025 ieee80211com_media_change(struct net_device *dev)
1026 {
1027- struct ieee80211com *ic = dev->priv; /* XXX */
1028+ struct ieee80211com *ic = netdev_priv(dev); /* XXX */
1029     struct ieee80211vap *vap;
1030     struct ifmedia_entry *ime = ic->ic_media.ifm_cur;
1031     enum ieee80211_phymode newphymode;
1032@@ -1511,7 +1511,7 @@ checkrate(struct ieee80211com *ic, enum
1033 int
1034 ieee80211_media_change(struct net_device *dev)
1035 {
1036- struct ieee80211vap *vap = dev->priv;
1037+ struct ieee80211vap *vap = netdev_priv(dev);
1038     struct ieee80211com *ic = vap->iv_ic;
1039     struct ifmedia_entry *ime = vap->iv_media.ifm_cur;
1040     enum ieee80211_phymode newmode;
1041@@ -1545,7 +1545,7 @@ EXPORT_SYMBOL(ieee80211_media_change);
1042 void
1043 ieee80211_media_status(struct net_device *dev, struct ifmediareq *imr)
1044 {
1045- struct ieee80211vap *vap = dev->priv;
1046+ struct ieee80211vap *vap = netdev_priv(dev);
1047     struct ieee80211com *ic = vap->iv_ic;
1048     enum ieee80211_phymode mode;
1049     struct ieee80211_rateset *rs;
1050@@ -1751,7 +1751,7 @@ EXPORT_SYMBOL(ieee80211_media2rate);
1051 static struct net_device_stats *
1052 ieee80211_getstats(struct net_device *dev)
1053 {
1054- struct ieee80211vap *vap = dev->priv;
1055+ struct ieee80211vap *vap = netdev_priv(dev);
1056     struct net_device_stats *stats = &vap->iv_devstats;
1057 
1058     /* XXX: Total guess as to what to count where */
1059@@ -1790,7 +1790,7 @@ ieee80211_change_mtu(struct net_device *
1060 static void
1061 ieee80211_set_multicast_list(struct net_device *dev)
1062 {
1063- struct ieee80211vap *vap = dev->priv;
1064+ struct ieee80211vap *vap = netdev_priv(dev);
1065     struct ieee80211com *ic = vap->iv_ic;
1066     struct net_device *parent = ic->ic_dev;
1067 
1068--- a/net80211/ieee80211_linux.c
1069+++ b/net80211/ieee80211_linux.c
1070@@ -183,7 +183,7 @@ EXPORT_SYMBOL(ieee80211_getmgtframe);
1071 static void
1072 ieee80211_vlan_register(struct net_device *dev, struct vlan_group *grp)
1073 {
1074- struct ieee80211vap *vap = dev->priv;
1075+ struct ieee80211vap *vap = netdev_priv(dev);
1076 
1077     vap->iv_vlgrp = grp;
1078 }
1079@@ -194,7 +194,7 @@ ieee80211_vlan_register(struct net_devic
1080 static void
1081 ieee80211_vlan_add_vid(struct net_device *dev, unsigned short vid)
1082 {
1083- struct ieee80211vap *vap = dev->priv;
1084+ struct ieee80211vap *vap = netdev_priv(dev);
1085 
1086     if (vap->iv_vlgrp != NULL)
1087         vap->iv_bss->ni_vlan = vid;
1088@@ -206,7 +206,7 @@ ieee80211_vlan_add_vid(struct net_device
1089 static void
1090 ieee80211_vlan_kill_vid(struct net_device *dev, unsigned short vid)
1091 {
1092- struct ieee80211vap *vap = dev->priv;
1093+ struct ieee80211vap *vap = netdev_priv(dev);
1094 
1095     if (vap->iv_vlgrp != NULL)
1096         vlan_group_set_device(vap->iv_vlgrp, vid, NULL);
1097@@ -989,8 +989,8 @@ ieee80211_rcv_dev_event(struct notifier_
1098 
1099     switch (event) {
1100     case NETDEV_CHANGENAME:
1101- ieee80211_virtfs_vdetach(dev->priv);
1102- ieee80211_virtfs_latevattach(dev->priv);
1103+ ieee80211_virtfs_vdetach(netdev_priv(dev));
1104+ ieee80211_virtfs_latevattach(netdev_priv(dev));
1105         return NOTIFY_DONE;
1106     default:
1107         break;
1108--- a/net80211/ieee80211_output.c
1109+++ b/net80211/ieee80211_output.c
1110@@ -201,7 +201,7 @@ ieee80211_classify(struct ieee80211_node
1111 int
1112 ieee80211_hardstart(struct sk_buff *skb, struct net_device *dev)
1113 {
1114- struct ieee80211vap *vap = dev->priv;
1115+ struct ieee80211vap *vap = netdev_priv(dev);
1116     struct ieee80211com *ic = vap->iv_ic;
1117     struct net_device *parent = ic->ic_dev;
1118     struct ieee80211_node *ni = NULL;
1119@@ -317,7 +317,7 @@ bad:
1120  */
1121 
1122 void ieee80211_parent_queue_xmit(struct sk_buff *skb) {
1123- struct ieee80211vap *vap = skb->dev->priv;
1124+ struct ieee80211vap *vap = netdev_priv(skb->dev);
1125 
1126     vap->iv_devstats.tx_packets++;
1127     vap->iv_devstats.tx_bytes += skb->len;
1128--- a/net80211/ieee80211_proto.c
1129+++ b/net80211/ieee80211_proto.c
1130@@ -970,7 +970,7 @@ ieee80211_init(struct net_device *dev, i
1131 {
1132 #define IS_RUNNING(_dev) \
1133     ((_dev->flags & (IFF_RUNNING|IFF_UP)) == (IFF_RUNNING|IFF_UP))
1134- struct ieee80211vap *vap = dev->priv;
1135+ struct ieee80211vap *vap = netdev_priv(dev);
1136     struct ieee80211com *ic = vap->iv_ic;
1137     struct net_device *parent = ic->ic_dev;
1138 
1139@@ -1087,7 +1087,7 @@ ieee80211_init(struct net_device *dev, i
1140 int
1141 ieee80211_open(struct net_device *dev)
1142 {
1143- struct ieee80211vap *vap = dev->priv;
1144+ struct ieee80211vap *vap = netdev_priv(dev);
1145 
1146     return ieee80211_init(dev, 0);
1147 }
1148@@ -1131,7 +1131,7 @@ EXPORT_SYMBOL(ieee80211_start_running);
1149 int
1150 ieee80211_stop(struct net_device *dev)
1151 {
1152- struct ieee80211vap *vap = dev->priv;
1153+ struct ieee80211vap *vap = netdev_priv(dev);
1154     struct ieee80211com *ic = vap->iv_ic;
1155     struct net_device *parent = ic->ic_dev;
1156     struct ieee80211_node *tni, *ni;
1157--- a/net80211/ieee80211_wireless.c
1158+++ b/net80211/ieee80211_wireless.c
1159@@ -87,7 +87,7 @@ pre_announced_chanswitch(struct net_devi
1160 static int
1161 preempt_scan(struct net_device *dev, int max_grace, int max_wait)
1162 {
1163- struct ieee80211vap *vap = dev->priv;
1164+ struct ieee80211vap *vap = netdev_priv(dev);
1165     struct ieee80211com *ic = vap->iv_ic;
1166     int total_delay = 0;
1167     int canceled = 0, ready = 0;
1168@@ -122,7 +122,7 @@ preempt_scan(struct net_device *dev, int
1169 static struct iw_statistics *
1170 ieee80211_iw_getstats(struct net_device *dev)
1171 {
1172- struct ieee80211vap *vap = dev->priv;
1173+ struct ieee80211vap *vap = netdev_priv(dev);
1174     struct iw_statistics *is = &vap->iv_iwstats;
1175     struct ieee80211com *ic = vap->iv_ic;
1176 
1177@@ -146,7 +146,7 @@ static int
1178 ieee80211_ioctl_giwname(struct net_device *dev, struct iw_request_info *info,
1179     char *name, char *extra)
1180 {
1181- struct ieee80211vap *vap = dev->priv;
1182+ struct ieee80211vap *vap = netdev_priv(dev);
1183     struct ieee80211_channel *c = vap->iv_ic->ic_curchan;
1184 
1185     if (IEEE80211_IS_CHAN_108G(c))
1186@@ -198,7 +198,7 @@ static int
1187 ieee80211_ioctl_siwencode(struct net_device *dev,
1188     struct iw_request_info *info, struct iw_point *erq, char *keybuf)
1189 {
1190- struct ieee80211vap *vap = dev->priv;
1191+ struct ieee80211vap *vap = netdev_priv(dev);
1192     int error;
1193     int wepchange = 0;
1194     ieee80211_keyix_t kix;
1195@@ -306,7 +306,7 @@ static int
1196 ieee80211_ioctl_giwencode(struct net_device *dev, struct iw_request_info *info,
1197     struct iw_point *erq, char *key)
1198 {
1199- struct ieee80211vap *vap = dev->priv;
1200+ struct ieee80211vap *vap = netdev_priv(dev);
1201     struct ieee80211_key *k;
1202     int error;
1203     ieee80211_keyix_t kix;
1204@@ -351,7 +351,7 @@ ieee80211_ioctl_siwrate(struct net_devic
1205         IFM_IEEE80211_11A | IFM_IEEE80211_TURBO,
1206         IFM_IEEE80211_11G | IFM_IEEE80211_TURBO,
1207     };
1208- struct ieee80211vap *vap = dev->priv;
1209+ struct ieee80211vap *vap = netdev_priv(dev);
1210     struct ieee80211com *ic = vap->iv_ic;
1211     struct ifreq ifr;
1212     int rate, retv;
1213@@ -386,7 +386,7 @@ static int
1214 ieee80211_ioctl_giwrate(struct net_device *dev, struct iw_request_info *info,
1215     struct iw_param *rrq, char *extra)
1216 {
1217- struct ieee80211vap *vap = dev->priv;
1218+ struct ieee80211vap *vap = netdev_priv(dev);
1219     struct ifmediareq imr;
1220     int rate;
1221 
1222@@ -424,7 +424,7 @@ static int
1223 ieee80211_ioctl_siwrts(struct net_device *dev, struct iw_request_info *info,
1224     struct iw_param *rts, char *extra)
1225 {
1226- struct ieee80211vap *vap = dev->priv;
1227+ struct ieee80211vap *vap = netdev_priv(dev);
1228     struct ieee80211com *ic = vap->iv_ic;
1229     u16 val;
1230 
1231@@ -447,7 +447,7 @@ static int
1232 ieee80211_ioctl_giwrts(struct net_device *dev, struct iw_request_info *info,
1233     struct iw_param *rts, char *extra)
1234 {
1235- struct ieee80211vap *vap = dev->priv;
1236+ struct ieee80211vap *vap = netdev_priv(dev);
1237 
1238     rts->value = vap->iv_rtsthreshold;
1239     rts->disabled = (rts->value == IEEE80211_RTS_MAX);
1240@@ -460,7 +460,7 @@ static int
1241 ieee80211_ioctl_siwfrag(struct net_device *dev, struct iw_request_info *info,
1242     struct iw_param *rts, char *extra)
1243 {
1244- struct ieee80211vap *vap = dev->priv;
1245+ struct ieee80211vap *vap = netdev_priv(dev);
1246     struct ieee80211com *ic = vap->iv_ic;
1247     u16 val;
1248 
1249@@ -483,7 +483,7 @@ static int
1250 ieee80211_ioctl_giwfrag(struct net_device *dev, struct iw_request_info *info,
1251     struct iw_param *rts, char *extra)
1252 {
1253- struct ieee80211vap *vap = dev->priv;
1254+ struct ieee80211vap *vap = netdev_priv(dev);
1255 
1256     rts->value = vap->iv_fragthreshold;
1257     rts->disabled = (rts->value == 2346);
1258@@ -496,7 +496,7 @@ static int
1259 ieee80211_ioctl_siwap(struct net_device *dev, struct iw_request_info *info,
1260     struct sockaddr *ap_addr, char *extra)
1261 {
1262- struct ieee80211vap *vap = dev->priv;
1263+ struct ieee80211vap *vap = netdev_priv(dev);
1264 
1265     /* NB: should not be set when in AP mode */
1266     if (vap->iv_opmode == IEEE80211_M_HOSTAP)
1267@@ -532,7 +532,7 @@ static int
1268 ieee80211_ioctl_giwap(struct net_device *dev, struct iw_request_info *info,
1269     struct sockaddr *ap_addr, char *extra)
1270 {
1271- struct ieee80211vap *vap = dev->priv;
1272+ struct ieee80211vap *vap = netdev_priv(dev);
1273 
1274     if (vap->iv_flags & IEEE80211_F_DESBSSID)
1275         IEEE80211_ADDR_COPY(&ap_addr->sa_data, vap->iv_des_bssid);
1276@@ -553,7 +553,7 @@ static int
1277 ieee80211_ioctl_siwnickn(struct net_device *dev, struct iw_request_info *info,
1278     struct iw_point *data, char *nickname)
1279 {
1280- struct ieee80211vap *vap = dev->priv;
1281+ struct ieee80211vap *vap = netdev_priv(dev);
1282 
1283     if (data->length > IEEE80211_NWID_LEN)
1284         return -E2BIG;
1285@@ -569,7 +569,7 @@ static int
1286 ieee80211_ioctl_giwnickn(struct net_device *dev, struct iw_request_info *info,
1287     struct iw_point *data, char *nickname)
1288 {
1289- struct ieee80211vap *vap = dev->priv;
1290+ struct ieee80211vap *vap = netdev_priv(dev);
1291 
1292     if (data->length > vap->iv_nicknamelen + 1)
1293         data->length = vap->iv_nicknamelen + 1;
1294@@ -678,7 +678,7 @@ static int
1295 ieee80211_ioctl_siwfreq(struct net_device *dev, struct iw_request_info *info,
1296     struct iw_freq *freq, char *extra)
1297 {
1298- struct ieee80211vap *vap = dev->priv;
1299+ struct ieee80211vap *vap = netdev_priv(dev);
1300     struct ieee80211com *ic = vap->iv_ic;
1301     struct ieee80211_channel *c, *c2;
1302     int i;
1303@@ -767,7 +767,7 @@ static int
1304 ieee80211_ioctl_giwfreq(struct net_device *dev, struct iw_request_info *info,
1305     struct iw_freq *freq, char *extra)
1306 {
1307- struct ieee80211vap *vap = dev->priv;
1308+ struct ieee80211vap *vap = netdev_priv(dev);
1309     struct ieee80211com *ic = vap->iv_ic;
1310 
1311     if (vap->iv_state == IEEE80211_S_RUN &&
1312@@ -808,7 +808,7 @@ static int
1313 ieee80211_ioctl_siwessid(struct net_device *dev, struct iw_request_info *info,
1314     struct iw_point *data, char *ssid)
1315 {
1316- struct ieee80211vap *vap = dev->priv;
1317+ struct ieee80211vap *vap = netdev_priv(dev);
1318 
1319     if (vap->iv_opmode == IEEE80211_M_WDS)
1320         return -EOPNOTSUPP;
1321@@ -853,7 +853,7 @@ static int
1322 ieee80211_ioctl_giwessid(struct net_device *dev, struct iw_request_info *info,
1323     struct iw_point *data, char *essid)
1324 {
1325- struct ieee80211vap *vap = dev->priv;
1326+ struct ieee80211vap *vap = netdev_priv(dev);
1327 
1328     if (vap->iv_opmode == IEEE80211_M_WDS)
1329         return -EOPNOTSUPP;
1330@@ -899,7 +899,7 @@ static int
1331 ieee80211_ioctl_giwrange(struct net_device *dev, struct iw_request_info *info,
1332     struct iw_point *data, char *extra)
1333 {
1334- struct ieee80211vap *vap = dev->priv;
1335+ struct ieee80211vap *vap = netdev_priv(dev);
1336     struct ieee80211com *ic = vap->iv_ic;
1337     struct ieee80211_node *ni = vap->iv_bss;
1338     struct iw_range *range = (struct iw_range *) extra;
1339@@ -1047,7 +1047,7 @@ ieee80211_ioctl_setspy(struct net_device
1340     struct iw_point *data, char *extra)
1341 {
1342     /* save the list of node addresses */
1343- struct ieee80211vap *vap = dev->priv;
1344+ struct ieee80211vap *vap = netdev_priv(dev);
1345     struct sockaddr address[IW_MAX_SPY];
1346     unsigned int number = data->length;
1347     int i;
1348@@ -1085,7 +1085,7 @@ ieee80211_ioctl_getspy(struct net_device
1349      * locate nodes by mac (ieee80211_find_node()),
1350      * copy out rssi, set updated flag appropriately
1351      */
1352- struct ieee80211vap *vap = dev->priv;
1353+ struct ieee80211vap *vap = netdev_priv(dev);
1354     struct ieee80211_node_table *nt = &vap->iv_ic->ic_sta;
1355     struct ieee80211_node *ni;
1356     struct ieee80211com *ic = vap->iv_ic;
1357@@ -1133,7 +1133,7 @@ static int
1358 ieee80211_ioctl_setthrspy(struct net_device *dev, struct iw_request_info *info,
1359     struct iw_point *data, char *extra)
1360 {
1361- struct ieee80211vap *vap = dev->priv;
1362+ struct ieee80211vap *vap = netdev_priv(dev);
1363     struct iw_thrspy threshold;
1364 
1365     if (data->length != 1)
1366@@ -1170,7 +1170,7 @@ static int
1367 ieee80211_ioctl_getthrspy(struct net_device *dev, struct iw_request_info *info,
1368     struct iw_point *data, char *extra)
1369 {
1370- struct ieee80211vap *vap = dev->priv;
1371+ struct ieee80211vap *vap = netdev_priv(dev);
1372     struct ieee80211com *ic = vap->iv_ic;
1373     struct iw_thrspy *threshold;
1374 
1375@@ -1191,7 +1191,7 @@ static int
1376 ieee80211_ioctl_siwmode(struct net_device *dev, struct iw_request_info *info,
1377     __u32 *mode, char *extra)
1378 {
1379- struct ieee80211vap *vap = dev->priv;
1380+ struct ieee80211vap *vap = netdev_priv(dev);
1381     struct ifmediareq imr;
1382     int valid = 0;
1383 
1384@@ -1216,7 +1216,7 @@ static int
1385 ieee80211_ioctl_giwmode(struct net_device *dev, struct iw_request_info *info,
1386     __u32 *mode, char *extra)
1387 {
1388- struct ieee80211vap *vap = dev->priv;
1389+ struct ieee80211vap *vap = netdev_priv(dev);
1390     struct ifmediareq imr;
1391 
1392     memset(&imr, 0, sizeof(imr));
1393@@ -1239,7 +1239,7 @@ static int
1394 ieee80211_ioctl_siwpower(struct net_device *dev, struct iw_request_info *info,
1395     struct iw_param *wrq, char *extra)
1396 {
1397- struct ieee80211vap *vap = dev->priv;
1398+ struct ieee80211vap *vap = netdev_priv(dev);
1399     struct ieee80211com *ic = vap->iv_ic;
1400 
1401     /* XXX: These values, flags, and caps do not seem to be used elsewhere
1402@@ -1278,7 +1278,7 @@ static int
1403 ieee80211_ioctl_giwpower(struct net_device *dev, struct iw_request_info *info,
1404     struct iw_param *rrq, char *extra)
1405 {
1406- struct ieee80211vap *vap = dev->priv;
1407+ struct ieee80211vap *vap = netdev_priv(dev);
1408     struct ieee80211com *ic = vap->iv_ic;
1409 
1410     rrq->disabled = (ic->ic_flags & IEEE80211_F_PMGTON) == 0;
1411@@ -1302,7 +1302,7 @@ static int
1412 ieee80211_ioctl_siwretry(struct net_device *dev, struct iw_request_info *info,
1413     struct iw_param *rrq, char *extra)
1414 {
1415- struct ieee80211vap *vap = dev->priv;
1416+ struct ieee80211vap *vap = netdev_priv(dev);
1417     struct ieee80211com *ic = vap->iv_ic;
1418 
1419     if (rrq->disabled) {
1420@@ -1334,7 +1334,7 @@ static int
1421 ieee80211_ioctl_giwretry(struct net_device *dev, struct iw_request_info *info,
1422     struct iw_param *rrq, char *extra)
1423 {
1424- struct ieee80211vap *vap = dev->priv;
1425+ struct ieee80211vap *vap = netdev_priv(dev);
1426 
1427     rrq->disabled = (vap->iv_flags & IEEE80211_F_SWRETRY) == 0;
1428     if (!rrq->disabled) {
1429@@ -1365,7 +1365,7 @@ static int
1430 ieee80211_ioctl_siwtxpow(struct net_device *dev, struct iw_request_info *info,
1431     struct iw_param *rrq, char *extra)
1432 {
1433- struct ieee80211vap *vap = dev->priv;
1434+ struct ieee80211vap *vap = netdev_priv(dev);
1435     struct ieee80211com *ic = vap->iv_ic;
1436     int fixed, disabled;
1437 
1438@@ -1402,7 +1402,7 @@ ieee80211_get_txcont(struct net_device *
1439         struct iw_request_info *info, void *w, char *extra)
1440 {
1441     int *params = (int*) extra;
1442- struct ieee80211vap *vap = dev->priv;
1443+ struct ieee80211vap *vap = netdev_priv(dev);
1444     struct ieee80211com *ic = vap->iv_ic;
1445     params[0] = ic->ic_get_txcont(ic);
1446     return 0;
1447@@ -1413,7 +1413,7 @@ ieee80211_get_dfs_cac_time(struct net_de
1448         struct iw_request_info *info, void *w, char *extra)
1449 {
1450     int *params = (int*) extra;
1451- struct ieee80211vap *vap = dev->priv;
1452+ struct ieee80211vap *vap = netdev_priv(dev);
1453     struct ieee80211com *ic = vap->iv_ic;
1454     params[0] = ic->ic_get_dfs_cac_time(ic);
1455     return 0;
1456@@ -1424,7 +1424,7 @@ ieee80211_get_dfs_excl_period(struct net
1457         struct iw_request_info *info, void *w, char *extra)
1458 {
1459     int *params = (int*) extra;
1460- struct ieee80211vap *vap = dev->priv;
1461+ struct ieee80211vap *vap = netdev_priv(dev);
1462     struct ieee80211com *ic = vap->iv_ic;
1463     params[0] = ic->ic_get_dfs_excl_period(ic);
1464     return 0;
1465@@ -1434,7 +1434,7 @@ ieee80211_set_dfs_cac_time(struct net_de
1466         struct iw_request_info *info, void *w, char *extra)
1467 {
1468     int *params = (int*) extra;
1469- struct ieee80211vap *vap = dev->priv;
1470+ struct ieee80211vap *vap = netdev_priv(dev);
1471     struct ieee80211com *ic = vap->iv_ic;
1472     ic->ic_set_dfs_cac_time(ic, params[1]);
1473     return 0;
1474@@ -1444,7 +1444,7 @@ ieee80211_set_dfs_excl_period (struct n
1475         struct iw_request_info *info, void *w, char *extra)
1476 {
1477     int *params = (int*) extra;
1478- struct ieee80211vap *vap = dev->priv;
1479+ struct ieee80211vap *vap = netdev_priv(dev);
1480     struct ieee80211com *ic = vap->iv_ic;
1481     ic->ic_set_dfs_excl_period(ic, params[1]);
1482     return 0;
1483@@ -1455,7 +1455,7 @@ ieee80211_get_dfs_testmode(struct net_de
1484         struct iw_request_info *info, void *w, char *extra)
1485 {
1486     int *params = (int*) extra;
1487- struct ieee80211vap *vap = dev->priv;
1488+ struct ieee80211vap *vap = netdev_priv(dev);
1489     struct ieee80211com *ic = vap->iv_ic;
1490     params[0] = ic->ic_get_dfs_testmode(ic);
1491     return 0;
1492@@ -1466,7 +1466,7 @@ ieee80211_get_txcont_rate(struct net_dev
1493         struct iw_request_info *info, void *w, char *extra)
1494 {
1495     int *params = (int*) extra;
1496- struct ieee80211vap *vap = dev->priv;
1497+ struct ieee80211vap *vap = netdev_priv(dev);
1498     struct ieee80211com *ic = vap->iv_ic;
1499     params[0] = ic->ic_get_txcont_rate(ic);
1500     return 0;
1501@@ -1477,7 +1477,7 @@ ieee80211_set_txcont(struct net_device *
1502         void *w, char *extra)
1503 {
1504     int *params = (int*) extra;
1505- struct ieee80211vap *vap = dev->priv;
1506+ struct ieee80211vap *vap = netdev_priv(dev);
1507     struct ieee80211com *ic = vap->iv_ic;
1508     ic->ic_set_txcont(ic, params[1]);
1509     return 0;
1510@@ -1488,7 +1488,7 @@ ieee80211_set_dfs_testmode(struct net_de
1511         struct iw_request_info *info, void *w, char *extra)
1512 {
1513     int *params = (int*) extra;
1514- struct ieee80211vap *vap = dev->priv;
1515+ struct ieee80211vap *vap = netdev_priv(dev);
1516     struct ieee80211com *ic = vap->iv_ic;
1517     ic->ic_set_dfs_testmode(ic, params[1]);
1518     return 0;
1519@@ -1499,7 +1499,7 @@ ieee80211_set_txcont_rate(struct net_dev
1520         struct iw_request_info *info, void *w, char *extra)
1521 {
1522     int *params = (int*) extra;
1523- struct ieee80211vap *vap = dev->priv;
1524+ struct ieee80211vap *vap = netdev_priv(dev);
1525     struct ieee80211com *ic = vap->iv_ic;
1526     ic->ic_set_txcont_rate(ic, params[1]);
1527     return 0;
1528@@ -1510,7 +1510,7 @@ ieee80211_set_txcont_power(struct net_de
1529         struct iw_request_info *info, void *w, char *extra)
1530 {
1531     int *params = (int*) extra;
1532- struct ieee80211vap *vap = dev->priv;
1533+ struct ieee80211vap *vap = netdev_priv(dev);
1534     struct ieee80211com *ic = vap->iv_ic;
1535     ic->ic_set_txcont_power(ic, params[1]);
1536     return 0;
1537@@ -1521,7 +1521,7 @@ ieee80211_get_txcont_power(struct net_de
1538         struct iw_request_info *info, void *w, char *extra)
1539 {
1540     int *params = (int*) extra;
1541- struct ieee80211vap *vap = dev->priv;
1542+ struct ieee80211vap *vap = netdev_priv(dev);
1543     struct ieee80211com *ic = vap->iv_ic;
1544     params[0] = ic->ic_get_txcont_power(ic);
1545     return 0;
1546@@ -1533,7 +1533,7 @@ ieee80211_ioctl_hal_map(struct net_devic
1547        void *w, char *extra)
1548 {
1549        int *params = (int*) extra;
1550- struct ieee80211vap *vap = dev->priv;
1551+ struct ieee80211vap *vap = netdev_priv(dev);
1552        struct ieee80211com *ic = vap->iv_ic;
1553        params[0] = ic->ic_dump_hal_map(ic);
1554        return 0;
1555@@ -1545,7 +1545,7 @@ ieee80211_ioctl_radar(struct net_device
1556     void *w, char *extra)
1557 {
1558     int *params = (int*) extra;
1559- struct ieee80211vap *vap = dev->priv;
1560+ struct ieee80211vap *vap = netdev_priv(dev);
1561     struct ieee80211com *ic = vap->iv_ic;
1562     if (!(ic->ic_flags & IEEE80211_F_DOTH))
1563         return 0;
1564@@ -1557,7 +1557,7 @@ static int
1565 ieee80211_ioctl_giwtxpow(struct net_device *dev, struct iw_request_info *info,
1566     struct iw_param *rrq, char *extra)
1567 {
1568- struct ieee80211vap *vap = dev->priv;
1569+ struct ieee80211vap *vap = netdev_priv(dev);
1570     struct ieee80211com *ic = vap->iv_ic;
1571     unsigned int power = ic->ic_txpowlimit;
1572     struct ieee80211_channel *c;
1573@@ -1581,7 +1581,7 @@ static int
1574 ieee80211_dump_registers(struct net_device *dev, struct iw_request_info *info, void *w, char *extra)
1575 {
1576     unsigned int *params = (unsigned int*) extra;
1577- struct ieee80211vap *vap = dev->priv;
1578+ struct ieee80211vap *vap = netdev_priv(dev);
1579     struct ieee80211com *ic = vap->iv_ic;
1580     switch (params[1]) {
1581     case 2:
1582@@ -1604,7 +1604,7 @@ static int
1583 ieee80211_ioctl_writereg(struct net_device *dev, struct iw_request_info *info, void *w, char *extra)
1584 {
1585     unsigned int *params = (unsigned int*) extra;
1586- struct ieee80211vap *vap = dev->priv;
1587+ struct ieee80211vap *vap = netdev_priv(dev);
1588     struct ieee80211com *ic = vap->iv_ic;
1589     return ic->ic_write_register(ic, params[0], params[1]);
1590 }
1591@@ -1615,7 +1615,7 @@ static int
1592 ieee80211_ioctl_readreg(struct net_device *dev, struct iw_request_info *info, void *w, char *extra)
1593 {
1594     unsigned int *params = (unsigned int*) extra;
1595- struct ieee80211vap *vap = dev->priv;
1596+ struct ieee80211vap *vap = netdev_priv(dev);
1597     struct ieee80211com *ic = vap->iv_ic;
1598     return ic->ic_read_register(ic, params[0], &params[0]);
1599 }
1600@@ -1651,7 +1651,7 @@ static int
1601 ieee80211_ioctl_iwaplist(struct net_device *dev, struct iw_request_info *info,
1602     struct iw_point *data, char *extra)
1603 {
1604- struct ieee80211vap *vap = dev->priv;
1605+ struct ieee80211vap *vap = netdev_priv(dev);
1606     struct ieee80211com *ic = vap->iv_ic;
1607     struct waplistreq req; /* XXX off stack */
1608 
1609@@ -1673,7 +1673,7 @@ static int
1610 ieee80211_ioctl_siwscan(struct net_device *dev, struct iw_request_info *info,
1611     struct iw_point *data, char *extra)
1612 {
1613- struct ieee80211vap *vap = dev->priv;
1614+ struct ieee80211vap *vap = netdev_priv(dev);
1615 
1616     /*
1617      * XXX don't permit a scan to be started unless we
1618@@ -1997,7 +1997,7 @@ static int
1619 ieee80211_ioctl_giwscan(struct net_device *dev, struct iw_request_info *info,
1620     struct iw_point *data, char *extra)
1621 {
1622- struct ieee80211vap *vap = dev->priv;
1623+ struct ieee80211vap *vap = netdev_priv(dev);
1624     struct ieee80211com *ic = vap->iv_ic;
1625     struct iwscanreq req;
1626     int res = 0;
1627@@ -2098,7 +2098,7 @@ static int
1628 ieee80211_ioctl_setmode(struct net_device *dev, struct iw_request_info *info,
1629     struct iw_point *wri, char *extra)
1630 {
1631- struct ieee80211vap *vap = dev->priv;
1632+ struct ieee80211vap *vap = netdev_priv(dev);
1633     struct ieee80211com *ic = vap->iv_ic;
1634     struct ifreq ifr;
1635     char s[6]; /* big enough for ``11adt'' */
1636@@ -2222,10 +2222,10 @@ ieee80211_setathcap(struct ieee80211vap
1637 static int
1638 ieee80211_set_turbo(struct net_device *dev, int flag)
1639 {
1640- struct ieee80211vap *vap = dev->priv;
1641+ struct ieee80211vap *vap = netdev_priv(dev);
1642     struct ieee80211com *ic = vap->iv_ic;
1643     struct ifreq ifr;
1644- struct ieee80211vap *tmpvap = dev->priv;
1645+ struct ieee80211vap *tmpvap = netdev_priv(dev);
1646     int nvap = 0;
1647 
1648     TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next)
1649@@ -2246,7 +2246,7 @@ static int
1650 ieee80211_ioctl_setparam(struct net_device *dev, struct iw_request_info *info,
1651     void *w, char *extra)
1652 {
1653- struct ieee80211vap *vap = dev->priv;
1654+ struct ieee80211vap *vap = netdev_priv(dev);
1655     struct ieee80211com *ic = vap->iv_ic;
1656     struct ieee80211_rsnparms *rsn = &vap->iv_bss->ni_rsn;
1657     unsigned int *i = (unsigned int *) extra;
1658@@ -2926,7 +2926,7 @@ static int
1659 ieee80211_ioctl_getmode(struct net_device *dev, struct iw_request_info *info,
1660     struct iw_point *wri, char *extra)
1661 {
1662- struct ieee80211vap *vap = dev->priv;
1663+ struct ieee80211vap *vap = netdev_priv(dev);
1664     struct ieee80211com *ic = vap->iv_ic;
1665     struct ifmediareq imr;
1666 
1667@@ -2964,7 +2964,7 @@ static int
1668 ieee80211_ioctl_getparam(struct net_device *dev, struct iw_request_info *info,
1669     void *w, char *extra)
1670 {
1671- struct ieee80211vap *vap = dev->priv;
1672+ struct ieee80211vap *vap = netdev_priv(dev);
1673     struct ieee80211com *ic = vap->iv_ic;
1674     struct ieee80211_rsnparms *rsn = &vap->iv_bss->ni_rsn;
1675     unsigned int *param = (unsigned int *) extra;
1676@@ -3309,7 +3309,7 @@ static int
1677 ieee80211_ioctl_setoptie(struct net_device *dev, struct iw_request_info *info,
1678     struct iw_point *wri, char *extra)
1679 {
1680- struct ieee80211vap *vap = dev->priv;
1681+ struct ieee80211vap *vap = netdev_priv(dev);
1682     void *ie;
1683 
1684     /*
1685@@ -3343,7 +3343,7 @@ static int
1686 ieee80211_ioctl_getoptie(struct net_device *dev, struct iw_request_info *info,
1687     struct iw_point *wri, char *extra)
1688 {
1689- struct ieee80211vap *vap = dev->priv;
1690+ struct ieee80211vap *vap = netdev_priv(dev);
1691 
1692     if (vap->iv_opt_ie == NULL) {
1693         wri->length = 0;
1694@@ -3407,7 +3407,7 @@ ieee80211_ioctl_setappiebuf(struct net_d
1695     struct iw_request_info *info,
1696     struct iw_point *data, char *extra)
1697 {
1698- struct ieee80211vap *vap = dev->priv;
1699+ struct ieee80211vap *vap = netdev_priv(dev);
1700     struct ieee80211req_getset_appiebuf *iebuf =
1701         (struct ieee80211req_getset_appiebuf *)extra;
1702     enum ieee80211_opmode chk_opmode;
1703@@ -3449,7 +3449,7 @@ static int
1704 ieee80211_ioctl_getappiebuf(struct net_device *dev, struct iw_request_info *info,
1705     struct iw_point *data, char *extra)
1706 {
1707- struct ieee80211vap *vap = dev->priv;
1708+ struct ieee80211vap *vap = netdev_priv(dev);
1709     struct ieee80211req_getset_appiebuf *iebuf =
1710         (struct ieee80211req_getset_appiebuf *)extra;
1711     int max_iebuf_len;
1712@@ -3490,7 +3490,7 @@ static int
1713 ieee80211_ioctl_setfilter(struct net_device *dev, struct iw_request_info *info,
1714     void *w, char *extra)
1715 {
1716- struct ieee80211vap *vap = dev->priv;
1717+ struct ieee80211vap *vap = netdev_priv(dev);
1718     struct ieee80211req_set_filter *app_filter = (struct ieee80211req_set_filter *)extra;
1719 
1720     if ((extra == NULL) || (app_filter->app_filterype & ~IEEE80211_FILTER_TYPE_ALL))
1721@@ -3505,7 +3505,7 @@ static int
1722 ieee80211_ioctl_setkey(struct net_device *dev, struct iw_request_info *info,
1723     void *w, char *extra)
1724 {
1725- struct ieee80211vap *vap = dev->priv;
1726+ struct ieee80211vap *vap = netdev_priv(dev);
1727     struct ieee80211com *ic = vap->iv_ic;
1728     struct ieee80211req_key *ik = (struct ieee80211req_key *)extra;
1729     struct ieee80211_node *ni;
1730@@ -3588,7 +3588,7 @@ ieee80211_ioctl_setkey(struct net_device
1731 static int
1732 ieee80211_ioctl_getkey(struct net_device *dev, struct iwreq *iwr)
1733 {
1734- struct ieee80211vap *vap = dev->priv;
1735+ struct ieee80211vap *vap = netdev_priv(dev);
1736     struct ieee80211com *ic = vap->iv_ic;
1737     struct ieee80211_node *ni;
1738     struct ieee80211req_key ik;
1739@@ -3649,7 +3649,7 @@ static int
1740 ieee80211_ioctl_delkey(struct net_device *dev, struct iw_request_info *info,
1741     void *w, char *extra)
1742 {
1743- struct ieee80211vap *vap = dev->priv;
1744+ struct ieee80211vap *vap = netdev_priv(dev);
1745     struct ieee80211com *ic = vap->iv_ic;
1746     struct ieee80211req_del_key *dk = (struct ieee80211req_del_key *)extra;
1747     ieee80211_keyix_t kix;
1748@@ -3723,7 +3723,7 @@ static int
1749 ieee80211_ioctl_setmlme(struct net_device *dev, struct iw_request_info *info,
1750     void *w, char *extra)
1751 {
1752- struct ieee80211vap *vap = dev->priv;
1753+ struct ieee80211vap *vap = netdev_priv(dev);
1754     struct ieee80211com *ic = vap->iv_ic;
1755     struct ieee80211req_mlme *mlme = (struct ieee80211req_mlme *)extra;
1756     struct ieee80211_node *ni;
1757@@ -3826,7 +3826,7 @@ static int
1758 ieee80211_ioctl_wdsaddmac(struct net_device *dev, struct iw_request_info *info,
1759     void *w, char *extra)
1760 {
1761- struct ieee80211vap *vap = dev->priv;
1762+ struct ieee80211vap *vap = netdev_priv(dev);
1763     struct sockaddr *sa = (struct sockaddr *)extra;
1764     struct ieee80211com *ic = vap->iv_ic;
1765     struct ieee80211vap *avp;
1766@@ -3855,7 +3855,7 @@ static int
1767 ieee80211_ioctl_wdssetmac(struct net_device *dev, struct iw_request_info *info,
1768     void *w, char *extra)
1769 {
1770- struct ieee80211vap *vap = dev->priv;
1771+ struct ieee80211vap *vap = netdev_priv(dev);
1772     struct sockaddr *sa = (struct sockaddr *)extra;
1773 
1774     if (vap->iv_opmode != IEEE80211_M_WDS)
1775@@ -3922,7 +3922,7 @@ ieee80211_ioctl_setscanlist(struct net_d
1776     struct iw_request_info *info,
1777     struct iw_point *data, char *extra)
1778 {
1779- struct ieee80211vap *vap = dev->priv;
1780+ struct ieee80211vap *vap = netdev_priv(dev);
1781     struct ieee80211com *ic = vap->iv_ic;
1782     char *s, *next;
1783     int val = 1;
1784@@ -3997,7 +3997,7 @@ static int
1785 ieee80211_ioctl_addmac(struct net_device *dev, struct iw_request_info *info,
1786     void *w, char *extra)
1787 {
1788- struct ieee80211vap *vap = dev->priv;
1789+ struct ieee80211vap *vap = netdev_priv(dev);
1790     struct sockaddr *sa = (struct sockaddr *)extra;
1791     const struct ieee80211_aclator *acl = vap->iv_acl;
1792 
1793@@ -4015,7 +4015,7 @@ static int
1794 ieee80211_ioctl_delmac(struct net_device *dev, struct iw_request_info *info,
1795     void *w, char *extra)
1796 {
1797- struct ieee80211vap *vap = dev->priv;
1798+ struct ieee80211vap *vap = netdev_priv(dev);
1799     struct sockaddr *sa = (struct sockaddr *)extra;
1800     const struct ieee80211_aclator *acl = vap->iv_acl;
1801 
1802@@ -4033,7 +4033,7 @@ static int
1803 ieee80211_ioctl_setchanlist(struct net_device *dev,
1804     struct iw_request_info *info, void *w, char *extra)
1805 {
1806- struct ieee80211vap *vap = dev->priv;
1807+ struct ieee80211vap *vap = netdev_priv(dev);
1808     struct ieee80211com *ic = vap->iv_ic;
1809     struct ieee80211req_chanlist *list =
1810         (struct ieee80211req_chanlist *)extra;
1811@@ -4084,7 +4084,7 @@ static int
1812 ieee80211_ioctl_getchanlist(struct net_device *dev,
1813     struct iw_request_info *info, void *w, char *extra)
1814 {
1815- struct ieee80211vap *vap = dev->priv;
1816+ struct ieee80211vap *vap = netdev_priv(dev);
1817     struct ieee80211com *ic = vap->iv_ic;
1818 
1819     memcpy(extra, ic->ic_chan_active, sizeof(ic->ic_chan_active));
1820@@ -4105,7 +4105,7 @@ static int
1821 ieee80211_ioctl_getchaninfo(struct net_device *dev,
1822                 struct iw_request_info *info, void *w, char *extra)
1823 {
1824- struct ieee80211vap *vap = dev->priv;
1825+ struct ieee80211vap *vap = netdev_priv(dev);
1826     struct ieee80211com *ic = vap->iv_ic;
1827     struct ieee80211req_chaninfo *chans =
1828         (struct ieee80211req_chaninfo *)extra;
1829@@ -4152,7 +4152,7 @@ static int
1830 ieee80211_ioctl_setwmmparams(struct net_device *dev,
1831     struct iw_request_info *info, void *w, char *extra)
1832 {
1833- struct ieee80211vap *vap = dev->priv;
1834+ struct ieee80211vap *vap = netdev_priv(dev);
1835     unsigned int *param = (unsigned int *) extra;
1836     unsigned int ac = (param[1] < WME_NUM_AC) ? param[1] : WME_AC_BE;
1837     unsigned int bss = param[2];
1838@@ -4240,7 +4240,7 @@ static int
1839 ieee80211_ioctl_getwmmparams(struct net_device *dev,
1840     struct iw_request_info *info, void *w, char *extra)
1841 {
1842- struct ieee80211vap *vap = dev->priv;
1843+ struct ieee80211vap *vap = netdev_priv(dev);
1844     unsigned int *param = (unsigned int *) extra;
1845     unsigned int ac = (param[1] < WME_NUM_AC) ? param[1] : WME_AC_BE;
1846     struct ieee80211_wme_state *wme = &vap->iv_ic->ic_wme;
1847@@ -4275,7 +4275,7 @@ ieee80211_ioctl_getwmmparams(struct net_
1848 static int
1849 ieee80211_ioctl_getwpaie(struct net_device *dev, struct iwreq *iwr)
1850 {
1851- struct ieee80211vap *vap = dev->priv;
1852+ struct ieee80211vap *vap = netdev_priv(dev);
1853     struct ieee80211com *ic = vap->iv_ic;
1854     struct ieee80211_node *ni;
1855     struct ieee80211req_wpaie wpaie;
1856@@ -4309,7 +4309,7 @@ ieee80211_ioctl_getwpaie(struct net_devi
1857 static int
1858 ieee80211_ioctl_getstastats(struct net_device *dev, struct iwreq *iwr)
1859 {
1860- struct ieee80211vap *vap = dev->priv;
1861+ struct ieee80211vap *vap = netdev_priv(dev);
1862     struct ieee80211com *ic = vap->iv_ic;
1863     struct ieee80211_node *ni;
1864     u_int8_t macaddr[IEEE80211_ADDR_LEN];
1865@@ -4428,7 +4428,7 @@ get_scan_result(void *arg, const struct
1866 static int
1867 ieee80211_ioctl_getscanresults(struct net_device *dev, struct iwreq *iwr)
1868 {
1869- struct ieee80211vap *vap = dev->priv;
1870+ struct ieee80211vap *vap = netdev_priv(dev);
1871     struct ieee80211com *ic = vap->iv_ic;
1872     struct scanreq req;
1873     int error;
1874@@ -4591,7 +4591,7 @@ get_sta_info(void *arg, struct ieee80211
1875 static int
1876 ieee80211_ioctl_getstainfo(struct net_device *dev, struct iwreq *iwr)
1877 {
1878- struct ieee80211vap *vap = dev->priv;
1879+ struct ieee80211vap *vap = netdev_priv(dev);
1880     struct ieee80211com *ic = vap->iv_ic;
1881     struct stainforeq req;
1882     int error;
1883@@ -4625,7 +4625,7 @@ ieee80211_ioctl_getstainfo(struct net_de
1884 
1885 static void
1886 pre_announced_chanswitch(struct net_device *dev, u_int32_t channel, u_int32_t tbtt) {
1887- struct ieee80211vap *vap = dev->priv;
1888+ struct ieee80211vap *vap = netdev_priv(dev);
1889     struct ieee80211com *ic = vap->iv_ic;
1890     struct ieee80211vap *avp;
1891 
1892@@ -4643,7 +4643,7 @@ static int
1893 ieee80211_ioctl_chanswitch(struct net_device *dev, struct iw_request_info *info,
1894     void *w, char *extra)
1895 {
1896- struct ieee80211vap *vap = dev->priv;
1897+ struct ieee80211vap *vap = netdev_priv(dev);
1898     struct ieee80211com *ic = vap->iv_ic;
1899     unsigned int *param = (unsigned int *) extra;
1900 
1901@@ -4688,7 +4688,7 @@ static int
1902 ieee80211_ioctl_giwgenie(struct net_device *dev,
1903     struct iw_request_info *info, struct iw_point *out, char *buf)
1904 {
1905- struct ieee80211vap *vap = dev->priv;
1906+ struct ieee80211vap *vap = netdev_priv(dev);
1907 
1908     if (out->length < vap->iv_opt_ie_len)
1909         return -E2BIG;
1910@@ -5221,7 +5221,7 @@ static int
1911 ieee80211_ioctl_giwencodeext(struct net_device *dev,
1912     struct iw_request_info *info, struct iw_point *erq, char *extra)
1913 {
1914- struct ieee80211vap *vap = dev->priv;
1915+ struct ieee80211vap *vap = netdev_priv(dev);
1916     struct iw_encode_ext *ext;
1917     struct ieee80211_key *wk;
1918     ieee80211_keyix_t kix;
1919@@ -5281,7 +5281,7 @@ static int
1920 ieee80211_ioctl_siwencodeext(struct net_device *dev,
1921     struct iw_request_info *info, struct iw_point *erq, char *extra)
1922 {
1923- struct ieee80211vap *vap = dev->priv;
1924+ struct ieee80211vap *vap = netdev_priv(dev);
1925     struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
1926     struct ieee80211req_key kr;
1927     ieee80211_keyix_t kix;
1928@@ -5957,7 +5957,7 @@ static struct iw_handler_def ieee80211_i
1929 static int
1930 ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
1931 {
1932- struct ieee80211vap *vap = dev->priv;
1933+ struct ieee80211vap *vap = netdev_priv(dev);
1934     struct ieee80211com *ic = vap->iv_ic;
1935     struct ieee80211_node *ni;
1936 
1937

Archive Download this file



interactive