#ifndef XMALLOC_H #define XMALLOC_H #include #include "built_in.h" #include "die.h" extern void *xmalloc(size_t size) __hidden __warn_unused_result; extern void *xcalloc(size_t nmemb, size_t size) __hidden __warn_unused_result; extern void *xzmalloc(size_t size) __hidden __warn_unused_result; extern void *xmallocz(size_t size) __hidden __warn_unused_result; extern void *xmalloc_aligned(size_t size, size_t alignment) __hidden __warn_unused_result; extern void *xzmalloc_aligned(size_t size, size_t alignment) __hidden __warn_unused_result; extern void *xmemdupz(const void *data, size_t len) __hidden __warn_unused_result; extern void *xrealloc(void *ptr, size_t size) __hidden __warn_unused_result; extern void xfree_func(void *ptr) __hidden; extern char *xstrdup(const char *str) __hidden __warn_unused_result; extern char *xstrndup(const char *str, size_t size) __hidden __warn_unused_result; static inline void __xfree(void *ptr) { if (unlikely((ptr) == NULL)) panic("xfree: NULL pointer given as argument\n"); free(ptr); } #define xzfree(ptr, size) \ do { \ xmemset(ptr, 0, size); \ xfree(ptr); \ } while (0) #define xfree(ptr) \ do { \ __xfree(ptr); \ (ptr) = NULL; \ } while (0) #endif /* XMALLOC_H */ ption value='packet-rx-pump-back'>packet-rx-pump-back net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2016-12-07 15:04:37 +0200
committerLuca Coelho <luciano.coelho@intel.com>2017-02-06 19:19:23 +0200
commit94c3e614df2117626fccfac8f821c66e30556384 (patch)
treee392db0cd8da876d94b35b379377760f54f8b1cb
parent2c6262b754f3c3338cb40b23880a3ac1f4693b25 (diff)
iwlwifi: mvm: fix pending frame counter calculation
In DQA mode the check whether to decrement the pending frames counter relies on the tid status and not on the txq id. This may result in an inconsistent state of the pending frames counter in case frame is queued on a non aggregation queue but with this TID, and will be followed by a failure to remove the station and later on SYSASSERT 0x3421 when trying to remove the MAC. Such frames are for example bar and qos NDPs. Fix it by aligning the condition of incrementing the counter with the condition of decrementing it - rely on TID state for DQA mode. Also, avoid internal error like this affecting station removal for DQA mode - since we can know for sure it is an internal error. Fixes: cf961e16620f ("iwlwifi: mvm: support dqa-mode agg on non-shared queue") Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/sta.c33
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/tx.c5
2 files changed, 25 insertions, 13 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c