Please test the following patch. If an intermediate status report were 
delivered, it is likely that
the kernel would oops. As I have not received any reports of this happening, it 
probably doesn't
happen and this patch is benign. If testing does not reveal any problems, this 
patch will be
sent to wireless-2.6 and -stable.

Larry

=======================


From: Michael Buesch <[EMAIL PROTECTED]>

If bcm43xx were to process an intermediate status status response, a kernel 
oops is likely. The
patch also properly names the afterburner (ampdu) status response.

Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>
Signed-off-by: Larry Finger <[EMAIL PROTECTED]>
---

Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c       
2007-01-28 15:33:39.000000000 +0100
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c    2007-02-05 
13:46:38.000000000 +0100
@@ -1453,12 +1453,10 @@ static void handle_irq_transmit_status(s

                bcm43xx_debugfs_log_txstat(bcm, &stat);

-               if (stat.flags & BCM43xx_TXSTAT_FLAG_IGNORE)
+               if (stat.flags & BCM43xx_TXSTAT_FLAG_AMPDU)
+                       continue;
+               if (stat.flags & BCM43xx_TXSTAT_FLAG_INTER)
                        continue;
-               if (!(stat.flags & BCM43xx_TXSTAT_FLAG_ACK)) {
-                       //TODO: packet was not acked (was lost)
-               }
-               //TODO: There are more (unknown) flags to test. see 
bcm43xx_main.h

                if (bcm43xx_using_pio(bcm))
                        bcm43xx_pio_handle_xmitstatus(bcm, &stat);
Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_xmit.h
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_xmit.h       
2007-01-28 13:59:51.000000000 +0100
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_xmit.h    2007-02-05 
14:22:18.000000000 +0100
@@ -137,14 +137,8 @@ struct bcm43xx_xmitstatus {
        u16 unknown; //FIXME
 };

-#define BCM43xx_TXSTAT_FLAG_ACK                0x01
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x02
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x04
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x08
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x10
-#define BCM43xx_TXSTAT_FLAG_IGNORE     0x20
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x40
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x80
+#define BCM43xx_TXSTAT_FLAG_AMPDU      0x10
+#define BCM43xx_TXSTAT_FLAG_INTER      0x20

 u8 bcm43xx_plcp_get_ratecode_cck(const u8 bitrate);
 u8 bcm43xx_plcp_get_ratecode_ofdm(const u8 bitrate);

==========



_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to