]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.13-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Feb 2014 22:04:23 +0000 (14:04 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Feb 2014 22:04:23 +0000 (14:04 -0800)
added patches:
iwlwifi-add-more-7265-hw-ids.patch
iwlwifi-mvm-bt-coex-disable-bt-when-txing-probe-request-in-scan.patch
iwlwifi-mvm-disable-scheduled-scan.patch
iwlwifi-mvm-don-t-allow-a-band-if-sku-forbids-it.patch
iwlwifi-mvm-print-the-version-of-the-firmware-when-it-asserts.patch
powerpc-fix-endian-issues-in-kexec-and-crash-dump-code.patch

queue-3.13/iwlwifi-add-more-7265-hw-ids.patch [new file with mode: 0644]
queue-3.13/iwlwifi-mvm-bt-coex-disable-bt-when-txing-probe-request-in-scan.patch [new file with mode: 0644]
queue-3.13/iwlwifi-mvm-disable-scheduled-scan.patch [new file with mode: 0644]
queue-3.13/iwlwifi-mvm-don-t-allow-a-band-if-sku-forbids-it.patch [new file with mode: 0644]
queue-3.13/iwlwifi-mvm-print-the-version-of-the-firmware-when-it-asserts.patch [new file with mode: 0644]
queue-3.13/powerpc-fix-endian-issues-in-kexec-and-crash-dump-code.patch [new file with mode: 0644]
queue-3.13/series

diff --git a/queue-3.13/iwlwifi-add-more-7265-hw-ids.patch b/queue-3.13/iwlwifi-add-more-7265-hw-ids.patch
new file mode 100644 (file)
index 0000000..b451b65
--- /dev/null
@@ -0,0 +1,48 @@
+From f7690915ccce98553c5425b51e6b5a6c51e27f4e Mon Sep 17 00:00:00 2001
+From: Oren Givon <oren.givon@intel.com>
+Date: Thu, 23 Jan 2014 01:19:33 +0200
+Subject: iwlwifi: add more 7265 HW IDs
+
+From: Oren Givon <oren.givon@intel.com>
+
+commit f7690915ccce98553c5425b51e6b5a6c51e27f4e upstream.
+
+Add 6 new HW IDs for the 7265 series.
+
+Signed-off-by: Oren Givon <oren.givon@intel.com>
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlwifi/pcie/drv.c |    7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/iwlwifi/pcie/drv.c
++++ b/drivers/net/wireless/iwlwifi/pcie/drv.c
+@@ -354,20 +354,25 @@ static DEFINE_PCI_DEVICE_TABLE(iwl_hw_ca
+ /* 7265 Series */
+       {IWL_PCI_DEVICE(0x095A, 0x5010, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x5110, iwl7265_2ac_cfg)},
++      {IWL_PCI_DEVICE(0x095A, 0x5112, iwl7265_2ac_cfg)},
++      {IWL_PCI_DEVICE(0x095A, 0x5100, iwl7265_2ac_cfg)},
++      {IWL_PCI_DEVICE(0x095A, 0x510A, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095B, 0x5310, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095B, 0x5302, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095B, 0x5210, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x5012, iwl7265_2ac_cfg)},
+-      {IWL_PCI_DEVICE(0x095A, 0x500A, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x5410, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x5400, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x1010, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x5000, iwl7265_2n_cfg)},
++      {IWL_PCI_DEVICE(0x095A, 0x500A, iwl7265_2n_cfg)},
+       {IWL_PCI_DEVICE(0x095B, 0x5200, iwl7265_2n_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x5002, iwl7265_n_cfg)},
+       {IWL_PCI_DEVICE(0x095B, 0x5202, iwl7265_n_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x9010, iwl7265_2ac_cfg)},
++      {IWL_PCI_DEVICE(0x095A, 0x9012, 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(0x095A, 0x9510, iwl7265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x095A, 0x9310, iwl7265_2ac_cfg)},
diff --git a/queue-3.13/iwlwifi-mvm-bt-coex-disable-bt-when-txing-probe-request-in-scan.patch b/queue-3.13/iwlwifi-mvm-bt-coex-disable-bt-when-txing-probe-request-in-scan.patch
new file mode 100644 (file)
index 0000000..5b4d781
--- /dev/null
@@ -0,0 +1,32 @@
+From 8e2a866ef214af4e104ec8d593e3269d8fe66d19 Mon Sep 17 00:00:00 2001
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Date: Tue, 28 Jan 2014 12:27:31 +0200
+Subject: iwlwifi: mvm: BT Coex - disable BT when TXing probe request in scan
+
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+
+commit 8e2a866ef214af4e104ec8d593e3269d8fe66d19 upstream.
+
+Not doing so will let BT kill our probe requests leading to
+failures in scan.
+
+Reviewed-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlwifi/mvm/scan.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/iwlwifi/mvm/scan.c
++++ b/drivers/net/wireless/iwlwifi/mvm/scan.c
+@@ -325,7 +325,8 @@ int iwl_mvm_scan_request(struct iwl_mvm
+       iwl_mvm_scan_fill_ssids(cmd, req, basic_ssid ? 1 : 0);
+-      cmd->tx_cmd.tx_flags = cpu_to_le32(TX_CMD_FLG_SEQ_CTL);
++      cmd->tx_cmd.tx_flags = cpu_to_le32(TX_CMD_FLG_SEQ_CTL |
++                                         TX_CMD_FLG_BT_DIS);
+       cmd->tx_cmd.sta_id = mvm->aux_sta.sta_id;
+       cmd->tx_cmd.life_time = cpu_to_le32(TX_CMD_LIFE_TIME_INFINITE);
+       cmd->tx_cmd.rate_n_flags =
diff --git a/queue-3.13/iwlwifi-mvm-disable-scheduled-scan.patch b/queue-3.13/iwlwifi-mvm-disable-scheduled-scan.patch
new file mode 100644 (file)
index 0000000..df8982d
--- /dev/null
@@ -0,0 +1,36 @@
+From 0822afe8ebb9389997ef677447c7b08e08797de9 Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Thu, 16 Jan 2014 09:18:07 +0100
+Subject: iwlwifi: mvm: disable scheduled scan
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit 0822afe8ebb9389997ef677447c7b08e08797de9 upstream.
+
+The iwlwifi scheduled scan implementation doesn't adhere to the
+userspace API correctly - the API assumes that any new incoming
+'incompatible' request (like scan or remain-on-channel for this
+driver) will just cancel the scheduled scan. Instead our driver
+relies on userspace cancelling it, thus breaking existing wpa_s
+versions.
+
+Fixes: 35a000b7c1bb ("iwlwifi: mvm: support sched scan if supported by the fw")
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlwifi/mvm/mac80211.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
++++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+@@ -246,7 +246,7 @@ int iwl_mvm_mac_setup_register(struct iw
+       else
+               hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
+-      if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_SCHED_SCAN) {
++      if (0 && mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_SCHED_SCAN) {
+               hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN;
+               hw->wiphy->max_sched_scan_ssids = PROBE_OPTION_MAX;
+               hw->wiphy->max_match_sets = IWL_SCAN_MAX_PROFILES;
diff --git a/queue-3.13/iwlwifi-mvm-don-t-allow-a-band-if-sku-forbids-it.patch b/queue-3.13/iwlwifi-mvm-don-t-allow-a-band-if-sku-forbids-it.patch
new file mode 100644 (file)
index 0000000..48256e7
--- /dev/null
@@ -0,0 +1,41 @@
+From c512865446e6dd5b6e91e81187e75b734ad7cfc7 Mon Sep 17 00:00:00 2001
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Date: Thu, 5 Dec 2013 22:42:55 +0200
+Subject: iwlwifi: mvm: don't allow A band if SKU forbids it
+
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+
+commit c512865446e6dd5b6e91e81187e75b734ad7cfc7 upstream.
+
+The driver wasn't reading the NVM properly. While this
+didn't lead to any issue until now, it seems that there
+is an old version of the NVM in the wild.
+In this version, the A band channels appear to be valid
+but the SKU capabilities (another field of the NVM) says
+that A band isn't supported at all.
+With this specific version of the NVM, the driver would
+think that A band is supported while the HW / firmware
+don't. This leads to asserts.
+
+Reviewed-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlwifi/iwl-nvm-parse.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/net/wireless/iwlwifi/iwl-nvm-parse.c
++++ b/drivers/net/wireless/iwlwifi/iwl-nvm-parse.c
+@@ -182,6 +182,11 @@ static int iwl_init_channel_map(struct d
+       for (ch_idx = 0; ch_idx < IWL_NUM_CHANNELS; ch_idx++) {
+               ch_flags = __le16_to_cpup(nvm_ch_flags + ch_idx);
++
++              if (ch_idx >= NUM_2GHZ_CHANNELS &&
++                  !data->sku_cap_band_52GHz_enable)
++                      ch_flags &= ~NVM_CHANNEL_VALID;
++
+               if (!(ch_flags & NVM_CHANNEL_VALID)) {
+                       IWL_DEBUG_EEPROM(dev,
+                                        "Ch. %d Flags %x [%sGHz] - No traffic\n",
diff --git a/queue-3.13/iwlwifi-mvm-print-the-version-of-the-firmware-when-it-asserts.patch b/queue-3.13/iwlwifi-mvm-print-the-version-of-the-firmware-when-it-asserts.patch
new file mode 100644 (file)
index 0000000..1153b2d
--- /dev/null
@@ -0,0 +1,33 @@
+From b900a87b2eb90c0b9586496c82a323a1b8832d73 Mon Sep 17 00:00:00 2001
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Date: Thu, 23 Jan 2014 11:55:16 +0200
+Subject: iwlwifi: mvm: print the version of the firmware when it asserts
+
+From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+
+commit b900a87b2eb90c0b9586496c82a323a1b8832d73 upstream.
+
+This can be useful to be able to spot the firmware version
+from the error reports without needing to fetch it from
+another place.
+
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Reviewed-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/iwlwifi/mvm/utils.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/wireless/iwlwifi/mvm/utils.c
++++ b/drivers/net/wireless/iwlwifi/mvm/utils.c
+@@ -411,6 +411,8 @@ void iwl_mvm_dump_nic_error_log(struct i
+                       mvm->status, table.valid);
+       }
++      IWL_ERR(mvm, "Loaded firmware version: %s\n", mvm->fw->fw_version);
++
+       trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low,
+                                     table.data1, table.data2, table.data3,
+                                     table.blink1, table.blink2, table.ilink1,
diff --git a/queue-3.13/powerpc-fix-endian-issues-in-kexec-and-crash-dump-code.patch b/queue-3.13/powerpc-fix-endian-issues-in-kexec-and-crash-dump-code.patch
new file mode 100644 (file)
index 0000000..93e2dd4
--- /dev/null
@@ -0,0 +1,113 @@
+From ea961a828fe7250e954f086d74d9323c3d44c3e4 Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Wed, 22 Jan 2014 08:40:28 +1100
+Subject: powerpc: Fix endian issues in kexec and crash dump code
+
+From: Anton Blanchard <anton@samba.org>
+
+commit ea961a828fe7250e954f086d74d9323c3d44c3e4 upstream.
+
+We expose a number of OF properties in the kexec and crash dump code
+and these need to be big endian.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/machine_kexec.c    |   14 ++++++++++----
+ arch/powerpc/kernel/machine_kexec_64.c |    6 ++++--
+ 2 files changed, 14 insertions(+), 6 deletions(-)
+
+--- a/arch/powerpc/kernel/machine_kexec.c
++++ b/arch/powerpc/kernel/machine_kexec.c
+@@ -196,7 +196,9 @@ int overlaps_crashkernel(unsigned long s
+ /* Values we need to export to the second kernel via the device tree. */
+ static phys_addr_t kernel_end;
++static phys_addr_t crashk_base;
+ static phys_addr_t crashk_size;
++static unsigned long long mem_limit;
+ static struct property kernel_end_prop = {
+       .name = "linux,kernel-end",
+@@ -207,7 +209,7 @@ static struct property kernel_end_prop =
+ static struct property crashk_base_prop = {
+       .name = "linux,crashkernel-base",
+       .length = sizeof(phys_addr_t),
+-      .value = &crashk_res.start,
++      .value = &crashk_base
+ };
+ static struct property crashk_size_prop = {
+@@ -219,9 +221,11 @@ static struct property crashk_size_prop
+ static struct property memory_limit_prop = {
+       .name = "linux,memory-limit",
+       .length = sizeof(unsigned long long),
+-      .value = &memory_limit,
++      .value = &mem_limit,
+ };
++#define cpu_to_be_ulong       __PASTE(cpu_to_be, BITS_PER_LONG)
++
+ static void __init export_crashk_values(struct device_node *node)
+ {
+       struct property *prop;
+@@ -237,8 +241,9 @@ static void __init export_crashk_values(
+               of_remove_property(node, prop);
+       if (crashk_res.start != 0) {
++              crashk_base = cpu_to_be_ulong(crashk_res.start),
+               of_add_property(node, &crashk_base_prop);
+-              crashk_size = resource_size(&crashk_res);
++              crashk_size = cpu_to_be_ulong(resource_size(&crashk_res));
+               of_add_property(node, &crashk_size_prop);
+       }
+@@ -246,6 +251,7 @@ static void __init export_crashk_values(
+        * memory_limit is required by the kexec-tools to limit the
+        * crash regions to the actual memory used.
+        */
++      mem_limit = cpu_to_be_ulong(memory_limit);
+       of_update_property(node, &memory_limit_prop);
+ }
+@@ -264,7 +270,7 @@ static int __init kexec_setup(void)
+               of_remove_property(node, prop);
+       /* information needed by userspace when using default_machine_kexec */
+-      kernel_end = __pa(_end);
++      kernel_end = cpu_to_be_ulong(__pa(_end));
+       of_add_property(node, &kernel_end_prop);
+       export_crashk_values(node);
+--- a/arch/powerpc/kernel/machine_kexec_64.c
++++ b/arch/powerpc/kernel/machine_kexec_64.c
+@@ -369,6 +369,7 @@ void default_machine_kexec(struct kimage
+ /* Values we need to export to the second kernel via the device tree. */
+ static unsigned long htab_base;
++static unsigned long htab_size;
+ static struct property htab_base_prop = {
+       .name = "linux,htab-base",
+@@ -379,7 +380,7 @@ static struct property htab_base_prop =
+ static struct property htab_size_prop = {
+       .name = "linux,htab-size",
+       .length = sizeof(unsigned long),
+-      .value = &htab_size_bytes,
++      .value = &htab_size,
+ };
+ static int __init export_htab_values(void)
+@@ -403,8 +404,9 @@ static int __init export_htab_values(voi
+       if (prop)
+               of_remove_property(node, prop);
+-      htab_base = __pa(htab_address);
++      htab_base = cpu_to_be64(__pa(htab_address));
+       of_add_property(node, &htab_base_prop);
++      htab_size = cpu_to_be64(htab_size_bytes);
+       of_add_property(node, &htab_size_prop);
+       of_node_put(node);
index 77394438539f2ed0371773655347ba5ce577786c..933098b7baa6ed9a702bf21511ecfbb60d3eeef6 100644 (file)
@@ -19,3 +19,9 @@ s390-dump-fix-dump-memory-detection.patch
 s390-fix-kernel-crash-due-to-linkage-stack-instructions.patch
 nl80211-reset-split_start-when-netlink-skb-is-exhausted.patch
 spi-fix-crash-with-double-message-finalisation-on-error-handling.patch
+iwlwifi-mvm-don-t-allow-a-band-if-sku-forbids-it.patch
+iwlwifi-mvm-disable-scheduled-scan.patch
+iwlwifi-mvm-print-the-version-of-the-firmware-when-it-asserts.patch
+iwlwifi-add-more-7265-hw-ids.patch
+iwlwifi-mvm-bt-coex-disable-bt-when-txing-probe-request-in-scan.patch
+powerpc-fix-endian-issues-in-kexec-and-crash-dump-code.patch