From: Greg Kroah-Hartman Date: Thu, 20 Feb 2014 22:04:23 +0000 (-0800) Subject: 3.13-stable patches X-Git-Tag: v3.4.82~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=691646594d2647e288393e65699871376217fcab;p=thirdparty%2Fkernel%2Fstable-queue.git 3.13-stable patches 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 --- 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 index 00000000000..b451b65f951 --- /dev/null +++ b/queue-3.13/iwlwifi-add-more-7265-hw-ids.patch @@ -0,0 +1,48 @@ +From f7690915ccce98553c5425b51e6b5a6c51e27f4e Mon Sep 17 00:00:00 2001 +From: Oren Givon +Date: Thu, 23 Jan 2014 01:19:33 +0200 +Subject: iwlwifi: add more 7265 HW IDs + +From: Oren Givon + +commit f7690915ccce98553c5425b51e6b5a6c51e27f4e upstream. + +Add 6 new HW IDs for the 7265 series. + +Signed-off-by: Oren Givon +Signed-off-by: Emmanuel Grumbach +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..5b4d78114e9 --- /dev/null +++ b/queue-3.13/iwlwifi-mvm-bt-coex-disable-bt-when-txing-probe-request-in-scan.patch @@ -0,0 +1,32 @@ +From 8e2a866ef214af4e104ec8d593e3269d8fe66d19 Mon Sep 17 00:00:00 2001 +From: Emmanuel Grumbach +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 + +commit 8e2a866ef214af4e104ec8d593e3269d8fe66d19 upstream. + +Not doing so will let BT kill our probe requests leading to +failures in scan. + +Reviewed-by: Johannes Berg +Signed-off-by: Emmanuel Grumbach +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..df8982d46bf --- /dev/null +++ b/queue-3.13/iwlwifi-mvm-disable-scheduled-scan.patch @@ -0,0 +1,36 @@ +From 0822afe8ebb9389997ef677447c7b08e08797de9 Mon Sep 17 00:00:00 2001 +From: Johannes Berg +Date: Thu, 16 Jan 2014 09:18:07 +0100 +Subject: iwlwifi: mvm: disable scheduled scan + +From: Johannes Berg + +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 +Signed-off-by: Emmanuel Grumbach +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..48256e76d72 --- /dev/null +++ b/queue-3.13/iwlwifi-mvm-don-t-allow-a-band-if-sku-forbids-it.patch @@ -0,0 +1,41 @@ +From c512865446e6dd5b6e91e81187e75b734ad7cfc7 Mon Sep 17 00:00:00 2001 +From: Emmanuel Grumbach +Date: Thu, 5 Dec 2013 22:42:55 +0200 +Subject: iwlwifi: mvm: don't allow A band if SKU forbids it + +From: Emmanuel Grumbach + +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 +Signed-off-by: Emmanuel Grumbach +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..1153b2dcf5e --- /dev/null +++ b/queue-3.13/iwlwifi-mvm-print-the-version-of-the-firmware-when-it-asserts.patch @@ -0,0 +1,33 @@ +From b900a87b2eb90c0b9586496c82a323a1b8832d73 Mon Sep 17 00:00:00 2001 +From: Emmanuel Grumbach +Date: Thu, 23 Jan 2014 11:55:16 +0200 +Subject: iwlwifi: mvm: print the version of the firmware when it asserts + +From: Emmanuel Grumbach + +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 +Reviewed-by: Johannes Berg +Signed-off-by: Emmanuel Grumbach +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..93e2dd4233d --- /dev/null +++ b/queue-3.13/powerpc-fix-endian-issues-in-kexec-and-crash-dump-code.patch @@ -0,0 +1,113 @@ +From ea961a828fe7250e954f086d74d9323c3d44c3e4 Mon Sep 17 00:00:00 2001 +From: Anton Blanchard +Date: Wed, 22 Jan 2014 08:40:28 +1100 +Subject: powerpc: Fix endian issues in kexec and crash dump code + +From: Anton Blanchard + +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 +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-3.13/series b/queue-3.13/series index 77394438539..933098b7baa 100644 --- a/queue-3.13/series +++ b/queue-3.13/series @@ -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