#456: spinlock lockup in AP mode, revisions 1408 to 1468 and more
-----------------------------------+----------------------------------------
      Reporter:  [EMAIL PROTECTED]  |       Owner:     
          Type:  defect            |      Status:  new
      Priority:  major             |   Milestone:     
     Component:  madwifi: other    |     Version:     
    Resolution:                    |    Keywords:     
Patch_attached:  0                 |  
-----------------------------------+----------------------------------------
Comment (by [EMAIL PROTECTED]):

 So, is this happening to anybody else ?

 I was reading up on spinlocks here:
 http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-
 locking/index.html

 Looks to me like
 ath_rx_tasklet is a softirq
 and
 ath_intr is a hardirq

 Here's what I have found them to do:
 ath_rx_tasklet
    calls ieee80211_find_rxnode <-- lock_bh/unlock_bh on node_table
    calls ieee80211_input_all
          calls ieee80211_input <-- lock_bh/unlock_bh on node_table
          calls ieee80211_free_node <-- lock_bh/unlock_bh on ic_comlock and
 node_table

 ath_intr
    calls ath_beacon_send
        calls ath_beacon_generate
             calls ieee80211_beacon_update <-- lock_irqsave on ic_comlock
 --- LOCKUPs here (??)



 I think because the softirq doesn't disable the hardirq, we get into a
 case where we're already holding a lock ?

 I am currently running a version that changes the calls of
 IEEE80211_LOCK/IEEE80211_UNLOCK to spin_lock_irq()/spin_unlock_irq() which
 hasn't crashed on me yet (1741 secs into the iperf data transfer, where
 normally it would've crashed at around 800 secs)

 No patches for this yet, I want to make sure its rock solid.
 And, I'm sure there's going to be some timing performance hits with the
 changed calls.

 Any comments ?

-- 
Ticket URL: <http://madwifi.org/ticket/456>
MadWifi <http://madwifi.org/>
Multiband Atheros Driver for Wireless Fidelity

Reply via email to