diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-01-17 14:43:17 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-01-17 14:43:17 -0500 |
commit | 7916a075571f0ccd0830cf3da293188a8b6045e3 (patch) | |
tree | 119c5bb9e513c8205efed485c2dc7b8271123326 /drivers/net/wireless/iwlwifi/mvm/d3.c | |
parent | cf84eb0b09c0f09b4c70a648b9dfeec78be61f07 (diff) | |
parent | e4e19c031901e95dc7d1cf0a2c9c50525d71651f (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/d3.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/d3.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/d3.c b/drivers/net/wireless/iwlwifi/mvm/d3.c index f04d2f4d80cd..f36a7ee0267f 100644 --- a/drivers/net/wireless/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/iwlwifi/mvm/d3.c | |||
@@ -886,8 +886,7 @@ static int iwl_mvm_get_last_nonqos_seq(struct iwl_mvm *mvm, | |||
886 | if (err) | 886 | if (err) |
887 | return err; | 887 | return err; |
888 | 888 | ||
889 | size = le32_to_cpu(cmd.resp_pkt->len_n_flags) & FH_RSCSR_FRAME_SIZE_MSK; | 889 | size = iwl_rx_packet_payload_len(cmd.resp_pkt); |
890 | size -= sizeof(cmd.resp_pkt->hdr); | ||
891 | if (size < sizeof(__le16)) { | 890 | if (size < sizeof(__le16)) { |
892 | err = -EINVAL; | 891 | err = -EINVAL; |
893 | } else { | 892 | } else { |
@@ -1211,9 +1210,8 @@ static int __iwl_mvm_suspend(struct ieee80211_hw *hw, | |||
1211 | if (ret) | 1210 | if (ret) |
1212 | goto out; | 1211 | goto out; |
1213 | #ifdef CONFIG_IWLWIFI_DEBUGFS | 1212 | #ifdef CONFIG_IWLWIFI_DEBUGFS |
1214 | len = le32_to_cpu(d3_cfg_cmd.resp_pkt->len_n_flags) & | 1213 | len = iwl_rx_packet_payload_len(d3_cfg_cmd.resp_pkt); |
1215 | FH_RSCSR_FRAME_SIZE_MSK; | 1214 | if (len >= sizeof(u32)) { |
1216 | if (len >= sizeof(u32) * 2) { | ||
1217 | mvm->d3_test_pme_ptr = | 1215 | mvm->d3_test_pme_ptr = |
1218 | le32_to_cpup((__le32 *)d3_cfg_cmd.resp_pkt->data); | 1216 | le32_to_cpup((__le32 *)d3_cfg_cmd.resp_pkt->data); |
1219 | } | 1217 | } |
@@ -1668,8 +1666,8 @@ static bool iwl_mvm_query_wakeup_reasons(struct iwl_mvm *mvm, | |||
1668 | else | 1666 | else |
1669 | status_size = sizeof(struct iwl_wowlan_status_v4); | 1667 | status_size = sizeof(struct iwl_wowlan_status_v4); |
1670 | 1668 | ||
1671 | len = le32_to_cpu(cmd.resp_pkt->len_n_flags) & FH_RSCSR_FRAME_SIZE_MSK; | 1669 | len = iwl_rx_packet_payload_len(cmd.resp_pkt); |
1672 | if (len - sizeof(struct iwl_cmd_header) < status_size) { | 1670 | if (len < status_size) { |
1673 | IWL_ERR(mvm, "Invalid WoWLAN status response!\n"); | 1671 | IWL_ERR(mvm, "Invalid WoWLAN status response!\n"); |
1674 | goto out_free_resp; | 1672 | goto out_free_resp; |
1675 | } | 1673 | } |
@@ -1704,8 +1702,7 @@ static bool iwl_mvm_query_wakeup_reasons(struct iwl_mvm *mvm, | |||
1704 | status.wake_packet = status_v4->wake_packet; | 1702 | status.wake_packet = status_v4->wake_packet; |
1705 | } | 1703 | } |
1706 | 1704 | ||
1707 | if (len - sizeof(struct iwl_cmd_header) != | 1705 | if (len != status_size + ALIGN(status.wake_packet_bufsize, 4)) { |
1708 | status_size + ALIGN(status.wake_packet_bufsize, 4)) { | ||
1709 | IWL_ERR(mvm, "Invalid WoWLAN status response!\n"); | 1706 | IWL_ERR(mvm, "Invalid WoWLAN status response!\n"); |
1710 | goto out_free_resp; | 1707 | goto out_free_resp; |
1711 | } | 1708 | } |