Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Jan 2001 15:34:52 -0800 (PST)
From:      asaddi@philosophysw.com
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/24137: Aironet driver breaks after firmware upgrade
Message-ID:  <200101072334.f07NYqQ88827@alephnull.cisco.com>

next in thread | raw e-mail | index | archive | help

>Number:         24137
>Category:       kern
>Synopsis:       Aironet driver breaks after firmware upgrade
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 07 15:40:02 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Allan Saddi
>Release:        FreeBSD 4.2-STABLE i386
>Organization:
Philosophy SoftWorks
>Environment:

FreeBSD tranquility.philosophysw.com 4.2-STABLE FreeBSD 4.2-STABLE #42: Sun Jan  7 15:08:24 PST 2001     root@tranquility.philosophysw.com:/usr/src/sys/compile/TRANQUILITY  i386

>Description:

After upgrading the firmware of my Aironet cards to 4.13, I found
that the driver no longer worked. The console began to fill up with
these messages:

Jan  7 15:03:09 tranquility /kernel: an0: record length mismatch -- expected 134
, got 136

It seems that the new firmware returns an an_ltv_status structure which
is 2 bytes larger than expected. (What those 2 bytes are, I have no
idea!) Extending the structure by 2 bytes seems to quell the messages,
as well as make the driver work again.

I was not able to test these changes against cards with older firmware.

>How-To-Repeat:

Upgrade firmware to 4.13.

>Fix:

--- ./sys/dev/an/if_aironet_ieee.h.orig	Wed Dec 20 13:25:31 2000
+++ ./sys/dev/an/if_aironet_ieee.h	Sun Jan  7 15:07:32 2001
@@ -523,7 +523,7 @@
 	u_int16_t		an_max_noise_prev_sec;	/* 0x7A */
 	u_int16_t		an_avg_noise_prev_min;	/* 0x7C */
 	u_int16_t		an_max_noise_prev_min;	/* 0x7E */
-	u_int16_t		an_spare[2];
+	u_int16_t		an_spare[3];
 };
 
 #define AN_STATUS_OPMODE_CONFIGURED		0x0001
--- ./sys/dev/an/if_anreg.h.orig	Wed Dec 20 13:25:31 2000
+++ ./sys/dev/an/if_anreg.h	Sun Jan  7 15:07:22 2001
@@ -528,7 +528,7 @@
 	u_int16_t		an_max_noise_prev_sec;	/* 0x7A */
 	u_int16_t		an_avg_noise_prev_min;	/* 0x7C */
 	u_int16_t		an_max_noise_prev_min;	/* 0x7E */
-	u_int16_t		an_spare[2];
+	u_int16_t		an_spare[3];
 };
 
 #define AN_STATUS_OPMODE_CONFIGURED		0x0001

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101072334.f07NYqQ88827>