Ticket #969: madwifi-domlme.patch
| File madwifi-domlme.patch, 2.5 kB (added by tharvey, 6 years ago) |
|---|
-
net80211/ieee80211_node.c
old new 1662 1662 void 1663 1663 ieee80211_iterate_nodes(struct ieee80211_node_table *nt, ieee80211_iter_func *f, void *arg) 1664 1664 { 1665 ieee80211_iterate_dev_nodes(NULL, nt, f, arg); 1666 } 1667 EXPORT_SYMBOL(ieee80211_iterate_nodes); 1668 1669 void 1670 ieee80211_iterate_dev_nodes(struct net_device *dev, struct ieee80211_node_table *nt, ieee80211_iter_func *f, void *arg) 1671 { 1665 1672 struct ieee80211_node *ni; 1666 1673 u_int gen; 1667 1674 … … 1670 1677 restart: 1671 1678 IEEE80211_NODE_LOCK(nt); 1672 1679 TAILQ_FOREACH(ni, &nt->nt_node, ni_list) { 1673 if (ni->ni_scangen != gen) { 1680 if (dev != NULL && ni->ni_vap->iv_dev != dev) 1681 continue; /* skip node not for this vap */ 1682 if (ni->ni_scangen) { 1674 1683 ni->ni_scangen = gen; 1675 1684 (void) ieee80211_ref_node(ni); 1676 1685 IEEE80211_NODE_UNLOCK(nt); … … 1683 1692 1684 1693 IEEE80211_SCAN_UNLOCK_IRQ(nt); 1685 1694 } 1686 EXPORT_SYMBOL(ieee80211_iterate_ nodes);1695 EXPORT_SYMBOL(ieee80211_iterate_dev_nodes); 1687 1696 1688 1697 void 1689 1698 ieee80211_dump_node(struct ieee80211_node_table *nt, struct ieee80211_node *ni) -
net80211/ieee80211_node.h
old new 298 298 typedef void ieee80211_iter_func(void *, struct ieee80211_node *); 299 299 void ieee80211_iterate_nodes(struct ieee80211_node_table *, 300 300 ieee80211_iter_func *, void *); 301 void ieee80211_iterate_dev_nodes(struct net_device *, 302 struct ieee80211_node_table *, ieee80211_iter_func *, void *); 301 303 302 304 void ieee80211_dump_node(struct ieee80211_node_table *, 303 305 struct ieee80211_node *); -
net80211/ieee80211_wireless.c
old new 3134 3134 if (!IEEE80211_ADDR_EQ(mlme->im_macaddr, vap->iv_dev->broadcast)) { 3135 3135 ni = ieee80211_find_node(&ic->ic_sta, 3136 3136 mlme->im_macaddr); 3137 if (ni == NULL) 3137 if (ni == NULL) { 3138 ieee80211_free_node(ni); 3138 3139 return -EINVAL; 3139 domlme(mlme, ni); 3140 } 3141 if (dev == ni->ni_vap->iv_dev) 3142 domlme(mlme, ni); 3140 3143 ieee80211_free_node(ni); 3141 3144 } else 3142 ieee80211_iterate_ nodes(&ic->ic_sta, domlme, mlme);3145 ieee80211_iterate_dev_nodes(dev, &ic->ic_sta, domlme, mlme); 3143 3146 break; 3144 3147 default: 3145 3148 return -EINVAL;
