linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* pull-request: iwlwifi 2015-10-05
@ 2015-10-05 11:31 Luca Coelho
  2015-10-05 11:40 ` [PATCH 1/8] iwlwifi: mvm: fix D3 CCMP TX PN assignment Luca Coelho
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:31 UTC (permalink / raw)
  To: kvalo; +Cc: egrumbach, linux-wireless

Hi Kalle,

Here's a pull request for 4.3.  There are 8 patches, including a fix
for a kernel panic, some serious PN programming issues, a thermal
monitor fix and some new vendor IDs.

Let me know if there are any issues.

Luca.

The following changes since commit dd5cdb48edfd34401799056a9acf61078d773f90:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next (2015-09-03 08:08:17 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git tags/iwlwifi-for-kalle-2015-10-05

for you to fetch changes up to dbf73d4a8bb8f4e1d1f3edd3be825692279e2ef3:

  iwlwifi: mvm: flush fw_dump_wk when mvm fails to start (2015-10-05 14:04:16 +0300)

----------------------------------------------------------------
* some fixes for PN key programming when entering D3;
* fix for CSA when the AP is stopped during a channel switch;
* fix firmware name for 3160 devices;
* add some new PCI IDs for 7265 devices;
* fix CT-kill entry;
* fix kernel panic when a sysassert occurs in the init ucode flow;

----------------------------------------------------------------
Andrei Otcheretianski (1):
      iwlwifi: mvm: flush fw_dump_wk when mvm fails to start

Arik Nemtsov (1):
      iwlwifi: mvm: init card correctly on ctkill exit check

Avraham Stern (1):
      iwlwifi: mvm: clear csa countdown when AP is stopped

Johannes Berg (4):
      iwlwifi: mvm: fix D3 CCMP TX PN assignment
      iwlwifi: dvm: fix D3 firmware PN programming
      iwlwifi: mvm: fix D3 firmware PN programming
      iwlwifi: fix firmware filename for 3160

Luca Coelho (1):
      iwlwifi: pci: add a few more PCI subvendor IDs for the 7265 series

 drivers/net/wireless/iwlwifi/dvm/lib.c      |  2 +-
 drivers/net/wireless/iwlwifi/iwl-7000.c     |  2 +-
 drivers/net/wireless/iwlwifi/mvm/d3.c       | 27 +++++++++++----------------
 drivers/net/wireless/iwlwifi/mvm/fw.c       |  4 ++--
 drivers/net/wireless/iwlwifi/mvm/mac80211.c |  1 +
 drivers/net/wireless/iwlwifi/mvm/mvm.h      |  5 +++++
 drivers/net/wireless/iwlwifi/mvm/ops.c      |  1 +
 drivers/net/wireless/iwlwifi/pcie/drv.c     |  5 +++++
 8 files changed, 27 insertions(+), 20 deletions(-)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/8] iwlwifi: mvm: fix D3 CCMP TX PN assignment
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
@ 2015-10-05 11:40 ` Luca Coelho
  2015-10-05 11:40 ` [PATCH 2/8] iwlwifi: dvm: fix D3 firmware PN programming Luca Coelho
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, stable, Luca Coelho

From: Johannes Berg <johannes.berg@intel.com>

When going into/coming out of D3, the TX PN must be programmed into
and restored from the firmware respectively. The restore was broken
due to my previous commit to move PN assignment into the driver.
Sending the PN to the firmware still worked since we now use the
counter that's shared with mac80211, but accessing it through the
mac80211 API makes no sense now.

Fix this by reading/writing the counter directly. This actually
simplifies the code since we don't need to round-trip through the
key_seq structure.

Fixes: ca8c0f4bede6 ("iwlwifi: mvm: move TX PN assignment for CCMP to the driver")
Cc: <stable@vger.kernel.org> [4.1+]
Reported-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/iwlwifi/mvm/d3.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/mvm/d3.c b/drivers/net/wireless/iwlwifi/mvm/d3.c
index 04264e4..9578b9d 100644
--- a/drivers/net/wireless/iwlwifi/mvm/d3.c
+++ b/drivers/net/wireless/iwlwifi/mvm/d3.c
@@ -274,18 +274,13 @@ static void iwl_mvm_wowlan_program_keys(struct ieee80211_hw *hw,
 		break;
 	case WLAN_CIPHER_SUITE_CCMP:
 		if (sta) {
-			u8 *pn = seq.ccmp.pn;
+			u64 pn64;
 
 			aes_sc = data->rsc_tsc->all_tsc_rsc.aes.unicast_rsc;
 			aes_tx_sc = &data->rsc_tsc->all_tsc_rsc.aes.tsc;
 
-			ieee80211_get_key_tx_seq(key, &seq);
-			aes_tx_sc->pn = cpu_to_le64((u64)pn[5] |
-						    ((u64)pn[4] << 8) |
-						    ((u64)pn[3] << 16) |
-						    ((u64)pn[2] << 24) |
-						    ((u64)pn[1] << 32) |
-						    ((u64)pn[0] << 40));
+			pn64 = atomic64_read(&key->tx_pn);
+			aes_tx_sc->pn = cpu_to_le64(pn64);
 		} else {
 			aes_sc = data->rsc_tsc->all_tsc_rsc.aes.multicast_rsc;
 		}
@@ -1453,15 +1448,15 @@ static void iwl_mvm_d3_update_gtks(struct ieee80211_hw *hw,
 
 		switch (key->cipher) {
 		case WLAN_CIPHER_SUITE_CCMP:
-			iwl_mvm_aes_sc_to_seq(&sc->aes.tsc, &seq);
 			iwl_mvm_set_aes_rx_seq(sc->aes.unicast_rsc, key);
+			atomic64_set(&key->tx_pn, le64_to_cpu(sc->aes.tsc.pn));
 			break;
 		case WLAN_CIPHER_SUITE_TKIP:
 			iwl_mvm_tkip_sc_to_seq(&sc->tkip.tsc, &seq);
 			iwl_mvm_set_tkip_rx_seq(sc->tkip.unicast_rsc, key);
+			ieee80211_set_key_tx_seq(key, &seq);
 			break;
 		}
-		ieee80211_set_key_tx_seq(key, &seq);
 
 		/* that's it for this key */
 		return;
-- 
2.5.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/8] iwlwifi: dvm: fix D3 firmware PN programming
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
  2015-10-05 11:40 ` [PATCH 1/8] iwlwifi: mvm: fix D3 CCMP TX PN assignment Luca Coelho
@ 2015-10-05 11:40 ` Luca Coelho
  2015-10-05 11:40 ` [PATCH 3/8] iwlwifi: mvm: " Luca Coelho
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, stable, Luca Coelho

From: Johannes Berg <johannes.berg@intel.com>

The code to send the RX PN data (for each TID) to the firmware
has a devastating bug: it overwrites the data for TID 0 with
all the TID data, leaving the remaining TIDs zeroed. This will
allow replays to actually be accepted by the firmware, which
could allow waking up the system.

Cc: <stable@vger.kernel.org> [3.1+]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/iwlwifi/dvm/lib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/iwlwifi/dvm/lib.c b/drivers/net/wireless/iwlwifi/dvm/lib.c
index ab45819..e18629a 100644
--- a/drivers/net/wireless/iwlwifi/dvm/lib.c
+++ b/drivers/net/wireless/iwlwifi/dvm/lib.c
@@ -1020,7 +1020,7 @@ static void iwlagn_wowlan_program_keys(struct ieee80211_hw *hw,
 			u8 *pn = seq.ccmp.pn;
 
 			ieee80211_get_key_rx_seq(key, i, &seq);
-			aes_sc->pn = cpu_to_le64(
+			aes_sc[i].pn = cpu_to_le64(
 					(u64)pn[5] |
 					((u64)pn[4] << 8) |
 					((u64)pn[3] << 16) |
-- 
2.5.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/8] iwlwifi: mvm: fix D3 firmware PN programming
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
  2015-10-05 11:40 ` [PATCH 1/8] iwlwifi: mvm: fix D3 CCMP TX PN assignment Luca Coelho
  2015-10-05 11:40 ` [PATCH 2/8] iwlwifi: dvm: fix D3 firmware PN programming Luca Coelho
@ 2015-10-05 11:40 ` Luca Coelho
  2015-10-05 11:40 ` [PATCH 4/8] iwlwifi: mvm: clear csa countdown when AP is stopped Luca Coelho
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, stable, Luca Coelho

From: Johannes Berg <johannes.berg@intel.com>

The code to send the RX PN data (for each TID) to the firmware
has a devastating bug: it overwrites the data for TID 0 with
all the TID data, leaving the remaining TIDs zeroed. This will
allow replays to actually be accepted by the firmware, which
could allow waking up the system.

Cc: <stable@vger.kernel.org> [3.1+]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/iwlwifi/mvm/d3.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/mvm/d3.c b/drivers/net/wireless/iwlwifi/mvm/d3.c
index 9578b9d..5761876 100644
--- a/drivers/net/wireless/iwlwifi/mvm/d3.c
+++ b/drivers/net/wireless/iwlwifi/mvm/d3.c
@@ -293,12 +293,12 @@ static void iwl_mvm_wowlan_program_keys(struct ieee80211_hw *hw,
 			u8 *pn = seq.ccmp.pn;
 
 			ieee80211_get_key_rx_seq(key, i, &seq);
-			aes_sc->pn = cpu_to_le64((u64)pn[5] |
-						 ((u64)pn[4] << 8) |
-						 ((u64)pn[3] << 16) |
-						 ((u64)pn[2] << 24) |
-						 ((u64)pn[1] << 32) |
-						 ((u64)pn[0] << 40));
+			aes_sc[i].pn = cpu_to_le64((u64)pn[5] |
+						   ((u64)pn[4] << 8) |
+						   ((u64)pn[3] << 16) |
+						   ((u64)pn[2] << 24) |
+						   ((u64)pn[1] << 32) |
+						   ((u64)pn[0] << 40));
 		}
 		data->use_rsc_tsc = true;
 		break;
-- 
2.5.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/8] iwlwifi: mvm: clear csa countdown when AP is stopped
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
                   ` (2 preceding siblings ...)
  2015-10-05 11:40 ` [PATCH 3/8] iwlwifi: mvm: " Luca Coelho
@ 2015-10-05 11:40 ` Luca Coelho
  2015-10-05 11:40 ` [PATCH 5/8] iwlwifi: fix firmware filename for 3160 Luca Coelho
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Avraham Stern, stable, Luca Coelho

From: Avraham Stern <avraham.stern@intel.com>

The csa_countdown flag was not cleared when the AP is stopped.
As a result, if the AP was stopped after csa_countdown had started,
all the folowing channel switch commands would fail.
Fix that by clearing the csa_countdown flag when the AP is stopped.

Cc: <stable@vger.kernel.org> [3.17+]
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/iwlwifi/mvm/mac80211.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
index aa8c2b7..7c2944a 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
@@ -2388,6 +2388,7 @@ static void iwl_mvm_stop_ap_ibss(struct ieee80211_hw *hw,
 		iwl_mvm_remove_time_event(mvm, mvmvif,
 					  &mvmvif->time_event_data);
 		RCU_INIT_POINTER(mvm->csa_vif, NULL);
+		mvmvif->csa_countdown = false;
 	}
 
 	if (rcu_access_pointer(mvm->csa_tx_blocked_vif) == vif) {
-- 
2.5.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 5/8] iwlwifi: fix firmware filename for 3160
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
                   ` (3 preceding siblings ...)
  2015-10-05 11:40 ` [PATCH 4/8] iwlwifi: mvm: clear csa countdown when AP is stopped Luca Coelho
@ 2015-10-05 11:40 ` Luca Coelho
  2015-10-05 11:40 ` [PATCH 6/8] iwlwifi: pci: add a few more PCI subvendor IDs for the 7265 series Luca Coelho
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, stable, Luca Coelho

From: Johannes Berg <johannes.berg@intel.com>

The MODULE_FIRMWARE() for 3160 should be using the 7260 version as
it's done in the device configuration struct instead of referencing
IWL3160_UCODE_API_OK which doesn't even exist.

Cc: <stable@vger.kernel.org> [3.8+]
Reported-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-7000.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-7000.c b/drivers/net/wireless/iwlwifi/iwl-7000.c
index 6951aba..3fb327d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-7000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-7000.c
@@ -348,6 +348,6 @@ const struct iwl_cfg iwl7265d_n_cfg = {
 };
 
 MODULE_FIRMWARE(IWL7260_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
-MODULE_FIRMWARE(IWL3160_MODULE_FIRMWARE(IWL3160_UCODE_API_OK));
+MODULE_FIRMWARE(IWL3160_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
 MODULE_FIRMWARE(IWL7265_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
 MODULE_FIRMWARE(IWL7265D_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
-- 
2.5.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 6/8] iwlwifi: pci: add a few more PCI subvendor IDs for the 7265 series
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
                   ` (4 preceding siblings ...)
  2015-10-05 11:40 ` [PATCH 5/8] iwlwifi: fix firmware filename for 3160 Luca Coelho
@ 2015-10-05 11:40 ` Luca Coelho
  2015-10-05 11:40 ` [PATCH 7/8] iwlwifi: mvm: init card correctly on ctkill exit check Luca Coelho
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Luca Coelho, stable

From: Luca Coelho <luciano.coelho@intel.com>

Add 3 new subdevice IDs for the 0x095A device ID and 2 for the 0x095B
device ID.

Cc: <stable@vger.kernerl.org> [3.13+]
Reported-by: Jeremy <jeremy.bomkamp@gmail.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/iwlwifi/pcie/drv.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/wireless/iwlwifi/pcie/drv.c b/drivers/net/wireless/iwlwifi/pcie/drv.c
index b0825c4..644b58b 100644
--- a/drivers/net/wireless/iwlwifi/pcie/drv.c
+++ b/drivers/net/wireless/iwlwifi/pcie/drv.c
@@ -414,6 +414,11 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
 	{IWL_PCI_DEVICE(0x095A, 0x5590, iwl7265_2ac_cfg)},
 	{IWL_PCI_DEVICE(0x095B, 0x5290, iwl7265_2ac_cfg)},
 	{IWL_PCI_DEVICE(0x095A, 0x5490, iwl7265_2ac_cfg)},
+	{IWL_PCI_DEVICE(0x095A, 0x5F10, iwl7265_2ac_cfg)},
+	{IWL_PCI_DEVICE(0x095B, 0x5212, iwl7265_2ac_cfg)},
+	{IWL_PCI_DEVICE(0x095B, 0x520A, iwl7265_2ac_cfg)},
+	{IWL_PCI_DEVICE(0x095A, 0x9000, iwl7265_2ac_cfg)},
+	{IWL_PCI_DEVICE(0x095A, 0x9400, iwl7265_2ac_cfg)},
 
 /* 8000 Series */
 	{IWL_PCI_DEVICE(0x24F3, 0x0010, iwl8260_2ac_cfg)},
-- 
2.5.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 7/8] iwlwifi: mvm: init card correctly on ctkill exit check
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
                   ` (5 preceding siblings ...)
  2015-10-05 11:40 ` [PATCH 6/8] iwlwifi: pci: add a few more PCI subvendor IDs for the 7265 series Luca Coelho
@ 2015-10-05 11:40 ` Luca Coelho
  2015-10-05 11:40 ` [PATCH 8/8] iwlwifi: mvm: flush fw_dump_wk when mvm fails to start Luca Coelho
  2015-10-07  8:14 ` pull-request: iwlwifi 2015-10-05 Kalle Valo
  8 siblings, 0 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Arik Nemtsov, stable, Arik Nemtsov, Luca Coelho

From: Arik Nemtsov <arik@wizery.com>

During the CT-kill exit flow, the card is powered up and partially
initialized to check if the temperature is already low enough.
Unfortunately the init bails early because the CT-kill flag is set.
Make the code bail early only for HW RF-kill, as was intended by the
author. CT-kill is self-imposed and is not really RF-kill.

Fixes: 31b8b343e019 ("iwlwifi: fix RFkill while calibrating")
Cc: <stable@vger.kernel.org> [3.18+]
Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/iwlwifi/mvm/fw.c  | 4 ++--
 drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/mvm/fw.c b/drivers/net/wireless/iwlwifi/mvm/fw.c
index 4a0ce83..5c7f7cc 100644
--- a/drivers/net/wireless/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/iwlwifi/mvm/fw.c
@@ -703,7 +703,7 @@ int iwl_run_init_mvm_ucode(struct iwl_mvm *mvm, bool read_nvm)
 	 * abort after reading the nvm in case RF Kill is on, we will complete
 	 * the init seq later when RF kill will switch to off
 	 */
-	if (iwl_mvm_is_radio_killed(mvm)) {
+	if (iwl_mvm_is_radio_hw_killed(mvm)) {
 		IWL_DEBUG_RF_KILL(mvm,
 				  "jump over all phy activities due to RF kill\n");
 		iwl_remove_notification(&mvm->notif_wait, &calib_wait);
@@ -736,7 +736,7 @@ int iwl_run_init_mvm_ucode(struct iwl_mvm *mvm, bool read_nvm)
 	ret = iwl_wait_notification(&mvm->notif_wait, &calib_wait,
 			MVM_UCODE_CALIB_TIMEOUT);
 
-	if (ret && iwl_mvm_is_radio_killed(mvm)) {
+	if (ret && iwl_mvm_is_radio_hw_killed(mvm)) {
 		IWL_DEBUG_RF_KILL(mvm, "RFKILL while calibrating.\n");
 		ret = 1;
 	}
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h
index b95a07e..c754051 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mvm.h
+++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h
@@ -860,6 +860,11 @@ static inline bool iwl_mvm_is_radio_killed(struct iwl_mvm *mvm)
 	       test_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status);
 }
 
+static inline bool iwl_mvm_is_radio_hw_killed(struct iwl_mvm *mvm)
+{
+	return test_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status);
+}
+
 /* Must be called with rcu_read_lock() held and it can only be
  * released when mvmsta is not needed anymore.
  */
-- 
2.5.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 8/8] iwlwifi: mvm: flush fw_dump_wk when mvm fails to start
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
                   ` (6 preceding siblings ...)
  2015-10-05 11:40 ` [PATCH 7/8] iwlwifi: mvm: init card correctly on ctkill exit check Luca Coelho
@ 2015-10-05 11:40 ` Luca Coelho
  2015-10-07  8:14 ` pull-request: iwlwifi 2015-10-05 Kalle Valo
  8 siblings, 0 replies; 10+ messages in thread
From: Luca Coelho @ 2015-10-05 11:40 UTC (permalink / raw)
  To: linux-wireless; +Cc: Andrei Otcheretianski, stable, Luca Coelho

From: Andrei Otcheretianski <andrei.otcheretianski@intel.com>

FW dump may be triggered when running init ucode, for example due to a
sysassert. In this case fw_dump_wk may run after mvm is freed, resulting
in a kernel panic.
Fix it by flushing the work.

Fixes: 01b988a708af ("iwlwifi: mvm: allow to collect debug data when restart is disabled")
Cc: <stable@vger.kernel.org> [3.18+]
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/iwlwifi/mvm/ops.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c
index a37de3f..f0cb092 100644
--- a/drivers/net/wireless/iwlwifi/mvm/ops.c
+++ b/drivers/net/wireless/iwlwifi/mvm/ops.c
@@ -590,6 +590,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
 	ieee80211_unregister_hw(mvm->hw);
 	iwl_mvm_leds_exit(mvm);
  out_free:
+	flush_delayed_work(&mvm->fw_dump_wk);
 	iwl_phy_db_free(mvm->phy_db);
 	kfree(mvm->scan_cmd);
 	if (!cfg->no_power_up_nic_in_init || !mvm->nvm_file_name)
-- 
2.5.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: pull-request: iwlwifi 2015-10-05
  2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
                   ` (7 preceding siblings ...)
  2015-10-05 11:40 ` [PATCH 8/8] iwlwifi: mvm: flush fw_dump_wk when mvm fails to start Luca Coelho
@ 2015-10-07  8:14 ` Kalle Valo
  8 siblings, 0 replies; 10+ messages in thread
From: Kalle Valo @ 2015-10-07  8:14 UTC (permalink / raw)
  To: Luca Coelho; +Cc: egrumbach, linux-wireless

Luca Coelho <luca@coelho.fi> writes:

> Here's a pull request for 4.3.  There are 8 patches, including a fix
> for a kernel panic, some serious PN programming issues, a thermal
> monitor fix and some new vendor IDs.
>
> Let me know if there are any issues.
>
> Luca.
>
> The following changes since commit dd5cdb48edfd34401799056a9acf61078d773f90:
>
>   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next (2015-09-03 08:08:17 -0700)
>
> are available in the git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git tags/iwlwifi-for-kalle-2015-10-05
>
> for you to fetch changes up to dbf73d4a8bb8f4e1d1f3edd3be825692279e2ef3:
>
>   iwlwifi: mvm: flush fw_dump_wk when mvm fails to start (2015-10-05 14:04:16 +0300)
>
> ----------------------------------------------------------------
> * some fixes for PN key programming when entering D3;
> * fix for CSA when the AP is stopped during a channel switch;
> * fix firmware name for 3160 devices;
> * add some new PCI IDs for 7265 devices;
> * fix CT-kill entry;
> * fix kernel panic when a sysassert occurs in the init ucode flow;
>
> ----------------------------------------------------------------

Pulled, thanks.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-10-07  8:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-05 11:31 pull-request: iwlwifi 2015-10-05 Luca Coelho
2015-10-05 11:40 ` [PATCH 1/8] iwlwifi: mvm: fix D3 CCMP TX PN assignment Luca Coelho
2015-10-05 11:40 ` [PATCH 2/8] iwlwifi: dvm: fix D3 firmware PN programming Luca Coelho
2015-10-05 11:40 ` [PATCH 3/8] iwlwifi: mvm: " Luca Coelho
2015-10-05 11:40 ` [PATCH 4/8] iwlwifi: mvm: clear csa countdown when AP is stopped Luca Coelho
2015-10-05 11:40 ` [PATCH 5/8] iwlwifi: fix firmware filename for 3160 Luca Coelho
2015-10-05 11:40 ` [PATCH 6/8] iwlwifi: pci: add a few more PCI subvendor IDs for the 7265 series Luca Coelho
2015-10-05 11:40 ` [PATCH 7/8] iwlwifi: mvm: init card correctly on ctkill exit check Luca Coelho
2015-10-05 11:40 ` [PATCH 8/8] iwlwifi: mvm: flush fw_dump_wk when mvm fails to start Luca Coelho
2015-10-07  8:14 ` pull-request: iwlwifi 2015-10-05 Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).