Search Linux Wireless

Re: kernel BUG at drivers/net/wireless/iwlwifi/iwl3945-base.c:3127!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 10, 2009 at 11:40 PM, Jason Andryuk <jandryuk@xxxxxxxxx> wrote:
>> You log below has a new error (similar to what you note in your next
>> email). "Unsupported interface type 515". This is very strange and
>> really looks like some corruption as this value is initialized with a
>> macro during probe. Could you enable mac and info debugging also (add
>> 0x3 to your current debug flags)? This code has also changed a bit since
>> commit bb64785ad94d575fe4f5f9e69f4f6c0b24e9905d.
>>
>> You can also put a dump_stack() in iwl3945_connection_init_rx_config to
>> see where the call comes from and then trace the value of mode to see
>> where it is set to 515 ... it is supposed to be 2
>> (NL80211_IFTYPE_STATION).
>
> See logs below.  I ran with debug=0x40003.  This is on commit
> "ff5010c3e12f1d0da27a5f871c2e3d5333dfbe2f iwl3945: sync tx queue data
> structure with iwlagn" with my patches to make it somewhat usable.
>
>> I am finding it hard to keep track of things as what works and what does
>> not work appears to shift. I did install a 64bit system in the hopes of
>> reproducing your issue but could not with a basic open connect. How do
>> you connect to the AP? Please provide details that you think will enable
>> me to reproduce.
>
> The problem is that as I try older commits to find which one introduced
> the original error, I find other problems that need to be solved.
> Hopefully I have finally tracked down the commit,
> "ff5010c3e12f1d0da27a5f871c2e3d5333dfbe2f iwl3945: sync tx queue data
> structure with iwlagn", that introduced the Microcode SW errors.

Looking at ff5010c3e12f1d0da27a5f871c2e3d5333dfbe2f, I found the call
to iwl_reset_qos corrupts priv->iw_mode.  It is 2 before the call and
515 after.

I dumped priv for 32 bytes starting at &priv->last_beacon_time and saw this.
iwl data: 00000000: 00 0f 00 ff 03 02 00 00 00 0f 00 ff 03 02 00 00
................
iwl data: 00000010: 00 0f 00 ff 03 02 00 00 00 0f 00 ff 03 02 00 00
................

515 = 0x0203 = 03 02 little endian

We have

struct iwl_ac_qos {
        __le16 cw_min;
        __le16 cw_max;
        u8 aifsn;
        u8 reserved1;
        __le16 edca_txop;
} __attribute__ ((packed));

and

	priv->qos_data.def_qos_parm.ac[0].cw_min = cpu_to_le16(cw_min);
	priv->qos_data.def_qos_parm.ac[0].cw_max = cpu_to_le16(cw_max);
        priv->qos_data.def_qos_parm.ac[0].aifsn = aifs;
        priv->qos_data.def_qos_parm.ac[0].edca_txop = 0;
        priv->qos_data.def_qos_parm.ac[0].reserved1 = 0;

and
	u16 cw_min = 15;      // 0x000f
        u16 cw_max = 1023; // 0x03ff
        u8 aifs = 2;                //0x02

Which corresponds to the dump and what is showing up in iw_mode.

I don't know why things are going wrong though.

One problem I see is the check of staging_rxon instead of
staging39_rxon in iwl_reset_qos.
(priv->staging_rxon.flags & RXON_FLG_SHORT_SLOT_MSK) == 0)

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux