| @@ -1,34 +1,34 @@ | | | @@ -1,34 +1,34 @@ |
1 | /* $NetBSD: if_iwn.c,v 1.18 2008/09/14 10:09:39 freza Exp $ */ | | 1 | /* $NetBSD: if_iwn.c,v 1.19 2008/09/20 18:28:28 freza Exp $ */ |
2 | | | 2 | |
3 | /*- | | 3 | /*- |
4 | * Copyright (c) 2007 | | 4 | * Copyright (c) 2007 |
5 | * Damien Bergamini <damien.bergamini@free.fr> | | 5 | * Damien Bergamini <damien.bergamini@free.fr> |
6 | * | | 6 | * |
7 | * Permission to use, copy, modify, and distribute this software for any | | 7 | * Permission to use, copy, modify, and distribute this software for any |
8 | * purpose with or without fee is hereby granted, provided that the above | | 8 | * purpose with or without fee is hereby granted, provided that the above |
9 | * copyright notice and this permission notice appear in all copies. | | 9 | * copyright notice and this permission notice appear in all copies. |
10 | * | | 10 | * |
11 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | | 11 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
12 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | | 12 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
13 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | | 13 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
14 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | | 14 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
15 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | | 15 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
16 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | | 16 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
17 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | | 17 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
18 | */ | | 18 | */ |
19 | | | 19 | |
20 | #include <sys/cdefs.h> | | 20 | #include <sys/cdefs.h> |
21 | __KERNEL_RCSID(0, "$NetBSD: if_iwn.c,v 1.18 2008/09/14 10:09:39 freza Exp $"); | | 21 | __KERNEL_RCSID(0, "$NetBSD: if_iwn.c,v 1.19 2008/09/20 18:28:28 freza Exp $"); |
22 | | | 22 | |
23 | | | 23 | |
24 | /* | | 24 | /* |
25 | * Driver for Intel Wireless WiFi Link 4965AGN 802.11 network adapters. | | 25 | * Driver for Intel Wireless WiFi Link 4965AGN 802.11 network adapters. |
26 | */ | | 26 | */ |
27 | | | 27 | |
28 | #include "bpfilter.h" | | 28 | #include "bpfilter.h" |
29 | | | 29 | |
30 | #include <sys/param.h> | | 30 | #include <sys/param.h> |
31 | #include <sys/sockio.h> | | 31 | #include <sys/sockio.h> |
32 | #include <sys/sysctl.h> | | 32 | #include <sys/sysctl.h> |
33 | #include <sys/mbuf.h> | | 33 | #include <sys/mbuf.h> |
34 | #include <sys/kernel.h> | | 34 | #include <sys/kernel.h> |
| @@ -934,32 +934,29 @@ iwn_free_tx_ring(struct iwn_softc *sc, s | | | @@ -934,32 +934,29 @@ iwn_free_tx_ring(struct iwn_softc *sc, s |
934 | m_freem(data->m); | | 934 | m_freem(data->m); |
935 | } | | 935 | } |
936 | } | | 936 | } |
937 | free(ring->data, M_DEVBUF); | | 937 | free(ring->data, M_DEVBUF); |
938 | } | | 938 | } |
939 | } | | 939 | } |
940 | | | 940 | |
941 | /*ARGUSED*/ | | 941 | /*ARGUSED*/ |
942 | struct ieee80211_node * | | 942 | struct ieee80211_node * |
943 | iwn_node_alloc(struct ieee80211_node_table *nt __unused) | | 943 | iwn_node_alloc(struct ieee80211_node_table *nt __unused) |
944 | { | | 944 | { |
945 | struct iwn_node *wn; | | 945 | struct iwn_node *wn; |
946 | | | 946 | |
947 | wn = malloc(sizeof (struct iwn_node), M_DEVBUF, M_NOWAIT); | | 947 | wn = malloc(sizeof (struct iwn_node), M_80211_NODE, M_NOWAIT | M_ZERO); |
948 | | | 948 | |
949 | if (wn != NULL) | | | |
950 | memset(wn, 0, sizeof (struct iwn_node)); | | | |
951 | return (struct ieee80211_node *)wn; | | 949 | return (struct ieee80211_node *)wn; |
952 | | | | |
953 | } | | 950 | } |
954 | | | 951 | |
955 | static void | | 952 | static void |
956 | iwn_newassoc(struct ieee80211_node *ni, int isnew) | | 953 | iwn_newassoc(struct ieee80211_node *ni, int isnew) |
957 | { | | 954 | { |
958 | struct iwn_softc *sc = ni->ni_ic->ic_ifp->if_softc; | | 955 | struct iwn_softc *sc = ni->ni_ic->ic_ifp->if_softc; |
959 | int i; | | 956 | int i; |
960 | | | 957 | |
961 | ieee80211_amrr_node_init(&sc->amrr, &((struct iwn_node *)ni)->amn); | | 958 | ieee80211_amrr_node_init(&sc->amrr, &((struct iwn_node *)ni)->amn); |
962 | | | 959 | |
963 | /* set rate to some reasonable initial value */ | | 960 | /* set rate to some reasonable initial value */ |
964 | for (i = ni->ni_rates.rs_nrates - 1; | | 961 | for (i = ni->ni_rates.rs_nrates - 1; |
965 | i > 0 && (ni->ni_rates.rs_rates[i] & IEEE80211_RATE_VAL) > 72; | | 962 | i > 0 && (ni->ni_rates.rs_rates[i] & IEEE80211_RATE_VAL) > 72; |