diff options
author | Johannes Berg <johannes.berg@intel.com> | 2014-01-08 07:16:33 -0500 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-01-13 15:17:20 -0500 |
commit | 65b30348dbf9b529901b5c2b62dca6cad9017a2a (patch) | |
tree | e5a8c4704d58a8ff74150e099e57a46f10860c09 /drivers/net/wireless/iwlwifi/mvm | |
parent | e36b766d0c674c9dc73a2ace7aa37aea78afa233 (diff) |
iwlwifi: add inline helper for packet lengths
Add an inline helper function for getting an RX packet's
length or payload length and use it throughout the code
(most of which I did using an spatch.)
While at it, adjust some code, and remove a bogus comment
from the dvm calibration code.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Eran Harary <eran.harary@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/d3.c | 15 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/time-event.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/utils.c | 4 |
3 files changed, 10 insertions, 13 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 | } |
diff --git a/drivers/net/wireless/iwlwifi/mvm/time-event.c b/drivers/net/wireless/iwlwifi/mvm/time-event.c index 50f3d7f560bc..b4c2abaa297b 100644 --- a/drivers/net/wireless/iwlwifi/mvm/time-event.c +++ b/drivers/net/wireless/iwlwifi/mvm/time-event.c | |||
@@ -249,12 +249,12 @@ static bool iwl_mvm_time_event_response(struct iwl_notif_wait_data *notif_wait, | |||
249 | container_of(notif_wait, struct iwl_mvm, notif_wait); | 249 | container_of(notif_wait, struct iwl_mvm, notif_wait); |
250 | struct iwl_mvm_time_event_data *te_data = data; | 250 | struct iwl_mvm_time_event_data *te_data = data; |
251 | struct iwl_time_event_resp *resp; | 251 | struct iwl_time_event_resp *resp; |
252 | int resp_len = le32_to_cpu(pkt->len_n_flags) & FH_RSCSR_FRAME_SIZE_MSK; | 252 | int resp_len = iwl_rx_packet_payload_len(pkt); |
253 | 253 | ||
254 | if (WARN_ON(pkt->hdr.cmd != TIME_EVENT_CMD)) | 254 | if (WARN_ON(pkt->hdr.cmd != TIME_EVENT_CMD)) |
255 | return true; | 255 | return true; |
256 | 256 | ||
257 | if (WARN_ON_ONCE(resp_len != sizeof(pkt->hdr) + sizeof(*resp))) { | 257 | if (WARN_ON_ONCE(resp_len != sizeof(*resp))) { |
258 | IWL_ERR(mvm, "Invalid TIME_EVENT_CMD response\n"); | 258 | IWL_ERR(mvm, "Invalid TIME_EVENT_CMD response\n"); |
259 | return true; | 259 | return true; |
260 | } | 260 | } |
diff --git a/drivers/net/wireless/iwlwifi/mvm/utils.c b/drivers/net/wireless/iwlwifi/mvm/utils.c index 487d61b25359..a4a5e25623c3 100644 --- a/drivers/net/wireless/iwlwifi/mvm/utils.c +++ b/drivers/net/wireless/iwlwifi/mvm/utils.c | |||
@@ -168,8 +168,8 @@ int iwl_mvm_send_cmd_status(struct iwl_mvm *mvm, struct iwl_host_cmd *cmd, | |||
168 | goto out_free_resp; | 168 | goto out_free_resp; |
169 | } | 169 | } |
170 | 170 | ||
171 | resp_len = le32_to_cpu(pkt->len_n_flags) & FH_RSCSR_FRAME_SIZE_MSK; | 171 | resp_len = iwl_rx_packet_payload_len(pkt); |
172 | if (WARN_ON_ONCE(resp_len != sizeof(pkt->hdr) + sizeof(*resp))) { | 172 | if (WARN_ON_ONCE(resp_len != sizeof(*resp))) { |
173 | ret = -EIO; | 173 | ret = -EIO; |
174 | goto out_free_resp; | 174 | goto out_free_resp; |
175 | } | 175 | } |