lkml.org 
[lkml]   [2007]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 010/101] bcm43xx: Fix for oops on ampdu status

    From: Michael Buesch <mb@bu3sch.de>

    If bcm43xx were to process an afterburner (ampdu) status response, Linux would oops. The
    ampdu and intermediate status bits are properly named.

    Signed-off-by: Michael Buesch <mb@bu3sch.de>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/net/wireless/bcm43xx/bcm43xx_main.c | 8 +++-----
    drivers/net/wireless/bcm43xx/bcm43xx_xmit.h | 10 ++--------
    2 files changed, 5 insertions(+), 13 deletions(-)

    --- linux-2.6.20.1.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c
    +++ linux-2.6.20.1/drivers/net/wireless/bcm43xx/bcm43xx_main.c
    @@ -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);
    --- linux-2.6.20.1.orig/drivers/net/wireless/bcm43xx/bcm43xx_xmit.h
    +++ linux-2.6.20.1/drivers/net/wireless/bcm43xx/bcm43xx_xmit.h
    @@ -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);
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-03-07 19:05    [W:4.366 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site