#1903: Channel switch on active interface in master mode causes hard lockup
--------------------------------------+-------------------------------------
      Reporter:  sjen...@versanet.de  |       Owner:  proski                    
            
          Type:  defect               |      Status:  assigned                  
            
      Priority:  blocker              |   Milestone:  version 0.9.4.1           
            
     Component:  madwifi: driver      |     Version:  v0.9.4                    
            
    Resolution:                       |    Keywords:  master mode ap deadlock 
freeze channel
Patch_attached:  0                    |     Pending:  0                         
            
--------------------------------------+-------------------------------------
Comment (by proski):

 The fundamental problem lies in net80211/ieee80211_node.c:
 {{{
         /*
          * XXX: may need to lock out the following race. we dectestref
          *      and determine it's time to free the node. between the if()
          *      and lock, we take an rx intr to receive a frame from this
          *      node. the rx path (tasklet or intr) bumps this node's
          *      refcnt and xmits a response frame. eventually that
 response
          *      will get reaped, and the reaping code will attempt to use
          *      the node. the code below will delete the node prior
          *      to the reap and we could get a crash.
          *
          *      as a stopgap before delving deeper, lock intrs to
          *      prevent this case.
          */
         IEEE80211_LOCK_IRQ(ic);
 }}}
 IEEE80211_LOCK_IRQ is spin_lock_irqsave().  It doesn't lock all interrupts
 on SMP systems.  It only locks interrupts on the current CPU.  Other CPUs
 will still run.  If any of them needs to acquire that spinlock, the CPU
 will stop and wait.  spin_lock_irqsave() is a wrong function for the job
 it's supposed to do.

-- 
Ticket URL: <https://madwifi-project.org/ticket/1903#comment:27>
madwifi-project.org <http://madwifi-project.org/>
Multiband Atheros Driver for Wireless Fidelity
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Madwifi-tickets mailing list
Madwifi-tickets@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/madwifi-tickets

Reply via email to