#1918: WDS ageout deadlock
----------------------------------+-----------------------------------------
 Reporter:  [EMAIL PROTECTED]  |             Type:  defect
   Status:  new                   |         Priority:  minor 
Component:  madwifi: other        |          Version:  v0.9.4
 Keywords:                        |   Patch_attached:  0     
----------------------------------+-----------------------------------------
 Here is another stack trace for a panic in 0.9.4. I don't understand this
 yet. I think the nmi_watchdog fired. Again typed by hand, not cut and
 paste:

 {{{
 ieee802_node_wds_ageout
 tick_handle_oneshot_broadcast
 ieee80211_node_wds_ageout
 _do_softirq
 }}}

 Im guessing here, but i think it is unsafe usage of LIST_FOREACH()
 {{{
 ieee80211_node_wds_ageout(unsigned long data)
 {
         struct ieee80211_node_table *nt = (struct ieee80211_node_table
 *)data;
         int hash;
         struct ieee80211_wds_addr *wds;

         IEEE80211_NODE_LOCK_IRQ(nt);
         for (hash = 0; hash < IEEE80211_NODE_HASHSIZE; hash++) {
                 LIST_FOREACH(wds, &nt->nt_wds_hash[hash], wds_hash) {
                         if (wds->wds_agingcount != WDS_AGING_STATIC) {
                                 if (!wds->wds_agingcount) {
                                         if
 (ieee80211_node_dectestref(wds->wds_n
 i)) {
 _ieee80211_free_node(wds->wds_ni
 );
                                                 LIST_REMOVE(wds,
 wds_hash);
                                                 FREE(wds, M_80211_WDS);
                                         }
                                 } else
                                         wds->wds_agingcount--;
                         }
                 }
 }}}

 Since the code can remove the head of the list, shouldn't it be using
 LIST_FOREACH_SAFE() not LIST_FOREACH()?

-- 
Ticket URL: <http://madwifi.org/ticket/1918>
madwifi.org <http://madwifi.org/>
Multiband Atheros Driver for Wireless Fidelity
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Madwifi-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/madwifi-tickets

Reply via email to