|
@@ -1305,10 +1305,7 @@ static int ath10k_core_fetch_board_data_api_n(struct ath10k *ar,
|
|
|
len -= sizeof(*hdr);
|
|
|
data = hdr->data;
|
|
|
|
|
|
- /* jump over the padding */
|
|
|
- ie_len = ALIGN(ie_len, 4);
|
|
|
-
|
|
|
- if (len < ie_len) {
|
|
|
+ if (len < ALIGN(ie_len, 4)) {
|
|
|
ath10k_err(ar, "invalid length for board ie_id %d ie_len %zu len %zu\n",
|
|
|
ie_id, ie_len, len);
|
|
|
ret = -EINVAL;
|
|
@@ -1347,6 +1344,9 @@ static int ath10k_core_fetch_board_data_api_n(struct ath10k *ar,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
+ /* jump over the padding */
|
|
|
+ ie_len = ALIGN(ie_len, 4);
|
|
|
+
|
|
|
len -= ie_len;
|
|
|
data += ie_len;
|
|
|
}
|
|
@@ -1477,9 +1477,6 @@ int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name,
|
|
|
len -= sizeof(*hdr);
|
|
|
data += sizeof(*hdr);
|
|
|
|
|
|
- /* jump over the padding */
|
|
|
- ie_len = ALIGN(ie_len, 4);
|
|
|
-
|
|
|
if (len < ie_len) {
|
|
|
ath10k_err(ar, "invalid length for FW IE %d (%zu < %zu)\n",
|
|
|
ie_id, len, ie_len);
|
|
@@ -1585,6 +1582,9 @@ int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name,
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ /* jump over the padding */
|
|
|
+ ie_len = ALIGN(ie_len, 4);
|
|
|
+
|
|
|
len -= ie_len;
|
|
|
data += ie_len;
|
|
|
}
|