diff --git a/dp/wifi3.0/dp_htt.c b/dp/wifi3.0/dp_htt.c index 0ebab5b8ee..fef98dd5bf 100644 --- a/dp/wifi3.0/dp_htt.c +++ b/dp/wifi3.0/dp_htt.c @@ -919,6 +919,7 @@ int htt_h2t_full_mon_cfg(struct htt_soc *htt_soc, qdf_nbuf_t htt_msg; uint32_t *msg_word; uint8_t *htt_logger_bufp; + QDF_STATUS status; htt_msg = qdf_nbuf_alloc(soc->osdev, HTT_MSG_BUF_SIZE( @@ -991,9 +992,16 @@ int htt_h2t_full_mon_cfg(struct htt_soc *htt_soc, SET_HTC_PACKET_NET_BUF_CONTEXT(&pkt->htc_pkt, htt_msg); qdf_debug("config: %d", config); - DP_HTT_SEND_HTC_PKT(soc, pkt, HTT_H2T_MSG_TYPE_RX_FULL_MONITOR_MODE, - htt_logger_bufp); - return QDF_STATUS_SUCCESS; + status = DP_HTT_SEND_HTC_PKT(soc, pkt, + HTT_H2T_MSG_TYPE_RX_FULL_MONITOR_MODE, + htt_logger_bufp); + + if (status != QDF_STATUS_SUCCESS) { + qdf_nbuf_free(htt_msg); + htt_htc_pkt_free(soc, pkt); + } + + return status; fail1: qdf_nbuf_free(htt_msg); return QDF_STATUS_E_FAILURE; diff --git a/dp/wifi3.0/dp_peer.h b/dp/wifi3.0/dp_peer.h index b041e78108..7ff1b79adf 100644 --- a/dp/wifi3.0/dp_peer.h +++ b/dp/wifi3.0/dp_peer.h @@ -2097,12 +2097,13 @@ struct dp_peer *dp_get_primary_link_peer_by_id(struct dp_soc *soc, for (i = 0; i < link_peers_info.num_links; i++) { link_peer = link_peers_info.link_peers[i]; if (link_peer->primary_link) { - primary_peer = link_peer; /* * Take additional reference over * primary link peer. */ - dp_peer_get_ref(NULL, primary_peer, mod_id); + if (QDF_STATUS_SUCCESS == + dp_peer_get_ref(NULL, link_peer, mod_id)) + primary_peer = link_peer; break; } }