| From 81aa4f0d7be7ead5df9ed446e280f549675b57ce Mon Sep 17 00:00:00 2001 |
| From: Johannes Berg <johannes.berg@intel.com> |
| Date: Wed, 11 Dec 2019 10:09:56 +0100 |
| Subject: [PATCH] iwlwifi: mvm: fix SKB leak on invalid queue |
| |
| commit b9f726c94224e863d4d3458dfec2e7e1284a39ce upstream. |
| |
| It used to be the case that if we got here, we wouldn't warn |
| but instead allocate the queue (DQA). With using the mac80211 |
| TXQs model this changed, and we really have nothing to do with |
| the frame here anymore, hence the warning now. |
| |
| However, clearly we missed in coding & review that this is now |
| a pure error path and leaks the SKB if we return 0 instead of |
| an indication that the SKB needs to be freed. Fix this. |
| |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Fixes: cfbc6c4c5b91 ("iwlwifi: mvm: support mac80211 TXQs model") |
| Signed-off-by: Luca Coelho <luciano.coelho@intel.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c |
| index a12ee20fb9ab..1a388b157576 100644 |
| --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c |
| +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c |
| @@ -1151,7 +1151,7 @@ static int iwl_mvm_tx_mpdu(struct iwl_mvm *mvm, struct sk_buff *skb, |
| if (WARN_ONCE(txq_id == IWL_MVM_INVALID_QUEUE, "Invalid TXQ id")) { |
| iwl_trans_free_tx_cmd(mvm->trans, dev_cmd); |
| spin_unlock(&mvmsta->lock); |
| - return 0; |
| + return -1; |
| } |
| |
| if (!iwl_mvm_has_new_tx_api(mvm)) { |
| -- |
| 2.7.4 |
| |