diff options
author | Michal Kazior <michal.kazior@tieto.com> | 2014-09-04 04:18:32 -0400 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2014-09-10 07:17:09 -0400 |
commit | c4f8c83665cf47b658ec2e4cc83cd873f8c943c7 (patch) | |
tree | a509450f84236b8a284510301170f9cb15503bf3 /drivers/net/wireless/ath/ath10k/wmi.c | |
parent | e13cf7a313a44c7279b4b646b5b7056d702ad0b7 (diff) |
ath10k: use proper service bitmap size
On 32bit systems the bitmap was too small and it
was overwritten partially by the stat completion
structure. This was visible with 10.2 firmware
only due to it using a few of the last service
ids.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/wmi.c')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/wmi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c index b13ccf6778c3..e7edc89cfcd0 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c | |||
@@ -2164,7 +2164,7 @@ static void ath10k_wmi_service_ready_event_rx(struct ath10k *ar, | |||
2164 | struct sk_buff *skb) | 2164 | struct sk_buff *skb) |
2165 | { | 2165 | { |
2166 | struct wmi_service_ready_event *ev = (void *)skb->data; | 2166 | struct wmi_service_ready_event *ev = (void *)skb->data; |
2167 | DECLARE_BITMAP(svc_bmap, WMI_SERVICE_BM_SIZE) = {}; | 2167 | DECLARE_BITMAP(svc_bmap, WMI_SERVICE_MAX) = {}; |
2168 | 2168 | ||
2169 | if (skb->len < sizeof(*ev)) { | 2169 | if (skb->len < sizeof(*ev)) { |
2170 | ath10k_warn(ar, "Service ready event was %d B but expected %zu B. Wrong firmware version?\n", | 2170 | ath10k_warn(ar, "Service ready event was %d B but expected %zu B. Wrong firmware version?\n", |
@@ -2241,7 +2241,7 @@ static void ath10k_wmi_10x_service_ready_event_rx(struct ath10k *ar, | |||
2241 | u32 num_units, req_id, unit_size, num_mem_reqs, num_unit_info, i; | 2241 | u32 num_units, req_id, unit_size, num_mem_reqs, num_unit_info, i; |
2242 | int ret; | 2242 | int ret; |
2243 | struct wmi_service_ready_event_10x *ev = (void *)skb->data; | 2243 | struct wmi_service_ready_event_10x *ev = (void *)skb->data; |
2244 | DECLARE_BITMAP(svc_bmap, WMI_SERVICE_BM_SIZE) = {}; | 2244 | DECLARE_BITMAP(svc_bmap, WMI_SERVICE_MAX) = {}; |
2245 | 2245 | ||
2246 | if (skb->len < sizeof(*ev)) { | 2246 | if (skb->len < sizeof(*ev)) { |
2247 | ath10k_warn(ar, "Service ready event was %d B but expected %zu B. Wrong firmware version?\n", | 2247 | ath10k_warn(ar, "Service ready event was %d B but expected %zu B. Wrong firmware version?\n", |