Commit 1d3c2928 authored by Michael Buesch's avatar Michael Buesch Committed by John W. Linville
Browse files

[PATCH] bcm43xx: Ignore ampdu status reports



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: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 0a92dd0a
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -1447,12 +1447,10 @@ static void handle_irq_transmit_status(struct bcm43xx_private *bcm)

		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);
+2 −8
Original line number Diff line number Diff line
@@ -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);