qcacmn: Fix double memfree issue in MCAST2UCAST

Fix the condition check for return value in DP transmit path
for MCAST2UCAST

Change-Id: I81220838ce1c867afdab6447a30d7d7076f0c094
CRs-Fixed: 2164244
This commit is contained in:
Pamidipati, Vijay
2018-01-19 22:58:32 +05:30
committed by snandini
parent 9c524f5fc4
commit aeff44499d
3 changed files with 12 additions and 6 deletions

View File

@@ -1744,7 +1744,8 @@ qdf_nbuf_t dp_tx_send(void *vap_dev, qdf_nbuf_t nbuf)
DP_STATS_INC_PKT(vdev,
tx_i.mcast_en.mcast_pkt, 1,
qdf_nbuf_len(nbuf));
if (dp_tx_prepare_send_me(vdev, nbuf) > 0) {
if (dp_tx_prepare_send_me(vdev, nbuf) !=
QDF_STATUS_SUCCESS) {
qdf_nbuf_free(nbuf);
return NULL;
}

View File

@@ -151,7 +151,7 @@ qdf_nbuf_t dp_tx_non_std(struct cdp_vdev *vdev_handle,
uint32_t dp_tx_comp_handler(struct dp_soc *soc, void *hal_srng, uint32_t quota);
int32_t
QDF_STATUS
dp_tx_prepare_send_me(struct dp_vdev *vdev, qdf_nbuf_t nbuf);
#ifndef CONVERGED_TDLS_ENABLE

View File

@@ -181,11 +181,16 @@ dp_tx_me_free_descriptor(struct cdp_pdev *pdev_handle)
*
* Return: no of packets transmitted
*/
int32_t
QDF_STATUS
dp_tx_prepare_send_me(struct dp_vdev *vdev, qdf_nbuf_t nbuf)
{
if (vdev->me_convert)
return vdev->me_convert(vdev->osif_vdev, nbuf);
return 0;
if (vdev->me_convert) {
if (vdev->me_convert(vdev->osif_vdev, nbuf) < 0)
return QDF_STATUS_E_FAILURE;
return QDF_STATUS_SUCCESS;
}
return QDF_STATUS_E_FAILURE;
}
#endif