#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