otus(4) - use the local node alloc function so there's space for statistics.
* Use the correct malloc type for node allocation - M_80211_NODE - so the default node free method in net80211 will work correctly. * Fix otus_node_alloc() to suit FreeBSD's net80211. * .. and actually call otus_node_alloc() so there's space for the per-node tx statistics. Otherwise, well, it will be scribbling over random memory. Tested: * AR9170, STA mode
This commit is contained in:
parent
7177ad0e48
commit
12c5864844
@ -164,7 +164,8 @@ int otus_cmd(struct otus_softc *, uint8_t, const void *, int,
|
||||
void *, int);
|
||||
void otus_write(struct otus_softc *, uint32_t, uint32_t);
|
||||
int otus_write_barrier(struct otus_softc *);
|
||||
struct ieee80211_node *otus_node_alloc(struct ieee80211com *);
|
||||
static struct ieee80211_node *otus_node_alloc(struct ieee80211vap *vap,
|
||||
const uint8_t mac[IEEE80211_ADDR_LEN]);
|
||||
int otus_media_change(struct ifnet *);
|
||||
int otus_read_eeprom(struct otus_softc *);
|
||||
void otus_newassoc(struct ieee80211_node *, int);
|
||||
@ -814,6 +815,7 @@ otus_attachhook(struct otus_softc *sc)
|
||||
ic->ic_ampdu_enable = otus_ampdu_enable;
|
||||
ic->ic_wme.wme_update = otus_wme_update;
|
||||
ic->ic_newassoc = otus_newassoc;
|
||||
ic->ic_node_alloc = otus_node_alloc;
|
||||
|
||||
#ifdef notyet
|
||||
ic->ic_set_key = otus_set_key;
|
||||
@ -1387,10 +1389,12 @@ otus_write_barrier(struct otus_softc *sc)
|
||||
return error;
|
||||
}
|
||||
|
||||
struct ieee80211_node *
|
||||
otus_node_alloc(struct ieee80211com *ic)
|
||||
static struct ieee80211_node *
|
||||
otus_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN])
|
||||
{
|
||||
return malloc(sizeof (struct otus_node), M_DEVBUF, M_NOWAIT | M_ZERO);
|
||||
|
||||
return malloc(sizeof (struct otus_node), M_80211_NODE,
|
||||
M_NOWAIT | M_ZERO);
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user