Lines Matching refs:priv
30 static int orinoco_set_key(struct orinoco_private *priv, int index, in orinoco_set_key() argument
34 kzfree(priv->keys[index].key); in orinoco_set_key()
35 kzfree(priv->keys[index].seq); in orinoco_set_key()
38 priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC); in orinoco_set_key()
39 if (!priv->keys[index].key) in orinoco_set_key()
42 priv->keys[index].key = NULL; in orinoco_set_key()
45 priv->keys[index].seq = kzalloc(seq_len, GFP_ATOMIC); in orinoco_set_key()
46 if (!priv->keys[index].seq) in orinoco_set_key()
49 priv->keys[index].seq = NULL; in orinoco_set_key()
51 priv->keys[index].key_len = key_len; in orinoco_set_key()
52 priv->keys[index].seq_len = seq_len; in orinoco_set_key()
55 memcpy((void *)priv->keys[index].key, key, key_len); in orinoco_set_key()
57 memcpy((void *)priv->keys[index].seq, seq, seq_len); in orinoco_set_key()
61 priv->keys[index].cipher = WLAN_CIPHER_SUITE_TKIP; in orinoco_set_key()
65 priv->keys[index].cipher = (key_len > SMALL_KEY_SIZE) ? in orinoco_set_key()
71 priv->keys[index].cipher = 0; in orinoco_set_key()
78 kfree(priv->keys[index].key); in orinoco_set_key()
79 priv->keys[index].key = NULL; in orinoco_set_key()
82 priv->keys[index].key_len = 0; in orinoco_set_key()
83 priv->keys[index].seq_len = 0; in orinoco_set_key()
84 priv->keys[index].cipher = 0; in orinoco_set_key()
91 struct orinoco_private *priv = ndev_priv(dev); in orinoco_get_wireless_stats() local
92 struct hermes *hw = &priv->hw; in orinoco_get_wireless_stats()
93 struct iw_statistics *wstats = &priv->wstats; in orinoco_get_wireless_stats()
105 if (orinoco_lock(priv, &flags) != 0) in orinoco_get_wireless_stats()
119 if (priv->iw_mode == NL80211_IFTYPE_ADHOC) { in orinoco_get_wireless_stats()
123 if (SPY_NUMBER(priv)) { in orinoco_get_wireless_stats()
124 wstats->qual.qual = priv->spy_data.spy_stat[0].qual; in orinoco_get_wireless_stats()
125 wstats->qual.level = priv->spy_data.spy_stat[0].level; in orinoco_get_wireless_stats()
126 wstats->qual.noise = priv->spy_data.spy_stat[0].noise; in orinoco_get_wireless_stats()
128 priv->spy_data.spy_stat[0].updated; in orinoco_get_wireless_stats()
147 orinoco_unlock(priv, &flags); in orinoco_get_wireless_stats()
160 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setwap() local
164 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setwap()
170 priv->bssid_fixed = 0; in orinoco_ioctl_setwap()
171 eth_zero_addr(priv->desired_bssid); in orinoco_ioctl_setwap()
175 __orinoco_hw_set_wap(priv); in orinoco_ioctl_setwap()
181 if (priv->firmware_type == FIRMWARE_TYPE_AGERE) { in orinoco_ioctl_setwap()
189 if (priv->iw_mode != NL80211_IFTYPE_STATION) { in orinoco_ioctl_setwap()
197 if (priv->firmware_type == FIRMWARE_TYPE_INTERSIL && in orinoco_ioctl_setwap()
198 strlen(priv->desired_essid) == 0) { in orinoco_ioctl_setwap()
206 priv->bssid_fixed = 1; in orinoco_ioctl_setwap()
207 memcpy(priv->desired_bssid, &ap_addr->sa_data, ETH_ALEN); in orinoco_ioctl_setwap()
210 orinoco_unlock(priv, &flags); in orinoco_ioctl_setwap()
219 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getwap() local
224 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_getwap()
228 err = orinoco_hw_get_current_bssid(priv, ap_addr->sa_data); in orinoco_ioctl_getwap()
230 orinoco_unlock(priv, &flags); in orinoco_ioctl_getwap()
240 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setiwencode() local
242 int setindex = priv->tx_key; in orinoco_ioctl_setiwencode()
243 enum orinoco_alg encode_alg = priv->encode_alg; in orinoco_ioctl_setiwencode()
244 int restricted = priv->wep_restrict; in orinoco_ioctl_setiwencode()
248 if (!priv->has_wep) in orinoco_ioctl_setiwencode()
256 if ((erq->length > SMALL_KEY_SIZE) && !priv->has_big_wep) in orinoco_ioctl_setiwencode()
260 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setiwencode()
264 if ((priv->has_wpa) && (priv->encode_alg == ORINOCO_ALG_TKIP)) in orinoco_ioctl_setiwencode()
265 (void) orinoco_clear_tkip_key(priv, setindex); in orinoco_ioctl_setiwencode()
269 index = priv->tx_key; in orinoco_ioctl_setiwencode()
287 if (priv->keys[index].key_len == 0) { in orinoco_ioctl_setiwencode()
303 err = orinoco_set_key(priv, index, ORINOCO_ALG_WEP, keybuf, in orinoco_ioctl_setiwencode()
306 priv->tx_key = setindex; in orinoco_ioctl_setiwencode()
309 if ((priv->encode_alg == encode_alg) && in orinoco_ioctl_setiwencode()
310 (priv->wep_restrict == restricted) && in orinoco_ioctl_setiwencode()
312 err = __orinoco_hw_setup_wepkeys(priv); in orinoco_ioctl_setiwencode()
317 priv->encode_alg = encode_alg; in orinoco_ioctl_setiwencode()
318 priv->wep_restrict = restricted; in orinoco_ioctl_setiwencode()
321 orinoco_unlock(priv, &flags); in orinoco_ioctl_setiwencode()
331 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getiwencode() local
335 if (!priv->has_wep) in orinoco_ioctl_getiwencode()
338 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_getiwencode()
342 index = priv->tx_key; in orinoco_ioctl_getiwencode()
345 if (!priv->encode_alg) in orinoco_ioctl_getiwencode()
349 if (priv->wep_restrict) in orinoco_ioctl_getiwencode()
354 erq->length = priv->keys[index].key_len; in orinoco_ioctl_getiwencode()
356 memcpy(keybuf, priv->keys[index].key, erq->length); in orinoco_ioctl_getiwencode()
358 orinoco_unlock(priv, &flags); in orinoco_ioctl_getiwencode()
367 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setessid() local
378 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setessid()
382 memset(priv->desired_essid, 0, sizeof(priv->desired_essid)); in orinoco_ioctl_setessid()
386 memcpy(priv->desired_essid, essidbuf, erq->length); in orinoco_ioctl_setessid()
388 orinoco_unlock(priv, &flags); in orinoco_ioctl_setessid()
398 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getessid() local
404 err = orinoco_hw_get_essid(priv, &active, essidbuf); in orinoco_ioctl_getessid()
409 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_getessid()
411 memcpy(essidbuf, priv->desired_essid, IW_ESSID_MAX_SIZE); in orinoco_ioctl_getessid()
412 erq->length = strlen(priv->desired_essid); in orinoco_ioctl_getessid()
413 orinoco_unlock(priv, &flags); in orinoco_ioctl_getessid()
426 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setfreq() local
432 if (priv->iw_mode == NL80211_IFTYPE_STATION) in orinoco_ioctl_setfreq()
451 !(priv->channel_mask & (1 << (chan - 1)))) in orinoco_ioctl_setfreq()
454 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setfreq()
457 priv->channel = chan; in orinoco_ioctl_setfreq()
458 if (priv->iw_mode == NL80211_IFTYPE_MONITOR) { in orinoco_ioctl_setfreq()
460 struct hermes *hw = &priv->hw; in orinoco_ioctl_setfreq()
465 orinoco_unlock(priv, &flags); in orinoco_ioctl_setfreq()
475 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getfreq() local
479 tmp = orinoco_hw_get_freq(priv); in orinoco_ioctl_getfreq()
494 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getsens() local
495 struct hermes *hw = &priv->hw; in orinoco_ioctl_getsens()
500 if (!priv->has_sensitivity) in orinoco_ioctl_getsens()
503 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_getsens()
507 orinoco_unlock(priv, &flags); in orinoco_ioctl_getsens()
523 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setsens() local
527 if (!priv->has_sensitivity) in orinoco_ioctl_setsens()
533 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setsens()
535 priv->ap_density = val; in orinoco_ioctl_setsens()
536 orinoco_unlock(priv, &flags); in orinoco_ioctl_setsens()
546 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setrate() local
567 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setrate()
569 priv->bitratemode = ratemode; in orinoco_ioctl_setrate()
570 orinoco_unlock(priv, &flags); in orinoco_ioctl_setrate()
580 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getrate() local
585 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_getrate()
588 orinoco_get_ratemode_cfg(priv->bitratemode, &bitrate, &automatic); in orinoco_ioctl_getrate()
597 lerr = orinoco_hw_get_act_bitrate(priv, &act_bitrate); in orinoco_ioctl_getrate()
602 orinoco_unlock(priv, &flags); in orinoco_ioctl_getrate()
616 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setpower() local
620 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setpower()
624 priv->pm_on = 0; in orinoco_ioctl_setpower()
628 priv->pm_mcast = 0; in orinoco_ioctl_setpower()
629 priv->pm_on = 1; in orinoco_ioctl_setpower()
632 priv->pm_mcast = 1; in orinoco_ioctl_setpower()
633 priv->pm_on = 1; in orinoco_ioctl_setpower()
644 priv->pm_on = 1; in orinoco_ioctl_setpower()
645 priv->pm_timeout = prq->value / 1000; in orinoco_ioctl_setpower()
648 priv->pm_on = 1; in orinoco_ioctl_setpower()
649 priv->pm_period = prq->value / 1000; in orinoco_ioctl_setpower()
653 if (!priv->pm_on) { in orinoco_ioctl_setpower()
660 orinoco_unlock(priv, &flags); in orinoco_ioctl_setpower()
670 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getpower() local
671 struct hermes *hw = &priv->hw; in orinoco_ioctl_getpower()
676 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_getpower()
714 orinoco_unlock(priv, &flags); in orinoco_ioctl_getpower()
724 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_set_encodeext() local
731 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_set_encodeext()
741 idx = priv->tx_key; in orinoco_ioctl_set_encodeext()
746 if (priv->has_wpa && (alg != IW_ENCODE_ALG_TKIP)) { in orinoco_ioctl_set_encodeext()
748 (void) orinoco_clear_tkip_key(priv, priv->tx_key); in orinoco_ioctl_set_encodeext()
752 priv->tx_key = idx; in orinoco_ioctl_set_encodeext()
761 priv->encode_alg = ORINOCO_ALG_NONE; in orinoco_ioctl_set_encodeext()
762 err = orinoco_set_key(priv, idx, ORINOCO_ALG_NONE, in orinoco_ioctl_set_encodeext()
770 priv->encode_alg = ORINOCO_ALG_WEP; in orinoco_ioctl_set_encodeext()
771 err = orinoco_set_key(priv, idx, ORINOCO_ALG_WEP, in orinoco_ioctl_set_encodeext()
779 if (!priv->has_wpa || in orinoco_ioctl_set_encodeext()
783 priv->encode_alg = ORINOCO_ALG_TKIP; in orinoco_ioctl_set_encodeext()
788 err = orinoco_set_key(priv, idx, ORINOCO_ALG_TKIP, in orinoco_ioctl_set_encodeext()
792 err = __orinoco_hw_set_tkip_key(priv, idx, in orinoco_ioctl_set_encodeext()
794 priv->keys[idx].key, in orinoco_ioctl_set_encodeext()
808 orinoco_unlock(priv, &flags); in orinoco_ioctl_set_encodeext()
818 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_get_encodeext() local
825 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_get_encodeext()
839 idx = priv->tx_key; in orinoco_ioctl_get_encodeext()
844 switch (priv->encode_alg) { in orinoco_ioctl_get_encodeext()
852 ext->key_len = min(priv->keys[idx].key_len, max_key_len); in orinoco_ioctl_get_encodeext()
853 memcpy(ext->key, priv->keys[idx].key, ext->key_len); in orinoco_ioctl_get_encodeext()
858 ext->key_len = min(priv->keys[idx].key_len, max_key_len); in orinoco_ioctl_get_encodeext()
859 memcpy(ext->key, priv->keys[idx].key, ext->key_len); in orinoco_ioctl_get_encodeext()
866 orinoco_unlock(priv, &flags); in orinoco_ioctl_get_encodeext()
875 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_set_auth() local
876 struct hermes *hw = &priv->hw; in orinoco_ioctl_set_auth()
881 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_set_auth()
909 priv->key_mgmt = param->value; in orinoco_ioctl_set_auth()
921 priv->tkip_cm_active = 1; in orinoco_ioctl_set_auth()
924 priv->tkip_cm_active = 0; in orinoco_ioctl_set_auth()
931 priv->wep_restrict = 1; in orinoco_ioctl_set_auth()
933 priv->wep_restrict = 0; in orinoco_ioctl_set_auth()
939 if (priv->has_wpa) { in orinoco_ioctl_set_auth()
940 priv->wpa_enabled = param->value ? 1 : 0; in orinoco_ioctl_set_auth()
945 priv->wpa_enabled = 0; in orinoco_ioctl_set_auth()
953 orinoco_unlock(priv, &flags); in orinoco_ioctl_set_auth()
961 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_get_auth() local
966 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_get_auth()
971 param->value = priv->key_mgmt; in orinoco_ioctl_get_auth()
975 param->value = priv->tkip_cm_active; in orinoco_ioctl_get_auth()
979 if (priv->wep_restrict) in orinoco_ioctl_get_auth()
986 param->value = priv->wpa_enabled; in orinoco_ioctl_get_auth()
993 orinoco_unlock(priv, &flags); in orinoco_ioctl_get_auth()
1001 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_set_genie() local
1017 if (orinoco_lock(priv, &flags) != 0) { in orinoco_ioctl_set_genie()
1022 kfree(priv->wpa_ie); in orinoco_ioctl_set_genie()
1023 priv->wpa_ie = buf; in orinoco_ioctl_set_genie()
1024 priv->wpa_ie_len = wrqu->data.length; in orinoco_ioctl_set_genie()
1026 if (priv->wpa_ie) { in orinoco_ioctl_set_genie()
1034 orinoco_unlock(priv, &flags); in orinoco_ioctl_set_genie()
1042 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_get_genie() local
1046 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_get_genie()
1049 if ((priv->wpa_ie_len == 0) || (priv->wpa_ie == NULL)) { in orinoco_ioctl_get_genie()
1054 if (wrqu->data.length < priv->wpa_ie_len) { in orinoco_ioctl_get_genie()
1059 wrqu->data.length = priv->wpa_ie_len; in orinoco_ioctl_get_genie()
1060 memcpy(extra, priv->wpa_ie, priv->wpa_ie_len); in orinoco_ioctl_get_genie()
1063 orinoco_unlock(priv, &flags); in orinoco_ioctl_get_genie()
1071 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_set_mlme() local
1076 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_set_mlme()
1086 ret = orinoco_hw_disassociate(priv, mlme->addr.sa_data, in orinoco_ioctl_set_mlme()
1094 orinoco_unlock(priv, &flags); in orinoco_ioctl_set_mlme()
1103 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_reset() local
1112 orinoco_reset(&priv->reset_work); in orinoco_ioctl_reset()
1116 schedule_work(&priv->reset_work); in orinoco_ioctl_reset()
1128 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setibssport() local
1132 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setibssport()
1135 priv->ibss_port = val; in orinoco_ioctl_setibssport()
1138 set_port_type(priv); in orinoco_ioctl_setibssport()
1140 orinoco_unlock(priv, &flags); in orinoco_ioctl_setibssport()
1149 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getibssport() local
1152 *val = priv->ibss_port; in orinoco_ioctl_getibssport()
1161 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setport3() local
1166 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setport3()
1171 if (!priv->has_ibss) { in orinoco_ioctl_setport3()
1175 priv->prefer_port3 = 0; in orinoco_ioctl_setport3()
1180 if (!priv->has_port3) { in orinoco_ioctl_setport3()
1184 priv->prefer_port3 = 1; in orinoco_ioctl_setport3()
1193 set_port_type(priv); in orinoco_ioctl_setport3()
1197 orinoco_unlock(priv, &flags); in orinoco_ioctl_setport3()
1207 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getport3() local
1210 *val = priv->prefer_port3; in orinoco_ioctl_getport3()
1219 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_setpreamble() local
1223 if (!priv->has_preamble) in orinoco_ioctl_setpreamble()
1233 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_setpreamble()
1237 priv->preamble = 1; in orinoco_ioctl_setpreamble()
1239 priv->preamble = 0; in orinoco_ioctl_setpreamble()
1241 orinoco_unlock(priv, &flags); in orinoco_ioctl_setpreamble()
1251 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getpreamble() local
1254 if (!priv->has_preamble) in orinoco_ioctl_getpreamble()
1257 *val = priv->preamble; in orinoco_ioctl_getpreamble()
1271 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_getrid() local
1272 struct hermes *hw = &priv->hw; in orinoco_ioctl_getrid()
1286 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_getrid()
1298 orinoco_unlock(priv, &flags); in orinoco_ioctl_getrid()
1309 struct orinoco_private *priv = ndev_priv(dev); in orinoco_ioctl_commit() local
1313 if (!priv->open) in orinoco_ioctl_commit()
1316 if (orinoco_lock(priv, &flags) != 0) in orinoco_ioctl_commit()
1319 err = orinoco_commit(priv); in orinoco_ioctl_commit()
1321 orinoco_unlock(priv, &flags); in orinoco_ioctl_commit()