* Re: p54: AP mode: no data frame despite traffic indication set in TIM
@ 2008-11-24 20:24 Christian Lamparter
2008-11-26 13:38 ` Stefan Steuerwald
0 siblings, 1 reply; 20+ messages in thread
From: Christian Lamparter @ 2008-11-24 20:24 UTC (permalink / raw)
To: Stefan Steuerwald; +Cc: Johannes Berg, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 510 bytes --]
On Monday 24 November 2008 17:51:45 Stefan Steuerwald wrote:
> Thanks again Christian and Johannes,
>
> from a first quick check
> - set-and-clear.diff doesn't seem to change anything
> - both patches together freeze my system
>
> I don't have a serial console on this embedded thing, so I don't know
> its death poem yet. Let me set up my debug environment properly and
> report back to you.
This might not be necessary.
Try this updated patch. And let us know if we no do the right thing.
Regards,
Chr
[-- Attachment #2: p54-sta-flags-v2.diff --]
[-- Type: text/x-diff, Size: 2316 bytes --]
diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
--- a/drivers/net/wireless/p54/p54common.c 2008-11-24 13:07:09.053832187 +0100
+++ b/drivers/net/wireless/p54/p54common.c 2008-11-24 21:05:42.590287518 +0100
@@ -688,7 +688,8 @@ static void p54_rx_frame_sent(struct iee
}
}
- priv->tx_stats[entry_data->hw_queue].len--;
+ if (priv->tx_stats[entry_data->hw_queue].len > 0)
+ priv->tx_stats[entry_data->hw_queue].len--;
if (!(info->flags & IEEE80211_TX_CTL_NO_ACK) &&
(!payload->status))
info->flags |= IEEE80211_TX_STAT_ACK;
@@ -1067,9 +1068,15 @@ static int p54_tx_fill(struct ieee80211_
*queue = 3;
return 0;
}
- if (info->control.sta)
+ if (info->control.sta) {
+ if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) {
+ ret = p54_sta_unlock(dev, info->control.sta->addr);
+ if (ret)
+ return ret;
+ *flags |= P54_HDR_FLAG_DATA_OUT_NOCANCEL;
+ }
*aid = info->control.sta->aid;
- else
+ } else
*flags = P54_HDR_FLAG_DATA_OUT_NOCANCEL;
}
return ret;
@@ -1083,7 +1090,7 @@ static int p54_tx(struct ieee80211_hw *d
struct p54_hdr *hdr;
struct p54_tx_data *txhdr;
size_t padding, len, tim_len = 0;
- int i, j, ridx;
+ int i, j, ridx, ret;
u16 hdr_flags = 0, aid = 0;
u8 rate, queue;
u8 cts_rate = 0x20;
@@ -1093,7 +1100,10 @@ static int p54_tx(struct ieee80211_hw *d
queue = skb_get_queue_mapping(skb);
- if (p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid)) {
+ ret = p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid);
+ if (ret < 0)
+ return NETDEV_TX_BUSY;
+ if (ret) {
current_queue = &priv->tx_stats[queue];
if (unlikely(current_queue->len > current_queue->limit))
return NETDEV_TX_BUSY;
@@ -1106,17 +1116,6 @@ static int p54_tx(struct ieee80211_hw *d
padding = (unsigned long)(skb->data - (sizeof(*hdr) + sizeof(*txhdr))) & 3;
len = skb->len;
- if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) {
- if (info->control.sta)
- if (p54_sta_unlock(dev, info->control.sta->addr)) {
- if (current_queue) {
- current_queue->len--;
- current_queue->count--;
- }
- return NETDEV_TX_BUSY;
- }
- }
-
txhdr = (struct p54_tx_data *) skb_push(skb, sizeof(*txhdr) + padding);
hdr = (struct p54_hdr *) skb_push(skb, sizeof(*hdr));
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-24 20:24 p54: AP mode: no data frame despite traffic indication set in TIM Christian Lamparter @ 2008-11-26 13:38 ` Stefan Steuerwald 2008-11-26 21:13 ` Christian Lamparter 0 siblings, 1 reply; 20+ messages in thread From: Stefan Steuerwald @ 2008-11-26 13:38 UTC (permalink / raw) To: Christian Lamparter; +Cc: Johannes Berg, linux-wireless [-- Attachment #1: Type: text/plain, Size: 3909 bytes --] Almost there, almost there!!! :-) Using all of the attached three patches my problem seems gone: - I no longer see any "dropped TX filtered" messages in syslog - My app no longer times out p54_sta_flags_v2.diff alone does not change anything for me. Johannes' patch alone MAY reduce the frequency of my app-level timeouts, but I have only gut feeling to support that. All three together do it. Patches attached in original form for reference. However, after some time, the kernel oopses. Console output below. I watched this several times, and it always happens after seeing these last two lines in syslog:348 : Nov 26 14:16:32 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:16:32 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Does this help? Anything you need me to try, I have this hardware only until tomorrow. It gets back to me after Dec 7. Thanks! Great work so far! Stefan. --- Console: console [netcon0] enabled netconsole: network logging started BUG: unable to handle kernel NULL pointer dereference at 00000038 IP: [<d08260fa>] p54_assign_address+0x67/0x14b [p54common] *pde = 00000000 Oops: 0000 [#1] last sysfs file: /sys/class/net/lo/operstate Modules linked in: netconsole ipv6 loop evdev ehci_hcd ohci_hcd rtc_cmos rtc_core pcspkr rtc_lib p54pci usbcore via_rhine p54common geode_aes mii [last unloaded: netconsole] Pid: 0, comm: swapper Not tainted (2.6.28-rc6-wl #16) EIP: 0060:[<d08260fa>] EFLAGS: 00010002 CPU: 0 EIP is at p54_assign_address+0x67/0x14b [p54common] EAX: cf98b178 EBX: cf86ee40 ECX: 00000000 EDX: 00000000 ESI: 000000f8 EDI: 00000000 EBP: 0002027c ESP: c03f9c4c DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 Process swapper (pid: 0, ti=c03f8000 task=c03c4380 task.ti=c03f8000) Stack: 00000002 ce4d5880 ce4c48b4 cf86e1a0 00000000 00000038 00020200 00000286 cf86ee40 00000004 ce4d58b2 ce4d588c d0826fd7 00000090 014c48d4 ce4c48b4 cf86e1a0 0086ee40 00000004 02000282 ce4c48d4 cf86ef10 cf86ee40 ce4d5880 Call Trace: [<d0826fd7>] p54_tx+0x416/0x482 [p54common] [<c02fb7c2>] __ieee80211_tx+0x35/0xf8 [<c02fc235>] ieee80211_master_start_xmit+0x2ab/0x396 [<c01048d3>] common_interrupt+0x23/0x30 [<c0297368>] dev_hard_start_xmit+0x16e/0x1c9 [<c02a3518>] __qdisc_run+0xa2/0x15c [<c0297796>] dev_queue_xmit+0x2f5/0x3c5 [<c02f8608>] ieee80211_invoke_rx_handlers+0x488/0x1486 [<c02d9d14>] bictcp_cong_avoid+0x10/0x160 [<c02bd904>] tcp_ack+0x16f0/0x1850 [<c01170f0>] enqueue_task_fair+0x12a/0x16b [<c02c0c37>] tcp_current_mss+0x6b/0xe4 [<c02f9b50>] __ieee80211_rx_handle_packet+0x54a/0x56d [<c02fa1fe>] __ieee80211_rx+0x491/0x4e3 [<c02ec95d>] ieee80211_tasklet_handler+0x60/0xd6 [<c011cfae>] tasklet_action+0x3e/0x64 [<c011d305>] __do_softirq+0x4a/0xbc [<c011d399>] do_softirq+0x22/0x26 [<c011d44f>] irq_exit+0x25/0x55 [<c0105996>] do_IRQ+0x5a/0x6c [<c01048d3>] common_interrupt+0x23/0x30 [<c0108743>] default_idle+0x25/0x38 [<c0102926>] cpu_idle+0x41/0x5b Code: 0f 84 01 01 00 00 9c 8f 44 24 1c fa 8b 53 10 31 ff 89 6c 24 18 89 14 24 31 d2 eb 3f 8b 4c 24 10 83 c1 38 89 4c 24 14 8b 4c 24 10 <8b> 41 38 29 e8 85 d2 75 0d 39 f0 72 09 8b 51 04 29 f0 89 6c 24 EIP: [<d08260fa>] p54_assign_address+0x67/0x14b [p54common] SS:ESP 0068:c03f9c4c Kernel panic - not syncing: Fatal exception in interrupt 2008/11/24 Christian Lamparter <chunkeey@web.de>: > On Monday 24 November 2008 17:51:45 Stefan Steuerwald wrote: >> Thanks again Christian and Johannes, >> >> from a first quick check >> - set-and-clear.diff doesn't seem to change anything >> - both patches together freeze my system >> >> I don't have a serial console on this embedded thing, so I don't know >> its death poem yet. Let me set up my debug environment properly and >> report back to you. > > This might not be necessary. > > Try this updated patch. And let us know if we no do the right thing. > > Regards, > Chr > [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: set-and-clear.diff --] [-- Type: text/x-diff; name=set-and-clear.diff, Size: 930 bytes --] diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 5a1a60f..077fdb7 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -657,7 +657,8 @@ static void ap_sta_ps_start(struct sta_info *sta) DECLARE_MAC_BUF(mac); atomic_inc(&sdata->bss->num_sta_ps); - set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL); + set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL | + WLAN_STA_CLEAR_PS_FILT); #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG printk(KERN_DEBUG "%s: STA %s aid %d enters power save mode\n", sdata->dev->name, print_mac(mac, sta->sta.addr), sta->sta.aid); @@ -674,7 +675,8 @@ static int ap_sta_ps_end(struct sta_info *sta) atomic_dec(&sdata->bss->num_sta_ps); - clear_sta_flags(sta, WLAN_STA_PS | WLAN_STA_PSPOLL); + set_and_clear_sta_flags(sta, WLAN_STA_CLEAR_PS_FILT, + WLAN_STA_PS | WLAN_STA_PSPOLL); if (!skb_queue_empty(&sta->ps_tx_buf)) sta_info_clear_tim_bit(sta); [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: p54-sta-flags-v2.diff --] [-- Type: text/x-diff; name=p54-sta-flags-v2.diff, Size: 2316 bytes --] diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c --- a/drivers/net/wireless/p54/p54common.c 2008-11-24 13:07:09.053832187 +0100 +++ b/drivers/net/wireless/p54/p54common.c 2008-11-24 21:05:42.590287518 +0100 @@ -688,7 +688,8 @@ static void p54_rx_frame_sent(struct iee } } - priv->tx_stats[entry_data->hw_queue].len--; + if (priv->tx_stats[entry_data->hw_queue].len > 0) + priv->tx_stats[entry_data->hw_queue].len--; if (!(info->flags & IEEE80211_TX_CTL_NO_ACK) && (!payload->status)) info->flags |= IEEE80211_TX_STAT_ACK; @@ -1067,9 +1068,15 @@ static int p54_tx_fill(struct ieee80211_ *queue = 3; return 0; } - if (info->control.sta) + if (info->control.sta) { + if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) { + ret = p54_sta_unlock(dev, info->control.sta->addr); + if (ret) + return ret; + *flags |= P54_HDR_FLAG_DATA_OUT_NOCANCEL; + } *aid = info->control.sta->aid; - else + } else *flags = P54_HDR_FLAG_DATA_OUT_NOCANCEL; } return ret; @@ -1083,7 +1090,7 @@ static int p54_tx(struct ieee80211_hw *d struct p54_hdr *hdr; struct p54_tx_data *txhdr; size_t padding, len, tim_len = 0; - int i, j, ridx; + int i, j, ridx, ret; u16 hdr_flags = 0, aid = 0; u8 rate, queue; u8 cts_rate = 0x20; @@ -1093,7 +1100,10 @@ static int p54_tx(struct ieee80211_hw *d queue = skb_get_queue_mapping(skb); - if (p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid)) { + ret = p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid); + if (ret < 0) + return NETDEV_TX_BUSY; + if (ret) { current_queue = &priv->tx_stats[queue]; if (unlikely(current_queue->len > current_queue->limit)) return NETDEV_TX_BUSY; @@ -1106,17 +1116,6 @@ static int p54_tx(struct ieee80211_hw *d padding = (unsigned long)(skb->data - (sizeof(*hdr) + sizeof(*txhdr))) & 3; len = skb->len; - if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) { - if (info->control.sta) - if (p54_sta_unlock(dev, info->control.sta->addr)) { - if (current_queue) { - current_queue->len--; - current_queue->count--; - } - return NETDEV_TX_BUSY; - } - } - txhdr = (struct p54_tx_data *) skb_push(skb, sizeof(*txhdr) + padding); hdr = (struct p54_hdr *) skb_push(skb, sizeof(*hdr)); [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: johannes-sta-nowake-on-ps.patch --] [-- Type: text/x-diff; name=johannes-sta-nowake-on-ps.patch, Size: 1020 bytes --] --- everything.orig/net/mac80211/rx.c 2008-11-23 14:58:21.000000000 +0100 +++ everything/net/mac80211/rx.c 2008-11-23 14:59:58.000000000 +0100 @@ -750,9 +750,11 @@ ieee80211_rx_h_sta_process(struct ieee80 /* Change STA power saving mode only in the end of a frame * exchange sequence */ if (test_sta_flags(sta, WLAN_STA_PS) && - !ieee80211_has_pm(hdr->frame_control)) - rx->sent_ps_buffered += ap_sta_ps_end(sta); - else if (!test_sta_flags(sta, WLAN_STA_PS) && + !ieee80211_has_pm(hdr->frame_control)) { + /* ignore PS bit on non-data frames */ + if (ieee80211_is_data(hdr->frame_control)) + rx->sent_ps_buffered += ap_sta_ps_end(sta); + } else if (!test_sta_flags(sta, WLAN_STA_PS) && ieee80211_has_pm(hdr->frame_control)) ap_sta_ps_start(sta); } [-- Attachment #5: oops.syslog --] [-- Type: application/octet-stream, Size: 52905 bytes --] Nov 26 14:12:35 alix kernel: netconsole: local IP 192.168.1.100 Nov 26 14:12:35 alix kernel: console [netcon0] enabled Nov 26 14:12:35 alix kernel: netconsole: network logging started Nov 26 14:13:04 alix hostapd: wlan0: STA 00:22:41:91:8e:96 IEEE 802.11: authentication OK (open system) Nov 26 14:13:04 alix hostapd: wlan0: STA 00:22:41:91:8e:96 MLME: MLME-AUTHENTICATE.indication(00:22:41:91:8e:96, OPEN_SYSTEM) Nov 26 14:13:04 alix hostapd: wlan0: STA 00:22:41:91:8e:96 MLME: MLME-DELETEKEYS.request(00:22:41:91:8e:96) Nov 26 14:13:04 alix hostapd: wlan0: STA 00:22:41:91:8e:96 IEEE 802.11: authenticated Nov 26 14:13:04 alix hostapd: wlan0: STA 00:22:41:91:8e:96 IEEE 802.11: association OK (aid 1) Nov 26 14:13:04 alix hostapd: wlan0: STA 00:22:41:91:8e:96 IEEE 802.11: associated (aid 1, accounting session 492D4A7C-00000000) Nov 26 14:13:04 alix hostapd: wlan0: STA 00:22:41:91:8e:96 MLME: MLME-ASSOCIATE.indication(00:22:41:91:8e:96) Nov 26 14:13:04 alix hostapd: wlan0: STA 00:22:41:91:8e:96 MLME: MLME-DELETEKEYS.request(00:22:41:91:8e:96) Nov 26 14:13:04 alix kernel: phy0: Allocated STA 00:22:41:91:8e:96 Nov 26 14:13:04 alix kernel: phy0: Inserted STA 00:22:41:91:8e:96 Nov 26 14:13:04 alix dhcpd: DHCPREQUEST for 192.168.177.102 from 00:22:41:91:8e:96 via wlan0 Nov 26 14:13:04 alix dhcpd: DHCPACK on 192.168.177.102 to 00:22:41:91:8e:96 via wlan0 Nov 26 14:13:04 alix dhcpd: DHCPREQUEST for 192.168.177.102 from 00:22:41:91:8e:96 via wlan0 Nov 26 14:13:04 alix dhcpd: DHCPACK on 192.168.177.102 to 00:22:41:91:8e:96 via wlan0 Nov 26 14:13:04 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:06 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:06 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:06 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:06 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:07 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:08 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:09 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:09 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:09 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:10 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:12 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:12 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:12 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:13 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:16 alix dhclient: DHCPREQUEST on eth0 to 192.168.1.1 port 67 Nov 26 14:13:16 alix dhclient: DHCPACK from 192.168.1.1 Nov 26 14:13:16 alix dhclient: bound to 192.168.1.100 -- renewal in 257 seconds. Nov 26 14:13:16 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:17 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:20 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:20 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:20 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:20 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:20 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:20 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:20 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:25 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:25 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:25 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:25 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:25 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:25 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:27 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:27 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:27 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:27 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:27 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:27 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:32 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:32 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:32 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:32 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:32 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:32 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:33 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:33 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:33 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:33 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:33 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:34 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:37 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:38 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:38 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:39 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:39 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:39 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:39 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:40 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:40 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:40 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:40 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:40 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:45 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:45 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:45 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:45 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:45 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:45 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:49 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:49 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:49 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:49 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:49 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:49 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:54 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:54 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:54 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 2) Nov 26 14:13:55 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:55 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:55 alix last message repeated 2 times Nov 26 14:13:55 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:56 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:56 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:57 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 2) Nov 26 14:13:58 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:58 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:58 alix last message repeated 2 times Nov 26 14:13:58 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:13:58 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:13:58 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:13:58 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:13:59 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:59 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:13:59 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:03 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:03 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:04 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:04 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:04 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:04 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:05 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:05 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:06 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:10 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:10 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:10 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:10 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:10 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:15 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:15 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:16 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:16 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:16 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:16 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:17 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:17 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:17 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:17 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:17 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:17 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:17 alix ntpd[1319]: Listening on interface #8 eth0, 192.168.1.100#123 Enabled Nov 26 14:14:22 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:22 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:22 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:22 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:22 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:22 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:23 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:23 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:25 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:25 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:25 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:25 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:26 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:26 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:28 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:28 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:28 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:28 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:31 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:31 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:31 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:31 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:31 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:32 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:35 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:35 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:38 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:38 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:38 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:38 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:40 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:40 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:42 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:42 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:44 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:44 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:44 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:44 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:45 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:45 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:47 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:47 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:47 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:47 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:51 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:51 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:14:53 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:14:53 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:53 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:14:54 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:14:57 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:14:57 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:00 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:00 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:00 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:00 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:02 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:02 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:04 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:04 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:04 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:04 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:04 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:07 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:07 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:08 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:08 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:08 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:08 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:12 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:12 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:12 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:12 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:12 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:12 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:17 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:17 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:17 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:17 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:17 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:18 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:19 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:19 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:19 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:19 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:19 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:20 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:20 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:22 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:22 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:22 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:22 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:22 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:22 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:23 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:27 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:27 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:29 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:29 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:29 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:29 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:33 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:33 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:35 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:35 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:35 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:35 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:35 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:36 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:39 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:39 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:41 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:46 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:46 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:47 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:47 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:47 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:47 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:49 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:49 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:50 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:50 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:50 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:51 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:54 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:15:54 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:15:57 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:57 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:57 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:15:57 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:58 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:59 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:15:59 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:15:59 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:16:02 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:16:02 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:16:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:16:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:05 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:16:08 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:16:09 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:16:09 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:16:09 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:16:11 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:16:11 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:16:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:16:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:12 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:16:15 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:16:15 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:16:18 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:16:18 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:18 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:18 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:16:19 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:16:19 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:16:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:16:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:21 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:16:26 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:16:26 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:16:27 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 exits power save mode Nov 26 14:16:27 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:27 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 26 14:16:28 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode Nov 26 14:16:32 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 0) Nov 26 14:16:32 alix kernel: STA 00:22:41:91:8e:96 aid 1: PS buffer (entries before 1) Nov 26 14:22:11 alix syslogd 1.5.0#5: restart. Nov 26 14:22:11 alix kernel: klogd 1.5.0#5, log source = /proc/kmsg started. Nov 26 14:22:11 alix kernel: BIOS EBDA/lowmem at: 00000000/000a0000 Nov 26 14:22:11 alix kernel: Linux version 2.6.28-rc6-wl (stefan@stefan-laptop) (gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11) ) #16 Wed Nov 26 14:06:59 CET 2008 Nov 26 14:22:11 alix kernel: KERNEL supported cpus: Nov 26 14:22:11 alix kernel: Intel GenuineIntel Nov 26 14:22:11 alix kernel: AMD AuthenticAMD Nov 26 14:22:11 alix kernel: NSC Geode by NSC Nov 26 14:22:11 alix kernel: Cyrix CyrixInstead Nov 26 14:22:11 alix kernel: Centaur CentaurHauls Nov 26 14:22:11 alix kernel: Transmeta GenuineTMx86 Nov 26 14:22:11 alix kernel: Transmeta TransmetaCPU Nov 26 14:22:11 alix kernel: UMC UMC UMC UMC Nov 26 14:22:11 alix kernel: BIOS-provided physical RAM map: Nov 26 14:22:11 alix kernel: BIOS-e820: 0000000000000000 - 00000000000a0000 (usable) Nov 26 14:22:11 alix kernel: BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) Nov 26 14:22:11 alix kernel: BIOS-e820: 0000000000100000 - 0000000010000000 (usable) Nov 26 14:22:11 alix kernel: BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved) Nov 26 14:22:11 alix kernel: DMI not present or invalid. Nov 26 14:22:11 alix kernel: last_pfn = 0x10000 max_arch_pfn = 0x100000 Nov 26 14:22:11 alix kernel: kernel direct mapping tables up to 10000000 @ 7000-c000 Nov 26 14:22:11 alix kernel: ACPI Error (tbxfroot-0218): A valid RSDP was not found [20080926] Nov 26 14:22:12 alix kernel: 256MB LOWMEM available. Nov 26 14:22:12 alix kernel: mapped low ram: 0 - 10000000 Nov 26 14:22:12 alix kernel: low ram: 00000000 - 10000000 Nov 26 14:22:12 alix kernel: bootmap 00001000 - 00003000 Nov 26 14:22:12 alix kernel: (6 early reservations) ==> bootmem [0000000000 - 0010000000] Nov 26 14:22:12 alix kernel: #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000] Nov 26 14:22:12 alix kernel: #1 [0000100000 - 0000481da0] TEXT DATA BSS ==> [0000100000 - 0000481da0] Nov 26 14:22:12 alix kernel: #2 [0000482000 - 0000485000] INIT_PG_TABLE ==> [0000482000 - 0000485000] Nov 26 14:22:12 alix kernel: #3 [000009f000 - 0000100000] BIOS reserved ==> [000009f000 - 0000100000] Nov 26 14:22:12 alix kernel: #4 [0000007000 - 0000008000] PGTABLE ==> [0000007000 - 0000008000] Nov 26 14:22:12 alix /usr/sbin/cron[1272]: (CRON) INFO (pidfile fd = 3) Nov 26 14:22:12 alix kernel: #5 [0000001000 - 0000003000] BOOTMAP ==> [0000001000 - 0000003000] Nov 26 14:22:12 alix /usr/sbin/cron[1273]: (CRON) STARTUP (fork ok) Nov 26 14:22:12 alix kernel: Zone PFN ranges: Nov 26 14:22:12 alix kernel: DMA 0x00000000 -> 0x00001000 Nov 26 14:22:12 alix /usr/sbin/cron[1273]: (CRON) INFO (Running @reboot jobs) Nov 26 14:22:12 alix kernel: Normal 0x00001000 -> 0x00010000 Nov 26 14:22:12 alix kernel: Movable zone start PFN for each node Nov 26 14:22:12 alix kernel: early_node_map[2] active PFN ranges Nov 26 14:22:12 alix kernel: 0: 0x00000000 -> 0x000000a0 Nov 26 14:22:12 alix kernel: 0: 0x00000100 -> 0x00010000 Nov 26 14:22:12 alix kernel: On node 0 totalpages: 65440 Nov 26 14:22:12 alix kernel: free_area_init_node: node 0, pgdat c03ed39c, node_mem_map c1000000 Nov 26 14:22:12 alix kernel: DMA zone: 32 pages used for memmap Nov 26 14:22:12 alix kernel: DMA zone: 0 pages reserved Nov 26 14:22:12 alix kernel: DMA zone: 3968 pages, LIFO batch:0 Nov 26 14:22:12 alix kernel: Normal zone: 480 pages used for memmap Nov 26 14:22:12 alix kernel: Normal zone: 60960 pages, LIFO batch:15 Nov 26 14:22:12 alix kernel: Movable zone: 0 pages used for memmap Nov 26 14:22:12 alix kernel: No local APIC present or hardware disabled Nov 26 14:22:12 alix kernel: PM: Registered nosave memory: 00000000000a0000 - 00000000000f0000 Nov 26 14:22:12 alix kernel: PM: Registered nosave memory: 00000000000f0000 - 0000000000100000 Nov 26 14:22:12 alix kernel: Allocating PCI resources starting at 20000000 (gap: 10000000:eff00000) Nov 26 14:22:12 alix kernel: Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64928 Nov 26 14:22:12 alix kernel: Kernel command line: root=/dev/sda1 ro Nov 26 14:22:12 alix kernel: Initializing CPU#0 Nov 26 14:22:12 alix kernel: PID hash table entries: 1024 (order: 10, 4096 bytes) Nov 26 14:22:12 alix kernel: Fast TSC calibration using PIT Nov 26 14:22:12 alix kernel: Detected 498.071 MHz processor. Nov 26 14:22:12 alix kernel: Console: colour dummy device 80x25 Nov 26 14:22:12 alix kernel: console [tty0] enabled Nov 26 14:22:12 alix dhcpd: receive_packet failed on wlan0: Network is down Nov 26 14:22:12 alix kernel: Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Nov 26 14:22:12 alix kernel: Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Nov 26 14:22:12 alix kernel: Memory: 255696k/262144k available (2082k kernel code, 5888k reserved, 955k data, 280k init, 0k highmem) Nov 26 14:22:12 alix kernel: virtual kernel memory layout: Nov 26 14:22:12 alix kernel: fixmap : 0xfffab000 - 0xfffff000 ( 336 kB) Nov 26 14:22:12 alix kernel: vmalloc : 0xd0800000 - 0xfffa9000 ( 759 MB) Nov 26 14:22:12 alix kernel: lowmem : 0xc0000000 - 0xd0000000 ( 256 MB) Nov 26 14:22:12 alix kernel: .init : 0xc03fa000 - 0xc0440000 ( 280 kB) Nov 26 14:22:12 alix kernel: .data : 0xc03089d5 - 0xc03f7614 ( 955 kB) Nov 26 14:22:12 alix kernel: .text : 0xc0100000 - 0xc03089d5 (2082 kB) Nov 26 14:22:12 alix kernel: Checking if this processor honours the WP bit even in supervisor mode...Ok. Nov 26 14:22:12 alix kernel: Calibrating delay loop (skipped), value calculated using timer frequency.. 996.14 BogoMIPS (lpj=1992284) Nov 26 14:22:12 alix kernel: Security Framework initialized Nov 26 14:22:12 alix kernel: Mount-cache hash table entries: 512 Nov 26 14:22:12 alix kernel: Initializing cgroup subsys ns Nov 26 14:22:13 alix kernel: Initializing cgroup subsys cpuacct Nov 26 14:22:13 alix kernel: CPU: L1 I Cache: 64K (32 bytes/line), D cache 64K (32 bytes/line) Nov 26 14:22:13 alix kernel: CPU: L2 Cache: 128K (32 bytes/line) Nov 26 14:22:13 alix kernel: CPU: Geode(TM) Integrated Processor by AMD PCS stepping 02 Nov 26 14:22:13 alix kernel: Checking 'hlt' instruction... OK. Nov 26 14:22:13 alix kernel: Freeing SMP alternatives: 0k freed Nov 26 14:22:13 alix kernel: ACPI: Core revision 20080926 Nov 26 14:22:13 alix kernel: ACPI Exception (tbxface-0627): AE_NO_ACPI_TABLES, While loading namespace from ACPI tables [20080926] Nov 26 14:22:13 alix kernel: ACPI: Unable to load the System Description Tables Nov 26 14:22:13 alix kernel: net_namespace: 768 bytes Nov 26 14:22:13 alix kernel: NET: Registered protocol family 16 Nov 26 14:22:13 alix kernel: PCI: PCI BIOS revision 2.10 entry at 0xfcc2b, last bus=0 Nov 26 14:22:13 alix kernel: PCI: Using configuration type 1 for base access Nov 26 14:22:13 alix kernel: ACPI: Interpreter disabled. Nov 26 14:22:13 alix kernel: SCSI subsystem initialized Nov 26 14:22:13 alix ntpd[1310]: ntpd 4.2.4p4@1.1520-o Wed Jul 16 12:11:41 UTC 2008 (1) Nov 26 14:22:13 alix kernel: libata version 3.00 loaded. Nov 26 14:22:13 alix ntpd[1311]: precision = 1.000 usec Nov 26 14:22:13 alix kernel: PCI: Probing PCI hardware Nov 26 14:22:13 alix ntpd[1311]: Listening on interface #0 wildcard, 0.0.0.0#123 Disabled Nov 26 14:22:13 alix kernel: PCI: Probing PCI hardware (bus 00) Nov 26 14:22:13 alix ntpd[1311]: Listening on interface #1 wildcard, ::#123 Disabled Nov 26 14:22:13 alix kernel: pci 0000:00:01.0: reg 10 io port: [0xac1c-0xac1f] Nov 26 14:22:13 alix ntpd[1311]: Listening on interface #2 lo, ::1#123 Enabled Nov 26 14:22:13 alix dhcpd: Internet Systems Consortium DHCP Server V3.1.1 Nov 26 14:22:13 alix kernel: pci 0000:00:01.2: reg 10 32bit mmio: [0xefff4000-0xefff7fff] Nov 26 14:22:13 alix ntpd[1311]: bind() fd 19, family 10, port 123, scope 4, addr fe80::260:b3ff:fe5d:388, in6_is_addr_multicast=0 flags=0x11 fails: Cannot assign requested address Nov 26 14:22:13 alix dhcpd: Copyright 2004-2008 Internet Systems Consortium. Nov 26 14:22:13 alix kernel: pci 0000:00:09.0: reg 10 io port: [0x1000-0x10ff] Nov 26 14:22:13 alix ntpd[1311]: unable to create socket on wlan0 (3) for fe80::260:b3ff:fe5d:388#123 Nov 26 14:22:13 alix dhcpd: All rights reserved. Nov 26 14:22:13 alix kernel: pci 0000:00:09.0: reg 14 32bit mmio: [0xe0000000-0xe00000ff] Nov 26 14:22:13 alix ntpd[1311]: failed to initialize interface for address fe80::260:b3ff:fe5d:388 Nov 26 14:22:13 alix dhcpd: For info, please visit http://www.isc.org/sw/dhcp/ Nov 26 14:22:13 alix kernel: pci 0000:00:09.0: supports D1 D2 Nov 26 14:22:13 alix ntpd[1311]: Listening on interface #4 eth0, fe80::20d:b9ff:fe13:7220#123 Enabled Nov 26 14:22:13 alix dhcpd: Internet Systems Consortium DHCP Server V3.1.1 Nov 26 14:22:13 alix kernel: pci 0000:00:09.0: PME# supported from D0 D1 D2 D3hot D3cold Nov 26 14:22:13 alix ntpd[1311]: Listening on interface #5 lo, 127.0.0.1#123 Enabled Nov 26 14:22:13 alix dhcpd: Copyright 2004-2008 Internet Systems Consortium. Nov 26 14:22:13 alix kernel: pci 0000:00:09.0: PME# disabled Nov 26 14:22:13 alix ntpd[1311]: Listening on interface #6 wlan0, 192.168.177.1#123 Enabled Nov 26 14:22:13 alix dhcpd: All rights reserved. Nov 26 14:22:13 alix kernel: pci 0000:00:0e.0: reg 10 32bit mmio: [0xe0040000-0xe0041fff] Nov 26 14:22:13 alix ntpd[1311]: kernel time sync status 0040 Nov 26 14:22:13 alix dhcpd: For info, please visit http://www.isc.org/sw/dhcp/ Nov 26 14:22:13 alix kernel: pci 0000:00:0e.0: supports D1 D2 Nov 26 14:22:13 alix ntpd[1311]: frequency initialized 0.000 PPM from /var/lib/ntp/ntp.drift Nov 26 14:22:13 alix kernel: pci 0000:00:0e.0: PME# supported from D0 D1 D2 D3hot D3cold Nov 26 14:22:13 alix kernel: pci 0000:00:0e.0: PME# disabled Nov 26 14:22:13 alix kernel: pci 0000:00:0f.0: reg 10 io port: [0x6000-0x6007] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.0: reg 14 io port: [0x6100-0x61ff] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.0: reg 18 io port: [0x6200-0x623f] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.0: reg 20 io port: [0x9d00-0x9d7f] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.0: reg 24 io port: [0x9c00-0x9c3f] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.2: reg 20 io port: [0xff00-0xff0f] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.3: reg 10 io port: [0xfe00-0xfe7f] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.4: reg 10 32bit mmio: [0xefffe000-0xefffefff] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.4: PME# supported from D0 D3hot D3cold Nov 26 14:22:13 alix kernel: pci 0000:00:0f.4: PME# disabled Nov 26 14:22:13 alix kernel: pci 0000:00:0f.5: reg 10 32bit mmio: [0xefffd000-0xefffdfff] Nov 26 14:22:13 alix kernel: pci 0000:00:0f.5: PME# supported from D0 D3hot D3cold Nov 26 14:22:13 alix kernel: pci 0000:00:0f.5: PME# disabled Nov 26 14:22:13 alix kernel: cfg80211: Using static regulatory domain info Nov 26 14:22:13 alix kernel: cfg80211: Regulatory domain: US Nov 26 14:22:13 alix kernel: ^I(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) Nov 26 14:22:13 alix kernel: ^I(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm) Nov 26 14:22:13 alix kernel: ^I(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) Nov 26 14:22:13 alix kernel: ^I(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) Nov 26 14:22:13 alix kernel: ^I(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) Nov 26 14:22:13 alix kernel: ^I(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) Nov 26 14:22:13 alix kernel: ^I(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm) Nov 26 14:22:13 alix kernel: cfg80211: Calling CRDA for country: US Nov 26 14:22:13 alix kernel: pnp: PnP ACPI: disabled Nov 26 14:22:13 alix kernel: PnPBIOS: Scanning system for PnP BIOS support... Nov 26 14:22:13 alix kernel: PnPBIOS: PnP BIOS support was not detected. Nov 26 14:22:14 alix kernel: bus: 00 index 0 io port: [0x00-0xffff] Nov 26 14:22:14 alix kernel: bus: 00 index 1 mmio: [0x000000-0xffffffff] Nov 26 14:22:14 alix kernel: NET: Registered protocol family 2 Nov 26 14:22:14 alix kernel: IP route cache hash table entries: 2048 (order: 1, 8192 bytes) Nov 26 14:22:14 alix kernel: TCP established hash table entries: 8192 (order: 4, 65536 bytes) Nov 26 14:22:14 alix kernel: TCP bind hash table entries: 8192 (order: 3, 32768 bytes) Nov 26 14:22:14 alix kernel: TCP: Hash tables configured (established 8192 bind 8192) Nov 26 14:22:14 alix kernel: TCP reno registered Nov 26 14:22:14 alix kernel: NET: Registered protocol family 1 Nov 26 14:22:14 alix kernel: platform rtc_cmos: registered platform RTC device (no PNP device found) Nov 26 14:22:14 alix kernel: audit: initializing netlink socket (disabled) Nov 26 14:22:14 alix kernel: type=2000 audit(1227705711.043:1): initialized Nov 26 14:22:14 alix kernel: HugeTLB registered 4 MB page size, pre-allocated 0 pages Nov 26 14:22:14 alix kernel: VFS: Disk quotas dquot_6.5.1 Nov 26 14:22:14 alix kernel: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) Nov 26 14:22:14 alix kernel: msgmni has been set to 499 Nov 26 14:22:14 alix kernel: alg: No test for stdrng (krng) Nov 26 14:22:14 alix kernel: io scheduler noop registered Nov 26 14:22:14 alix kernel: io scheduler anticipatory registered Nov 26 14:22:14 alix kernel: io scheduler deadline registered Nov 26 14:22:14 alix kernel: io scheduler cfq registered (default) Nov 26 14:22:14 alix kernel: isapnp: Scanning for PnP cards... Nov 26 14:22:14 alix kernel: isapnp: No Plug & Play device found Nov 26 14:22:14 alix kernel: AMD Geode RNG detected Nov 26 14:22:14 alix kernel: cs5535_gpio: base=0x6100 mask=0xb003c66 major=253 Nov 26 14:22:14 alix kernel: Serial: 8250/16550 driver4 ports, IRQ sharing enabled Nov 26 14:22:14 alix kernel: serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A Nov 26 14:22:14 alix kernel: brd: module loaded Nov 26 14:22:14 alix ntpd[1311]: Listening on interface #7 wlan0, fe80::260:b3ff:fe5d:388#123 Enabled Nov 26 14:22:14 alix kernel: Uniform Multi-Platform E-IDE driver Nov 26 14:22:14 alix kernel: ide-gd driver 1.18 Nov 26 14:22:14 alix kernel: Driver 'sd' needs updating - please use bus_type methods Nov 26 14:22:14 alix kernel: SCSI Media Changer driver v0.25 Nov 26 14:22:14 alix kernel: Driver 'ch' needs updating - please use bus_type methods Nov 26 14:22:14 alix kernel: pata_amd 0000:00:0f.2: version 0.3.10 Nov 26 14:22:14 alix kernel: scsi0 : pata_amd Nov 26 14:22:14 alix kernel: scsi1 : pata_amd Nov 26 14:22:14 alix kernel: ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xff00 irq 14 Nov 26 14:22:14 alix kernel: ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xff08 irq 15 Nov 26 14:22:14 alix kernel: ata1.00: CFA: SanDisk SDCFX4-8192, HDX 4.20, max UDMA/66 Nov 26 14:22:14 alix kernel: ata1.00: 16007040 sectors, multi 0: LBA Nov 26 14:22:14 alix kernel: ata1.00: limited to UDMA/33 due to 40-wire cable Nov 26 14:22:14 alix kernel: ata1.00: configured for UDMA/33 Nov 26 14:22:14 alix kernel: ata2: port disabled. ignoring. Nov 26 14:22:14 alix kernel: scsi 0:0:0:0: Direct-Access ATA SanDisk SDCFX4-8 HDX PQ: 0 ANSI: 5 Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] 16007040 512-byte hardware sectors: (8.19 GB/7.63 GiB) Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] Write Protect is off Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] 16007040 512-byte hardware sectors: (8.19 GB/7.63 GiB) Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] Write Protect is off Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA Nov 26 14:22:14 alix kernel: sda: sda1 Nov 26 14:22:14 alix kernel: sd 0:0:0:0: [sda] Attached SCSI removable disk Nov 26 14:22:14 alix kernel: sd 0:0:0:0: Attached scsi generic sg0 type 0 Nov 26 14:22:14 alix kernel: PNP: No PS/2 controller found. Probing ports directly. Nov 26 14:22:14 alix kernel: i8042.c: No controller found. Nov 26 14:22:14 alix kernel: mice: PS/2 mouse device common for all mice Nov 26 14:22:14 alix kernel: i2c /dev entries driver Nov 26 14:22:14 alix kernel: cpuidle: using governor ladder Nov 26 14:22:14 alix kernel: cpuidle: using governor menu Nov 26 14:22:14 alix kernel: TCP bic registered Nov 26 14:22:14 alix kernel: NET: Registered protocol family 17 Nov 26 14:22:14 alix kernel: IO APIC resources could be not be allocated. Nov 26 14:22:14 alix kernel: Using IPI Shortcut mode Nov 26 14:22:14 alix kernel: registered taskstats version 1 Nov 26 14:22:14 alix kernel: EXT3-fs: INFO: recovery required on readonly filesystem. Nov 26 14:22:14 alix kernel: EXT3-fs: write access will be enabled during recovery. Nov 26 14:22:14 alix kernel: kjournald starting. Commit interval 5 seconds Nov 26 14:22:14 alix kernel: EXT3-fs: recovery complete. Nov 26 14:22:14 alix kernel: EXT3-fs: mounted filesystem with journal data mode. Nov 26 14:22:14 alix kernel: VFS: Mounted root (ext3 filesystem) readonly. Nov 26 14:22:14 alix kernel: Freeing unused kernel memory: 280k freed Nov 26 14:22:14 alix kernel: via-rhine.c:v1.10-LK1.4.3 2007-03-06 Written by Donald Becker Nov 26 14:22:14 alix kernel: geode-aes: GEODE AES engine enabled. Nov 26 14:22:14 alix kernel: via-rhine 0000:00:09.0: setting latency timer to 64 Nov 26 14:22:14 alix kernel: eth0: VIA Rhine III (Management Adapter) at 0x11000, 00:0d:b9:13:72:20, IRQ 10. Nov 26 14:22:14 alix kernel: eth0: MII PHY found at address 1, status 0x7869 advertising 05e1 Link cde1. Nov 26 14:22:14 alix kernel: p54pci 0000:00:0e.0: setting latency timer to 64 Nov 26 14:22:14 alix kernel: p54pci 0000:00:0e.0: firmware: requesting isl3886pci Nov 26 14:22:14 alix kernel: input: PC Speaker as /class/input/input0 Nov 26 14:22:14 alix kernel: p54: LM86 firmware Nov 26 14:22:14 alix kernel: p54: FW rev 2.13.1.0 - Softmac protocol 5.5 Nov 26 14:22:14 alix kernel: rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0 Nov 26 14:22:14 alix kernel: rtc0: alarms up to one day, 114 bytes nvram Nov 26 14:22:14 alix kernel: usbcore: registered new interface driver usbfs Nov 26 14:22:14 alix kernel: usbcore: registered new interface driver hub Nov 26 14:22:14 alix kernel: usbcore: registered new device driver usb Nov 26 14:22:14 alix kernel: ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver Nov 26 14:22:14 alix kernel: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver Nov 26 14:22:14 alix kernel: Warning! ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not after Nov 26 14:22:14 alix kernel: phy0: hwaddr 00:60:b3:5d:03:88, MAC:isl3886 RF:Frisbee Nov 26 14:22:14 alix kernel: phy0: Selected rate control algorithm 'minstrel' Nov 26 14:22:14 alix kernel: ohci_hcd 0000:00:0f.4: setting latency timer to 64 Nov 26 14:22:14 alix kernel: ohci_hcd 0000:00:0f.4: OHCI Host Controller Nov 26 14:22:14 alix kernel: ohci_hcd 0000:00:0f.4: new USB bus registered, assigned bus number 1 Nov 26 14:22:14 alix kernel: ohci_hcd 0000:00:0f.4: irq 15, io mem 0xefffe000 Nov 26 14:22:14 alix kernel: usb usb1: configuration #1 chosen from 1 choice Nov 26 14:22:14 alix kernel: hub 1-0:1.0: USB hub found Nov 26 14:22:14 alix kernel: hub 1-0:1.0: 4 ports detected Nov 26 14:22:14 alix kernel: ehci_hcd 0000:00:0f.5: setting latency timer to 64 Nov 26 14:22:14 alix kernel: ehci_hcd 0000:00:0f.5: EHCI Host Controller Nov 26 14:22:14 alix kernel: ehci_hcd 0000:00:0f.5: new USB bus registered, assigned bus number 2 Nov 26 14:22:14 alix kernel: ehci_hcd 0000:00:0f.5: irq 15, io mem 0xefffd000 Nov 26 14:22:14 alix kernel: ehci_hcd 0000:00:0f.5: USB 2.0 started, EHCI 1.00 Nov 26 14:22:14 alix kernel: usb usb2: configuration #1 chosen from 1 choice Nov 26 14:22:14 alix kernel: hub 2-0:1.0: USB hub found Nov 26 14:22:14 alix kernel: hub 2-0:1.0: 4 ports detected Nov 26 14:22:14 alix kernel: EXT3 FS on sda1, internal journal Nov 26 14:22:15 alix kernel: loop: module loaded Nov 26 14:22:15 alix kernel: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1 Nov 26 14:22:15 alix kernel: NET: Registered protocol family 10 Nov 26 14:22:15 alix kernel: lo: Disabled Privacy Extensions Nov 26 14:22:15 alix kernel: ADDRCONF(NETDEV_UP): wlan0: link is not ready Nov 26 14:22:15 alix kernel: warning: `ntpd' uses 32-bit capabilities (legacy support in use) Nov 26 14:22:15 alix dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67 Nov 26 14:22:18 alix dhclient: DHCPACK from 192.168.1.1 Nov 26 14:22:18 alix dhclient: bound to 192.168.1.100 -- renewal in 253 seconds. Nov 26 14:22:20 alix kernel: eth0: no IPv6 routers present Nov 26 14:22:22 alix kernel: wlan0: no IPv6 routers present ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-26 13:38 ` Stefan Steuerwald @ 2008-11-26 21:13 ` Christian Lamparter 2008-11-27 5:34 ` Stefan Steuerwald 2008-11-27 8:57 ` Stefan Steuerwald 0 siblings, 2 replies; 20+ messages in thread From: Christian Lamparter @ 2008-11-26 21:13 UTC (permalink / raw) To: Stefan Steuerwald; +Cc: Johannes Berg, linux-wireless, John W Linville On Wednesday 26 November 2008 14:38:59 Stefan Steuerwald wrote: > console [netcon0] enabled > netconsole: network logging started > BUG: unable to handle kernel NULL pointer dereference at 00000038 > IP: [<d08260fa>] p54_assign_address+0x67/0x14b [p54common] > *pde = 00000000 > Oops: 0000 [#1] > last sysfs file: /sys/class/net/lo/operstate > Modules linked in: netconsole ipv6 loop evdev ehci_hcd ohci_hcd > rtc_cmos rtc_core pcspkr rtc_lib p54pci usbcore via_rhine p54common > geode_aes mii [last unloaded: netconsole] > > Pid: 0, comm: swapper Not tainted (2.6.28-rc6-wl #16) > EIP: 0060:[<d08260fa>] EFLAGS: 00010002 CPU: 0 > EIP is at p54_assign_address+0x67/0x14b [p54common] > EAX: cf98b178 EBX: cf86ee40 ECX: 00000000 EDX: 00000000 > ESI: 000000f8 EDI: 00000000 EBP: 0002027c ESP: c03f9c4c > DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 > Process swapper (pid: 0, ti=c03f8000 task=c03c4380 task.ti=c03f8000) > Stack: > 00000002 ce4d5880 ce4c48b4 cf86e1a0 00000000 00000038 00020200 00000286 > cf86ee40 00000004 ce4d58b2 ce4d588c d0826fd7 00000090 014c48d4 ce4c48b4 > cf86e1a0 0086ee40 00000004 02000282 ce4c48d4 cf86ef10 cf86ee40 ce4d5880 > Call Trace: > [<d0826fd7>] p54_tx+0x416/0x482 [p54common] > [<c02fb7c2>] __ieee80211_tx+0x35/0xf8 > [<c02fc235>] ieee80211_master_start_xmit+0x2ab/0x396 > [<c01048d3>] common_interrupt+0x23/0x30 > [<c0297368>] dev_hard_start_xmit+0x16e/0x1c9 > [<c02a3518>] __qdisc_run+0xa2/0x15c > [<c0297796>] dev_queue_xmit+0x2f5/0x3c5 > [<c02f8608>] ieee80211_invoke_rx_handlers+0x488/0x1486 > [<c02d9d14>] bictcp_cong_avoid+0x10/0x160 > [<c02bd904>] tcp_ack+0x16f0/0x1850 > [<c01170f0>] enqueue_task_fair+0x12a/0x16b > [<c02c0c37>] tcp_current_mss+0x6b/0xe4 > [<c02f9b50>] __ieee80211_rx_handle_packet+0x54a/0x56d > [<c02fa1fe>] __ieee80211_rx+0x491/0x4e3 > [<c02ec95d>] ieee80211_tasklet_handler+0x60/0xd6 > [<c011cfae>] tasklet_action+0x3e/0x64 > [<c011d305>] __do_softirq+0x4a/0xbc > [<c011d399>] do_softirq+0x22/0x26 > [<c011d44f>] irq_exit+0x25/0x55 > [<c0105996>] do_IRQ+0x5a/0x6c > [<c01048d3>] common_interrupt+0x23/0x30 > [<c0108743>] default_idle+0x25/0x38 > [<c0102926>] cpu_idle+0x41/0x5b > Code: 0f 84 01 01 00 00 9c 8f 44 24 1c fa 8b 53 10 31 ff 89 6c 24 18 > 89 14 24 31 d2 eb 3f 8b 4c 24 10 83 c1 38 89 4c 24 14 8b 4c 24 10 <8b> > 41 38 29 e8 85 d2 75 0d 39 f0 72 09 8b 51 04 29 f0 89 6c 24 > EIP: [<d08260fa>] p54_assign_address+0x67/0x14b [p54common] SS:ESP 0068:c03f9c4c > Kernel panic - not syncing: Fatal exception in interrupt > wt*, this bug is "impossible": The bug happens when p54_assign_address looks for a free space for a new frame: here's the code: [...] if (!skb) return -EINVAL; <--- we don't accept "null" skbs spin_lock_irqsave(&priv->tx_queue.lock, flags); <--- we are under a spin_lock with irq disabled left = skb_queue_len(&priv->tx_queue); while (left--) { u32 hole_size; info = IEEE80211_SKB_CB(entry); <--- Here it BUGs, [...] your binary module said that skb->cb is at 0x38, so our "entry" is really NULL right when it BUGS. And this only happens means that the queue was modified "outside" of our driver. Since we always take the spin_lock_irqsave (of course, only of "our" tx_queue). if we need to do anything with the data in the queue, Of course, since the package as queued while the station was sleeping somewhere mac80211, so maybe it still holds a reference to, but then other drivers would have already spotted this misbehaviour long time ago... So? back to square one... I guess. Regards, Chr ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-26 21:13 ` Christian Lamparter @ 2008-11-27 5:34 ` Stefan Steuerwald 2008-11-27 8:57 ` Stefan Steuerwald 1 sibling, 0 replies; 20+ messages in thread From: Stefan Steuerwald @ 2008-11-27 5:34 UTC (permalink / raw) To: Christian Lamparter; +Cc: Johannes Berg, linux-wireless, John W Linville A-ha! O-kay ;-) I assume then that the last patch set that removes the problem for me is perfectly valid, right? Just that something changes the contents of my RAM. Let me memtest, maybe recompile my kernel for 486. Other ideas? Thank you for this! I very much appreciate the time you people are putting into this thing. Stefan. 2008/11/26 Christian Lamparter <chunkeey@web.de>: > On Wednesday 26 November 2008 14:38:59 Stefan Steuerwald wrote: >> console [netcon0] enabled >> netconsole: network logging started >> BUG: unable to handle kernel NULL pointer dereference at 00000038 >> IP: [<d08260fa>] p54_assign_address+0x67/0x14b [p54common] >> *pde = 00000000 >> Oops: 0000 [#1] >> last sysfs file: /sys/class/net/lo/operstate >> Modules linked in: netconsole ipv6 loop evdev ehci_hcd ohci_hcd >> rtc_cmos rtc_core pcspkr rtc_lib p54pci usbcore via_rhine p54common >> geode_aes mii [last unloaded: netconsole] >> >> Pid: 0, comm: swapper Not tainted (2.6.28-rc6-wl #16) >> EIP: 0060:[<d08260fa>] EFLAGS: 00010002 CPU: 0 >> EIP is at p54_assign_address+0x67/0x14b [p54common] >> EAX: cf98b178 EBX: cf86ee40 ECX: 00000000 EDX: 00000000 >> ESI: 000000f8 EDI: 00000000 EBP: 0002027c ESP: c03f9c4c >> DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 >> Process swapper (pid: 0, ti=c03f8000 task=c03c4380 task.ti=c03f8000) >> Stack: >> 00000002 ce4d5880 ce4c48b4 cf86e1a0 00000000 00000038 00020200 00000286 >> cf86ee40 00000004 ce4d58b2 ce4d588c d0826fd7 00000090 014c48d4 ce4c48b4 >> cf86e1a0 0086ee40 00000004 02000282 ce4c48d4 cf86ef10 cf86ee40 ce4d5880 >> Call Trace: >> [<d0826fd7>] p54_tx+0x416/0x482 [p54common] >> [<c02fb7c2>] __ieee80211_tx+0x35/0xf8 >> [<c02fc235>] ieee80211_master_start_xmit+0x2ab/0x396 >> [<c01048d3>] common_interrupt+0x23/0x30 >> [<c0297368>] dev_hard_start_xmit+0x16e/0x1c9 >> [<c02a3518>] __qdisc_run+0xa2/0x15c >> [<c0297796>] dev_queue_xmit+0x2f5/0x3c5 >> [<c02f8608>] ieee80211_invoke_rx_handlers+0x488/0x1486 >> [<c02d9d14>] bictcp_cong_avoid+0x10/0x160 >> [<c02bd904>] tcp_ack+0x16f0/0x1850 >> [<c01170f0>] enqueue_task_fair+0x12a/0x16b >> [<c02c0c37>] tcp_current_mss+0x6b/0xe4 >> [<c02f9b50>] __ieee80211_rx_handle_packet+0x54a/0x56d >> [<c02fa1fe>] __ieee80211_rx+0x491/0x4e3 >> [<c02ec95d>] ieee80211_tasklet_handler+0x60/0xd6 >> [<c011cfae>] tasklet_action+0x3e/0x64 >> [<c011d305>] __do_softirq+0x4a/0xbc >> [<c011d399>] do_softirq+0x22/0x26 >> [<c011d44f>] irq_exit+0x25/0x55 >> [<c0105996>] do_IRQ+0x5a/0x6c >> [<c01048d3>] common_interrupt+0x23/0x30 >> [<c0108743>] default_idle+0x25/0x38 >> [<c0102926>] cpu_idle+0x41/0x5b >> Code: 0f 84 01 01 00 00 9c 8f 44 24 1c fa 8b 53 10 31 ff 89 6c 24 18 >> 89 14 24 31 d2 eb 3f 8b 4c 24 10 83 c1 38 89 4c 24 14 8b 4c 24 10 <8b> >> 41 38 29 e8 85 d2 75 0d 39 f0 72 09 8b 51 04 29 f0 89 6c 24 >> EIP: [<d08260fa>] p54_assign_address+0x67/0x14b [p54common] SS:ESP 0068:c03f9c4c >> Kernel panic - not syncing: Fatal exception in interrupt >> > wt*, this bug is "impossible": > > The bug happens when p54_assign_address looks for a free space for a new frame: > here's the code: > [...] > if (!skb) > return -EINVAL; <--- we don't accept "null" skbs > > spin_lock_irqsave(&priv->tx_queue.lock, flags); <--- we are under a spin_lock with irq disabled > left = skb_queue_len(&priv->tx_queue); > while (left--) { > u32 hole_size; > info = IEEE80211_SKB_CB(entry); <--- Here it BUGs, > [...] > > your binary module said that skb->cb is at 0x38, > so our "entry" is really NULL right when it BUGS. > And this only happens means that the queue was > modified "outside" of our driver. > > Since we always take the spin_lock_irqsave (of course, > only of "our" tx_queue). if we need to do anything with the data in the queue, > > Of course, since the package as queued while the station was sleeping > somewhere mac80211, so maybe it still holds a reference to, but then > other drivers would have already spotted this misbehaviour long time ago... > > So? back to square one... I guess. > > Regards, > Chr > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-26 21:13 ` Christian Lamparter 2008-11-27 5:34 ` Stefan Steuerwald @ 2008-11-27 8:57 ` Stefan Steuerwald 2008-11-27 11:06 ` Christian Lamparter 1 sibling, 1 reply; 20+ messages in thread From: Stefan Steuerwald @ 2008-11-27 8:57 UTC (permalink / raw) To: Christian Lamparter; +Cc: Johannes Berg, linux-wireless, John W Linville Seems solved! Maybe a little premature, but I need to blurt this out... Don't know why, but I think I was not thorough enough in my kernel config: - I have a so-called alix board featuring a Geode LX 800 - I had tried to set processor type to Geode GX/LX, but that did not boot (hangs somewhere) - I didn't bother to find out why, but compiled for 486 instead (worked) - In the meantime, I copied/merged a kernel .config from another branch with processor type = 586/686/etc, which went unnoticed by me, but seemed to work all the time (except maybe for that last kernel BUG) - Now I compiled for Geode GX/LX again, and set CONFIG_GEODE_MFGPT_TIMER=n (as per this info here: https://kerneltrap.org/mailarchive/linux-kernel/2008/1/20/585236) which makes my kernel boot and SEEMS TO MAKE THAT CRASH GO AWAY!!! At least I haven't observed the crash in the last 60 minutes, whereas before it took only 1-2 minutes every time to turn it up. Will test this all day. The three patches mentioned before are applied, and my app-level timeout is still gone, and the "dropped filtered TX" messages are gone as well. Christian, should I actually test your p54-sta-flags-v3 patch? Regards, Stefan. 2008/11/26 Christian Lamparter <chunkeey@web.de>: > On Wednesday 26 November 2008 14:38:59 Stefan Steuerwald wrote: >> console [netcon0] enabled >> netconsole: network logging started >> BUG: unable to handle kernel NULL pointer dereference at 00000038 >> IP: [<d08260fa>] p54_assign_address+0x67/0x14b [p54common] >> *pde = 00000000 >> Oops: 0000 [#1] >> last sysfs file: /sys/class/net/lo/operstate >> Modules linked in: netconsole ipv6 loop evdev ehci_hcd ohci_hcd >> rtc_cmos rtc_core pcspkr rtc_lib p54pci usbcore via_rhine p54common >> geode_aes mii [last unloaded: netconsole] >> >> Pid: 0, comm: swapper Not tainted (2.6.28-rc6-wl #16) >> EIP: 0060:[<d08260fa>] EFLAGS: 00010002 CPU: 0 >> EIP is at p54_assign_address+0x67/0x14b [p54common] >> EAX: cf98b178 EBX: cf86ee40 ECX: 00000000 EDX: 00000000 >> ESI: 000000f8 EDI: 00000000 EBP: 0002027c ESP: c03f9c4c >> DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 >> Process swapper (pid: 0, ti=c03f8000 task=c03c4380 task.ti=c03f8000) >> Stack: >> 00000002 ce4d5880 ce4c48b4 cf86e1a0 00000000 00000038 00020200 00000286 >> cf86ee40 00000004 ce4d58b2 ce4d588c d0826fd7 00000090 014c48d4 ce4c48b4 >> cf86e1a0 0086ee40 00000004 02000282 ce4c48d4 cf86ef10 cf86ee40 ce4d5880 >> Call Trace: >> [<d0826fd7>] p54_tx+0x416/0x482 [p54common] >> [<c02fb7c2>] __ieee80211_tx+0x35/0xf8 >> [<c02fc235>] ieee80211_master_start_xmit+0x2ab/0x396 >> [<c01048d3>] common_interrupt+0x23/0x30 >> [<c0297368>] dev_hard_start_xmit+0x16e/0x1c9 >> [<c02a3518>] __qdisc_run+0xa2/0x15c >> [<c0297796>] dev_queue_xmit+0x2f5/0x3c5 >> [<c02f8608>] ieee80211_invoke_rx_handlers+0x488/0x1486 >> [<c02d9d14>] bictcp_cong_avoid+0x10/0x160 >> [<c02bd904>] tcp_ack+0x16f0/0x1850 >> [<c01170f0>] enqueue_task_fair+0x12a/0x16b >> [<c02c0c37>] tcp_current_mss+0x6b/0xe4 >> [<c02f9b50>] __ieee80211_rx_handle_packet+0x54a/0x56d >> [<c02fa1fe>] __ieee80211_rx+0x491/0x4e3 >> [<c02ec95d>] ieee80211_tasklet_handler+0x60/0xd6 >> [<c011cfae>] tasklet_action+0x3e/0x64 >> [<c011d305>] __do_softirq+0x4a/0xbc >> [<c011d399>] do_softirq+0x22/0x26 >> [<c011d44f>] irq_exit+0x25/0x55 >> [<c0105996>] do_IRQ+0x5a/0x6c >> [<c01048d3>] common_interrupt+0x23/0x30 >> [<c0108743>] default_idle+0x25/0x38 >> [<c0102926>] cpu_idle+0x41/0x5b >> Code: 0f 84 01 01 00 00 9c 8f 44 24 1c fa 8b 53 10 31 ff 89 6c 24 18 >> 89 14 24 31 d2 eb 3f 8b 4c 24 10 83 c1 38 89 4c 24 14 8b 4c 24 10 <8b> >> 41 38 29 e8 85 d2 75 0d 39 f0 72 09 8b 51 04 29 f0 89 6c 24 >> EIP: [<d08260fa>] p54_assign_address+0x67/0x14b [p54common] SS:ESP 0068:c03f9c4c >> Kernel panic - not syncing: Fatal exception in interrupt >> > wt*, this bug is "impossible": > > The bug happens when p54_assign_address looks for a free space for a new frame: > here's the code: > [...] > if (!skb) > return -EINVAL; <--- we don't accept "null" skbs > > spin_lock_irqsave(&priv->tx_queue.lock, flags); <--- we are under a spin_lock with irq disabled > left = skb_queue_len(&priv->tx_queue); > while (left--) { > u32 hole_size; > info = IEEE80211_SKB_CB(entry); <--- Here it BUGs, > [...] > > your binary module said that skb->cb is at 0x38, > so our "entry" is really NULL right when it BUGS. > And this only happens means that the queue was > modified "outside" of our driver. > > Since we always take the spin_lock_irqsave (of course, > only of "our" tx_queue). if we need to do anything with the data in the queue, > > Of course, since the package as queued while the station was sleeping > somewhere mac80211, so maybe it still holds a reference to, but then > other drivers would have already spotted this misbehaviour long time ago... > > So? back to square one... I guess. > > Regards, > Chr > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-27 8:57 ` Stefan Steuerwald @ 2008-11-27 11:06 ` Christian Lamparter 2008-11-27 14:05 ` Stefan Steuerwald 0 siblings, 1 reply; 20+ messages in thread From: Christian Lamparter @ 2008-11-27 11:06 UTC (permalink / raw) To: Stefan Steuerwald; +Cc: Johannes Berg, linux-wireless On Thursday 27 November 2008 09:57:11 Stefan Steuerwald wrote: > At least I haven't observed the crash in the last 60 minutes, whereas > before it took only 1-2 minutes every time to turn it up. > Will test this all day. Finally! > The three patches mentioned before are applied, and my app-level > timeout is still gone, and the "dropped filtered TX" messages are gone > as well. > > Christian, should I actually test your p54-sta-flags-v3 patch? > Yes, of course... v1 and v2 had a stupid "full queue" bug in p54_tx/p54_tx_fill. So let me know if your ipod still works with v3. Regards, Chr ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-27 11:06 ` Christian Lamparter @ 2008-11-27 14:05 ` Stefan Steuerwald 2008-11-27 14:13 ` Johannes Berg 0 siblings, 1 reply; 20+ messages in thread From: Stefan Steuerwald @ 2008-11-27 14:05 UTC (permalink / raw) To: Christian Lamparter; +Cc: Johannes Berg, linux-wireless The v3 patch (together with the other two) works flawlessly for 1.5 hours now, under app-level traffic. I will remove 80211 debugging from the kernel and try again for a longer period, but looking good. I'm unfamiliar with kernel dev procedure. I assume you guys are trying to get confirmation for that and/or submit patches? If you need me for any of that, I'll be there anytime. Also, a hint on whether to send pizzas or iPods would be appreciated ;-) . Thank you all for this marathon of a helpdesk session!!! Stefan. (and - ahem - I'm one of those customers coming back for more...) 2008/11/27 Christian Lamparter <chunkeey@web.de>: > On Thursday 27 November 2008 09:57:11 Stefan Steuerwald wrote: >> At least I haven't observed the crash in the last 60 minutes, whereas >> before it took only 1-2 minutes every time to turn it up. >> Will test this all day. > > Finally! > >> The three patches mentioned before are applied, and my app-level >> timeout is still gone, and the "dropped filtered TX" messages are gone >> as well. >> >> Christian, should I actually test your p54-sta-flags-v3 patch? >> > Yes, of course... v1 and v2 had a stupid "full queue" bug in p54_tx/p54_tx_fill. > So let me know if your ipod still works with v3. > > Regards, > Chr > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-27 14:05 ` Stefan Steuerwald @ 2008-11-27 14:13 ` Johannes Berg 2008-11-27 14:42 ` Christian Lamparter 0 siblings, 1 reply; 20+ messages in thread From: Johannes Berg @ 2008-11-27 14:13 UTC (permalink / raw) To: Stefan Steuerwald; +Cc: Christian Lamparter, linux-wireless [-- Attachment #1: Type: text/plain, Size: 834 bytes --] On Thu, 2008-11-27 at 15:05 +0100, Stefan Steuerwald wrote: > The v3 patch (together with the other two) works flawlessly for 1.5 > hours now, under app-level traffic. > I will remove 80211 debugging from the kernel and try again for a > longer period, but looking good. :) > I'm unfamiliar with kernel dev procedure. I assume you guys are trying > to get confirmation for that and/or submit patches? I've already submitted my patch to John, I suppose Christian will submit his and add you as Tested-by. > If you need me for > any of that, I'll be there anytime. Also, a hint on whether to send > pizzas or iPods would be appreciated ;-) . > > Thank you all for this marathon of a helpdesk session!!! > Stefan. > > (and - ahem - I'm one of those customers coming back for more...) heh :) johannes [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-27 14:13 ` Johannes Berg @ 2008-11-27 14:42 ` Christian Lamparter 2008-11-27 15:16 ` Stefan Steuerwald 2008-11-27 15:59 ` Johannes Berg 0 siblings, 2 replies; 20+ messages in thread From: Christian Lamparter @ 2008-11-27 14:42 UTC (permalink / raw) To: Johannes Berg; +Cc: Stefan Steuerwald, linux-wireless [-- Attachment #1: Type: text/plain, Size: 1033 bytes --] On Thursday 27 November 2008 15:13:54 Johannes Berg wrote: > On Thu, 2008-11-27 at 15:05 +0100, Stefan Steuerwald wrote: > > I'm unfamiliar with kernel dev procedure. I assume you guys are trying > > to get confirmation for that and/or submit patches? > > I've already submitted my patch to John, I suppose Christian will submit > his and add you as Tested-by. p54-sta-flags-v3.diff will be submitted on friday/saturday (probably together with the WEP/TKIP & CCMP offload patch, which could be very useful for embedded systems accesspoints too)... But I don't know what to do with set-and-clear.diff (I guess it's still one of the three patches, or?, I've attached it again, in case johannes missed it? ). Is it really necessary or does your application work without it? > > If you need me for > > any of that, I'll be there anytime. Also, a hint on whether to send > > pizzas or iPods would be appreciated ;-) . Johannes, Isn't there a donation page on the wiki yet? I thought there is such a thing already?! Regards, Chr [-- Attachment #2: set-and-clear.diff --] [-- Type: text/x-diff, Size: 930 bytes --] diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 5a1a60f..077fdb7 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -657,7 +657,8 @@ static void ap_sta_ps_start(struct sta_info *sta) DECLARE_MAC_BUF(mac); atomic_inc(&sdata->bss->num_sta_ps); - set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL); + set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL | + WLAN_STA_CLEAR_PS_FILT); #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG printk(KERN_DEBUG "%s: STA %s aid %d enters power save mode\n", sdata->dev->name, print_mac(mac, sta->sta.addr), sta->sta.aid); @@ -674,7 +675,8 @@ static int ap_sta_ps_end(struct sta_info *sta) atomic_dec(&sdata->bss->num_sta_ps); - clear_sta_flags(sta, WLAN_STA_PS | WLAN_STA_PSPOLL); + set_and_clear_sta_flags(sta, WLAN_STA_CLEAR_PS_FILT, + WLAN_STA_PS | WLAN_STA_PSPOLL); if (!skb_queue_empty(&sta->ps_tx_buf)) sta_info_clear_tim_bit(sta); ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-27 14:42 ` Christian Lamparter @ 2008-11-27 15:16 ` Stefan Steuerwald 2008-11-27 15:59 ` Johannes Berg 1 sibling, 0 replies; 20+ messages in thread From: Stefan Steuerwald @ 2008-11-27 15:16 UTC (permalink / raw) To: Christian Lamparter; +Cc: Johannes Berg, linux-wireless > But I don't know what to do with set-and-clear.diff > (I guess it's still one of the three patches, or?, I've attached it again, > in case johannes missed it? ). > Is it really necessary or does your application work without it? I have done a very quick test of that (exactly what I had before MINUS the set-and-clear.diff). I don't see any problems. I recommend not to include this patch at this time. I am without the hardware until Dec 8, but will continue testing after that. CCMP is on my list (have only done unencrypted stuff yet). Best regards, Stefan. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-27 14:42 ` Christian Lamparter 2008-11-27 15:16 ` Stefan Steuerwald @ 2008-11-27 15:59 ` Johannes Berg 2008-11-28 20:09 ` [RFC] mac80211 & p54: add sta_notify_ps callback Christian Lamparter 1 sibling, 1 reply; 20+ messages in thread From: Johannes Berg @ 2008-11-27 15:59 UTC (permalink / raw) To: Christian Lamparter; +Cc: Stefan Steuerwald, linux-wireless [-- Attachment #1: Type: text/plain, Size: 357 bytes --] On Thu, 2008-11-27 at 15:42 +0100, Christian Lamparter wrote: > Isn't there a donation page on the wiki yet? I thought there is such > a thing already?! We have something for b43 in particular, and madwifi manages funds too, but since we don't have anything "entity" wireless in general, no. I don't even know what we'd use funds for. johannes [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* [RFC] mac80211 & p54: add sta_notify_ps callback 2008-11-27 15:59 ` Johannes Berg @ 2008-11-28 20:09 ` Christian Lamparter 2008-11-28 20:43 ` Christian Lamparter 0 siblings, 1 reply; 20+ messages in thread From: Christian Lamparter @ 2008-11-28 20:09 UTC (permalink / raw) To: Johannes Berg; +Cc: Stefan Steuerwald, linux-wireless Ahh... I knew it! Alright, I looks like I have to change the mac80211 stack for this. What I need is a callback form ap_sta_ps_end & (ap_sta_ps_start). It's because (p54_)set_tim - and therefore p54_sta_unlock as well - won't be executed if the station changes its power state very quickly/or if no package comes in So we have no change to notify the firmware about the stations new power state and then the firmware won't let us send anything to the station. here is my proposal for mac80211: --- diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 6a1d4ea..341ddb1 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -779,6 +779,20 @@ enum sta_notify_cmd { }; /** + * enum sta_notify_ps_cmd - sta powersave notify command + * + * Used with the sta_notify_ps() callback in &struct ieee80211_ops to + * notify the driver if a station made a power state transition. + * + * @STA_WILL_SLEEP: the station will sleep + * @STA_WOKE_UP: the sleeping station woke up + */ +enum sta_notify_ps_cmd { + STA_WILL_SLEEP, + STA_WOKE_UP, +}; + +/** * enum ieee80211_tkip_key_type - get tkip key * * Used by drivers which need to get a tkip key for skb. Some drivers need a @@ -1248,6 +1262,9 @@ enum ieee80211_ampdu_mlme_action { * @sta_notify: Notifies low level driver about addition or removal * of associated station or AP. * + * @sta_notify_ps: Notifies low level driver about the power state transition + * of a associated station. + * * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), * bursting) for a hardware TX queue. * @@ -1314,6 +1331,8 @@ struct ieee80211_ops { int (*set_frag_threshold)(struct ieee80211_hw *hw, u32 value); void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd, struct ieee80211_sta *sta); + void (*sta_notify_ps)(struct ieee80211_hw *hw, + enum sta_notify_ps_cmd, struct ieee80211_sta *sta); int (*conf_tx)(struct ieee80211_hw *hw, u16 queue, const struct ieee80211_tx_queue_params *params); int (*get_tx_stats)(struct ieee80211_hw *hw, diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 5a1a60f..3bf056e 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -654,10 +654,14 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx) static void ap_sta_ps_start(struct sta_info *sta) { struct ieee80211_sub_if_data *sdata = sta->sdata; + struct ieee80211_local *local = sdata->local; DECLARE_MAC_BUF(mac); atomic_inc(&sdata->bss->num_sta_ps); set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL); + if (local->ops->sta_notify_ps) + local->ops->sta_notify_ps(local_to_hw(local), STA_WILL_SLEEP, + &sta->sta); #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG printk(KERN_DEBUG "%s: STA %s aid %d enters power save mode\n", sdata->dev->name, print_mac(mac, sta->sta.addr), sta->sta.aid); @@ -675,6 +679,9 @@ static int ap_sta_ps_end(struct sta_info *sta) atomic_dec(&sdata->bss->num_sta_ps); clear_sta_flags(sta, WLAN_STA_PS | WLAN_STA_PSPOLL); + if (local->ops->sta_notify_ps) + local->ops->sta_notify_ps(local_to_hw(local), STA_WOKE_UP, + &sta->sta); if (!skb_queue_empty(&sta->ps_tx_buf)) sta_info_clear_tim_bit(sta); --- and here is p54 new code: --- diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c --- a/drivers/net/wireless/p54/p54common.c 2008-11-28 20:18:53.000000000 +0100 +++ b/drivers/net/wireless/p54/p54common.c 2008-11-28 20:40:02.000000000 +0100 @@ -653,6 +653,10 @@ static void p54_rx_frame_sent(struct iee __skb_unlink(entry, &priv->tx_queue); spin_unlock_irqrestore(&priv->tx_queue.lock, flags); + entry_hdr = (struct p54_hdr *) entry->data; + entry_data = (struct p54_tx_data *) entry_hdr->data; + priv->tx_stats[entry_data->hw_queue].len--; + if (unlikely(entry == priv->cached_beacon)) { kfree_skb(entry); priv->cached_beacon = NULL; @@ -669,8 +673,6 @@ static void p54_rx_frame_sent(struct iee BUILD_BUG_ON(offsetof(struct ieee80211_tx_info, status.ampdu_ack_len) != 23); - entry_hdr = (struct p54_hdr *) entry->data; - entry_data = (struct p54_tx_data *) entry_hdr->data; if (entry_hdr->flags & cpu_to_le16(P54_HDR_FLAG_DATA_ALIGN)) pad = entry_data->align[0]; @@ -688,7 +690,6 @@ static void p54_rx_frame_sent(struct iee } } - priv->tx_stats[entry_data->hw_queue].len--; if (!(info->flags & IEEE80211_TX_CTL_NO_ACK) && (!payload->status)) info->flags |= IEEE80211_TX_STAT_ACK; @@ -1005,6 +1006,38 @@ static int p54_sta_unlock(struct ieee802 return 0; } +static void p54_sta_notify_ps(struct ieee80211_hw *dev, + enum sta_notify_ps_cmd notify_cmd, + struct ieee80211_sta *sta) +{ + switch (notify_cmd) { + case STA_WOKE_UP: + p54_sta_unlock(dev, sta->addr); + break; + default: + break; + } +} + +static void p54_sta_notify(struct ieee80211_hw *dev, struct ieee80211_vif *vif, + enum sta_notify_cmd notify_cmd, + struct ieee80211_sta *sta) +{ + switch (notify_cmd) { + case STA_NOTIFY_ADD: + case STA_NOTIFY_REMOVE: + /* + * Notify the firmware that we don't want or we don't + * need to buffer frames for this station anymore. + */ + + p54_sta_unlock(dev, sta->addr); + break; + default: + break; + } +} + static int p54_tx_cancel(struct ieee80211_hw *dev, struct sk_buff *entry) { struct p54_common *priv = dev->priv; @@ -1070,7 +1103,7 @@ static int p54_tx_fill(struct ieee80211_ if (info->control.sta) *aid = info->control.sta->aid; else - *flags = P54_HDR_FLAG_DATA_OUT_NOCANCEL; + *flags |= P54_HDR_FLAG_DATA_OUT_NOCANCEL; } return ret; } @@ -1083,7 +1116,7 @@ static int p54_tx(struct ieee80211_hw *d struct p54_hdr *hdr; struct p54_tx_data *txhdr; size_t padding, len, tim_len = 0; - int i, j, ridx; + int i, j, ridx, ret; u16 hdr_flags = 0, aid = 0; u8 rate, queue; u8 cts_rate = 0x20; @@ -1093,30 +1126,18 @@ static int p54_tx(struct ieee80211_hw *d queue = skb_get_queue_mapping(skb); - if (p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid)) { - current_queue = &priv->tx_stats[queue]; - if (unlikely(current_queue->len > current_queue->limit)) - return NETDEV_TX_BUSY; - current_queue->len++; - current_queue->count++; - if (current_queue->len == current_queue->limit) - ieee80211_stop_queue(dev, skb_get_queue_mapping(skb)); - } + ret = p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid); + current_queue = &priv->tx_stats[queue]; + if (unlikely((current_queue->len > current_queue->limit) && ret)) + return NETDEV_TX_BUSY; + current_queue->len++; + current_queue->count++; + if ((current_queue->len == current_queue->limit) && ret) + ieee80211_stop_queue(dev, skb_get_queue_mapping(skb)); padding = (unsigned long)(skb->data - (sizeof(*hdr) + sizeof(*txhdr))) & 3; len = skb->len; - if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) { - if (info->control.sta) - if (p54_sta_unlock(dev, info->control.sta->addr)) { - if (current_queue) { - current_queue->len--; - current_queue->count--; - } - return NETDEV_TX_BUSY; - } - } - txhdr = (struct p54_tx_data *) skb_push(skb, sizeof(*txhdr) + padding); hdr = (struct p54_hdr *) skb_push(skb, sizeof(*hdr)); @@ -1835,6 +1856,8 @@ static const struct ieee80211_ops p54_op .add_interface = p54_add_interface, .remove_interface = p54_remove_interface, .set_tim = p54_set_tim, + .sta_notify_ps = p54_sta_notify_ps, + .sta_notify = p54_sta_notify, .config = p54_config, .config_interface = p54_config_interface, .bss_info_changed = p54_bss_info_changed, diff -Nurp a/drivers/net/wireless/p54/p54common.h b/drivers/net/wireless/p54/p54common.h --- a/drivers/net/wireless/p54/p54common.h 2008-11-28 20:18:53.000000000 +0100 +++ b/drivers/net/wireless/p54/p54common.h 2008-11-28 20:27:59.000000000 +0100 @@ -302,7 +302,7 @@ enum p54_frame_sent_status { P54_TX_OK = 0, P54_TX_FAILED, P54_TX_PSM, - P54_TX_PSM_CANCELLED + P54_TX_PSM_CANCELLED = 4 }; struct p54_frame_sent { ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [RFC] mac80211 & p54: add sta_notify_ps callback 2008-11-28 20:09 ` [RFC] mac80211 & p54: add sta_notify_ps callback Christian Lamparter @ 2008-11-28 20:43 ` Christian Lamparter 2008-11-28 21:18 ` Johannes Berg 0 siblings, 1 reply; 20+ messages in thread From: Christian Lamparter @ 2008-11-28 20:43 UTC (permalink / raw) To: Johannes Berg; +Cc: Stefan Steuerwald, linux-wireless On Friday 28 November 2008 21:09:35 Christian Lamparter wrote: > Ahh... I knew it! > > Alright, I looks like I have to change the mac80211 stack for this. > What I need is a callback form ap_sta_ps_end & (ap_sta_ps_start). > > It's because (p54_)set_tim - and therefore p54_sta_unlock as well - won't > be executed if the station changes its power state very quickly/or if no package comes in > So we have no change to notify the firmware about the stations new power state > and then the firmware won't let us send anything to the station. > > here is my proposal for mac80211: > --- Updates: - integrate sta_notify_ps into sta_notify. - added trivial switch cases for mac80211_hwsim.c (or else gcc complains) And BTW: can someone please check the spelling? --- diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index f43da1c..e2c50ed 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -524,6 +524,10 @@ static void mac80211_hwsim_sta_notify(struct ieee80211_hw *hw, case STA_NOTIFY_REMOVE: hwsim_clear_sta_magic(sta); break; + case STA_NOTIFY_AWAKE: + case STA_NOTIFY_SLEEP: + /* TODO: make good use of these callbacks */ + break; } } diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 6a1d4ea..7bd8edc 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -768,14 +768,18 @@ struct ieee80211_sta { /** * enum sta_notify_cmd - sta notify command * - * Used with the sta_notify() callback in &struct ieee80211_ops, this - * indicates addition and removal of a station to station table. + * Used with the sta_notify() callback in &struct ieee80211_ops. + * this command indicates addition and removal of a station to + * station table, or if a station made a power state transition. * * @STA_NOTIFY_ADD: a station was added to the station table * @STA_NOTIFY_REMOVE: a station being removed from the station table + * @STA_NOTIFY_SLEEP: a station is now sleeping + * @STA_NOTIFY_AWAKE: a sleeping station woke up */ enum sta_notify_cmd { - STA_NOTIFY_ADD, STA_NOTIFY_REMOVE + STA_NOTIFY_ADD, STA_NOTIFY_REMOVE, + STA_NOTIFY_SLEEP, STA_NOTIFY_AWAKE, }; /** diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 5a1a60f..2d311a1 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -654,10 +654,14 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx) static void ap_sta_ps_start(struct sta_info *sta) { struct ieee80211_sub_if_data *sdata = sta->sdata; + struct ieee80211_local *local = sdata->local; DECLARE_MAC_BUF(mac); atomic_inc(&sdata->bss->num_sta_ps); set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL); + if (local->ops->sta_notify) + local->ops->sta_notify(local_to_hw(local), &sdata->vif, + STA_NOTIFY_SLEEP, &sta->sta); #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG printk(KERN_DEBUG "%s: STA %s aid %d enters power save mode\n", sdata->dev->name, print_mac(mac, sta->sta.addr), sta->sta.aid); @@ -675,6 +679,9 @@ static int ap_sta_ps_end(struct sta_info *sta) atomic_dec(&sdata->bss->num_sta_ps); clear_sta_flags(sta, WLAN_STA_PS | WLAN_STA_PSPOLL); + if (local->ops->sta_notify) + local->ops->sta_notify(local_to_hw(local), &sdata->vif, + STA_NOTIFY_AWAKE, &sta->sta); if (!skb_queue_empty(&sta->ps_tx_buf)) sta_info_clear_tim_bit(sta); --- p54 updates: - update to new api --- diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c --- a/drivers/net/wireless/p54/p54common.c 2008-11-28 20:18:53.000000000 +0100 +++ b/drivers/net/wireless/p54/p54common.c 2008-11-28 21:37:45.000000000 +0100 @@ -653,6 +653,10 @@ static void p54_rx_frame_sent(struct iee __skb_unlink(entry, &priv->tx_queue); spin_unlock_irqrestore(&priv->tx_queue.lock, flags); + entry_hdr = (struct p54_hdr *) entry->data; + entry_data = (struct p54_tx_data *) entry_hdr->data; + priv->tx_stats[entry_data->hw_queue].len--; + if (unlikely(entry == priv->cached_beacon)) { kfree_skb(entry); priv->cached_beacon = NULL; @@ -669,8 +673,6 @@ static void p54_rx_frame_sent(struct iee BUILD_BUG_ON(offsetof(struct ieee80211_tx_info, status.ampdu_ack_len) != 23); - entry_hdr = (struct p54_hdr *) entry->data; - entry_data = (struct p54_tx_data *) entry_hdr->data; if (entry_hdr->flags & cpu_to_le16(P54_HDR_FLAG_DATA_ALIGN)) pad = entry_data->align[0]; @@ -688,7 +690,6 @@ static void p54_rx_frame_sent(struct iee } } - priv->tx_stats[entry_data->hw_queue].len--; if (!(info->flags & IEEE80211_TX_CTL_NO_ACK) && (!payload->status)) info->flags |= IEEE80211_TX_STAT_ACK; @@ -1005,6 +1006,26 @@ static int p54_sta_unlock(struct ieee802 return 0; } +static void p54_sta_notify(struct ieee80211_hw *dev, struct ieee80211_vif *vif, + enum sta_notify_cmd notify_cmd, + struct ieee80211_sta *sta) +{ + switch (notify_cmd) { + case STA_NOTIFY_ADD: + case STA_NOTIFY_REMOVE: + case STA_NOTIFY_AWAKE: + /* + * Notify the firmware that we don't want or we don't + * need to buffer frames for this station anymore. + */ + + p54_sta_unlock(dev, sta->addr); + break; + default: + break; + } +} + static int p54_tx_cancel(struct ieee80211_hw *dev, struct sk_buff *entry) { struct p54_common *priv = dev->priv; @@ -1070,7 +1091,7 @@ static int p54_tx_fill(struct ieee80211_ if (info->control.sta) *aid = info->control.sta->aid; else - *flags = P54_HDR_FLAG_DATA_OUT_NOCANCEL; + *flags |= P54_HDR_FLAG_DATA_OUT_NOCANCEL; } return ret; } @@ -1083,7 +1104,7 @@ static int p54_tx(struct ieee80211_hw *d struct p54_hdr *hdr; struct p54_tx_data *txhdr; size_t padding, len, tim_len = 0; - int i, j, ridx; + int i, j, ridx, ret; u16 hdr_flags = 0, aid = 0; u8 rate, queue; u8 cts_rate = 0x20; @@ -1093,30 +1114,18 @@ static int p54_tx(struct ieee80211_hw *d queue = skb_get_queue_mapping(skb); - if (p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid)) { - current_queue = &priv->tx_stats[queue]; - if (unlikely(current_queue->len > current_queue->limit)) - return NETDEV_TX_BUSY; - current_queue->len++; - current_queue->count++; - if (current_queue->len == current_queue->limit) - ieee80211_stop_queue(dev, skb_get_queue_mapping(skb)); - } + ret = p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid); + current_queue = &priv->tx_stats[queue]; + if (unlikely((current_queue->len > current_queue->limit) && ret)) + return NETDEV_TX_BUSY; + current_queue->len++; + current_queue->count++; + if ((current_queue->len == current_queue->limit) && ret) + ieee80211_stop_queue(dev, skb_get_queue_mapping(skb)); padding = (unsigned long)(skb->data - (sizeof(*hdr) + sizeof(*txhdr))) & 3; len = skb->len; - if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) { - if (info->control.sta) - if (p54_sta_unlock(dev, info->control.sta->addr)) { - if (current_queue) { - current_queue->len--; - current_queue->count--; - } - return NETDEV_TX_BUSY; - } - } - txhdr = (struct p54_tx_data *) skb_push(skb, sizeof(*txhdr) + padding); hdr = (struct p54_hdr *) skb_push(skb, sizeof(*hdr)); @@ -1835,6 +1844,7 @@ static const struct ieee80211_ops p54_op .add_interface = p54_add_interface, .remove_interface = p54_remove_interface, .set_tim = p54_set_tim, + .sta_notify = p54_sta_notify, .config = p54_config, .config_interface = p54_config_interface, .bss_info_changed = p54_bss_info_changed, diff -Nurp a/drivers/net/wireless/p54/p54common.h b/drivers/net/wireless/p54/p54common.h --- a/drivers/net/wireless/p54/p54common.h 2008-11-28 20:18:53.000000000 +0100 +++ b/drivers/net/wireless/p54/p54common.h 2008-11-28 20:27:59.000000000 +0100 @@ -302,7 +302,7 @@ enum p54_frame_sent_status { P54_TX_OK = 0, P54_TX_FAILED, P54_TX_PSM, - P54_TX_PSM_CANCELLED + P54_TX_PSM_CANCELLED = 4 }; struct p54_frame_sent { ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [RFC] mac80211 & p54: add sta_notify_ps callback 2008-11-28 20:43 ` Christian Lamparter @ 2008-11-28 21:18 ` Johannes Berg 0 siblings, 0 replies; 20+ messages in thread From: Johannes Berg @ 2008-11-28 21:18 UTC (permalink / raw) To: Christian Lamparter; +Cc: Stefan Steuerwald, linux-wireless [-- Attachment #1: Type: text/plain, Size: 8739 bytes --] On Fri, 2008-11-28 at 21:43 +0100, Christian Lamparter wrote: > On Friday 28 November 2008 21:09:35 Christian Lamparter wrote: > > Ahh... I knew it! > > > > Alright, I looks like I have to change the mac80211 stack for this. > > What I need is a callback form ap_sta_ps_end & (ap_sta_ps_start). > > > > It's because (p54_)set_tim - and therefore p54_sta_unlock as well - won't > > be executed if the station changes its power state very quickly/or if no package comes in > > So we have no change to notify the firmware about the stations new power state > > and then the firmware won't let us send anything to the station. > > > > here is my proposal for mac80211: > > --- > Updates: > - integrate sta_notify_ps into sta_notify. > - added trivial switch cases for mac80211_hwsim.c (or else gcc complains) Looks fine to me. > And BTW: can someone please check the spelling? And that too. > --- > diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c > index f43da1c..e2c50ed 100644 > --- a/drivers/net/wireless/mac80211_hwsim.c > +++ b/drivers/net/wireless/mac80211_hwsim.c > @@ -524,6 +524,10 @@ static void mac80211_hwsim_sta_notify(struct ieee80211_hw *hw, > case STA_NOTIFY_REMOVE: > hwsim_clear_sta_magic(sta); > break; > + case STA_NOTIFY_AWAKE: > + case STA_NOTIFY_SLEEP: > + /* TODO: make good use of these callbacks */ > + break; > } > } > > diff --git a/include/net/mac80211.h b/include/net/mac80211.h > index 6a1d4ea..7bd8edc 100644 > --- a/include/net/mac80211.h > +++ b/include/net/mac80211.h > @@ -768,14 +768,18 @@ struct ieee80211_sta { > /** > * enum sta_notify_cmd - sta notify command > * > - * Used with the sta_notify() callback in &struct ieee80211_ops, this > - * indicates addition and removal of a station to station table. > + * Used with the sta_notify() callback in &struct ieee80211_ops. > + * this command indicates addition and removal of a station to > + * station table, or if a station made a power state transition. > * > * @STA_NOTIFY_ADD: a station was added to the station table > * @STA_NOTIFY_REMOVE: a station being removed from the station table > + * @STA_NOTIFY_SLEEP: a station is now sleeping > + * @STA_NOTIFY_AWAKE: a sleeping station woke up > */ > enum sta_notify_cmd { > - STA_NOTIFY_ADD, STA_NOTIFY_REMOVE > + STA_NOTIFY_ADD, STA_NOTIFY_REMOVE, > + STA_NOTIFY_SLEEP, STA_NOTIFY_AWAKE, > }; > > /** > diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c > index 5a1a60f..2d311a1 100644 > --- a/net/mac80211/rx.c > +++ b/net/mac80211/rx.c > @@ -654,10 +654,14 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx) > static void ap_sta_ps_start(struct sta_info *sta) > { > struct ieee80211_sub_if_data *sdata = sta->sdata; > + struct ieee80211_local *local = sdata->local; > DECLARE_MAC_BUF(mac); > > atomic_inc(&sdata->bss->num_sta_ps); > set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL); > + if (local->ops->sta_notify) > + local->ops->sta_notify(local_to_hw(local), &sdata->vif, > + STA_NOTIFY_SLEEP, &sta->sta); > #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG > printk(KERN_DEBUG "%s: STA %s aid %d enters power save mode\n", > sdata->dev->name, print_mac(mac, sta->sta.addr), sta->sta.aid); > @@ -675,6 +679,9 @@ static int ap_sta_ps_end(struct sta_info *sta) > atomic_dec(&sdata->bss->num_sta_ps); > > clear_sta_flags(sta, WLAN_STA_PS | WLAN_STA_PSPOLL); > + if (local->ops->sta_notify) > + local->ops->sta_notify(local_to_hw(local), &sdata->vif, > + STA_NOTIFY_AWAKE, &sta->sta); > > if (!skb_queue_empty(&sta->ps_tx_buf)) > sta_info_clear_tim_bit(sta); > --- > > p54 updates: > - update to new api > --- > diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c > --- a/drivers/net/wireless/p54/p54common.c 2008-11-28 20:18:53.000000000 +0100 > +++ b/drivers/net/wireless/p54/p54common.c 2008-11-28 21:37:45.000000000 +0100 > @@ -653,6 +653,10 @@ static void p54_rx_frame_sent(struct iee > __skb_unlink(entry, &priv->tx_queue); > spin_unlock_irqrestore(&priv->tx_queue.lock, flags); > > + entry_hdr = (struct p54_hdr *) entry->data; > + entry_data = (struct p54_tx_data *) entry_hdr->data; > + priv->tx_stats[entry_data->hw_queue].len--; > + > if (unlikely(entry == priv->cached_beacon)) { > kfree_skb(entry); > priv->cached_beacon = NULL; > @@ -669,8 +673,6 @@ static void p54_rx_frame_sent(struct iee > BUILD_BUG_ON(offsetof(struct ieee80211_tx_info, > status.ampdu_ack_len) != 23); > > - entry_hdr = (struct p54_hdr *) entry->data; > - entry_data = (struct p54_tx_data *) entry_hdr->data; > if (entry_hdr->flags & cpu_to_le16(P54_HDR_FLAG_DATA_ALIGN)) > pad = entry_data->align[0]; > > @@ -688,7 +690,6 @@ static void p54_rx_frame_sent(struct iee > } > } > > - priv->tx_stats[entry_data->hw_queue].len--; > if (!(info->flags & IEEE80211_TX_CTL_NO_ACK) && > (!payload->status)) > info->flags |= IEEE80211_TX_STAT_ACK; > @@ -1005,6 +1006,26 @@ static int p54_sta_unlock(struct ieee802 > return 0; > } > > +static void p54_sta_notify(struct ieee80211_hw *dev, struct ieee80211_vif *vif, > + enum sta_notify_cmd notify_cmd, > + struct ieee80211_sta *sta) > +{ > + switch (notify_cmd) { > + case STA_NOTIFY_ADD: > + case STA_NOTIFY_REMOVE: > + case STA_NOTIFY_AWAKE: > + /* > + * Notify the firmware that we don't want or we don't > + * need to buffer frames for this station anymore. > + */ > + > + p54_sta_unlock(dev, sta->addr); > + break; > + default: > + break; > + } > +} > + > static int p54_tx_cancel(struct ieee80211_hw *dev, struct sk_buff *entry) > { > struct p54_common *priv = dev->priv; > @@ -1070,7 +1091,7 @@ static int p54_tx_fill(struct ieee80211_ > if (info->control.sta) > *aid = info->control.sta->aid; > else > - *flags = P54_HDR_FLAG_DATA_OUT_NOCANCEL; > + *flags |= P54_HDR_FLAG_DATA_OUT_NOCANCEL; > } > return ret; > } > @@ -1083,7 +1104,7 @@ static int p54_tx(struct ieee80211_hw *d > struct p54_hdr *hdr; > struct p54_tx_data *txhdr; > size_t padding, len, tim_len = 0; > - int i, j, ridx; > + int i, j, ridx, ret; > u16 hdr_flags = 0, aid = 0; > u8 rate, queue; > u8 cts_rate = 0x20; > @@ -1093,30 +1114,18 @@ static int p54_tx(struct ieee80211_hw *d > > queue = skb_get_queue_mapping(skb); > > - if (p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid)) { > - current_queue = &priv->tx_stats[queue]; > - if (unlikely(current_queue->len > current_queue->limit)) > - return NETDEV_TX_BUSY; > - current_queue->len++; > - current_queue->count++; > - if (current_queue->len == current_queue->limit) > - ieee80211_stop_queue(dev, skb_get_queue_mapping(skb)); > - } > + ret = p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid); > + current_queue = &priv->tx_stats[queue]; > + if (unlikely((current_queue->len > current_queue->limit) && ret)) > + return NETDEV_TX_BUSY; > + current_queue->len++; > + current_queue->count++; > + if ((current_queue->len == current_queue->limit) && ret) > + ieee80211_stop_queue(dev, skb_get_queue_mapping(skb)); > > padding = (unsigned long)(skb->data - (sizeof(*hdr) + sizeof(*txhdr))) & 3; > len = skb->len; > > - if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) { > - if (info->control.sta) > - if (p54_sta_unlock(dev, info->control.sta->addr)) { > - if (current_queue) { > - current_queue->len--; > - current_queue->count--; > - } > - return NETDEV_TX_BUSY; > - } > - } > - > txhdr = (struct p54_tx_data *) skb_push(skb, sizeof(*txhdr) + padding); > hdr = (struct p54_hdr *) skb_push(skb, sizeof(*hdr)); > > @@ -1835,6 +1844,7 @@ static const struct ieee80211_ops p54_op > .add_interface = p54_add_interface, > .remove_interface = p54_remove_interface, > .set_tim = p54_set_tim, > + .sta_notify = p54_sta_notify, > .config = p54_config, > .config_interface = p54_config_interface, > .bss_info_changed = p54_bss_info_changed, > diff -Nurp a/drivers/net/wireless/p54/p54common.h b/drivers/net/wireless/p54/p54common.h > --- a/drivers/net/wireless/p54/p54common.h 2008-11-28 20:18:53.000000000 +0100 > +++ b/drivers/net/wireless/p54/p54common.h 2008-11-28 20:27:59.000000000 +0100 > @@ -302,7 +302,7 @@ enum p54_frame_sent_status { > P54_TX_OK = 0, > P54_TX_FAILED, > P54_TX_PSM, > - P54_TX_PSM_CANCELLED > + P54_TX_PSM_CANCELLED = 4 > }; > > struct p54_frame_sent { > [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* p54: AP mode: no data frame despite traffic indication set in TIM @ 2008-11-21 14:12 Stefan Steuerwald 2008-11-24 13:36 ` Stefan Steuerwald 2008-11-24 13:37 ` Johannes Berg 0 siblings, 2 replies; 20+ messages in thread From: Stefan Steuerwald @ 2008-11-21 14:12 UTC (permalink / raw) To: linux-wireless [-- Attachment #1: Type: text/plain, Size: 1139 bytes --] I got another one to lay out before you for comment: Setup: - XG-601 card (ISL3880) with p54pci driver in AP mode - iPod Touch 2G (firmware 2.1.1) as the only client The client does an http request and waits for an answer. In this case, the web server answers, but the answer seemingly is never sent over the air. Please see the attached pcap: - frame 7: http request - frame 13: iPod goes to sleep - frame 23: AP beacon indicates traffic for iPod (AID 1 in TIM) - frame 25: iPod wakes up - in between: MISSING DATA ??? - frame 27: AP beacon with no traffic indicated ??? - frame 29: iPod goes to sleep again - subsequent frames: repetitions of this, until the TCP connection is closed My understanding is that the AP would not indicate any traffic without actually having some ready to send? Wrong assumption? Both the iPod and the monitoring device seem to agree the http reply is not there. This would be a good reason for the application-level timeouts I'm seeing. Best wishes, Stefan. See also: previous conversation about app-level timeouts and powersave: http://article.gmane.org/gmane.linux.kernel.wireless.general/24278 [-- Attachment #2: ipod-no-data-despite-traffic-in-tim.pcap --] [-- Type: application/cap, Size: 13587 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-21 14:12 p54: AP mode: no data frame despite traffic indication set in TIM Stefan Steuerwald @ 2008-11-24 13:36 ` Stefan Steuerwald 2008-11-24 13:41 ` Johannes Berg 2008-11-24 13:37 ` Johannes Berg 1 sibling, 1 reply; 20+ messages in thread From: Stefan Steuerwald @ 2008-11-24 13:36 UTC (permalink / raw) To: linux-wireless; +Cc: Johannes Berg [-- Attachment #1: Type: text/plain, Size: 3058 bytes --] - Compiled verbose and powersave debugging into the kernel - Using hostapd 0.6.6 with listen_interval fix - Moved my monitoring device to the machine acting as AP so timestamps are synced between the various logs I see "dropped TX filtered frame" messages in the syslog when at the same time I see wireless packet sequences as described below. Please see the attached logs. Capture: - frame 1158: my client does a http request - frame 1168: iPod goes to sleep - frame 1170: many beacons (with TIM bit set after some time) - frame 1199: iPod wakes up (presumably answering the "traffic for you" beacons) - ??? MISSING DATA ??? - frame 1201: beacons with no TIM bit set (so data got sent or dropped?) - frame 1204: iPod goes to sleep again In the syslog we find at the corresponding time: Nov 24 13:49:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send PS frame since STA not sleeping anymore Nov 24 13:49:11 alix kernel: phy0: dropped TX filtered frame, queue_len=0 PS=0 @135594 Nov 24 13:49:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 enters power save mode which may explain why I don't see any data packet on the air. Also attached is hostapd log. This repeats several times until the final "http OK" which only succeeds because I have grossly extended the timeout of my app. However, the delay of several seconds between http request and server response is intended and normal. I have numerous occurrences of this sequence, easy to reproduce. Another thing is the fact that we see 24(!) consecutive beacons with TIM bit set until the iPod finally wakes up. It seems to be lying to the AP, as it advertises a listen_interval of only 10. May this cause the above? In case better debug output is needed or you need me to try out something, please shout. Best regards, Stefan. 2008/11/21 Stefan Steuerwald <salsasepp@googlemail.com>: > I got another one to lay out before you for comment: > > Setup: > - XG-601 card (ISL3880) with p54pci driver in AP mode > - iPod Touch 2G (firmware 2.1.1) as the only client > > The client does an http request and waits for an answer. In this case, > the web server answers, but the answer seemingly is never sent over > the air. > > Please see the attached pcap: > - frame 7: http request > - frame 13: iPod goes to sleep > - frame 23: AP beacon indicates traffic for iPod (AID 1 in TIM) > - frame 25: iPod wakes up > - in between: MISSING DATA ??? > - frame 27: AP beacon with no traffic indicated ??? > - frame 29: iPod goes to sleep again > - subsequent frames: repetitions of this, until the TCP connection is closed > > My understanding is that the AP would not indicate any traffic without > actually having some ready to send? Wrong assumption? > > Both the iPod and the monitoring device seem to agree the http reply > is not there. This would be a good reason for the application-level > timeouts I'm seeing. > > Best wishes, > Stefan. > > > See also: previous conversation about app-level timeouts and powersave: > http://article.gmane.org/gmane.linux.kernel.wireless.general/24278 > [-- Attachment #2: ipod-patched-verbose.pcap.gz --] [-- Type: application/x-gzip, Size: 42299 bytes --] [-- Attachment #3: ipod-patched-verbose-syslog.gz --] [-- Type: application/x-gzip, Size: 1477 bytes --] [-- Attachment #4: ipod-patched-verbose-hostapd.log.gz --] [-- Type: application/x-gzip, Size: 3478 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-24 13:36 ` Stefan Steuerwald @ 2008-11-24 13:41 ` Johannes Berg 0 siblings, 0 replies; 20+ messages in thread From: Johannes Berg @ 2008-11-24 13:41 UTC (permalink / raw) To: Stefan Steuerwald; +Cc: linux-wireless, Chr [-- Attachment #1: Type: text/plain, Size: 1136 bytes --] On Mon, 2008-11-24 at 14:36 +0100, Stefan Steuerwald wrote: > I see "dropped TX filtered frame" messages in the syslog when at the > same time I see wireless packet sequences as described below. Please > see the attached logs. Ah, very good, thank you. > Nov 24 13:49:11 alix kernel: wlan0: STA 00:22:41:91:8e:96 aid 1 send > PS frame since STA not sleeping anymore > Nov 24 13:49:11 alix kernel: phy0: dropped TX filtered frame, > queue_len=0 PS=0 @135594 That confirms my suspicion that something is going on with p54. Christian, can you review the comment in net/mac80211/main.c around line 400, the one about races, wrt. p54? > which may explain why I don't see any data packet on the air. Also > attached is hostapd log. Indeed. > Another thing is the fact that we see 24(!) consecutive beacons with > TIM bit set until the iPod finally wakes up. It seems to be lying to > the AP, as it advertises a listen_interval of only 10. May this cause > the above? That is another issue, yes, but probably not causing it, we'd be seeing "expired buffered frame" messages if it was, I think. johannes [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-21 14:12 p54: AP mode: no data frame despite traffic indication set in TIM Stefan Steuerwald 2008-11-24 13:36 ` Stefan Steuerwald @ 2008-11-24 13:37 ` Johannes Berg 2008-11-24 15:19 ` Christian Lamparter 1 sibling, 1 reply; 20+ messages in thread From: Johannes Berg @ 2008-11-24 13:37 UTC (permalink / raw) To: Stefan Steuerwald; +Cc: linux-wireless, Chr [-- Attachment #1: Type: text/plain, Size: 1005 bytes --] On Fri, 2008-11-21 at 15:12 +0100, Stefan Steuerwald wrote: > - frame 7: http request > - frame 13: iPod goes to sleep > - frame 23: AP beacon indicates traffic for iPod (AID 1 in TIM) in 24 too, the ipod probably didn't see the beacon in frame 23 even though 23 was a dtim beacon (which is a bit odd, but maybe the ipod doesn't care about mcast at this point) > - frame 25: iPod wakes up 26: ack from the AP > - in between: MISSING DATA ??? > - frame 27: AP beacon with no traffic indicated ??? > - frame 29: iPod goes to sleep again > - subsequent frames: repetitions of this, until the TCP connection is closed > > My understanding is that the AP would not indicate any traffic without > actually having some ready to send? Wrong assumption? Indeed. Christian, is it possible that the p54 device is actually filtering these frames? I'm pretty sure mac80211 behaves correctly, and it unsetting the TIM bit means that it must no longer have traffic buffered. johannes [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-24 13:37 ` Johannes Berg @ 2008-11-24 15:19 ` Christian Lamparter 2008-11-24 16:51 ` Stefan Steuerwald 0 siblings, 1 reply; 20+ messages in thread From: Christian Lamparter @ 2008-11-24 15:19 UTC (permalink / raw) To: Johannes Berg; +Cc: Stefan Steuerwald, linux-wireless [-- Attachment #1: Type: text/plain, Size: 2556 bytes --] On Monday 24 November 2008 14:37:54 Johannes Berg wrote: > On Fri, 2008-11-21 at 15:12 +0100, Stefan Steuerwald wrote: > > > - frame 7: http request > > - frame 13: iPod goes to sleep > > - frame 23: AP beacon indicates traffic for iPod (AID 1 in TIM) > > in 24 too, the ipod probably didn't see the beacon in frame 23 even > though 23 was a dtim beacon (which is a bit odd, but maybe the ipod > doesn't care about mcast at this point) > > > - frame 25: iPod wakes up > > 26: ack from the AP > > > - in between: MISSING DATA ??? > > - frame 27: AP beacon with no traffic indicated ??? > > - frame 29: iPod goes to sleep again > > - subsequent frames: repetitions of this, until the TCP connection is closed > > > > My understanding is that the AP would not indicate any traffic without > > actually having some ready to send? Wrong assumption? > > Indeed. Christian, is it possible that the p54 device is actually > filtering these frames? I'm pretty sure mac80211 behaves correctly, and > it unsetting the TIM bit means that it must no longer have traffic > buffered. As far as I know it works like this: If a frame with a the PS-Bit in the FC set is received, the firmware will mark the source mac / aid as "sleeping". And every frame from this moment on for this device will be buffered. To remove the "mark" again, the driver has to call p54_sta_unlock. And the firmware will send out all buffered frames. Or if we only need for one frame (e.g: probe resp) we have a tx_flag (_NO_CANCEL) If for some reason the "mark" doesn't get removed the firmware will eventually timeout the stuck frame and sets a the P54_TX_PSM_CANCELLED flag in tx_status. And we pass this on to the mac with IEEE80211_TX_STAT_TX_FILTERED. one thing: p54 reports the tx_status through the rx-ring-buffer. so I hope there's no rx/tx race here since everything is in the same "boat" here. based on that: I made two different patches to address the problem. one fiddles with mac80211 only (set-and-clear.diff). It assumes that if a station comes out of PS, we have to set the CLEAR_PS_FILT on the same time we clear the WLAN_STA_PS. the other one is only for p54 (p54-sta-flags.diff)... Doesn't do very much, it just checks if the CLEAR_PS_FILT is set and then sets the NO_CANCEL flag on that frame, so the firmware won't buffer it. Of course you can test both patches on the same time, if it doesn't help. And finally of course, I could be totally wrong and this is all nothing but useless gibberish. Regards, Chr BTW: I couldn't test the patches, so it may OOps [-- Attachment #2: set-and-clear.diff --] [-- Type: text/x-diff, Size: 930 bytes --] diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 5a1a60f..077fdb7 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -657,7 +657,8 @@ static void ap_sta_ps_start(struct sta_info *sta) DECLARE_MAC_BUF(mac); atomic_inc(&sdata->bss->num_sta_ps); - set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL); + set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL | + WLAN_STA_CLEAR_PS_FILT); #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG printk(KERN_DEBUG "%s: STA %s aid %d enters power save mode\n", sdata->dev->name, print_mac(mac, sta->sta.addr), sta->sta.aid); @@ -674,7 +675,8 @@ static int ap_sta_ps_end(struct sta_info *sta) atomic_dec(&sdata->bss->num_sta_ps); - clear_sta_flags(sta, WLAN_STA_PS | WLAN_STA_PSPOLL); + set_and_clear_sta_flags(sta, WLAN_STA_CLEAR_PS_FILT, + WLAN_STA_PS | WLAN_STA_PSPOLL); if (!skb_queue_empty(&sta->ps_tx_buf)) sta_info_clear_tim_bit(sta); [-- Attachment #3: p54-sta-flags.diff --] [-- Type: text/x-diff, Size: 1973 bytes --] diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c --- a/drivers/net/wireless/p54/p54common.c 2008-11-24 13:07:09.053832187 +0100 +++ b/drivers/net/wireless/p54/p54common.c 2008-11-24 16:03:26.862045588 +0100 @@ -1067,9 +1067,15 @@ static int p54_tx_fill(struct ieee80211_ *queue = 3; return 0; } - if (info->control.sta) + if (info->control.sta) { + if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) { + ret = p54_sta_unlock(dev, info->control.sta->addr); + if (ret) + return ret; + *flags |= P54_HDR_FLAG_DATA_OUT_NOCANCEL; + } *aid = info->control.sta->aid; - else + } else *flags = P54_HDR_FLAG_DATA_OUT_NOCANCEL; } return ret; @@ -1083,7 +1089,7 @@ static int p54_tx(struct ieee80211_hw *d struct p54_hdr *hdr; struct p54_tx_data *txhdr; size_t padding, len, tim_len = 0; - int i, j, ridx; + int i, j, ridx, ret; u16 hdr_flags = 0, aid = 0; u8 rate, queue; u8 cts_rate = 0x20; @@ -1093,7 +1099,10 @@ static int p54_tx(struct ieee80211_hw *d queue = skb_get_queue_mapping(skb); - if (p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid)) { + ret = p54_tx_fill(dev, skb, info, &queue, &tim_len, &hdr_flags, &aid); + if (ret < 0) + return NETDEV_TX_BUSY; + if (ret) { current_queue = &priv->tx_stats[queue]; if (unlikely(current_queue->len > current_queue->limit)) return NETDEV_TX_BUSY; @@ -1106,17 +1115,6 @@ static int p54_tx(struct ieee80211_hw *d padding = (unsigned long)(skb->data - (sizeof(*hdr) + sizeof(*txhdr))) & 3; len = skb->len; - if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) { - if (info->control.sta) - if (p54_sta_unlock(dev, info->control.sta->addr)) { - if (current_queue) { - current_queue->len--; - current_queue->count--; - } - return NETDEV_TX_BUSY; - } - } - txhdr = (struct p54_tx_data *) skb_push(skb, sizeof(*txhdr) + padding); hdr = (struct p54_hdr *) skb_push(skb, sizeof(*hdr)); ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: p54: AP mode: no data frame despite traffic indication set in TIM 2008-11-24 15:19 ` Christian Lamparter @ 2008-11-24 16:51 ` Stefan Steuerwald 0 siblings, 0 replies; 20+ messages in thread From: Stefan Steuerwald @ 2008-11-24 16:51 UTC (permalink / raw) To: Christian Lamparter; +Cc: Johannes Berg, linux-wireless Thanks again Christian and Johannes, from a first quick check - set-and-clear.diff doesn't seem to change anything - both patches together freeze my system I don't have a serial console on this embedded thing, so I don't know its death poem yet. Let me set up my debug environment properly and report back to you. Stefan. 2008/11/24 Christian Lamparter <chunkeey@web.de>: > On Monday 24 November 2008 14:37:54 Johannes Berg wrote: >> On Fri, 2008-11-21 at 15:12 +0100, Stefan Steuerwald wrote: >> >> > - frame 7: http request >> > - frame 13: iPod goes to sleep >> > - frame 23: AP beacon indicates traffic for iPod (AID 1 in TIM) >> >> in 24 too, the ipod probably didn't see the beacon in frame 23 even >> though 23 was a dtim beacon (which is a bit odd, but maybe the ipod >> doesn't care about mcast at this point) >> >> > - frame 25: iPod wakes up >> >> 26: ack from the AP >> >> > - in between: MISSING DATA ??? >> > - frame 27: AP beacon with no traffic indicated ??? >> > - frame 29: iPod goes to sleep again >> > - subsequent frames: repetitions of this, until the TCP connection is closed >> > >> > My understanding is that the AP would not indicate any traffic without >> > actually having some ready to send? Wrong assumption? >> >> Indeed. Christian, is it possible that the p54 device is actually >> filtering these frames? I'm pretty sure mac80211 behaves correctly, and >> it unsetting the TIM bit means that it must no longer have traffic >> buffered. > As far as I know it works like this: > If a frame with a the PS-Bit in the FC set is received, the firmware > will mark the source mac / aid as "sleeping". And every frame from > this moment on for this device will be buffered. > > To remove the "mark" again, the driver has to call p54_sta_unlock. > And the firmware will send out all buffered frames. > Or if we only need for one frame (e.g: probe resp) we have a tx_flag (_NO_CANCEL) > > If for some reason the "mark" doesn't get removed the firmware will eventually timeout > the stuck frame and sets a the P54_TX_PSM_CANCELLED flag in tx_status. > And we pass this on to the mac with IEEE80211_TX_STAT_TX_FILTERED. > > one thing: p54 reports the tx_status through the rx-ring-buffer. > so I hope there's no rx/tx race here since everything is in the same "boat" here. > > based on that: > I made two different patches to address the problem. > > one fiddles with mac80211 only (set-and-clear.diff). > It assumes that if a station comes out of PS, we have to set > the CLEAR_PS_FILT on the same time we clear the WLAN_STA_PS. > > the other one is only for p54 (p54-sta-flags.diff)... Doesn't do very much, > it just checks if the CLEAR_PS_FILT is set and then sets the > NO_CANCEL flag on that frame, so the firmware won't buffer it. > > Of course you can test both patches on the same time, if it doesn't help. > > And finally of course, I could be totally wrong and this is all nothing but useless gibberish. > > Regards, > Chr > > BTW: I couldn't test the patches, so it may OOps > ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2008-11-28 21:18 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-11-24 20:24 p54: AP mode: no data frame despite traffic indication set in TIM Christian Lamparter 2008-11-26 13:38 ` Stefan Steuerwald 2008-11-26 21:13 ` Christian Lamparter 2008-11-27 5:34 ` Stefan Steuerwald 2008-11-27 8:57 ` Stefan Steuerwald 2008-11-27 11:06 ` Christian Lamparter 2008-11-27 14:05 ` Stefan Steuerwald 2008-11-27 14:13 ` Johannes Berg 2008-11-27 14:42 ` Christian Lamparter 2008-11-27 15:16 ` Stefan Steuerwald 2008-11-27 15:59 ` Johannes Berg 2008-11-28 20:09 ` [RFC] mac80211 & p54: add sta_notify_ps callback Christian Lamparter 2008-11-28 20:43 ` Christian Lamparter 2008-11-28 21:18 ` Johannes Berg -- strict thread matches above, loose matches on Subject: below -- 2008-11-21 14:12 p54: AP mode: no data frame despite traffic indication set in TIM Stefan Steuerwald 2008-11-24 13:36 ` Stefan Steuerwald 2008-11-24 13:41 ` Johannes Berg 2008-11-24 13:37 ` Johannes Berg 2008-11-24 15:19 ` Christian Lamparter 2008-11-24 16:51 ` Stefan Steuerwald
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.