qcacld-3.0: Set IPA ownership for intra-BSS Tx packets

Set IPA ownership for intra-BSS Tx packets to avoid skb_orphan(), and
clear the ownership after check it to avoid ipa_free_skb() is called
when Tx completed.

Change-Id: I03883773e418bb5518ea63a324d22503173ea436
CRs-Fixed: 2062911
This commit is contained in:
Yun Park 2017-06-14 15:21:44 -07:00 • committed by Nandini Suresh
commit 01deb2cbba
2 changed files with 10 additions and 0 deletions

View file

@ -3815,6 +3815,10 @@ static void hdd_ipa_forward(struct hdd_ipa_priv *hdd_ipa,
struct hdd_ipa_pm_tx_cb *pm_tx_cb;
qdf_spin_lock_bh(&hdd_ipa->pm_lock);
/* Set IPA ownership for intra-BSS Tx packets to avoid skb_orphan */
qdf_nbuf_ipa_owned_set(skb);
/* WLAN subsystem is in suspend, put int queue */
if (hdd_ipa->suspended) {
qdf_spin_unlock_bh(&hdd_ipa->pm_lock);

View file

@ -398,6 +398,12 @@ static int __hdd_softap_hard_start_xmit(struct sk_buff *skb,
goto drop_pkt_accounting;
#if defined(IPA_OFFLOAD)
} else {
/*
* Clear the IPA ownership after check it to avoid ipa_free_skb
* is called when Tx completed for intra-BSS Tx packets
*/
qdf_nbuf_ipa_owned_clear(skb);
}
#endif