| From 87e7e25aee6b59fef740856f4e86d4b60496c9e1 Mon Sep 17 00:00:00 2001 |
| From: Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
| Date: Sun, 21 Jul 2019 14:02:27 +0300 |
| Subject: iwlwifi: don't unmap as page memory that was mapped as single |
| |
| From: Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
| |
| commit 87e7e25aee6b59fef740856f4e86d4b60496c9e1 upstream. |
| |
| In order to remember how to unmap a memory (as single or |
| as page), we maintain a bit per Transmit Buffer (TBs) in |
| the meta data (structure iwl_cmd_meta). |
| We maintain a bitmap: 1 bit per TB. |
| If the TB is set, we will free the memory as a page. |
| This bitmap was never cleared. Fix this. |
| |
| Cc: stable@vger.kernel.org |
| Fixes: 3cd1980b0cdf ("iwlwifi: pcie: introduce new tfd and tb formats") |
| Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c |
| +++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c |
| @@ -401,6 +401,8 @@ static void iwl_pcie_tfd_unmap(struct iw |
| DMA_TO_DEVICE); |
| } |
| |
| + meta->tbs = 0; |
| + |
| if (trans->cfg->use_tfh) { |
| struct iwl_tfh_tfd *tfd_fh = (void *)tfd; |
| |