Re: ipw2200: "ieee80211: Info elem: parse failed"

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

 



On Thu, 19 Oct 2006 11:17:34 +0200
Jiri Slaby <[email protected]> wrote:

> Hi,
> 
> since 2.6.19-rc1 I'm getting these messages from ipw2200 driver:
> ieee80211: Info elem: parse failed: info_element->len + 2 > left : 
> info_element->len+2=8 left=2, id=128.
> 
> The driver says:
> ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.4km
> ipw2200: Copyright(c) 2003-2006 Intel Corporation
> ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 3
> PCI: setting IRQ 3 as level-triggered
> ACPI: PCI Interrupt 0000:02:07.0[A] -> Link [LNKC] -> GSI 3 (level, low) -> IRQ 3
> ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
> ACPI: PCI Interrupt 0000:00:13.2[A] -> Link [LNKD] -> GSI 10 (level, low) -> IRQ 10
> 
> and works, but the message is annoying, since the driver prints it again and 
> again. What could be wrong?
> 

I suspect it was always failing.  But the failure message has been changed
so that it actually comes out.



commit f09fc44d8c25f22c4d985bb93857338ed02feac6
Author: Zhu Yi <[email protected]>
Date:   Mon Aug 21 11:34:19 2006 +0800

    [PATCH] ieee80211: Workaround malformed 802.11 frames from AP
    
    Stop processing further but return success when we receive a malformed
    packet from the AP. We need this patch to workaround some AP bugs. For
    example, the beacon frames from the Orinoco AP1000 contains an IE (value
    = 128) with length equals to 8 but the actual frame length is only 7.
    
    Signed-off-by: Zhu Yi <[email protected]>
    Signed-off-by: John W. Linville <[email protected]>

diff --git a/net/ieee80211/ieee80211_rx.c b/net/ieee80211/ieee80211_rx.c
index d60358d..7707041 100644
--- a/net/ieee80211/ieee80211_rx.c
+++ b/net/ieee80211/ieee80211_rx.c
@@ -1078,13 +1078,16 @@ #endif
 
 	while (length >= sizeof(*info_element)) {
 		if (sizeof(*info_element) + info_element->len > length) {
-			IEEE80211_DEBUG_MGMT("Info elem: parse failed: "
-					     "info_element->len + 2 > left : "
-					     "info_element->len+2=%zd left=%d, id=%d.\n",
-					     info_element->len +
-					     sizeof(*info_element),
-					     length, info_element->id);
-			return 1;
+			IEEE80211_ERROR("Info elem: parse failed: "
+					"info_element->len + 2 > left : "
+					"info_element->len+2=%zd left=%d, id=%d.\n",
+					info_element->len +
+					sizeof(*info_element),
+					length, info_element->id);
+			/* We stop processing but don't return an error here
+			 * because some misbehaviour APs break this rule. ie.
+			 * Orinoco AP1000. */
+			break;
 		}
 
 		switch (info_element->id) {

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux