Hi,
since 2.6.32.10 I am experiencing problems with my iwl4965 card. The
system is a Thinkpad X61s under debian unstable with self-compiled kernel.
In my usual setup, I connect to an WPA2-configured access point using
wpa_supplicant. Starting with 2.6.32.10 networking stops to work shortly
after the 4-way handshake. After the next re-keying it works again for a
short time.
I tracked the problem down to commit
44af042e42f2231579ea8ef7586d3789d198f609.
More precisely, it seems to work again, if I revert the second part of
it, i.e.
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c
b/drivers/net/wireless/iwlwifi/iwl-tx.c
index 2ca947e..f449f06 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -1071,6 +1071,7 @@ int iwl_tx_queue_reclaim(struct iwl_priv *priv,
int txq_id, int index)
struct iwl_queue *q = &txq->q;
struct iwl_tx_info *tx_info;
int nfreed = 0;
+ struct ieee80211_hdr *hdr;
if ((index >= q->n_bd) || (iwl_queue_used(q, index) == 0)) {
IWL_ERR(priv, "Read index for DMA queue txq id (%d),
index %d, "
@@ -1085,6 +1086,10 @@ int iwl_tx_queue_reclaim(struct iwl_priv *priv,
int txq_id, int index)
tx_info = &txq->txb[txq->q.read_ptr];
ieee80211_tx_status_irqsafe(priv->hw, tx_info->skb[0]);
+
+ hdr = (struct ieee80211_hdr *)tx_info->skb[0]->data;
+ if (hdr && ieee80211_is_data_qos(hdr->frame_control))
+ nfreed++;
tx_info->skb[0] = NULL;
if (priv->cfg->ops->lib->txq_inval_byte_cnt_tbl)
(However, doing the similar thing on 2.6.33.2, it does _not_ work.)
Here is the output of sh scripts/ver_linux:
Linux kallisto 2.6.32.11-toi3.1 #8 SMP PREEMPT Fri Apr 9 20:51:09 CEST
2010 i686 GNU/Linux
Gnu C 4.3.4
Gnu make 3.81
binutils 2.19.51.20090827
util-linux 2.16.1
mount support
module-init-tools 3.10
e2fsprogs 1.41.9
pcmciautils 014
PPP 2.4.4
Linux C Library 2.10.2
Dynamic linker (ldd) 2.10.2
Procps 3.2.8
Net-tools 1.60
Kbd 1.15
Sh-utils 7.4
wireless-tools 29
Modules Loaded iwlagn iwlcore mac80211 cfg80211 kvm_intel
tp_smapi thinkpad_ec
If I can help with any more information or testing to track down the
problem please let me know.
Best regards,
Ulrich
On Sat, 2010-04-10 at 02:08 -0700, U Kuehn wrote:
> Hi,
>
> since 2.6.32.10 I am experiencing problems with my iwl4965 card. The
> system is a Thinkpad X61s under debian unstable with self-compiled kernel.
>
> In my usual setup, I connect to an WPA2-configured access point using
> wpa_supplicant. Starting with 2.6.32.10 networking stops to work shortly
> after the 4-way handshake. After the next re-keying it works again for a
> short time.
>
> I tracked the problem down to commit
> 44af042e42f2231579ea8ef7586d3789d198f609.
>
Two more patches following up on the one you mention are on their way to
stable. If you want to pick them up earlier they are:
iwlwifi: counting number of tfds can be free for 4965
iwlwifi: need check for valid qos packet before free
In fact ... I just checked and they are both already queued for 2.6.32
so you can just pick them up from the 2.6.32 stable queue
( http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git;a=tree;f=queue-2.6.32;hb=HEAD )
... in fact ... I suggest you take all the iwlwifi patches there.
Sorry for the inconvenience
Reinette
Dear Reinette,
reinette chatre wrote:
>> In my usual setup, I connect to an WPA2-configured access point using
>> wpa_supplicant. Starting with 2.6.32.10 networking stops to work shortly
>> after the 4-way handshake. After the next re-keying it works again for a
>> short time.
>>
>> I tracked the problem down to commit
>> 44af042e42f2231579ea8ef7586d3789d198f609.
>>
>
> Two more patches following up on the one you mention are on their way to
> stable. If you want to pick them up earlier they are:
> iwlwifi: counting number of tfds can be free for 4965
> iwlwifi: need check for valid qos packet before free
>
> In fact ... I just checked and they are both already queued for 2.6.32
> so you can just pick them up from the 2.6.32 stable queue
> ( http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git;a=tree;f=queue-2.6.32;hb=HEAD )
>
> ... in fact ... I suggest you take all the iwlwifi patches there.
>
Thanks, that did indeed help. With the four patches
iwlwifi-counting-number-of-tfds-can-be-free-for-4965.patch
iwlwifi-fix-nfreed.patch
iwlwifi-need-check-for-valid-qos-packet-before-free.patch
iwlwifi-range-checking-issue.patch
applied, 2.6.32.11 works again reliably, as far as I could test so far.
Best regards,
Ulrich