#74: module unstable on x86_64
------------------------------+---------------------------------------------
  Reporter:  kelmo            |       Owner:                                    
  
      Type:  defect           |      Status:  new                               
  
  Priority:  critical         |   Milestone:  version 1.0.0 - first stable 
release
 Component:  madwifi: driver  |     Version:  trunk                             
  
Resolution:                   |    Keywords:                                    
  
------------------------------+---------------------------------------------
Comment (by tim):

 In addition to the above, I tried putting guards on the code for the
 condition that's failing.  Here's what I changed it to:

 {{{
         /* check if need to make room on overflow queue */
         if (an->an_uapsd_overflowqdepth == an->an_node.ni_uapsd_maxsp) {
                 /*
                  *  pop oldest from delivery queue and cleanup
                  */
                 if((lastbuf = STAILQ_FIRST(&an->an_uapsd_q)))
                 {
                         STAILQ_REMOVE_HEAD(&an->an_uapsd_q, bf_list);
                         dev_kfree_skb(lastbuf->bf_skb);
                         lastbuf->bf_skb = NULL;
                         ieee80211_free_node(lastbuf->bf_node);
                         lastbuf->bf_node = NULL;
                         ATH_TXBUF_LOCK_BH(sc);
                         STAILQ_INSERT_TAIL(&sc->sc_txbuf, lastbuf,
 bf_list);
                         ATH_TXBUF_UNLOCK_BH(sc);
                 }
                 /*
                  *  move oldest from overflow to delivery
                  */
                 if((lastbuf = STAILQ_FIRST(&an->an_uapsd_overflowq)))
                 {
                         STAILQ_REMOVE_HEAD(&an->an_uapsd_overflowq,
 bf_list);
                         an->an_uapsd_overflowqdepth--;
                         STAILQ_INSERT_TAIL(&an->an_uapsd_q, lastbuf,
 bf_list);
                 }
                 DPRINTF(sc, ATH_DEBUG_UAPSD,
                                 "%s: delivery and overflow Qs full,
 dropped oldest\n", __func__);
         }



 }}}

 This actually kept my system from crashing, but it definately isn't a
 proper fix.  I was able to surf the web over wireless, but all files
 larger than a couple of KB wouldn't download.  In addition, I got kernel
 spew complaining about IRQ states and APIC problems.  I don't recommend
 anyone make these changes.  It only fixes one symptom.  However, it does
 help demonstrate what's going on.

 Here's some of the kernel spew I got:

 {{{
 Jan 13 12:55:35 hopper kernel: APIC error on CPU0: 00(40)
 Jan 13 12:56:20 hopper kernel: Badness in local_bh_enable at
 kernel/softirq.c:140
 Jan 13 12:56:20 hopper kernel:
 Jan 13 12:56:20 hopper kernel: Call Trace: <IRQ>
 <ffffffff801378d5>{local_bh_enable+53}
 <ffffffff880fd636>{:ath_pci:ath_tx_start+3814}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff88103410>{:ath_pci:ath_hardstart+3760}
 <ffffffff88103410>{:ath_pci:ath_hardstart+3760}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff880f4caa>{:ath_rate_sample:ath_rate_setupxtxdesc+170}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff880fd9bb>{:ath_pci:ath_tx_start+4715}
 <ffffffff802f7b82>{qdisc_restart+210}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff802e983f>{dev_queue_xmit+223}
 <ffffffff880d1e0e>{:wlan:ieee80211_hardstart+926}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff802e98af>{dev_queue_xmit+335} <ffffffff80303a09>{ip_output+537}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff80302f65>{ip_queue_xmit+1237}
 <ffffffff80302f65>{ip_queue_xmit+1237}
 Jan 13 12:56:20 hopper kernel:        <ffffffff80142599>{queue_work+41}
 <ffffffff880f421e>{:ath_rate_sample:calc_usecs_unicast_packet+542}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff80317c29>{tcp_v4_send_check+169}
 <ffffffff80312d63>{tcp_transmit_skb+1651}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff803113ad>{tcp_rcv_established+1245}
 <ffffffff803187b5>{tcp_v4_do_rcv+37}
 Jan 13 12:56:20 hopper kernel:        <ffffffff80319041>{tcp_v4_rcv+1537}
 <ffffffff802ff8f6>{ip_local_deliver+406}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8030005f>{ip_rcv+1103}
 <ffffffff802e9dda>{netif_receive_skb+458}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff880a19a2>{:ath_hal:zz002daf00+95}
 <ffffffff802e9ea5>{process_backlog+149}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff802e9fc8>{net_rx_action+152} <ffffffff8013783b>{__do_softirq+75}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8010f867>{call_softirq+31}
 <ffffffff80110e41>{do_softirq+49}
 Jan 13 12:56:20 hopper kernel:        <ffffffff80110e04>{do_IRQ+52}
 <ffffffff80137c70>{ksoftirqd+0}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8010ee6a>{ret_from_intr+0}
 <EOI> <ffffffff8807db39>{:processor:acpi_processor_idle+323}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8010cd21>{cpu_idle+49}
 <ffffffff8056a79f>{start_kernel+463}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8056a216>{_sinittext+534}
 Jan 13 12:56:20 hopper kernel: Badness in local_bh_enable at
 kernel/softirq.c:140
 Jan 13 12:56:20 hopper kernel:
 Jan 13 12:56:20 hopper kernel: Call Trace: <IRQ>
 <ffffffff801378d5>{local_bh_enable+53}
 <ffffffff880fd66e>{:ath_pci:ath_tx_start+3870}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff88103410>{:ath_pci:ath_hardstart+3760}
 <ffffffff88103410>{:ath_pci:ath_hardstart+3760}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff880f4caa>{:ath_rate_sample:ath_rate_setupxtxdesc+170}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff880fd9bb>{:ath_pci:ath_tx_start+4715}
 <ffffffff802f7b82>{qdisc_restart+210}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff802e983f>{dev_queue_xmit+223}
 <ffffffff880d1e0e>{:wlan:ieee80211_hardstart+926}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff802e98af>{dev_queue_xmit+335} <ffffffff80303a09>{ip_output+537}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff80302f65>{ip_queue_xmit+1237}
 <ffffffff80302f65>{ip_queue_xmit+1237}
 Jan 13 12:56:20 hopper kernel:        <ffffffff80142599>{queue_work+41}
 <ffffffff880f421e>{:ath_rate_sample:calc_usecs_unicast_packet+542}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff80317c29>{tcp_v4_send_check+169}
 <ffffffff80312d63>{tcp_transmit_skb+1651}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff803113ad>{tcp_rcv_established+1245}
 <ffffffff803187b5>{tcp_v4_do_rcv+37}
 Jan 13 12:56:20 hopper kernel:        <ffffffff80319041>{tcp_v4_rcv+1537}
 <ffffffff802ff8f6>{ip_local_deliver+406}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8030005f>{ip_rcv+1103}
 <ffffffff802e9dda>{netif_receive_skb+458}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff880a19a2>{:ath_hal:zz002daf00+95}
 <ffffffff802e9ea5>{process_backlog+149}
 Jan 13 12:56:20 hopper kernel:
 <ffffffff802e9fc8>{net_rx_action+152} <ffffffff8013783b>{__do_softirq+75}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8010f867>{call_softirq+31}
 <ffffffff80110e41>{do_softirq+49}
 Jan 13 12:56:20 hopper kernel:        <ffffffff80110e04>{do_IRQ+52}
 <ffffffff80137c70>{ksoftirqd+0}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8010ee6a>{ret_from_intr+0}
 <EOI> <ffffffff8807db39>{:processor:acpi_processor_idle+323}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8010cd21>{cpu_idle+49}
 <ffffffff8056a79f>{start_kernel+463}
 Jan 13 12:56:20 hopper kernel:        <ffffffff8056a216>{_sinittext+534}
 Jan 13 13:00:40 hopper kernel: APIC error on CPU0: 40(40)

 }}}

 HTH

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

Reply via email to