diff options
author | 2020-08-04 14:02:54 +0300 | |
---|---|---|
committer | 2020-08-04 14:02:54 +0300 | |
commit | 2cfd71f1a43e9e1053db6c84f2dc33fe88128f67 (patch) | |
tree | 777ad43d30e00597687256da0d5a1f966df99f3e /drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | |
parent | brcmfmac: Set timeout value when configuring power save (diff) | |
parent | ath10k: Fix NULL pointer dereference in AHB device probe (diff) | |
download | linux-dev-2cfd71f1a43e9e1053db6c84f2dc33fe88128f67.tar.xz linux-dev-2cfd71f1a43e9e1053db6c84f2dc33fe88128f67.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git
mt76 driver had major conflicts within mt7615 directory. To make it easier for
every merge wireless-drivers to wireless-drivers-next and solve those
conflicts.
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c index f180db2936e3..9ce7207d9ec5 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c @@ -271,6 +271,8 @@ static int iwl_dbg_tlv_alloc_trigger(struct iwl_trans *trans, { struct iwl_fw_ini_trigger_tlv *trig = (void *)tlv->data; u32 tp = le32_to_cpu(trig->time_point); + struct iwl_ucode_tlv *dup = NULL; + int ret; if (le32_to_cpu(tlv->length) < sizeof(*trig)) return -EINVAL; @@ -283,10 +285,20 @@ static int iwl_dbg_tlv_alloc_trigger(struct iwl_trans *trans, return -EINVAL; } - if (!le32_to_cpu(trig->occurrences)) + if (!le32_to_cpu(trig->occurrences)) { + dup = kmemdup(tlv, sizeof(*tlv) + le32_to_cpu(tlv->length), + GFP_KERNEL); + if (!dup) + return -ENOMEM; + trig = (void *)dup->data; trig->occurrences = cpu_to_le32(-1); + tlv = dup; + } + + ret = iwl_dbg_tlv_add(tlv, &trans->dbg.time_point[tp].trig_list); + kfree(dup); - return iwl_dbg_tlv_add(tlv, &trans->dbg.time_point[tp].trig_list); + return ret; } static int (*dbg_tlv_alloc[])(struct iwl_trans *trans, |