qcacmn: Fix memory leak caused by fctxt overwriting ipa field in skb->cb

Memory leak is observed while running multicast to unicast conversion tests.
The reason was fctxt overwriting ipa field in skb->cb.
In struct qdf_nbuf_cb, offset of skb->cb->u.tx.dev.win.fctx happened to be
same as offset of skb->cb->u.tx.dev.mcl.ipa causing fctxt to sit on top of
ipa field and hence dev_kfree_skb () is not invoked.

Issue fix defines a different function that is invoked when ipa is not in use.

Change-Id: I47cb2a992730a2200b4315e492daa164d1bdfbda
CRs-Fixed: 1068852
Acked-by: Om Prakash Tripathi <otripath@codeaurora.org>
Цей коміт міститься в:
Sathish Kumar
2016-09-23 17:18:26 +05:30
зафіксовано qcabuildsw
джерело 79c2bf597e
коміт 0cfad497cb

Переглянути файл

@@ -232,6 +232,8 @@ EXPORT_SYMBOL(__qdf_nbuf_alloc);
*
* Return: none
*/
#ifdef CONFIG_MCL
void __qdf_nbuf_free(struct sk_buff *skb)
{
if (qdf_nbuf_ipa_owned_get(skb))
@@ -240,6 +242,13 @@ void __qdf_nbuf_free(struct sk_buff *skb)
else
dev_kfree_skb_any(skb);
}
#else
void __qdf_nbuf_free(struct sk_buff *skb)
{
dev_kfree_skb_any(skb);
}
#endif
EXPORT_SYMBOL(__qdf_nbuf_free);
/**