mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
wifi: iwlwifi: add a validity check of queue_id in iwl_txq_reclaim
This function receives the queue id to reclaim packets from. Currently we're passing to it the queue id we received from the FW in the flush response. We don't do any check of this value and it might be invalid. In such case we will refer to a pointer to a queue which might be NULL. Fix this by adding a validity check of the queue id before using it. Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230413102635.a9c3fd32bce7.I5fbdcf3b1b80eb96a907116c166f19dc0aae7cb8@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
0cc6fb8a0c
commit
413be839bf
1 changed files with 7 additions and 3 deletions
|
@ -1554,14 +1554,18 @@ void iwl_txq_reclaim(struct iwl_trans *trans, int txq_id, int ssn,
|
|||
struct sk_buff_head *skbs)
|
||||
{
|
||||
struct iwl_txq *txq = trans->txqs.txq[txq_id];
|
||||
int tfd_num = iwl_txq_get_cmd_index(txq, ssn);
|
||||
int read_ptr = iwl_txq_get_cmd_index(txq, txq->read_ptr);
|
||||
int last_to_free;
|
||||
int tfd_num, read_ptr, last_to_free;
|
||||
|
||||
/* This function is not meant to release cmd queue*/
|
||||
if (WARN_ON(txq_id == trans->txqs.cmd.q_id))
|
||||
return;
|
||||
|
||||
if (WARN_ON(!txq))
|
||||
return;
|
||||
|
||||
tfd_num = iwl_txq_get_cmd_index(txq, ssn);
|
||||
read_ptr = iwl_txq_get_cmd_index(txq, txq->read_ptr);
|
||||
|
||||
spin_lock_bh(&txq->lock);
|
||||
|
||||
if (!test_bit(txq_id, trans->txqs.queue_used)) {
|
||||
|
|
Loading…
Reference in a new issue