* [PATCH 01/21] iwlwifi: dvm: fix WoWLAN
[not found] <0BA3FCBA62E2DC44AF3030971E174FB32E9836B4@hasmsx107.ger.corp.intel.com>
@ 2016-01-07 12:47 ` Emmanuel Grumbach
2016-01-07 21:15 ` Kalle Valo
2016-01-07 12:47 ` [PATCH 02/21] iwlwifi: update and fix 7265 series PCI IDs Emmanuel Grumbach
2016-01-07 12:47 ` [PATCH 21/21] iwlwifi: pcie: properly configure the debug buffer size for 8000 Emmanuel Grumbach
2 siblings, 1 reply; 5+ messages in thread
From: Emmanuel Grumbach @ 2016-01-07 12:47 UTC (permalink / raw)
To: linux-wireless; +Cc: Emmanuel Grumbach, stable
My commit below introduced a mutex in the transport to
prevent concurrent operations. To do so, it added a flag
(is_down) to make sure the transport is in the right state.
This uncoverred an bug that didn't cause any harm until
now: iwldvm calls stop_device and then starts the firmware
without calling start_hw in between. While this flow is
fine from the device configuration point of view (register,
etc...), it is now forbidden by the new is_down flag.
This led to this error to appear:
iwlwifi 0000:05:00.0: Can't start_fw since the HW hasn't been started
and the suspend would fail.
This fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=109591
CC: <stable@vger.kernel.org> [4.3+]
Reported-by: Bogdan Bogush <bogdan.s.bogush@gmail.com>
Fixes=fa9f3281cbb1 ("iwlwifi: pcie: lock start_hw / start_fw / stop_device")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/lib.c b/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
index bee1c03..fd409ad 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
@@ -1154,6 +1154,9 @@ int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)
priv->ucode_loaded = false;
iwl_trans_stop_device(priv->trans);
+ ret = iwl_trans_start_hw(priv->trans);
+ if (ret)
+ goto out;
priv->wowlan = true;
@@ -1247,6 +1250,7 @@ int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)
ret = iwlagn_send_patterns(priv, wowlan);
out:
+ iwl_trans_stop_device(priv->trans);
kfree(key_data.rsc_tsc);
return ret;
}
--
2.5.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 02/21] iwlwifi: update and fix 7265 series PCI IDs
[not found] <0BA3FCBA62E2DC44AF3030971E174FB32E9836B4@hasmsx107.ger.corp.intel.com>
2016-01-07 12:47 ` [PATCH 01/21] iwlwifi: dvm: fix WoWLAN Emmanuel Grumbach
@ 2016-01-07 12:47 ` Emmanuel Grumbach
2016-01-07 12:47 ` [PATCH 21/21] iwlwifi: pcie: properly configure the debug buffer size for 8000 Emmanuel Grumbach
2 siblings, 0 replies; 5+ messages in thread
From: Emmanuel Grumbach @ 2016-01-07 12:47 UTC (permalink / raw)
To: linux-wireless; +Cc: Oren Givon, stable, Emmanuel Grumbach
From: Oren Givon <oren.givon@intel.com>
Update and fix some 7265 PCI IDs entries.
CC: <stable@vger.kernel.org> [3.13+]
Signed-off-by: Oren Givon <oren.givon@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
index af10651..6261a68 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
@@ -388,6 +388,7 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
{IWL_PCI_DEVICE(0x095B, 0x5310, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095B, 0x5302, iwl7265_n_cfg)},
{IWL_PCI_DEVICE(0x095B, 0x5210, iwl7265_2ac_cfg)},
+ {IWL_PCI_DEVICE(0x095A, 0x5C10, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x5012, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x5412, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x5410, iwl7265_2ac_cfg)},
@@ -405,10 +406,10 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
{IWL_PCI_DEVICE(0x095A, 0x900A, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x9110, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x9112, iwl7265_2ac_cfg)},
- {IWL_PCI_DEVICE(0x095A, 0x9210, iwl7265_2ac_cfg)},
+ {IWL_PCI_DEVICE(0x095B, 0x9210, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095B, 0x9200, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x9510, iwl7265_2ac_cfg)},
- {IWL_PCI_DEVICE(0x095A, 0x9310, iwl7265_2ac_cfg)},
+ {IWL_PCI_DEVICE(0x095B, 0x9310, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x9410, iwl7265_2ac_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x5020, iwl7265_2n_cfg)},
{IWL_PCI_DEVICE(0x095A, 0x502A, iwl7265_2n_cfg)},
--
2.5.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 21/21] iwlwifi: pcie: properly configure the debug buffer size for 8000
[not found] <0BA3FCBA62E2DC44AF3030971E174FB32E9836B4@hasmsx107.ger.corp.intel.com>
2016-01-07 12:47 ` [PATCH 01/21] iwlwifi: dvm: fix WoWLAN Emmanuel Grumbach
2016-01-07 12:47 ` [PATCH 02/21] iwlwifi: update and fix 7265 series PCI IDs Emmanuel Grumbach
@ 2016-01-07 12:47 ` Emmanuel Grumbach
2 siblings, 0 replies; 5+ messages in thread
From: Emmanuel Grumbach @ 2016-01-07 12:47 UTC (permalink / raw)
To: linux-wireless; +Cc: Emmanuel Grumbach, stable
8000 device family has a new debug engine that needs to be
configured differently than 7000's.
The debug engine's DMA works in chunks of memory and the
size of the buffer really means the start of the last
chunk. Since one chunk is 256-byte long, we should
configure the device to write to buffer_size - 256.
This fixes a situation were the device would write to
memory it is not allowed to access.
CC: <stable@vger.kernel.org> [4.1+]
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
index 3a43109..d60a467 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
@@ -7,6 +7,7 @@
*
* Copyright(c) 2007 - 2015 Intel Corporation. All rights reserved.
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
+ * Copyright(c) 2016 Intel Deutschland GmbH
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
@@ -33,6 +34,7 @@
*
* Copyright(c) 2005 - 2015 Intel Corporation. All rights reserved.
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
+ * Copyright(c) 2016 Intel Deutschland GmbH
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -924,9 +926,16 @@ monitor:
if (dest->monitor_mode == EXTERNAL_MODE && trans_pcie->fw_mon_size) {
iwl_write_prph(trans, le32_to_cpu(dest->base_reg),
trans_pcie->fw_mon_phys >> dest->base_shift);
- iwl_write_prph(trans, le32_to_cpu(dest->end_reg),
- (trans_pcie->fw_mon_phys +
- trans_pcie->fw_mon_size) >> dest->end_shift);
+ if (trans->cfg->device_family == IWL_DEVICE_FAMILY_8000)
+ iwl_write_prph(trans, le32_to_cpu(dest->end_reg),
+ (trans_pcie->fw_mon_phys +
+ trans_pcie->fw_mon_size - 256) >>
+ dest->end_shift);
+ else
+ iwl_write_prph(trans, le32_to_cpu(dest->end_reg),
+ (trans_pcie->fw_mon_phys +
+ trans_pcie->fw_mon_size) >>
+ dest->end_shift);
}
}
--
2.5.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 01/21] iwlwifi: dvm: fix WoWLAN
2016-01-07 12:47 ` [PATCH 01/21] iwlwifi: dvm: fix WoWLAN Emmanuel Grumbach
@ 2016-01-07 21:15 ` Kalle Valo
2016-01-08 8:08 ` Grumbach, Emmanuel
0 siblings, 1 reply; 5+ messages in thread
From: Kalle Valo @ 2016-01-07 21:15 UTC (permalink / raw)
To: Emmanuel Grumbach; +Cc: linux-wireless, stable
Emmanuel Grumbach <emmanuel.grumbach@intel.com> writes:
> My commit below introduced a mutex in the transport to
> prevent concurrent operations. To do so, it added a flag
> (is_down) to make sure the transport is in the right state.
> This uncoverred an bug that didn't cause any harm until
> now: iwldvm calls stop_device and then starts the firmware
> without calling start_hw in between. While this flow is
> fine from the device configuration point of view (register,
> etc...), it is now forbidden by the new is_down flag.
> This led to this error to appear:
> iwlwifi 0000:05:00.0: Can't start_fw since the HW hasn't been started
> and the suspend would fail.
>
> This fixes:
> https://bugzilla.kernel.org/show_bug.cgi?id=109591
>
> CC: <stable@vger.kernel.org> [4.3+]
> Reported-by: Bogdan Bogush <bogdan.s.bogush@gmail.com>
> Fixes=fa9f3281cbb1 ("iwlwifi: pcie: lock start_hw / start_fw / stop_device")
No need to change this anymore, but this should be:
Fixes: fa9f3281cbb1 ("iwlwifi: pcie: lock start_hw / start_fw / stop_device")
--
Kalle Valo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 01/21] iwlwifi: dvm: fix WoWLAN
2016-01-07 21:15 ` Kalle Valo
@ 2016-01-08 8:08 ` Grumbach, Emmanuel
0 siblings, 0 replies; 5+ messages in thread
From: Grumbach, Emmanuel @ 2016-01-08 8:08 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless@vger.kernel.org, stable@vger.kernel.org
On 01/07/2016 11:15 PM, Kalle Valo wrote:
> Emmanuel Grumbach <emmanuel.grumbach@intel.com> writes:
>
>> My commit below introduced a mutex in the transport to
>> prevent concurrent operations. To do so, it added a flag
>> (is_down) to make sure the transport is in the right state.
>> This uncoverred an bug that didn't cause any harm until
>> now: iwldvm calls stop_device and then starts the firmware
>> without calling start_hw in between. While this flow is
>> fine from the device configuration point of view (register,
>> etc...), it is now forbidden by the new is_down flag.
>> This led to this error to appear:
>> iwlwifi 0000:05:00.0: Can't start_fw since the HW hasn't been started
>> and the suspend would fail.
>>
>> This fixes:
>> https://bugzilla.kernel.org/show_bug.cgi?id=109591
>>
>> CC: <stable@vger.kernel.org> [4.3+]
>> Reported-by: Bogdan Bogush <bogdan.s.bogush@gmail.com>
>> Fixes=fa9f3281cbb1 ("iwlwifi: pcie: lock start_hw / start_fw / stop_device")
> No need to change this anymore, but this should be:
>
> Fixes: fa9f3281cbb1 ("iwlwifi: pcie: lock start_hw / start_fw / stop_device")
>
Added to my "do_no_screw_up_before_upstreaming.sh" script.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-01-08 8:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <0BA3FCBA62E2DC44AF3030971E174FB32E9836B4@hasmsx107.ger.corp.intel.com>
2016-01-07 12:47 ` [PATCH 01/21] iwlwifi: dvm: fix WoWLAN Emmanuel Grumbach
2016-01-07 21:15 ` Kalle Valo
2016-01-08 8:08 ` Grumbach, Emmanuel
2016-01-07 12:47 ` [PATCH 02/21] iwlwifi: update and fix 7265 series PCI IDs Emmanuel Grumbach
2016-01-07 12:47 ` [PATCH 21/21] iwlwifi: pcie: properly configure the debug buffer size for 8000 Emmanuel Grumbach
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).