|
@@ -12219,12 +12219,21 @@ QDF_STATUS save_ext_service_bitmap_tlv(wmi_unified_t wmi_handle, void *evt_buf,
|
|
return QDF_STATUS_SUCCESS;
|
|
return QDF_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
- if (!soc->wmi_ext2_service_bitmap) {
|
|
|
|
|
|
+ if (!soc->wmi_ext2_service_bitmap ||
|
|
|
|
+ (param_buf->num_wmi_service_ext_bitmap >
|
|
|
|
+ soc->wmi_ext2_service_bitmap_len)) {
|
|
|
|
+ if (soc->wmi_ext2_service_bitmap) {
|
|
|
|
+ qdf_mem_free(soc->wmi_ext2_service_bitmap);
|
|
|
|
+ soc->wmi_ext2_service_bitmap = NULL;
|
|
|
|
+ }
|
|
soc->wmi_ext2_service_bitmap =
|
|
soc->wmi_ext2_service_bitmap =
|
|
qdf_mem_malloc(param_buf->num_wmi_service_ext_bitmap *
|
|
qdf_mem_malloc(param_buf->num_wmi_service_ext_bitmap *
|
|
sizeof(uint32_t));
|
|
sizeof(uint32_t));
|
|
if (!soc->wmi_ext2_service_bitmap)
|
|
if (!soc->wmi_ext2_service_bitmap)
|
|
return QDF_STATUS_E_NOMEM;
|
|
return QDF_STATUS_E_NOMEM;
|
|
|
|
+
|
|
|
|
+ soc->wmi_ext2_service_bitmap_len =
|
|
|
|
+ param_buf->num_wmi_service_ext_bitmap;
|
|
}
|
|
}
|
|
|
|
|
|
qdf_mem_copy(soc->wmi_ext2_service_bitmap,
|
|
qdf_mem_copy(soc->wmi_ext2_service_bitmap,
|