diff options
author | Michael Buesch <mb@bu3sch.de> | 2009-11-19 16:24:29 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-11-23 17:05:28 -0500 |
commit | 07681e211d736ba2394ab7f29f77e93adecd22c5 (patch) | |
tree | d97c679446e738275894636f02d50190bf986599 /drivers/net/wireless/b43/dma.h | |
parent | 8c35024aa65c079f800df7778869a8dbda074182 (diff) |
b43: Rewrite DMA Tx status handling sanity checks
This rewrites the error handling policies in the TX status handler.
It tries to be error-tolerant as in "try hard to not crash the machine".
It won't recover from errors (that are bugs in the firmware or driver),
because that's impossible. However, it will return a more or less useful
error message and bail out. It also tries hard to use rate-limited messages
to not flood the syslog in case of a failure.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43/dma.h')
-rw-r--r-- | drivers/net/wireless/b43/dma.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/dma.h b/drivers/net/wireless/b43/dma.h index 356a0ff8f044..e607b392314c 100644 --- a/drivers/net/wireless/b43/dma.h +++ b/drivers/net/wireless/b43/dma.h | |||
@@ -1,7 +1,7 @@ | |||
1 | #ifndef B43_DMA_H_ | 1 | #ifndef B43_DMA_H_ |
2 | #define B43_DMA_H_ | 2 | #define B43_DMA_H_ |
3 | 3 | ||
4 | #include <linux/ieee80211.h> | 4 | #include <linux/err.h> |
5 | 5 | ||
6 | #include "b43.h" | 6 | #include "b43.h" |
7 | 7 | ||
@@ -164,6 +164,10 @@ struct b43_dmadesc_generic { | |||
164 | #define B43_RXRING_SLOTS 64 | 164 | #define B43_RXRING_SLOTS 64 |
165 | #define B43_DMA0_RX_BUFFERSIZE IEEE80211_MAX_FRAME_LEN | 165 | #define B43_DMA0_RX_BUFFERSIZE IEEE80211_MAX_FRAME_LEN |
166 | 166 | ||
167 | /* Pointer poison */ | ||
168 | #define B43_DMA_PTR_POISON ((void *)ERR_PTR(-ENOMEM)) | ||
169 | #define b43_dma_ptr_is_poisoned(ptr) (unlikely((ptr) == B43_DMA_PTR_POISON)) | ||
170 | |||
167 | 171 | ||
168 | struct sk_buff; | 172 | struct sk_buff; |
169 | struct b43_private; | 173 | struct b43_private; |