diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 154f68a1f8..4091328e6c 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -7276,7 +7276,7 @@ __wlan_hdd_cfg80211_get_wifi_info(struct wiphy *wiphy, uint8_t *firmware_version = NULL; int status; struct sk_buff *reply_skb; - uint32_t skb_len = 0, count = 0; + uint32_t skb_len = 0; struct pld_soc_info info; bool stt_flag = false; @@ -7301,8 +7301,7 @@ __wlan_hdd_cfg80211_get_wifi_info(struct wiphy *wiphy, if (tb_vendor[QCA_WLAN_VENDOR_ATTR_WIFI_INFO_DRIVER_VERSION]) { hdd_debug("Rcvd req for Driver version"); - skb_len += strlen(QWLAN_VERSIONSTR) + 1; - count++; + skb_len += nla_total_size(strlen(QWLAN_VERSIONSTR) + 1); } if (tb_vendor[QCA_WLAN_VENDOR_ATTR_WIFI_INFO_FIRMWARE_VERSION]) { @@ -7324,25 +7323,22 @@ __wlan_hdd_cfg80211_get_wifi_info(struct wiphy *wiphy, hdd_ctx->fw_version_info.sub_id, hdd_ctx->target_hw_name, (stt_flag ? info.fw_build_id : " ")); - skb_len += strlen(firmware_version) + 1; - count++; + skb_len += nla_total_size(strlen(firmware_version) + 1); } if (tb_vendor[QCA_WLAN_VENDOR_ATTR_WIFI_INFO_RADIO_INDEX]) { hdd_debug("Rcvd req for Radio index"); - skb_len += sizeof(uint32_t); - count++; + skb_len += nla_total_size(sizeof(uint32_t)); } - if (count == 0) { + if (!skb_len) { hdd_err("unknown attribute in get_wifi_info request"); qdf_mem_free(firmware_version); return -EINVAL; } - skb_len += (NLA_HDRLEN * count) + NLMSG_HDRLEN; - reply_skb = cfg80211_vendor_cmd_alloc_reply_skb(wiphy, skb_len); - + skb_len += NLMSG_HDRLEN; + reply_skb = wlan_cfg80211_vendor_cmd_alloc_reply_skb(wiphy, skb_len); if (!reply_skb) { hdd_err("cfg80211_vendor_cmd_alloc_reply_skb failed"); qdf_mem_free(firmware_version);